ZFS-Nur-Lese-Mount unter Linux + gleichzeitiges Lese-/Schreib-Mount unter Solaris

ZFS-Nur-Lese-Mount unter Linux + gleichzeitiges Lese-/Schreib-Mount unter Solaris

Wir müssen regelmäßig recht große Dateien von Solaris nach Linux kopieren (über das Netzwerk). Derzeit dauert es für eine Datei fast einen halben Tag. Die Dateien in Solaris liegen auf einem ZFS-Dateisystem.

Also dachte ich, was soll‘s – wir könnten dieses ZFS wahrscheinlich auf Linux mounten.

Aber ZFS ist kein Cluster-Dateisystem (oder clusterfähiges Dateisystem).

Hypothese: Ich dachte also, wir könnten, da wir nur von Solaris kopieren, dasselbe ZFS-Dateisystem schreibgeschützt mounten, sodass es in diesem Fall nicht geclustert werden muss? Da Schreibvorgänge nur auf der Solaris-Seite erfolgen (wir können es dort nicht unmounten).

Diese Solaris-Box ist sehr ausgelastet und die Netzwerk-NICs sind fast immer auch sehr ausgelastet. Durch das Verschieben des Dateikopiervorgangs auf FC sollte es also viel schneller gehen.

Diese Linux-Box ist ein virtueller Gast auf einem VMWare-Host. Es ist also möglich, diesem Linux-Gast dasselbe FC-Fabric bereitzustellen.

Gedanken? Ich denke, dass ich am meisten nach Feedback zu diesem Hypothesenteil suche. Ich bin mir nicht sicher, ob es möglich ist, ZFS unter Linux schreibgeschützt und unter Solaris gleichzeitig schreib- und lesbar zu mounten.

Antwort1

Das ist überhaupt nicht möglich. ZFS lässt keine gleichzeitige Einbindung auf zwei Hosts zu, unabhängig von den Lese-/Rechteberechtigungen. Wenn Sie versuchen, es auf Linux einzubinden, während es auf Solaris eingebunden ist, müssen Sie es erzwingen. Wenn Sie das tun, stürzt Solaris mit Kernel Panic ab. Bei mir ist das mit zwei Solaris passiert, als ich den Import auf der zweiten Solaris-Box erzwungen habe, während es auf der ersten Box eingebunden war. Darüber hinaus spielt auch die ZFS-Version eine Rolle, ob Sie den Zpool auf Linux importieren können oder nicht. Wenn Sie es versuchen möchten, schlage ich Folgendes vor:

  1. Klonen Sie den LUN auf dem Speicher
  2. Ordnen Sie die geklonte LUN der Linux-Box zu.
  3. Versuchen Sie, den Zpool unter Linux zu mounten

Antwort2

Was dies verhindert, ist die Tatsache, dass ZFS Metadaten im Speicher zwischenspeichert, weil es davon ausgeht, dass es das einzige ist, das den Festplattenstatus ändert. Jeder Host, der schreibgeschützt gemountet ist, sollte in Ordnung sein. Auf einem anderen Host, der schreibgeschützt gemountet ist, werden die Metadaten unter ihm geändert und irgendwann (ziemlich schnell) wird ein Block von der Festplatte an einem Ort gelesen, von dem es dachte, dass er gültige Metadaten hätte, der aber vom anderen System überschrieben wurde.

Sie könnten die von BitsOfNix beschriebene Lun-Klonmethode ausprobieren oder ein regelmäßiges Snapshot-/Sende-/Empfangsskript einrichten, um auf dem neuesten Stand zu bleiben. Oder Sie könnten versuchen, den Datensatz vom Solaris-Host freizugeben und ihn über NFS auf dem Linux-Host zu mounten.

verwandte Informationen