Solution 1 :
Je ne peux pas parler du reste, mais vous semblez être confus entre un "moteur de stockage distribué" et un "système de fichiers distribué". Ils ne sont pas la même chose, ils ne doivent pas être confondus avec 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'emplacement des éléments sur un disque dur. Un moteur de stockage comme hadoop est un moyen de garder une trace d'un bloc 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 bloc, n'est-ce pas ?
Tout cela mis à part, je peux parler de l'utilisation d'ocfs2 en tant que système de fichiers distribué dans un environnement de production. Si vous ne voulez pas les détails granuleux, 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 quelques années. C'est OK, mais ce n'est pas génial pour beaucoup d'applications. Vous devriez vraiment examiner vos besoins et déterminer ce qu'ils sont - vous pourriez constater que vous avez beaucoup plus de latitude pour les défauts que vous ne le pensiez.
Par exemple, ocfs2 a un journal pour chaque machine du cluster qui va monter la partition. Supposons donc que vous disposiez de quatre machines Web et que, lorsque vous créez cette partition à l'aide de mkfs.ocfs2, vous spécifiez qu'il y aura six machines au total pour vous donner un peu d'espace pour vous développer. Chacun de ces journaux occupe de l'espace, ce qui réduit la quantité de données que vous pouvez stocker sur les disques. Maintenant, disons que vous devez passer à sept machines. Dans cette situation, vous devez supprimer l'intégralité 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 alors, vous pouvez 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), tout sauvegarder, puis monter la partition sur les sept Machines.
Tu vois ce que je veux dire? C'est censé être une haute disponibilité, ce qui est censé signifier "toujours en ligne", mais là, vous avez un tas de temps d'arrêt... et Dieu vous en préserve, vous êtes encombré pour l'espace disque. Vous NE VOULEZ PAS voir ce qui se passe lorsque vous encombrez ocfs2.
Gardez à l'esprit qu'evms, qui était autrefois le moyen "préféré" de gérer les clusters ocfs2, a suivi le chemin du dodo en faveur de clvmd et lvm2. (Et bon débarras à evms.) De plus, heartbeat va rapidement se transformer en projet zombie au profit de la pile openais/pacemaker. (À part :lors de la configuration initiale du cluster pour ocfs2, vous pouvez spécifier "pcmk" comme moteur de cluster par opposition à heartbeat. Non, ce n'est pas documenté.)
Pour ce que ça vaut, nous sommes revenus à nfs géré par pacemaker, car les quelques secondes d'indisponibilité ou quelques paquets tcp abandonnés lorsque le pacemaker migre un partage nfs vers une autre machine sont insignifiants par rapport à la quantité d'indisponibilité que nous voyions pour basic les opérations de stockage partagé comme l'ajout de machines lors de l'utilisation d'ocfs2.
Solution 2 :
Je pense que vous devrez abandonner l'exigence POSIX, très peu de systèmes l'implémentent - en fait, même NFS ne le fait pas vraiment (pensez aux verrous, etc.) et cela n'a pas de redondance.
Tout système qui utilise la réplication synchrone sera extrêmement lent ; tout système qui a une réplication asynchrone (ou "cohérence éventuelle") va violer les règles POSIX et ne pas se comporter comme un système de fichiers "conventionnel".
Solution 3 :
Je comprends peut-être mal vos exigences, mais avez-vous regardé http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems
Solution 4 :
Juste pour jeter mes 0,02 € ici :OpenAFS ne peut-il pas faire ce que vous voulez ?
Solution 5 :
Jetez un œil à chirp http://www.cse.nd.edu/~ccl/software/chirp/ et perroquet http://www.cse.nd.edu/~ccl/software/parrot/