Navigationslinks überspringen | |
Druckansicht beenden | |
Oracle Solaris ZFS-Administrationshandbuch Oracle Solaris 10 1/13 Information Library (Deutsch) |
1. Oracle Solaris ZFS-Dateisystem (Einführung)
2. Erste Schritte mit Oracle Solaris ZFS
3. Verwalten von Oracle Solaris ZFS-Speicher-Pools
4. Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems
5. Verwalten von Oracle Solaris ZFS-Dateisystemen
6. Arbeiten mit Oracle Solaris ZFS-Schnappschüssen und -Klonen
7. Schützen von Oracle Solaris ZFS-Dateien mit Zugriffskontrolllisten und Attributen
8. Delegierte Oracle Solaris ZFS-Administration
9. Fortgeschrittene Oracle Solaris ZFS-Themen
10. Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS
11. Empfohlene Oracle Solaris ZFS-Vorgehensweisen
Empfohlene Vorgehensweise bei Speicherpools
Allgemeine Vorgehensweise bei dem System
Vorgehensweise beim Erstellen von ZFS-Speicherpools
Allgemeine Vorgehensweise bei Speicherpools
Vorgehensweise beim Erstellen von Root-Pools
Vorgehensweise beim Erstellen von Nicht-Root-Pools
Vorgehensweise beim Erstellen von Pools auf lokalen oder netzwerkgestützten Speichermatrizes
Vorgehensweise beim Erstellen eines Pools für eine Oracle-Datenbank
Verwenden von ZFS-Speicherpools in VirtualBox
Vorgehensweise bei Speicherpools im Hinblick auf Leistung
Vorgehensweise bei Verwaltung und Überwachung des ZFS-Speicherpools
Empfohlene Vorgehensweise bei Dateisystemen
Vorgehensweise beim Erstellen von Dateisystemen
Vorgehensweise beim Erstellen eines Dateisystems für eine Oracle-Datenbank
Vorgehensweise beim Überwachen von ZFS-Dateisystemen
Die folgenden Abschnitte enthalten empfohlene Vorgehensweise zum Erstellen und Überwachen von ZFS-Speicherpools. Weitere Informationen über die Behebung von Problemen mit Speicherpools finden Sie in Kapitel 10, Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS.
System mit den neuesten Solaris-Versionen und -Patches auf dem aktuellen Stand halten
Prüfen Sie, ob der Controller Cache-Flush-Befehle akzeptiert, so dass die Daten sicher geschrieben werden. Dies ist wichtig, bevor Sie die Geräte des Pools ändern oder einen gespiegelten Speicherpool teilen. Dies ist im Allgemeinen bei Oracle/Sun-Hardware kein Problem, die Prüfung, ob die Cache-Flushing-Einstellung der Hardware aktiviert ist, wird jedoch in jedem Fall empfohlen.
Passen Sie die Größe des Speichers der aktuellen System-Workload an.
Mit einem bekannten Speicherbedarf einer Anwendung, wie beispielsweise einer Datenbankanwendung, können Sie die ARC-Größe kappen, sodass die Anwendung den erforderlichen Speicher nicht aus dem ZFS-Cache anfordern muss.
Speicheranforderungen für Deduplizierung berücksichtigen
Bestimmen Sie die ZFS-Speicherauslastung mit dem folgenden Befehl:
# mdb -k > ::memstat Page Summary Pages MB %Tot ------------ ---------------- ---------------- ---- Kernel 388117 1516 19% ZFS File Data 81321 317 4% Anon 29928 116 1% Exec and libs 1359 5 0% Page cache 4890 19 0% Free (cachelist) 6030 23 0% Free (freelist) 1581183 6176 76% Total 2092828 8175 Physical 2092827 8175 > $q
Erwägen Sie die Verwendung von ECC-Speicher zum Schutz vor Speicherbeschädigung. Eine unbemerkte Speicherbeschädigung kann Ihre Daten potenziell beschädigen.
Führen Sie regelmäßige Backups durch - Auch wenn ein Pool, der mit ZFS-Redundanz erstellt wird, Ausfallzeiten wegen Hardwarefehlern verringern kann, ist er nicht gegen Hardwarefehler, Stromausfälle oder getrennte Kabelverbindungen gefeit. Sie müssen Ihre Daten in regelmäßigen Abständen sichern. Wichtige Daten müssen gesichert werden. Kopien von Daten können auf unterschiedliche Weise erstellt werden:
Regelmäßige oder tägliche ZFS-Schnappschüsse
Wöchentliche Backups von ZFS-Pooldaten. Mit dem Befehl zpool split können Sie ein genaues Duplikat des gespiegelten ZFS-Speicherpools erstellen.
Monatliche Backups mit einem Backupprodukt auf Unternehmensebene
Hardware-RAID
Sie sollten den JBOD-Modus für Speichermatrizes anstelle von Hardware-RAID verwenden, damit ZFS den Speicher und die Redundanz verwalten kann.
Hardware-RAID und/oder ZFS-Redundanz verwenden
Die Verwendung der ZFS-Redundanz bietet viele Vorteile - Konfigurieren Sie ZFS bei Production-Umgebungen so, dass Dateninkonsistenzen behoben werden. Verwenden Sie ZFS-Redundanz, wie RAID-Z, RAID-Z-2, RAID-Z-3, Spiegelung, ungeachtet der RAID-Ebene, die in dem zugrunde liegenden Speichergerät implementiert ist. Mit dieser Redundanz können Fehler im zugrunde liegenden Speichergerät oder bei dessen Verbindungen zu dem Host erkannt und von ZFS behoben werden.
Weitere Informationen finden Sie in Vorgehensweise beim Erstellen von Pools auf lokalen oder netzwerkgestützten Speichermatrizes.
Absturz-Dumps belegen mehr Plattenkapazität, im Allgemeinen in der Größenordnung von 1/2-3/4 des physischen Speicherbereichs.
Die folgenden Abschnitte enthalten allgemeine und spezifischere Vorgehensweisen im Zusammenhang mit Pools
Verwenden Sie ganze Festplatten, um den Festplattenschreibungscache zu aktivieren und einfachere Wartung zu ermöglichen. Das Erstellen von Pools in Bereichen macht die Verwaltung und Wiederherstellung von Festplatten komplexer.
Verwenden Sie ZFS-Redundanz, damit ZFS Dateninkonsistenzen beheben kann.
Die folgende Meldung wird angezeigt, wenn ein nicht-redundanter Pool erstellt wird:
# zpool create tank c4t1d0 c4t3d0 'tank' successfully created, but with no redundancy; failure of one device will cause loss of the pool
Verwenden Sie gespiegelte Festplattenpaare für gespiegelte Pools
Gruppieren Sie 3-9 Festplatten pro VDEV bei RAID-Z-Pools.
Mischen Sie RAID-Z und gespiegelte Komponenten nicht innerhalb desselben Pools. Diese Pools sind schwieriger zu verwalten und die Leistung kann beeinträchtigt werden.
Verwenden Sie Hot-Spares, um die Ausfallzeit aufgrund von Hardwarefehlern zu reduzieren.
Verwenden Sie Festplatten mit ähnlicher Größe, damit die E/A über die Geräte hinweg ausgeglichen ist.
Kleinere LUNs können zu großen LUNs erweitert werden
Erweitern Sie keine LUNs auf extrem unterschiedliche Größen, wie von 128 MB auf 2 TB, um optimale Metaslab-Größen beizubehalten.
Erwägen Sie das Erstellen eines kleinen Root-Pools und größerer Datenpools, um eine schnellere Systemwiederherstellung zu unterstützen.
Die empfohlene minimale Poolgröße beträgt 8 GB. Auch wenn die minimale Poolgröße 64 MB beträgt, macht jede Größe unter 8 GB die Zuweisung und Anforderung von freier Poolkapazität schwieriger.
Die empfohlene maximale Poolgröße muss Ihre Workload- oder Datengröße bequem bewältigen können. Versuchen Sie nicht, mehr Daten zu speichern, als Sie routinemäßig regelmäßig sichern können. Sonst werden Ihre Daten unvorhergesehenen Ereignissen ausgesetzt.
Erstellen Sie Root-Pools mit Bereichen, indem Sie den Bezeichner s* verwenden. Verwenden Sie die Bezeichnung p* nicht. Im Allgemeinen wird der ZFS-Root-Pool eines Systems bei der Installation des Systems erstellt. Wenn Sie einen zweiten Root-Pool erstellen oder einen Root-Pool erneut erstellen, verwenden Sie eine Syntax wie die Folgende:
# zpool create rpool c0t1d0s0
Oder erstellen Sie einen gespiegelten Root-Pool. Beispiel:
# zpool create rpool mirror c0t1d0s0 c0t2d0s0
Der Root-Pool muss als gespiegelte Konfiguration oder als einzelne Festplattenkonfiguration erstellt werden. Weder eine RAID-Z- noch eine Stripeset-Konfiguration wird unterstützt. Sie können mit dem Befehl zpooladd keine zusätzlichen Festplatten hinzufügen, um mehrere gespiegelte virtuelle Geräte der obersten Hierarchieebene zu erstellen, aber Sie können ein gespiegeltes virtuelles Gerät mit dem Befehl zpool attach erweitern.
Der Root-Pool kann über kein separates Protokolliergerät verfügen.
Pooleigenschaften können während einer AI-Installation festgelegt werden, der gzip-Komprimierungsalgorithmus wird bei Root-Pools jedoch nicht unterstützt.
Benennen Sie den Root-Pool nicht um, nachdem dieser in einer Erstinstallation erstellt wurde. Das Umbenennen des Root-Pools kann dazu führen, dass das System nicht gebootet werden kann.
Erstellen Sie keinen Root-Pool auf einem USB-Stick bei einem Production-System, weil Root-Poolfestplatten für den fortlaufenden Betrieb wichtig sind, insbesondere in einer Unternehmensumgebung. Sie sollten die internen Festplatten eines Systems für den Root-Pool verwenden oder mindestens Festplatten derselben Qualität, die Sie für Nicht-Root-Daten verwenden. Außerdem ist ein USB-Stick möglicherweise nicht groß genug zur Aufnahme einer Dump-Volume-Größe, die mindestens der Hälfte der Größe des physischen Speichers entspricht.
Erstellen Sie Nicht-Root-Pools mit ganzen Festplatten mit dem Bezeichner d*. Verwenden Sie die Bezeichnung p* nicht.
ZFS funktioniert am besten ohne zusätzliche Software zur Datenträgerverwaltung.
Für bessere Leistung verwenden Sie einzelne Festplatten oder mindestens LUNs, die nur aus wenigen Festplatten bestehen. Wenn ZFS mehr Einblick in das LUNs-Setup hat, kann ZFS bessere E/A-Planungsentscheidungen treffen.
Erstellen Sie redundante Poolkonfigurationen über mehrere Controller hinweg, um die Ausfallzeiten aufgrund eines Controller-Fehlers zu reduzieren.
Gespiegelte Speicherpools – Belegen weniger Plattenkapazität, die Leistung ist jedoch im Allgemeinen bei kleinen zufälligen Lesezugriffen besser.
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0
RAID-Z-Speicherpools – können mit 3 Paritätsstrategien erstellt werden, wobei Parität gleich 1 (raidz), 2 (raidz2) oder 3 (raidz3) ist. Ein RAID-Z-Konfiguration maximiert die Plattenkapazität und erbringt im Allgemeinen eine gute Leistung, wenn Daten in großen Blöcken (128 K oder mehr) geschrieben werden.
Sie sollten eine RAID-Z-(raidz-)Konfiguration mit einfacher Parität mit 2 VDEVs aus jeweils 3 Festplatten (2+1) in Erwägung ziehen.
# zpool create rzpool raidz1 c1t0d0 c2t0d0 c3t0d0 raidz1 c1t1d0 c2t1d0 c3t1d0
Eine RAIDZ-2-Konfiguration bietet bessere Datenverfügbarkeit und die Leistung entspricht in etwa RAID-Z. RAIDZ-2 hat eine wesentlich bessere Mean Time to Data Loss (MTTDL) als RAID-Z oder 2-Way-Spiegelung. Erstellen Sie eine RAID-Z-(raidz2-)Konfiguration mit doppelter Parität auf 6 Festplatten (4+2).
# zpool create rzpool raidz2 c0t1d0 c1t1d0 c4t1d0 c5t1d0 c6t1d0 c7t1d0 raidz2 c0t2d0 c1t2d0 c4t2d0 c5t2d0 c6t2d0 c7t2d
Eine RAID-3-Konfiguration maximiert die Plattenkapazität und bietet optimale Verfügbarkeit, weil sie 3 Festplattenfehlern auffangen kann. Erstellen Sie eine RAID-Z-(raidz3-)Konfiguration mit dreifacher Parität auf 9 Festplatten (6+3).
# zpool create rzpool raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 c8t0d0
Beachten Sie die folgende Vorgehensweise beim Erstellen eines ZFS-Speicherpools in einer Speichermatrix, die lokal oder entfernt verbunden ist.
Wenn Sie einen Pool auf SAN-Geräten erstellen und die Netzwerkverbindung langsam ist, befinden sich die Geräte des Pools während einer bestimmten Zeit im Status UNAVAIL. Sie müssen testen, ob die Netzwerkverbindung Ihre Daten fortlaufend bereitstellen kann. Beachten Sie außerdem bei der Verwendung von SAN-Geräten für Ihren Root-Pool, dass die Geräte möglicherweise nicht verfügbar sind, wenn das System gebootet wird, und dass sich die Geräte des Root-Pools auch im Status UNAVAIL befinden können.
Stellen Sie mit dem Hersteller der Matrix sicher, dass die Festplattenmatrix den Cache nicht leert, nachdem eine "Flush Write Cache"-Anforderung von ZFS ausgegeben wird.
Verwenden Sie ganze Festplatten und keine Festplattenbereiche als Speicherpoolgeräte, damit Oracle Solaris ZFS die lokalen kleinen Festplattencaches aktiviert, die zu gegebener Zeit geleert werden.
Für optimale Leistung erstellen Sie eine LUN für jede physische Festplatte in der Matrix. Die Verwendung von nur einer großen LUN kann dazu führen, dass ZFS zu wenig E/A-Vorgänge für eine optimale Speicherung in die Warteschlange stellt. Umgekehrt kann die Verwendung von vielen kleinen LUNs dazu führen, dass der Speicher mit einer großen Anzahl von ausstehenden Lese-E/A-Vorgängen überschwemmt wird.
Eine Speichermatrix, die dynamische (oder schlanke) Provisioning-Software zur Implementierung der virtuellen Speicherplatzzuweisung verwendet, wird für Oracle Solaris ZFS nicht empfohlen. Wenn Oracle Solaris ZFS die geänderten Daten in freien Speicherplatz schreibt, wird in die ganze LUN geschrieben. Der Oracle Solaris ZFS-Schreibprozess weist den virtuellen Speicherplatz aus Sicht der Speichermatrix zu, wodurch der Vorteil des dynamischen Provisionings zunichte gemacht wird.
Eine dynamische Provisioning-Software ist also bei Verwendung von ZFS nicht unbedingt erforderlich.
Sie können eine LUN in einem vorhandenen ZFS-Speicher erweitern, sodass der neue Speicherplatz verwendet wird.
Dasselbe Verhalten gilt, wenn eine kleinere LUN durch eine größere LUN ersetzt wird.
Wenn Sie den Speicherplatzbedarf für Ihren Pool testen und den Pool mit kleineren LUNS erstellen, die die Speicherplatzanforderungen erfüllen, können Sie die LUNs jederzeit vergrößern, wenn Sie mehr Platz benötigen.
Wenn die Matrix einzelne Geräte enthalten kann (JBOD-Modus), sollten Sie redundante ZFS-Speicherpools (Spiegelung oder RAID-Z) bei diesem Matrixtyp erstellen, damit ZFS Dateninkonsistenzen protokollieren und beheben kann.
Beim Erstellen einer Oracle-Datenbank sollten Sie folgende Vorgehensweise bei Speicherpools beachten.
Verwenden Sie einen gespiegelten Pool oder Hardware-RAID für Pools
RAID-Z-Pools werden generell für Workloads mit zufälligen Lesezugriffen nicht empfohlen
Erstellen Sie einen kleinen separaten Pool mit einem separaten Loggerät für Datenbank-Redo-Logs.
Erstellen Sie einen kleinen separaten Pool für das Archive-Log.
Weitere Informationen finden Sie im folgenden White Paper.
http://blogs.oracle.com/storage/entry/new_white_paper_configuring_oracle
VirtualBox ist so konfiguriert, dass Cache-Flush-Befehle aus dem zugrunde liegenden Speicher standardmäßig ignoriert werden. Dies bedeutet, dass Daten bei einem Systemabsturz oder Hardwarefehler verloren gehen können.
Aktivieren Sie das Cache-Flushing in VirtualBox durch Ausgabe des folgenden Befehls:
VBoxManage setextradata <VM_NAME> "VBoxInternal/Devices/<type>/0/LUN#<n>/Config/IgnoreFlush" 0
<VM_NAME> ist der Name des virtuellen Rechners
<type> ist der Controller-Typ, entweder piix3ide (wenn Sie den üblichen virtuellen IDE-Controller verwenden) oder ahci, wenn Sie einen SATA-Controller verwenden.
<n> ist die Festplattennummer
Halten Sie die Poolkapazität im Hinblick auf optimale Leistung unter 80 %
Gespiegelte Pools werden vor RAID-Z-Pools bei Workloads mit zufälligen Lese-/Schreibvorgängen empfohlen.
Separate Loggeräte
Werden zur Verbesserung der Leistung bei synchronen Schreibvorgängen empfohlen.
Bei einer hohen synchronen Schreibbelastung wird die Fragmentierung durch das Schreiben vieler Logblöcke in den Hauptpool vermieden.
Separate Cachegeräte werden empfohlen, um die Leseleistung zu verbessern.
Bereinigen/Wiederherstellen - Bei einem sehr großen RAID-Z-Pool mit vielen Geräten kommt es zu längeren Bereinigungs- und Wiederherstellungszeiten
Poolleistung ist langsam – Verwenden Sie den Befehl zpool status, um Hardwareprobleme zu ermitteln, die zu Problemen mit der Poolleistung führen. Wenn in dem Befehl zpool status keine Probleme aufgeführt werden, verwenden Sie den Befehl fmdump zur Anzeige von Hardwarefehlern, oder verwenden Sie den Befehl fmdump -eV, um Hardwarefehler zu prüfen, die noch zu keiner Fehlermeldung geführt haben.
Stellen Sie die sicher, dass die Poolkapazität unter 80 % liegt, um eine optimale Leistung zu erzielen.
Die Poolleistung kann sich verringern, wenn ein Pool sehr voll ist und Dateisysteme häufig aktualisiert werden, wie bei einem stark beanspruchten Mailserver. Volle Pools können zu Leistungseinbußen führen, jedoch zu keinen anderen Problemen. Wenn die primäre Workload aus unveränderlichen Dateien besteht, halten Sie den Pool im Auslastungsbereich von 95-96 %. Selbst bei im Wesentlichen statischem Inhalt kann sich die Lese-, Schreib- und Wiederherstellungsleistung im Bereich von 95-96 % verringern.
Überwachen Sie den Speicherplatz im Pool und Dateisystem, um sicherzustellen, dass diese nicht voll sind.
Sie sollten die Verwendung von ZFS-Quota und Reservierungen in Erwägung ziehen, um sicherzustellen, dass das Dateisystem nicht mehr als 80 % der Poolkapazität belegt.
Überwachen der Poolintegrität
Redundante Pools - Überwachen Sie den Pool mit den Befehlen zpool status und fmdump wöchentlich
Nicht-redundante Pools - Überwachen Sie den Pool mit den Befehlen zpool status und fmdump alle zwei Wochen
Führen Sie den Befehl zpool scrub regelmäßig aus, um Probleme mit der Datenintegrität zu identifizieren.
Bei Laufwerken mit Verbraucherqualität sollten Sie einen wöchentlichen Bereinigungsplan festlegen.
Bei Laufwerken mit DataCenter-Qualität sollten Sie einen monatlichen Bereinigungsplan festlegen.
Außerdem sollten Sie eine Bereinigung durchführen, bevor Sie Geräte ersetzen oder die Redundanz eines Pools vorübergehend verringern, um sicherzustellen, dass alle Geräte aktuell einsatzfähig sind.
Überwachen von Pool- oder Gerätefehlern - Verwenden Sie zpool status wie unten beschrieben. Verwenden Sie außerdem den Befehl fmdump oder fmdump -eV, um festzustellen, ob Geräte-Faults oder -Fehler aufgetreten sind.
Redundante Pools - Überwachen Sie die Poolintegrität mit den Befehlen zpool status und fmdump wöchentlich
Nicht-redundante Pools - Überwachen Sie die Poolintegrität mit den Befehlen zpool status und fmdump alle zwei Wochen
Poolgerät ist UNAVAIL oder OFFLINE – Wenn ein Poolgerät nicht verfügbar ist, prüfen Sie, ob das Gerät in der Befehlsausgabe von format aufgeführt wird. Wenn das Gerät nicht in der format-Ausgabe aufgeführt wird, ist es für ZFS nicht sichtbar.
Wenn ein Poolgerät den Status UNAVAIL oder OFFLINE hat, bedeutet dies im Allgemeinen, dass das Gerät fehlerhaft ist, dass die Kabelverbindung unterbrochen ist oder dass ein anderes Hardwareproblem vorliegt, wie ein fehlerhaftes Kabel oder ein fehlerhafter Controller, das dazu führt, dass nicht auf das Gerät zugegriffen werden kann.
Überwachen des Speicherpoolplatzes – Verwenden Sie die Befehle zpool list und zfs list, um zu ermitteln, welcher Teil der Festplatte von Dateisystemdaten belegt wird. ZFS-Schnappschüsse können Plattenkapazität belegen. Wenn sie nicht von dem Befehl zfs list aufgeführt werden, können sie unbemerkt Datenträgerkapazität belegen. Verwenden Sie den Schnappschussbefehl zfs list -t, um Datenträgerkapazität zu ermitteln, die von Schnappschüssen belegt wird.