3 votes

Partage de système de fichiers entre hôtes linux ?

Je gère un site web qui utilise beaucoup les fichiers téléchargés par les utilisateurs. Ces fichiers ne sont servis aux utilisateurs qu'après une vérification des autorisations par une application Django.

J'ai maintenant besoin d'évoluer horizontalement et de créer une autre instance d'un serveur web. Elle doit avoir accès à la même structure de répertoires que celle qui contient les fichiers téléchargés. Ce dont j'ai probablement besoin est un système de fichiers distribué.

J'ai réfléchi :

  1. NFS - Je l'ai fait il y a 15 ans et, même à l'époque, je trouvais que cette norme était tout à fait dépassée. Bien que robuste et facile à mettre en place, l'absence de cryptage des transferts et la nécessité de synchroniser les UID/GID entre les serveurs créent plus de problèmes qu'ils n'en résolvent.
  2. périodique rsync - ressemble à un sale hack et entraînerait probablement des problèmes de désynchronisation. Et prenez N fois la taille de stockage pour N serveurs.
  3. sshfs - eh bien, si elle a les mêmes performances que scp, je ne veux pas en entendre parler en fait.
  4. LustreFS , Gluster Je n'ai jamais utilisé ces systèmes et je ne sais pas lequel répondrait à mes besoins. La redondance n'est pas critique (nous avons des sauvegardes fréquentes) mais j'aimerais que le trafic entre les serveurs soit crypté.

Que recommanderiez-vous ?

0voto

porto alet Points 315

Cela dépend vraiment de la capacité d'évolution que vous souhaitez, de la complexité de la solution que vous recherchez et de la distance entre vos serveurs (en termes de ping).

NFS est probablement le meilleur outil pour ce travail - vous pouvez le coupler avec quelque chose comme Puppet/chef/cfengine etc. pour vous assurer que les répertoires sont synchronisés. Vous pouvez utiliser OpenVPN ou un équivalent pour les données en vol. La plupart des systèmes NAS fonctionnent de cette manière. S'ils sont construits sur un RAID avec un NICS décent, il s'agit d'un modèle relativement simple, robuste et bien compris.

Autres considérations -

Gluster peut être une solution décente, mais pas aussi bien testée. J'ai joué avec, mais je n'ai jamais été vraiment à l'aise.

Si vous n'avez besoin que de 2 (ou peut-être 3) nœuds sur un réseau directement connecté, regardez DRBD (un mode). S'il s'agit d'une plus longue distance et d'un système primaire/de secours, vous pouvez utiliser MARS (qui est un peu comme drbd-proxy).

Vous pouvez également vérifier et vous assurer que ZFS n'est pas l'outil qu'il vous faut (par exemple en utilisant ZFS+replication) - je soupçonne que cela ne fournira pas de double écriture cependant, et je n'ai jamais eu beaucoup de chance avec lui.

En fonction de votre cas d'utilisation particulier, si vous jouez au niveau de la VM, vous pouvez envisager l'iSCSI, mais ce n'est probablement pas ce que vous voulez.

En fonction du contenu, il peut être possible de tout placer dans une base de données et d'utiliser la réplication de la base de données. Vous pourriez être en mesure de modifier votre logiciel ou d'utiliser un système de fichiers db monté par FUSE.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X