ZFS auf iSCSI

ZFS auf iSCSI

Ich plane, mit ZFS und BSD einen Dateiserver aufzubauen, und wollte ihn erweiterbarer machen, indem ich Laufwerke, die in anderen Maschinen im selben Rack gespeichert sind, über iSCSI anschließe (z. B. eine Maschine führt ZFS aus und die anderen haben iSCSI-Ziele, mit denen die ZFS-Box eine Verbindung herstellen und die zu Zpools hinzugefügt werden können).

Auf der Suche nach anderen Leuten, die dies versucht haben, bin ich auf Ressourcen gestoßen, die sich mit der Bereitstellung von iSCSI-Freigaben auf ZFS befassen, aber nicht auf Ressourcen, die sich mit dem umgekehrten Weg befassen. Ich habe vor allem folgende Fragen:

  • Ist iSCSI über Gigabit-Ethernet für diesen Zweck schnell genug oder müsste ich auf 10 GbE umsteigen, um eine angemessene Leistung zu erzielen?
  • Was würde passieren, wenn einer der Computer, auf denen iSCSI-Ziele ausgeführt werden, die Verbindung zum Netzwerk trennt?
  • Gibt es eine bessere Möglichkeit, dies zu tun, für die ich aber einfach nicht schlau genug bin?

Kapazitätsmäßig wären das zunächst etwa 10 TB Daten (ohne Berücksichtigung der Redundanz), und ein vernünftiges Ziel für die absehbare Zukunft wäre eine Skalierung auf 20 TB, also mit Redundanz wahrscheinlich etwa 40-50 TB Gesamtspeicher. Wenn möglich, möchten wir auch alle Daten mit GELI verschlüsselt halten.

Vielen Dank für jede Hilfe.

Antwort1

Was ist Ihr Ziel in Bezug auf die Kapazität? Dies ist definitiv möglich, da ZFS Ihre Ziele erkennen und in Pools zusammenfassen kann. Sie verzichten jedoch auf eine Menge Leistung und Zuverlässigkeit.

Meine Empfehlung für die Skalierung (entsprechend dem, was ich als Ihren Kapazitätsbedarf ansehe) ist, in ein externes SAS-Multipath-Kabel-Laufwerksgehäuse und ZFS-freundliche Controller zu investieren. Wenn Sie in dieser Situation mehr als beispielsweise die 24 TB nutzbaren RAID 1+0-Speicherplatz benötigen, die voneinsexternes Gehäuse mit 2-TB-Festplatten, dann sind Sie in dem Bereich, in dem Sie von der Beratung durch einen Experten profitieren würden. Auf dieser Ebene wird iSCSI unter Verwendung von Festplatten, die in anderen Systemen vorhanden sind, die Dinge nicht schneller machen.

Das iSCSI-Design wird aus Gründen der Latenz, Zuverlässigkeit und Supportfähigkeit scheitern.

Antwort2

Was Ihre Frage zu iSCSI über Ethernet betrifft: iSCSI ist so ziemlich das schnellste Protokoll, das Sie finden werden. Es handelt sich im Grunde um direkten Festplattenblockzugriff über ein Kabel. Es wird eine ordentliche Gigabit-Netzwerkkarte überlasten.

Was den Verlust von Zielen im Netzwerk betrifft, unterstützt (fast) jede iSCSI-Zielimplementierung, die ich gesehen habe, irgendeine Art von Multipath. Ich glaube, open-ietd unterstützt Multipathing noch nicht. Im schlimmsten Fall verwenden Sie ein Journaling-Dateisystem. Sie müssen das Journal möglicherweise erneut abspielen, wenn das Ziel wieder online ist. Ich habe noch nie ein Dateisystem über iSCSI beschädigt, indem ich einen Speicherserver verloren habe.

Antwort3

Hinweis: Ich habe das nicht wirklich getan, also nehmen Sie das mit Vorsicht. Ich habe beim Lesen über ZFS Erwähnungen davon gesehen, kann diese Referenzen jetzt aber nicht finden ...

Sie möchten jede physische Festplatte als separate LUN exportieren, damit ZFS vollständige Transparenz über das physische Layout hat. Dies ist erforderlich, damit die richtigen Entscheidungen bezüglich der IO-Planung und Replikation getroffen werden können.

Ist iSCSI über Gigabit-Ethernet für diesen Zweck schnell genug oder müsste ich auf 10 GbE umsteigen, um eine angemessene Leistung zu erzielen?

Dies hängt von der Geschwindigkeit der Festplatten, der Anzahl der Festplatten und der gewünschten Leistung ab. Festplatten mit 15.000 U/min können bis zu 105 MiB/s übertragen, also 840 Mbit/s. Der Zugriff auf mehr als eine solche Festplatte über eine einzige Gigabit-Verbindung führt zur Überlastung der Verbindung und Ihr Netzwerk wird zum Engpass. Ermitteln Sie die maximale Geschwindigkeit der Festplatten, die Sie verwenden möchten, multiplizieren Sie diese mit der Anzahl der Festplatten und Sie erhalten die Netzwerkbandbreite, die Sie dafür benötigen.

Dies setzt natürlich voraus, dass Sie die maximal mögliche Leistung des ZFS-Servers nutzen möchten. Wenn Sie nur eine Handvoll Clients mit über 100 Mbit/s verbunden haben, ist dies nicht erforderlich. Berechnen Sie daher den maximalen Bedarf, den Sie erwarten. Bedenken Sie, dass die Bandbreite zu den Festplatten etwas höher ist als die Clientbandbreite, wenn Sie RAIDZ1/2/3 verwenden. Und wenn der Server über dieselbe Netzwerkkarte auf die Festplatten zugreift wie die Clients auf den Server, muss diese Bandbreite natürlich geteilt werden.

Was würde passieren, wenn einer der Computer, auf denen iSCSI-Ziele ausgeführt werden, die Verbindung zum Netzwerk trennt?

ZFS würde die Festplatte als nicht mehr verfügbar ansehen. Wenn Sie RAID1/2/3 verwenden, sollte dies den Dienst für Clients nicht unterbrechen. Wenn Sie ein Hotspare konfiguriert haben, beginnt ZFS mit der Neusynchronisierung der Daten. Wenn das iSCSI-Ziel wiederhergestellt ist, sollte ZFS es wieder verwenden, vorausgesetzt, dass der Initiator automatisch die Verbindung wiederherstellt. (Das sollten Sie jedoch testen.)

verwandte Informationen