32 votes

Système de stockage distribué de fichiers - Lequel/Existe-t-il un produit prêt à l'emploi?

Avec Hadoop et CouchDB partout dans les Blogs et les actualités associées, quelle est une solution de stockage distribué tolérante aux pannes qui fonctionne réellement.

  • CouchDB n'a en fait aucune fonctionnalité de distribution intégrée, à ma connaissance, le moyen de distribuer automatiquement des entrées ou même des bases de données entières est tout simplement absent.
  • Hadoop semble être très largement utilisé - du moins il bénéficie d'une bonne presse, mais a toujours un point de défaillance unique : le NameNode. De plus, il n'est montable que via FUSE, je comprends que le HDFS n'est en fait pas l'objectif principal de Hadoop.
  • GlusterFS a un concept de partage de ressources mais récemment j'ai lu plusieurs articles qui m'ont amené à penser qu'il n'est pas tout à fait aussi stable.
  • Lustre a également un point de défaillance unique car il utilise un serveur de métadonnées dédié.
  • Ceph semble être le choix préféré mais la page d'accueil indique qu'il est toujours à ses débuts alpha.

Alors la question est : quel système de fichiers distribué a l'ensemble de fonctionnalités suivant (sans ordre particulier) :

  • Compatible POSIX
  • Ajout/suppression facile des nœuds
  • Concept de partage de ressources
  • Fonctionne sur du matériel bon marché (processeurs de classe AMD Geode ou VIA Eden)
  • Authentification/autorisation intégrée
  • Un système de fichiers réseau (j'aimerais pouvoir le monter simultanément sur différents hôtes)

Appréciable d'avoir :

  • Fichiers localement accessibles : je peux mettre un nœud hors service et monter la partition avec un système de fichiers local standard (ext3/xfs/whatever...) et toujours accéder aux fichiers

Je ne cherche pas des applications hébergées, mais plutôt quelque chose qui me permettra de prendre par exemple 10 Go de chacune de nos boîtes matérielles et d'avoir ce stockage disponible dans notre réseau, facilement montable sur une multitude d'hôtes.

0 votes

Alors, qu'avez-vous finalement obtenu? Il serait intéressant d'en savoir plus sur votre configuration actuelle.

0 votes

Lustre semble avoir ajouté des MDS actifs/passifs depuis que vous avez écrit ceci, il pourrait donc être nécessaire de jeter un autre coup d'œil.

0 votes

Dans mon expérience, GlusterFS a été stable mais les performances sont assez médiocres. Pour de meilleures performances, vous aurez besoin d'un matériel sérieusement haut de gamme - essentiellement RDMA. La chose importante est la latence entre tous les serveurs et la machine cliente GlusterFS.

16voto

RP. Points 191

Je ne peux pas parler pour le reste, mais vous semblez être confus entre un 'moteur de stockage distribué' et un 'système de fichiers distribué'. Ce ne sont pas la même chose, ils ne doivent pas être confondus, et ils ne seront jamais la même chose. Un système de fichiers est une manière de garder une trace de l'emplacement des choses sur un disque dur. Un moteur de stockage comme Hadoop est une manière de garder une trace d'un morceau de données identifié par une clé. Conceptuellement, pas beaucoup de différence. Le problème est qu'un système de fichiers est une dépendance d'un moteur de stockage... après tout, il a besoin d'une manière d'écrire sur un périphérique de bloc, n'est-ce pas ?

En dehors de tout cela, je peux parler de l'utilisation de ocfs2 en tant que système de fichiers distribué dans un environnement de production. Si vous ne voulez pas les détails techniques, arrêtez de lire après cette ligne : C'est plutôt cool, mais cela peut signifier plus de temps d'arrêt que vous ne le pensez.

Nous utilisons ocfs2 dans un environnement de production depuis ces dernières années. C'est correct, mais ce n'est pas génial pour beaucoup d'applications. Vous devriez vraiment examiner vos besoins et comprendre ce qu'ils sont -- vous pourriez découvrir que vous avez beaucoup plus de latitude pour les erreurs que vous ne le pensiez.

Par exemple, ocfs2 a un journal pour chaque machine dans le cluster qui va monter la partition. Donc, imaginons que vous avez quatre machines web, et lorsque vous créez cette partition en utilisant mkfs.ocfs2, vous spécifiez qu'il y aura six machines au total pour vous donner de la marge de croissance. Chacun de ces journaux prend de l'espace, ce qui réduit la quantité de données que vous pouvez stocker sur les disques. Maintenant, imaginons que vous devez passer à sept machines. Dans cette situation, vous devez arrêter l'intégralité du cluster (c'est-à-dire démonter toutes les partitions ocfs2) et utiliser l'utilitaire tunefs.ocfs2 pour créer un journal supplémentaire, à condition qu'il y ait de l'espace disponible. Ensuite, et seulement ensuite, vous pouvez ajouter la septième machine au cluster (ce qui vous oblige à distribuer un fichier texte au reste du cluster à moins que vous n'utilisiez un utilitaire), remettre tout en marche, puis monter la partition sur les sept machines.

