Wie kann ich den Initiator von iscsi dazu bringen, Änderungen zu propagieren?

533
Bulat M.

Ich benutze CentOS 7.

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

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

Es sieht so aus, als würde der Initiator alle Änderungen auf dem Host zwischenspeichern und erst am Ende der Sitzung bei der Abmeldung an target übergeben.

Der zweite Benutzer sieht neue Änderungen nur, wenn der erste Benutzer sich abmeldet und der zweite Benutzer die LUN wieder aufhebt. Ich habe Write-thru im Backstore aktiviert und LUN als Rw zugeordnet.

Ich habe die Konfiguration vorgenommen und verschiedene Distributionen ausprobiert, trotzdem ist das Problem dasselbe. Ich könnte die Konfiguration nach Bedarf anhängen, ich denke, es ist ziemlich allgemein und einfach, daher gebe ich es nicht aus erster Hand.


Wie lassen Sie zu, dass sich Schreibänderungen an andere Benutzer ausbreiten, die an dieselbe LUN angeschlossen sind? Vielen Dank.

Es scheint, dass es ein erwartetes Verhalten sein sollte, aber ein definitiver Punkt wäre wünschenswert.

1
Wenn man bedenkt, dass das Caching aller Dateisysteme auf der Annahme basiert, dass sie der einzige Benutzer der zugrunde liegenden Festplatte sind, denke ich, dass dies möglicherweise nicht funktioniert. grawity vor 7 Jahren 0
@grawity, aber was ist zum Beispiel mit NFS? Auf den einmaligen Export können mehrere Benutzer gleichzeitig zugreifen, wobei die Änderungen eines Benutzers sofort an andere Benutzer weitergegeben werden. In anderen Fällen treten beim Sperren von NFSv3 keine Probleme auf. Es sollte entweder eine definitive Beschreibung des iSCS-Verhaltens geben oder ich habe etwas falsch konfiguriert. Bulat M. vor 7 Jahren 0
NFS ist in der Regel dateibezogen (NFSv3 ist immer), dh es ist ein Dateisystem * für sich * und hat daher eine eindeutige Zwischenspeicherungssemantik für Dateien. Beispielsweise werden Änderungen immer beim Schließen der Datei festgeschrieben. iSCSI ist mittlerweile blockorientiert - das eigentliche Dateisystem wird vollständig auf dem Client auf dem von iSCSI bereitgestellten Gerät ausgeführt, und in der Regel ist es gar nicht so, dass das Sicherungsgerät vernetzt ist (geschweige denn, dass es freigegeben ist). Es ist also nicht möglich, Benachrichtigungen über Änderungen zu verbreiten. grawity vor 7 Jahren 0
(Dies kann mit Handys verglichen werden, die den blockorientierten Massenspeicher für die USB-Dateiübertragung mit denen verwendet haben, die dateiorientiertes MTP verwenden.) grawity vor 7 Jahren 0
Also wird ein Verhalten erwartet, das ich bekommen habe? Einige Hinweise würden sehr geschätzt. Bulat M. vor 7 Jahren 0

1 Antwort auf die Frage

1
Deltik

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

Warum das nicht funktioniert

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

Wenn Sie das Dateisystem auf einem Festplattenlaufwerk auf beiden Computern mounten, haben beide Computer keine Ahnung, dass der andere auch das Dateisystem verwendet. Dies kann zu schwerwiegenden Datenbeschädigungen führen, da jeder Computer über die Zehen des anderen geht.

Was können Sie stattdessen tun?

Lassen Sie Ihre Initiatoren nicht über iSCSI eine direkte Verbindung zur gleichen LUN herstellen.

Sie benötigen den Server, um die am freigegebenen Dateisystem vorgenommenen Änderungen zu verfolgen. Da die Clients die Änderungen des anderen nicht kennen, muss dazu ein Server eingesetzt werden.

Zwei Implementierungen davon sind NFS und CIFS, bei denen es sich um eigene Dateisysteme handelt.

NFS oder CIFS befindet sich als Schicht zwischen dem lokalen Dateisystem des Clients und des Servers, sodass die Clients nicht miteinander in Konflikt stehen.

Ressourcen

Grundlegende Besichtigungen

Darüber hinaus

Sie können relativ einfach skalierbare verteilte Dateisysteme einrichten:

Was ist mit Unternehmensumgebungen? Hat jeder Client in nicht überlappenden Sitzungen auf die gleiche LUN mit den Sitzungen anderer Clients zugegriffen? Ich verstehe Ihre Antwort, aber die oben beschriebene Situation erscheint mir etwas seltsam. Bulat M. vor 7 Jahren 0
@BulatM .: In Unternehmensumgebungen wird jede iSCSI-LUN normalerweise einem Client zugewiesen. Sie möchten jedoch, dass zwei Clients ein gemeinsames Dateisystem gleichzeitig nutzen. Dies bedeutet, dass iSCSI nicht die Lösung ist, nach der Sie suchen. Sie sollten ein verteiltes Dateisystem wie NFS oder CIFS einhängen. [(Weitere Informationen auf Wikipedia)] (https://en.wikipedia.org/wiki/ISCSI#Logical_unit_number) Deltik vor 7 Jahren 1