Wie stellen Sie bei Verwendung von Thin Provisioning mit ZFS sicher, dass Ihnen nicht der physische Speicherplatz ausgeht?

7

Verzeihen Sie mir, wenn dies eine grundlegende Frage ist, aber ich konnte bei Google nichts Konkretes finden und bin von Beruf kein Systemadministrator.

Wir richten in unserem Büro ein SAN mit NexentaStor mit einer RAID Z3-Konfiguration mit 8 Festplatten (8 x 1,36 TB Laufwerke) ein und sind dabei, alles zu konfigurieren.

In Bezug auf den gesamten Speicherplatz verfügen wir derzeit über etwa 10,8 TB "echten" Speicher im SAN, die alle in einem einzigen zpool / zvol zugeordnet sind. Ich habe darüber nachgedacht, das zvol mit (etwa aus Gründen der Argumentation) 100 TB Speicherplatz dünn zu versorgen, um das zukünftige Wachstum zu berücksichtigen.

Theoretisch scheint es einfach zu sein: Wenn wir fast keinen Speicherplatz mehr haben, fügen wir einfach einige neue Laufwerke hinzu und es wird "einfach funktionieren": Keine Größenänderung des Dateisystems oder Ausfallzeiten, über die man sich Sorgen machen muss.

Woher wissen wir jedoch , wann wir mehr Kapazität hinzufügen müssen, ohne uns alle paar Stunden beim SAN anzumelden und sicherzustellen, dass noch freier Speicherplatz verfügbar ist?

cronWird dies beispielsweise normalerweise durch das Einrichten eines Jobs erledigt oder gibt NexentaStor (oder ZFS selbst) Warnungen aus, wenn Sie sich der Kapazität nähern, oder wird erwartet, dass Sie nur "wissen", wie viel Speicherplatz Sie zu einem bestimmten Zeitpunkt noch haben und müssen es selbst im Auge behalten?

Wenn es hilft, wird das 10,8-TB-zvol als Sicherungsspeicher (über iSCSI) für unsere virtuellen Server verwendet und testet virtuelle Maschinen (die ebenfalls Thin Provisioning sind). Ein Teil des Problems, das ich sehe, besteht darin, dass es einfach auszuführen sein könnte Nicht genügend Speicherplatz, wenn wir ständig VMs erstellen / Snapshots erstellen / wiederherstellen (was wir häufig tun, wenn wir verschiedene Computerkonfigurationen und Softwareumgebungen testen).

Mike Spross
quelle
6
Ein Wort: Überwachung. Gilt für alle Thin-Provisioning-Lösungen.
Pfo
2
Sollte auch für nicht dünn bereitgestellte Lösungen gelten ;-)
Matt Simmons

Antworten:

8

Auf der Nexenta-Seite gibt es ein volume-checkSkript, das standardmäßig stündlich ausgeführt wird. Es wird:
Check volume health and capacity, clear correctable device errors, validate mountpoints.
Es sendet auch einen wöchentlichen zusammenfassenden Bericht per E-Mail.

Es gibt jedoch einige Dinge, die Sie bei der Planung einer Nexenta-Speicherlösung für die von Ihnen aufgeführten Zwecke berücksichtigen sollten.

  • Aus Gründen der Flexibilität sollten Sie mehrere Pools in Betracht ziehen. Ein einzelner Pool funktioniert, aber manchmal ist es notwendig, Daten zu verschieben oder nur die Option eines zweiten Pools im lokalen Speicher zu haben.
  • ZFS zvols können im laufenden Betrieb erweitert / verkleinert werden. Wenn Sie beispielsweise einem Thin-Provisioning-Zvol 20 TB zuweisen, können Sie es sehr einfach auf 30 TB oder 100 TB ändern. Sie müssen 100 TB für die Zukunft nicht übermäßig bereitstellen, wenn Sie sie derzeit nicht haben.
  • Bei dünn bereitgestellten zvols können Sie den Speicherplatz nicht mehr zurückfordern, sobald er verwendet wird. Wenn Sie ein 2-TB-Zvol in einem 10-TB-Pool bereitstellen, füllen Sie das Zvol auf und löschen Sie dann die VMs auf diesem Zvol. In Ihrem Pool werden weiterhin nur 8 TB frei angezeigt. Diese 2 TB werden bleiben.
  • Verwenden Sie ZFS-Komprimierung oder -Deduplizierung oder beides? Eine Situation, in der eine Überversorgung sinnvoll ist, ist die Verwendung von Inline-Komprimierung und hochkomprimierbaren Daten. Gleiches gilt für Daten, die dedupiert werden. In meinem Fall komprimieren die Datensätze, mit denen ich arbeite, 60% -80%, sodass ich größere zvols als die tatsächlich vorhandene Speichermenge präsentiere.
  • Die Verwendung von Spiegeln im Vergleich zu raidz1 / 2/3 erleichtert das Erweitern des zugrunde liegenden Speichers. Sie können einem Zpool gespiegelte Festplattenpaare hinzufügen, raidz1 / 2/3 jedoch nur erweitern, wenn Sie eine weitere vdev (Gruppe von raidz (x) -Datenträgern) hinzufügen. Sie möchten auch die darin enthaltenen Daten neu ausgleichen, um sie auf die Festplatten zu verteilen.
  • Welche Virtualisierungstechnologie werden Sie verwenden? Bei VMWare können Sie Thin-Provisioning durchführen. Ich glaube, Sie werden Warnungen zu Datenspeichern in der Nähe von 80% Auslastung sehen. VMware beschwert sich auch, wenn Sie sich in einer gefährlichen Situation mit einem Wachstum der Snapshot-Größe befinden.
  • Wenn Sie viele VM-Tests durchführen oder VMs mit schwankender Größe haben, würde ich empfehlen, iSCSI und zvols für die relativ statischen VMs und NFS für die Test-VMs zu verwenden (wenn dies eine Option für Ihre bevorzugte Virtualisierungslösung ist). Mit NFS können Sie Ihren Speicherplatz effizienter nutzen, da Sie die volle verfügbare Größe des Zpools sehen und keine Größenobergrenze haben, über die Sie sich Sorgen machen müssen.

