Wie mache ich, dass der iscsi-Initiator Änderungen übernimmt?

1

Ich benutze CentOS 7.

Ich habe eine einfache Ziel- / Initiatorkonfiguration und zwei ACLs für zwei Benutzer erstellt.

Wenn ich jedoch beide Benutzer aktiviere und vom ersten Benutzer schreibe, werden Schreibänderungen nicht auf den zweiten Benutzer übertragen.

Es sieht so aus, als würde der Initiator alle Änderungen auf dem Host zwischenspeichern und sie erst am Ende der Sitzung an das Ziel senden, wenn er sich abmeldet.

Der zweite Benutzer sieht neue Änderungen nur, wenn der erste Benutzer sich abmeldet und der zweite Benutzer die Bereitstellung der LUN aufhebt und erneut aufbaut. Ich habe das Durchschreiben im Backstore aktiviert und Acls als rw der LUN zugeordnet.

Ich habe die Konfiguration durchgeführt und verschiedene Distributionen ausprobiert, aber das Problem ist immer noch dasselbe. Ich könnte die Konfiguration nach Bedarf anhängen. Ich denke, sie ist ziemlich allgemein und einfach, so dass ich sie nicht aus erster Hand zur Verfügung stelle.


Wie kann ich zulassen, dass Schreibänderungen an andere Benutzer weitergegeben werden, die an dieselbe LUN angeschlossen sind? Vielen Dank.

Es scheint, dass es Verhalten erwartet werden sollte, aber definitiver Punkt würde geschätzt.

Bulat M.
quelle
Wenn man bedenkt, dass das Caching von fast allen Dateisystemen auf der Annahme beruht, dass sie der einzige Benutzer der zugrunde liegenden Festplatte sind, wird dies wahrscheinlich nicht funktionieren.
Grawity
@grawity, aber was ist zum Beispiel mit NFS? Auf einen einzelnen Export können mehrere Benutzer gleichzeitig zugreifen, wobei die Änderungen eines Benutzers sofort anderen Benutzern angezeigt werden. In anderen Fällen gibt es keine Probleme mit dem Sperren in NFSv3. Es sollte entweder eine definitive Beschreibung des iSCS-Verhaltens geben oder ich habe etwas falsch konfiguriert.
Bulat M.
NFS ist im Allgemeinen dateiorientiert (NFSv3 ist es immer), dh, es ist ein eigenständiges Dateisystem und verfügt daher über eine eindeutige Cachesemantik für Dateien. Beispielsweise werden Änderungen immer beim Schließen der Datei festgeschrieben, und so weiter. iSCSI ist in der Zwischenzeit blockorientiert - das reale Dateisystem läuft vollständig auf dem Client über dem von iSCSI bereitgestellten Gerät und ist sich normalerweise nicht bewusst, dass sein Sicherungsgerät vernetzt ist (viel weniger, als dass es gemeinsam genutzt wird). Es gibt also keine Möglichkeit, Benachrichtigungen über Änderungen zu verbreiten.
Grawity
(Dies ist vergleichbar mit Telefonen, die den blockorientierten Massenspeicher für die USB-Dateiübertragung verwendeten, mit solchen, die
dateiorientiertes
Wird also ein Verhalten erwartet, das ich habe? Einige Referenz wäre sehr dankbar.
Bulat M.

Antworten:

1

iSCSI macht nicht das, was Sie denken. Die meisten Dateisysteme können nur von einem Betriebssystem bereitgestellt werden. Sie möchten jedoch, dass zwei Clients dasselbe Dateisystem in Ihrer iSCSI-LUN bereitstellen.

Warum funktioniert das nicht?

Stellen Sie sich eine Festplatte vor, die Sie irgendwie mit zwei Computern verbunden haben (oder einem Host und seiner virtuellen Maschine, die sich eine virtuelle Festplatte teilen). Dies sind Ihre zwei iSCSI-Initiatoren (2 Computer), die eine Verbindung zu Ihrer einzelnen LUN (1 Festplatte) herstellen.

Wenn Sie das Dateisystem auf der Festplatte an einer beliebigen Stelle auf beiden Computern bereitstellen, hat jeder Computer keine Ahnung, dass der andere das Dateisystem ebenfalls verwendet. Dies kann zu schwerwiegenden Datenbeschädigungen führen, da jeder Computer über die Zehen des anderen tritt.

Was Sie stattdessen tun können

Lassen Sie nicht zu, dass Ihre Initiatoren über iSCSI eine direkte Verbindung zu derselben LUN herstellen.

Sie benötigen den Server, um die am freigegebenen Dateisystem vorgenommenen Änderungen zu protokollieren. Da die Clients nicht über die Änderungen des anderen Bescheid wissen, muss ein Server dafür eingesetzt werden.

Zwei Implementierungen davon sind NFS und CIFS , die ihre eigenen Dateisysteme sind.

NFS oder CIFS bilden eine Ebene zwischen dem lokalen Dateisystem des Clients und des Servers, damit die Clients keine Konflikte miteinander verursachen.

Ressourcen

Grundlegende Walk-Throughs

Darüber hinaus

Sie können skalierbare verteilte Dateisysteme ziemlich einfach einrichten mit:

Deltik
quelle
Was ist mit Unternehmensumgebungen? Greifen alle Clients in nicht überlappenden Sitzungen mit den Sitzungen anderer Clients auf dieselbe LUN zu? Ich verstehe Ihre Antwort, aber die oben beschriebene Situation scheint mir etwas seltsam.
Bulat M.
1
@BulatM .: In Unternehmensumgebungen wird jede iSCSI-LUN normalerweise einem Client zugewiesen. Sie möchten jedoch, dass zwei Clients gleichzeitig ein gemeinsames Dateisystem verwenden. Dies bedeutet, dass iSCSI nicht die Lösung ist, nach der Sie suchen. Stattdessen sollten Sie ein verteiltes Dateisystem wie NFS oder CIFS bereitstellen. (Weitere Details auf Wikipedia)
Deltik