Je suis enclin à suggérer une réplication qui est indépendante des données, comme drbd. Le grand nombre de fichiers va faire en sorte que tout ce qui s'exécute à un niveau supérieur au "stockage en bloc" passe un temps excessif à parcourir l'arborescence - comme vous l'avez constaté en utilisant rsync ou en créant des montres inotify.
La version courte de mon histoire personnelle le confirme: je n'ai pas utilisé Ceph, mais je suis sûr que ce n'est pas dans leur cible de marché principale en raison de sa similitude avec Gluster. J'essaie cependant de mettre en œuvre ce type de solution avec Gluster depuis plusieurs années. Il a été opérationnel la plupart du temps, bien que plusieurs mises à jour de versions majeures, mais je n'ai pas eu de problèmes sans fin. Si votre objectif est plus de redondance que de performances, Gluster n'est peut-être pas une bonne solution. En particulier, si votre modèle d'utilisation a beaucoup d'appels stat (), Gluster ne réussit pas vraiment avec la réplication. Cela est dû au fait que les appels de statistiques aux volumes répliqués vont à tous les nœuds répliqués (en fait des "briques", mais vous n'aurez probablement qu'une seule brique par hôte). Si vous disposez d'une réplique bidirectionnelle, par exemple, chaque stat () d'un client attend une réponse des deux briques pour s'assurer qu'il utilise les données actuelles. Ensuite, vous avez également la surcharge FUSE et le manque de mise en cache si vous utilisez le système de fichiers gluster natif pour la redondance (plutôt que d'utiliser Gluster comme backend avec NFS comme protocole et automounter pour la redondance, qui aspire toujours pour la raison stat ()) . Gluster se débrouille très bien avec des fichiers volumineux où vous pouvez diffuser des données sur plusieurs serveurs; la répartition et la répartition des données fonctionnent bien, car c'est vraiment à cela qu'elles servent. Et la réplication de type RAID10 plus récente est plus performante que les anciens volumes répliqués directement. Mais, d'après ce que je suppose être votre modèle d'utilisation, je le déconseille. Ensuite, vous avez également la surcharge FUSE et le manque de mise en cache si vous utilisez le système de fichiers gluster natif pour la redondance (plutôt que d'utiliser Gluster comme backend avec NFS comme protocole et automounter pour la redondance, qui aspire toujours pour la raison stat ()) . Gluster se débrouille très bien avec des fichiers volumineux où vous pouvez diffuser des données sur plusieurs serveurs; la répartition et la répartition des données fonctionnent bien, car c'est vraiment à cela qu'elles servent. Et la réplication de type RAID10 plus récente est plus performante que les anciens volumes répliqués directement. Mais, d'après ce que je suppose être votre modèle d'utilisation, je le déconseille. Ensuite, vous avez également la surcharge FUSE et le manque de mise en cache si vous utilisez le système de fichiers gluster natif pour la redondance (plutôt que d'utiliser Gluster comme backend avec NFS comme protocole et automounter pour la redondance, qui aspire toujours pour la raison stat ()) . Gluster se débrouille très bien avec des fichiers volumineux où vous pouvez diffuser des données sur plusieurs serveurs; la répartition et la répartition des données fonctionnent bien, car c'est vraiment à cela qu'elles servent. Et la réplication de type RAID10 plus récente est plus performante que les anciens volumes répliqués directement. Mais, d'après ce que je suppose être votre modèle d'utilisation, je le déconseille. qui suce toujours pour la raison stat ()). Gluster se débrouille très bien avec des fichiers volumineux où vous pouvez diffuser des données sur plusieurs serveurs; la répartition et la répartition des données fonctionnent bien, car c'est vraiment à cela qu'elles servent. Et la réplication de type RAID10 plus récente est plus performante que les anciens volumes répliqués directement. Mais, d'après ce que je suppose être votre modèle d'utilisation, je le déconseille. qui suce toujours pour la raison stat ()). Gluster se débrouille très bien avec des fichiers volumineux où vous pouvez diffuser des données sur plusieurs serveurs; la répartition et la répartition des données fonctionnent bien, car c'est vraiment à cela qu'elles servent. Et la réplication de type RAID10 plus récente est plus performante que les anciens volumes répliqués directement. Mais, d'après ce que je suppose être votre modèle d'utilisation, je le déconseille.
Gardez à l'esprit que vous devrez probablement trouver un moyen d'avoir des élections principales entre les machines ou implémenter un verrouillage distribué. Les solutions de périphériques de blocs partagés nécessitent un système de fichiers compatible avec plusieurs maîtres (comme GFS), ou nécessitent qu'un seul nœud monte le système de fichiers en lecture-écriture. Les systèmes de fichiers n'aiment généralement pas lorsque les données sont modifiées au niveau du périphérique de bloc en dessous. Cela signifie que vos clients devront être en mesure de dire quel est le maître et y diriger les demandes d'écriture. Cela peut s'avérer être une grosse nuisance. Si GFS et toute son infrastructure de support sont une option, drbd en mode multi-maître (ils l'appellent "dual primary") pourrait bien fonctionner. https://www.drbd.org/en/doc/users-guide-83/s-dual-primary-mode pour plus d'informations à ce sujet.
Quelle que soit la direction dans laquelle vous vous dirigez, vous êtes susceptible de constater que c'est toujours une assez grosse douleur à faire en temps réel sans simplement donner à une entreprise de SAN un camion d'argent.