web-dev-qa-db-fra.com

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

Avec Hadoop et Couchdb partout dans les blogs et les nouvelles connexes Qu'est-ce qu'un stockage de tolérance de défaut (moteur) qui fonctionne réellement.

  • Couchdb n'a réellement aucune fonctionnalité de distribution intégrée, à ma connaissance, la colle de distribuer automatiquement des entrées ou même des bases de données entières est tout simplement manquante.
  • Hadoop semble être très largement utilisé - au moins il obtient une bonne presse, mais a toujours un seul point d'échec: le namenode. De plus, il est uniquement montable via fusible, je comprends que les HDF ne sont pas en réalité l'objectif principal de Hadoop
  • Glusterfs a un concept de rien partagé, mais dernièrement, j'ai lu plusieurs postes qui me conduisent à l'opinion que ce n'est pas aussi stable
  • lustre a également un point d'échec unique tel qu'il utilise un serveur de métadonnées dédié
  • CEPH Semble être le joueur de choix, mais la page d'accueil indique qu'il est toujours dans des étapes alpha.

La question est donc la question du système de fichiers distribuée dispose de l'ensemble de fonctions suivantes (sans ordre particulier):

  • Compatible POSIX
  • ajout facile/enlèvement des nœuds
  • concept de rien partagé
  • exécute sur du matériel bon marché (AMD Geode ou VIA EDEN CLASSORSORSORS)
  • authentification/Autorisation intégrée
  • un système de fichiers réseau (j'aimerais pouvoir la monter simultanément sur différents hôtes)

Bon d'avoir:

  • fichiers accessibles localement: Je peux prendre un nœud Montez la partition avec un système de fichiers local standard (EXT3/XFS/Peu importe ...) et accédez toujours aux fichiers.

Je n'ai pas non Vous cherchez des applications hébergées, plutôt quelque chose qui me permettra de prendre 10 Go de chacune de nos boîtes matérielles et de disposer de ce stockage disponible dans notre réseau, facilement montable sur une multitude d'hôtes.

31
serverhorror

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

Tout système utilisant la réplication synchrone va être lent glacialement; Tout système qui a une réplication asynchrone (ou "consistance éventuelle") va enfreindre les règles de POSIX et ne pas se comporter comme un système de fichiers "conventionnel".

9
MarkR

Je ne peux pas parler au reste, mais vous semblez être confondu entre un "moteur de stockage distribué" et un "système de fichiers distribué". Ce ne sont pas la même chose, ils ne devraient pas se tromper pour la même chose, et ils ne seront jamais la même chose. Un système de fichiers est un moyen de garder une trace de l'endroit où les choses sont situées sur un disque dur. Un moteur de stockage comme Hadoop est un moyen 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'un moyen d'écrire sur un périphérique de bloc, n'est-ce pas?

Tout ça de côté, je pouvez Parlez à l'utilisation de l'OCFS2 en tant que système de fichiers distribué dans un environnement de production. Si vous ne voulez pas que les détails grittiseurs, arrêtez de lire après cette ligne: c'est un peu cool, mais cela peut signifier plus de temps d'arrêt que vous ne le pensez.

Nous avons exécuté OCFS2 dans un environnement de production depuis quelques années. C'est bon, mais ce n'est pas génial pour beaucoup d'applications. Vous devriez vraiment regarder vos besoins et comprendre ce qu'ils sont - vous pourriez constater que vous avez beaucoup plus de latitude pour les fautes que vous ne le pensiez.

À titre d'exemple, OCFS2 a un journal pour chaque machine dans le cluster qui va monter la partition. Donc, disons que vous avez quatre machines Web et lorsque vous faites cette partition à l'aide de MKFS.OCFS2, vous précisez qu'il y aura six machines au total pour vous donner une certaine pièce à croître. Chacune de ces journaux prend de l'espace, ce qui réduit la quantité de données que vous pouvez stocker sur les disques. Maintenant, disons que vous devez évoluer jusqu'à sept machines. Dans cette situation, vous devez enlever le tout Cluster (c'est-à-dire Tout démonter toutes les partitions OCFS2) et utilisez l'utilitaire TUNEFS.OCFS2 pour créer un journal supplémentaire, à condition qu'il existe un espace disponible. Ensuite, alors pouvez-vous ajouter la septième machine au cluster (ce qui vous oblige à distribuer un fichier texte au reste du cluster, sauf si vous utilisez un utilitaire), apportez tout ce que vous remettez en arrière, puis montez la partition sur les sept Machines.

