2009-11-12 8 views
1

Cela peut également être une question pour serverfault, mais cela inclut également des rubriques d'ici.Mise à l'échelle des systèmes de fichiers

Je construis un nouveau site Web composé de 6 serveurs. 1 mysql, 1 web, 2 serveurs de traitement de fichiers, 2 serveurs de fichiers. En bref, les serveurs de traitement de fichiers traitent les fichiers et les copient sur les serveurs de fichiers. Dans ce cas, j'ai deux options;

Je peux configurer un serveur Web pour chaque serveur de fichiers et servir les fichiers directement à partir de là. Comme, fichier1.domain.com/fichier.zip. Certains fichiers (pas tous) auront besoin d'une authentification, donc je vais authentifier les utilisateurs via memcache à partir de ces serveurs. 90% des demandes n'auront pas besoin d'authentification.

Ou je peux configurer NFS et servir des fichiers directement à partir du serveur Web, comme www.domain.com/fileserve.php?id=2323 (c'est un exemple de base)

Comme le projet est fortement basé sur la fichiers, la deuxième option pourrait ne pas être aussi efficace que la première option, car elle consommera plus de mémoire (même si je divise les fichiers en morceaux pendant le service)

La configuration restera la même pendant longtemps, donc nous avons gagné ' t ajouter de nouveaux serveurs de fichiers dans l'installation.

Quelles sont vos idées, laquelle est la meilleure? Ou une idée différente?

Merci à l'avance,

Répondre

3

-moi, mais je fait mettre un ensemble de règles de proxy inverse sur le « serveur web », puis les requêtes HTTP proxy (peut-être l'équilibrage de charge si elles ont des systèmes de fichiers égaux) retour à un serveur HTTP léger sur les serveurs de fichiers.

Cela vous donne la flexibilité et la capacité de mise en cache mettre en œuvre future, l'exploitation forestière, les chaînes de filtre, les règles de réécriture, l'authentification & c, c &. Je trouve qu'un serveur Web frontal en tant que couche proxy est une solution très efficace.

+0

Ce serait généralement mon choix, aussi. Juste une mise en garde: s'il vous plaît soyez prudent, votre futur soi et/ou vos successeurs vous remercieront! Il est ennuyeux de se retrouver avec des dégâts désagréables et difficiles à maintenir si vous ne faites pas attention à la conception de règles telles que les règles de proxy et de réécriture. –

+0

Désolé pour ma question car je n'ai pas configuré de proxy inverse pour les serveurs web. Donc, voulez-vous dire que je ne vais pas configurer quelque chose comme NFS, quand quelqu'un demande www.domain.com/file.zip, il va transmettre la requête à file1.domain.com/file.zip, directement à partir du protocole HTTP. Je connais théoriquement cette conception et je voudrais la pratiquer en utilisant nginx comme proxy inverse, mais je me demande quels sont les handicaps de ce design, surtout du point de vue de la mémoire. Comment cela va affecter la consommation de mémoire sur le serveur web (les serveurs de fichiers consommeront la même mémoire que la première option je suppose) – murat

+0

@murat Je pense que vous le dites, mais la requête HTTP n'est pas protégée mais plutôt diffusée à travers le proxy inverse avant. Vous n'encourez donc pas NFS mais HTTP sur le réseau. Vous pouvez également faire des trucs comme décharger la compression GZIP sur le serveur web avant. La consommation de ressources que je n'imaginerais pas serait pire que le service NFSoTCP. La plupart des proxys inversés diffusent les données en continu en passant des en-têtes et tout en analysant éventuellement le retour, mais si vous servez des binaires, cela n'aurait aucune conséquence. – Xailor

2

Je recommande votre option n ° 1: permettre aux serveurs de fichiers d'agir en tant que serveurs Web. J'ai personnellement trouvé que NFS est un peu floconneux lorsqu'il est utilisé sous un volume élevé.

+1

+1 pour un NFS flamboyant sous un volume élevé. –

+1

oui, j'ai lu ça sur internet .. merci. – murat

0

Vous pouvez également utiliser le réseau de diffusion de contenu tel que simplecdn.com, ils peuvent résoudre les problèmes de bande passante et de charge du serveur.

+0

Merci pour la suggestion, mais les CDN sont exagérés pour nous, parce que le projet est un projet local, et nous avons de très bonnes affaires avec les centres de données locaux. – murat

Questions connexes