Nous avons un cluster web de 2 serveurs de répartition de charge. Nous avons essayé les méthodes suivantes pour synchroniser le contenu entre les serveurs :
- Des disques locaux sur chaque serveur synchronisés avec RSYNC toutes les 10 minutes
- Un partage central CIFS (SAMBA) vers les deux serveurs
- Un partage central NFS vers les deux serveurs
- Un lecteur SAN partagé exécutant OCFS2 monté sur les deux serveurs
La solution RSYNC était la plus simple, mais cela prenait 10 minutes pour que les modifications apparaissent et RSYNC mettait tellement de charge sur les serveurs que nous devions le limiter avec un script personnalisé pour le mettre en pause toutes les secondes. Nous étions également limités à ne pouvoir écrire que sur le lecteur source.
Le lecteur partagé le plus performant était le lecteur clusterisé OCFS2 jusqu'à ce qu'il devienne fou et fasse crasher le cluster. Nous n'avons pas pu maintenir la stabilité avec OCFS2. Dès que plus d'un serveur accède aux mêmes fichiers, la charge monte en flèche et les serveurs commencent à redémarrer. Il s'agit peut-être d'un échec de formation de notre part.
Le suivant le plus fiable était NFS. Il a été extrêmement stable et tolérant aux pannes. C'est notre configuration actuelle.
SMB (CIFS) a eu quelques problèmes de verrouillage. En particulier, les modifications apportées aux fichiers sur le serveur SMB n'étaient pas détectées par les serveurs web. SMB avait également tendance à se bloquer lors d'un basculement sur le serveur SMB.
Notre conclusion était qu'OCFS2 a le plus de potentiel mais nécessite BEAUCOUP d'analyse avant de l'utiliser en production. Si vous voulez quelque chose de simple et fiable, je recommanderais un cluster de serveurs NFS avec Heartbeat pour la bascule en cas de panne.