Vous voyez ce que je veux dire ? C'est censé être une haute disponibilité, ce qui est censé signifier 'toujours en ligne', mais là vous avez déjà pas mal de temps d'arrêt... et le ciel nous préserve si vous manquez d'espace disque. Vous NE voulez pas voir ce qui se passe lorsque vous manquez d'espace avec ocfs2.

Gardez à l'esprit qu'evms, qui était autrefois le moyen 'préféré' de gérer les clusters ocfs2, a disparu au profit de clvmd et lvm2. (Tant mieux pour evms.) De plus, heartbeat va rapidement devenir un projet zombie au profit de la pile openais/pacemaker. (Remarque : Lors de la configuration initiale du cluster pour ocfs2, vous pouvez spécifier 'pcmk' comme moteur de cluster au lieu de heartbeat. Non, ce n'est pas documenté.)

Pour ce que cela vaut, nous sommes revenus au nfs géré par pacemaker, car les quelques secondes de temps d'arrêt ou quelques paquets tcp perdus lorsque pacemaker migre un partage nfs vers une autre machine sont négligeables par rapport à la quantité de temps d'arrêt que nous avons constatée pour des opérations basiques de stockage partagé comme l'ajout de machines lorsque nous utilisions ocfs2.

2 votes

Je voulais juste commenter que c'est exactement mon expérience avec OCFS2 / Pacemaker par rapport à NFS également. Après avoir essayé OCFS2 en tant que stockage de données en grappe pendant un certain temps, j'ai trouvé que cela manquait énormément. Pendant ce temps, notre système NFS HA fonctionne à merveille.

1 votes

OCFS2 n'est définitivement pas ce que je recherche. Par distribué, je ne veux pas dire quelque chose avec une instance centrale de stockage, mais plutôt quelque chose où je peux facilement ajouter/supprimer des nœuds qui fournissent du stockage tout en restant connecté au reste du "cluster".

3 votes

Puisque je reçois toujours des votes sur cette réponse, je devrais ajouter que nous utilisons désormais GlusterFS en production en remplacement de NFS. Cependant, nous NE stockons PAS les images de disque VM, les fichiers de stockage de base de données (sqlite ou myisam ou autre), ou d'autres fichiers sujets à des changements fréquents sur glusterfs car cela provoque une réplication. Ceux-ci sont stockés localement sur les hôtes VM en LVM et nous utilisons DRBD pour les distribuer sur les sites de basculement, ou utilisons la réplication intégrée.

10voto

MarkR Points 2878

Je pense que vous devrez abandonner l'exigence POSIX, très peu de systèmes la mettent en œuvre - en fait même NFS ne le fait pas vraiment (pensez aux verrous, etc.) et cela n'a pas de redondance.

Tout système utilisant une réplication synchrone sera extrêmement lent; tout système utilisant une réplication asynchrone (ou "consistance éventuelle") va à l'encontre des règles POSIX et ne se comportera pas comme un système de fichiers "conventionnel".

0 votes

Savez-vous s'il existe des systèmes de fichiers qui prennent en charge à la fois la cohérence éventuelle et la cohérence stricte, peut-être qu'ils pourraient être optimisés pour les deux et créer 2 montages?

3voto

Aaron B Points 183

Je pourrais mal comprendre vos exigences, mais avez-vous consulté http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems

1 votes

C'est ici que j'ai commencé, mon espoir était d'obtenir quelques indices de personnes qui ont déjà déployé une infrastructure de stockage distribuée.

3voto

Jeff Hillman Points 3333

Juste pour ajouter mes €0.02 ici : ne peut pas OpenAFS faire ce que vous voulez?

3voto

hartem Points 196

Jetez un œil à chirp et parrot

0 votes

Je vais essayer ceux-là, l'approche de l'enveloppe semble faisable mais n'est pas tout à fait optimale. Eh bien, je verrai comment ça se passe

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