Wie mache ich ein clientseitiges NFS-Failover unter Linux?

12

Ich habe einen CentOS 6.3-Client, der auf den NFS-Speicher zugreifen muss. Es gibt zwei NFS-Server, die denselben Inhalt bereitstellen, der in einem SAN mit einem Cluster-Dateisystem gespeichert ist. Wie richte ich CentOS so ein, dass bei Bedarf ein Failover auf den Backup-NFS-Server erfolgt? Wenn ich google, lese ich immer wieder, dass Linux dies nicht unterstützt, aber das wäre seltsam, da es viele Informationen darüber gibt, wie man eine Linux-NFS-Serverfarm im Cluster einrichtet ...

Doug
quelle
4
Würde Ihnen die Verwendung von Heartbeat und einer schwebenden virtuellen IP helfen? Es ist nicht auf NFS beschränkt, sondern ein allgemeinerer Ansatz. siehe zum Beispiel Arch Linux-Wiki: Einfaches IP-Failover mit Heartbeat .
Gertvdijk
2
Ich stimme dem Kommentar von @gertvdijk zu. Möglicherweise können Sie ein aktives / passives Failover konfigurieren, indem Sie dieselbe IP-Adresse und denselben Hostnamen auf dem Hauptserver und dem Failover-Server konfigurieren. So funktionieren kommerzielle NFS-Filer wie das EMC VG-2 Storage Gateway.
Dmitri Chubarov
Herzschlag würde funktionieren, aber dies ist eine seltsame besondere Situation. Der NFS-Server ist ein OS X 10.8 Xsan-Setup und hat Heartbeat in 10.8 entfernt (10.7 hatte es).
Doug

Antworten:

7

Das klingt nach einem Job für den automount (8) -Daemon. Weitere Informationen finden Sie auf der Manpage zu autofs (5) (in der Datei "autofs rpm") unter "Replicated Server". Ich glaube, wenn Sie eine Zeile wie hinzufügen

fileserv host1,host2:/server/export/point

Wenn Sie auf Ihrem Client /etc/auto.misc aufrufen und den autofs-Dienst (neu) starten, wird Ihr NFS-Speicher unter / misc / fileserv angezeigt. Sie können -ro als Mount-Optionen hinzufügen, wenn Sie nur Lesezugriff haben möchten (oder natürlich andere Mount-Optionen).

John Sellens
quelle
das war sicher genug! Vielen Dank. Es wäre cool, wenn er wieder auf den Hauptserver zurückgreifen könnte, wenn er wieder online ist, aber das funktioniert gut genug, um die Arbeit zu erledigen.
Doug
0

Der richtige Weg, dies zu tun, ist mit GlusterFS , einem skalierbaren Dateisystem, das im Benutzerbereich auf einem zugrunde liegenden Dateisystem wie NFS oder CIFS ausgeführt wird.

Das klingt alles beeindruckend und kompliziert, ist aber eigentlich ganz einfach einzurichten. Es sollte ehrlich gesagt weniger als 15 Minuten dauern. Sie hätten zwei Server mit jeweils einer definierten "Brick" (Speichereinheit). In diesem Serverpool würde dann ein Volume definiert. Die Replikation der Daten zwischen den Servern erfolgt automatisch, ebenso wie das Failover auf dem Client, wenn einer der Server ausfällt.

Jamieb
quelle
Ein weiterer richtiger Weg ist Ceph RBD .
Schneeball
Sie können MooseFS verwenden . Es ist Open Source und fehlertolerantes verteiltes Dateisystem.
TechGeek