Kurz gesagt ... Ich würde nicht überprovisionieren, um zukünftiges Wachstum zu berücksichtigen. Es ist nicht nötig. In Nexenta gibt es stündliche Überprüfungen, um auf die Speicherplatznutzung aufmerksam zu machen. Überlegen Sie auch, ob Sie die Komprimierung verwenden möchten oder nicht (die Deduplizierung erfordert etwas mehr Planung). Testen Sie die Dinge und sehen Sie, wie der VM-Footprint aussehen wird, bevor Sie mit der Produktion beginnen. Es wird schwieriger sein, danach zu wechseln.

ewwhite
quelle
Als Randnotiz: Sobald Speicherplatz verwendet wird, können Sie auf einfache Weise den größten Teil des Speicherplatzes zurückgewinnen, indem Sie die Komprimierung des Datasets aktivieren und den verwendeten Speicherplatz auf der virtuellen Festplatte auf
Null setzen
Wie können Sie den Raum auf Null setzen?
ewwhite
Das Starten der virtuellen Maschine und das Ausführen von a dd if=/dev/zero of=/dev/sdaist recht simpel, funktioniert aber recht gut. Natürlich ist dies schwierig, wenn die VM nicht mehr verfügbar ist, aber selbst dann können Sie eine dd if=/dev/zero of=/vmfs/volumes/yourclutteredvolume/zerofile bs=8M; rm /vmfs/volumes/yourclutteredvolume/zerofilevon der ESX (i) -Konsole aus ausgeben . Die auf Null gesetzten Blöcke werden von zfs korrekt als "leer" erkannt.
The-Wabbit
Nur auf der Festplatte zu sitzen ist offensichtlich nicht gut, wenn DATEN darauf sind. Für zvols, die Dateisysteme enthalten, müssen Sie etwas kreativer werden. Für Windows-Benutzer können Sie "sdelete -c" (Google "sdelete") ausführen. Für Linux, ext2 / 3 (und ich nehme 4 an?) Gibt es ein Dienstprogramm namens "zerofree". Ich weiß, dass Ubuntu es in Standard-Repos hat. Natürlich müssen Sie diese auf einem Client-Computer mit bereitgestellter Festplatte ausführen, nicht auf Nexenta selbst.
Nex7
6

Wenn Sie ein Überwachungssystem wie Nagios haben, können Sie leicht einen Scheck ausstellen, der die Ausgabe von bewertet zpool listund mit Schwellenwerten in Ihrer Komfortzone vergleicht.

Wenn Sie kein Überwachungssystem haben, sollten Sie diese Gelegenheit nutzen, um eines zu installieren. Ein SAN ist ein wichtiges Infrastrukturgerät, das ständig überwacht werden muss, wenn Sie keine Ausfallzeiten oder Datenverluste aufgrund defekter Festplatten haben möchten. Platzmangel, Hardwarefehler oder Verbindungsprobleme.

the-wabbit
quelle
+1 für Nagios, und viele SANs bieten SNMP-Befehle, um solche Dinge zu überprüfen, was die Einrichtung sehr einfach macht. Achten Sie einfach auf Nagios
Smudge
0

Um nur zu erwähnen, wenn Sie sich für RAID-Z entscheiden, können Sie für RAID-Z möglicherweise nicht einfach "weitere Laufwerke hinzufügen".

Alexander
quelle