Tu vois ce que je veux dire? Il est censé être de haute disponibilité, qui est censé signifier "toujours en ligne", mais vous avez juste un tas de temps d'arrêt ... et Dieu vous interdit que vous êtes encombré pour l'espace disque. Vous ne voulez pas voir ce qui se passe lorsque vous fouillez OCFS2.

Gardez à l'esprit que EVMS, qui était le moyen "préféré" de gérer les clusters OCFS2, a parcouru le chemin de l'oiseau Dodo en faveur de CLVMD et LVM2. (Et bonne déblocage à EVMS.) En outre, le battement de coeur va vite se transformer en un projet de zombie en faveur de la pile Openais/Pacemaker. (Misté: lorsque vous effectuez la configuration initiale de cluster pour OCFS2, vous pouvez spécifier "PCMK" comme moteur de cluster plutôt que par opposition au battement de cœur. Non, ce n'est pas documenté.)

Pour ce que ça vaut la peine, nous sommes retournés à NFS gérés par le stimulateur cardiaque, car les quelques secondes de temps d'arrêt ou quelques paquets TCP déposés en tant que stimulateur de stimulation migrent une part NFS à une autre machine est triviale par rapport à la quantité de temps d'arrêt que nous voyions pour la base Des opérations de stockage partagées telles que l'ajout de machines lors de l'utilisation de OCFS2.

16
Karl Katzke

Juste pour jeter mes € 0,02 ici: ne peut pas Opinafs Faites ce que vous voulez?

3
wzzrd
3
hartem

Que diriez-vous xtreemfs ? La version 1.4 (novembre 2012) est considérée comme une qualité de production.

Il est compatible POSIX et possède une tolérance automatique exceptionnelle.

3
MattBianco

Lustre permet de multiples métadonnées-magasins dans la configuration active/passive pour la redondance, donc aucun point de défaillance unique.

OCFS2 pourrait également valoir la peine d'être examinée.

Notez que la réduction de l'exigence de multiples réseaux simultanés permet de passer à quelque chose comme ISCSI ou même CIFS ou NFS. L'inconvénient est que vous devez "sculpter" les morceaux de votre uberarray dans les morsures pour chaque serveur qui a besoin d'espace.

2
pjz

À moins que ce soit à des fins académiques/de développement, ce type de chose doit être abordé en commençant par les exigences globales du projet. La plupart des systèmes de fichiers distribués ne sont pas suffisamment matures pour un déploiement sérieux - par exemple, que faites-vous si tout ce qui se passe. Si cela est à des fins académiques/de développement, c'est en fait une bonne chose que vous pourriez apprendre beaucoup et résoudre beaucoup de bugs.

Le commentaire interroge sur si vous avez vraiment besoin de posix sémantique, c'est un bon départ. La sémantique de "Systèmes de fichiers" non POSIX peut être tellement plus flexible, entraînant des systèmes beaucoup plus fiables.

S'il s'agit d'une application héritée, je me demande vraiment pourquoi un système de fichiers distribués moderne pourrait être considéré comme la meilleure solution.

Ne me trompe pas, ce sont des jouets incroyablement amusants. Je ne voudrais tout simplement pas être responsable d'une solution interdépendante complexe qui n'est pas couramment utilisée et serait très difficile à réparer lorsqu'il s'allume.

2
carlito

Je vous recommande d'utiliser Moosefs (Système de fichiers Distributed de réseau, répartiteur de réseau). C'est conforme à POSIX et depuis la version 1.6 Moosefs propose une authentification/autorisation de type NFS, simple, NFS. Voir aussi Configuration matérielle .

1
TechGeek

Avez-vous vraiment de manière absolument positivement la sémantique de Posix? La vie est beaucoup plus facile si vous pouvez utiliser un magasin de données personnalisé. Nous avons un magasin de données écrit interne qui est efficacement un très grand magasin de valeurs clés distribuées. Vous stockez un fichier dedans et vous obtenez un jeton de retour. Si vous voulez le dossier de retour, donnez-lui le jeton que vous avez reçu plus tôt. Il est distribué, n'est rien partagé, les données sont répliquées à trois reprises, des nœuds peuvent être ajoutés et supprimés à la volonté, les serveurs de stockage et les serveurs de contrôle.

1
David Pashley