Plattenplatzbedarf in ASM und ACFS
von Sebastian Solbach |
![]() |
Der präferierte Storage für eine Oracle Datenbank ist das Automatic Storage Management (ASM) oder aber seit
Oracle 12c auch das ASM Cluster Filesystem (ACFS) innerhalb von ASM. Optimale Performance, Clusterfähigkeit,
Storage Konsolidierung, automatisches Striping und Mirroring sind nur einige der Eigenschaften, weshalb ASM bzw. ACFS häufig verwendet wird.
Beim Umgang mit ASM ist es - wie bei jedem anderen Dateisystem auch - wichtig zu wissen, wie viel
Speicherplatz noch zur Verfügung steht. Bei einem ASM Einsatz gibt es hier schon das erste Verständnisproblem,
da ASM zwischen freiem Speicherplatz, verwendbarem Speicherplatz und verfügbarem Speicherplatz unterscheidet.
Wird ACFS mit der Möglichkeit seiner Copy on Write Snapshot Technology verwendet, erhält die Ermittlung des
zur Verfügung stehenden Platzes nochmals einen weiteren Komplexitätsgrad.
So ist es nicht verwunderlich, dass der freie Speicherplatz in ASM häfig
mit dem verfügbaren Platz in ACFS verwechselt wird.
Grundlegende ASM Funktionalitäten
Bei ASM bis zur Version 12.1 gibt es das Konstrukt von Diskgruppen. Eine Diskgruppe fasst dabei mehrere Platten oder LUNs zu einer Einheit zusammen. Mit 12.1 müssen alle Platten einer Diskgruppe dieselbe Größe besitzen und sollten dieselben Performanceeigenschaften haben. Bei der Erstellung der Diskgruppe wird auch die Spiegelung innerhalb der Diskgruppe mit angegeben. Diese reicht von EXTERNAL Redundancy (keine Spiegelung) über NORMAL Redundancy (einfache Spiegelung) bis zur HIGH Redundancy (jeder Extent wird 3x geschrieben).ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED NORMAL N 512 4096 1048576 8192 7889 1024 3432 0 N ASMNORM/ MOUNTED NORMAL N 512 4096 1048576 8192 7982 1024 3479 0 N ASMNORM2FG/Während die Diskgruppe mit nur 2 FGs (ASMNORM2FG) bei einer leeren Diskgruppe und intakten Platten noch einen kleinen Vorteil in Bezug auf Free und Usable_file_MB hat (was an der Verteilung von Metadaten liegt), so ist dies nach Ausfall von 2 Platten nicht mehr der Fall: Ein Tablespace der Größe 2 GB lässt sich dann im 2. Fall nicht mehr anlegen und folgende Fehlermeldung wird ausgegeben
ORA-15032: not all alterations performed ORA-15041: diskgroup "ASMNORM2FG" space exhausted (DBD ERROR: OCIStmtExecute)Leider ist dies anhand der Größeninformationen der Diskgruppe nicht direkt erkennbar, da die unterschiedliche Anzahl von Platten in Failure Groups nicht berücksichtigt wird:
ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED NORMAL N 512 4096 1048576 6144 5841 1024 2408 0 N ASMNORM/ MOUNTED NORMAL N 512 4096 1048576 6144 5924 1024 2450 0 N ASMNORM2FG/Ein Grund mehr nicht nur gleich große sondern auch die gleiche Anzahl Platten pro Failure Group zu verwenden.
Speicherplatz verstehen bei ASM Diskgruppen
Bei der Berechnung des freien Speicherplatzes innerhalb ASM sind folgende Werte ausschlaggebend:
ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 8192 8075 0 8075 0 N ASMEXT/ MOUNTED NORMAL N 512 4096 1048576 8192 7966 1024 3471 0 N ASMNORM2FG/ MOUNTED NORMAL N 512 4096 1048576 8192 7889 3072 2408 0 N ASMNORM3FG/ MOUNTED HIGH N 512 4096 1048576 8192 7889 2048 1947 0 N ASMHIGH3FG/ MOUNTED HIGH N 512 4096 1048576 8192 7889 3072 1605 0 N ASMHIGH4FG/ MOUNTED HIGH N 512 4096 1048576 8192 7889 4096 1264 0 N ASMHIGH5FG/Wie oben schon erwähnt und nun deutlich sichtbar, hängt der verfügbare Plattenplatz (Usable_file_MB) stark von der Berechnung des sogenannten Worst Case ab. Was bedeutet aber nun dieser Worst Case? Das ist letztendlich das Ereignis, nachdem ASM seine Redundanz theoretisch wieder aufbauen kann.
Name | Spiegelung | Anzahl FG | Platten in FG | Worst Case |
---|---|---|---|---|
ASMEXT | Extern | N/A | N/A | N/A |
ASMNORM2FG | Einfach | 2 | 5 / 5 | Ausfall einer Platte |
ASMNORM3FG | Einfache | 3 | 3 / 3 / 2 | Ausfall der größten FG (3 Platten) |
ASMIGH3FG | Doppelt | 3 | 3 / 3 / 2 | Ausfall von 2 Platten |
ASMNORM4FG | Doppelt | 4 | 2 / 2 / 2 / 2 | Ausfall der größten FG (2 Platten) + 1 Platte |
ASMNORM5FG | Doppelt | 5 | 2 / 2 / 2 / 1 / 1 | Ausfall der 2 größten FGs (2x2 Platten) |
Speicherplatz in ACFS
Für ein ACFS wird ein Volume in ASM benötigt. Dies kann über die GUI des ASMCA, der Kommandozeile von ASM 'asmcmd' oder auch über SQL angelegt werden. Wie ein Tablespace belegt dieses Volume direkt den Plattenplatz in ASM, wie hier am Beispiel zu sehen, in denen jeweils ein 2GB Volume erzeugt wurde:
ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 8192 6024 0 6024 0 N ASMEXT/ MOUNTED NORMAL N 512 4096 1048576 8192 3834 1024 1405 0 N ASMNORM2FG/ MOUNTED NORMAL N 512 4096 1048576 8192 3733 3072 330 0 N ASMNORM3FG/ MOUNTED HIGH N 512 4096 1048576 8192 7883 2048 1945 0 N ASMHIGH3FG/ MOUNTED HIGH N 512 4096 1048576 8192 1685 3072 -462 0 N ASMHIGH4FG/ MOUNTED HIGH N 512 4096 1048576 8192 1685 4096 -803 0 N ASMHIGH5FG/Interessant ist der Umstand, dass sich das Volume nicht in der ASMNORM3FG anlegen ließ, während der gleiche Befehl bei anderen Diskgruppen mit hoher Redundanz dazu führte, dass Usable_File_MB negativ wurde. Obwohl ASM einen negativen Wert für Usable_file_MAB aufweist, sind die angelegten Volumes noch komplett leer. Dies kann man leicht erkennen, sobald ein ACFS Filesystem darauf angelegt wurde.
# df -h /dev/asm/acfsn2fg-329 2.0G 81M 2.0G 4% /acfs/acfsn2fg /dev/asm/acfsh4fg-306 2.0G 81M 2.0G 4% /acfs/acfsh4fgDer freie Platz in ACFS hat somit nichts mit dem verfügbaren Platz in ASM zu tun. Insbesondere für einige ODA Kunden war dies nicht direkt ersichtlich, da die ODA mit der Einführung von ACFS automatisch 50% des ASM Speicherplatzes für das jeweilige ACFS Dateisystem reserviert hat. Hierdurch kam der fälsche Eindruck auf, dass der freie Platz in ASM gleich dem freien Platz in ACFS ist.
# acfsutil info fs /acfs/acfsh4fg /acfs/acfsh4fg ACFS Version: 12.1.0.2.0 on-disk version: 44.0 flags: MountPoint,Available mount time: Thu Oct 27 01:23:18 2016 allocation unit: 4096 volumes: 1 total size: 2147483648 ( 2.00 GB ) total free: 1995649024 ( 1.85 GB ) file entry table allocation: 49152 primary volume: /dev/asm/acfsh4fg-306 label: state: Available major, minor: 250, 156673 size: 2147483648 ( 2.00 GB ) free: 1995649024 ( 1.85 GB ) ADVM diskgroup ASMHIGH4FG ADVM resize increment: 67108864 ADVM redundancy: high ADVM stripe columns: 8 ADVM stripe width: 1048576 number of snapshots: 4 snapshot space usage: 10854400 ( 10.35 MB ) replication status: DISABLED # acfsutil snap info /acfs/acfsh4fg snapshot name: snap snapshot location: /acfs/acfsh4fg/.ACFS/snaps/snap RO snapshot or RW snapshot: RW parent name: /acfs/acfsh4fg snapshot creation time: Thu Oct 27 01:32:09 2016 snapshot name: snapchild1 snapshot location: /acfs/acfsh4fg/.ACFS/snaps/snapchild1 RO snapshot or RW snapshot: RW parent name: snap snapshot creation time: Thu Oct 27 01:32:32 2016 snapshot name: snapchild2 snapshot location: /acfs/acfsh4fg/.ACFS/snaps/snapchild2 RO snapshot or RW snapshot: RW parent name: snap snapshot creation time: Thu Oct 27 01:32:36 2016 snapshot name: snap2 snapshot location: /acfs/acfsh4fg/.ACFS/snaps/snap2 RO snapshot or RW snapshot: RW parent name: /acfs/acfsh4fg snapshot creation time: Thu Oct 27 01:32:43 2016 number of snapshots: 4 snapshot space usage: 10854400 ( 10.35 MB )Hinweis: Mit 12.1 gibt es noch keine Möglichkeit die Größe einzelner ACFS Snapshots anzuzeigen. Hier ist eine Erweiterung mit 12.2 geplant.
Fazit
ACFS Filesysteme auf Basis der ADVM gleichen Tablespaces in ASM. Damit ist die die Anzeige des freien Speicherplatzes unabhängig von den Informationen in ASM. Deshalb bieten ACFS und ASM unterschiedliche Möglichkeiten, um den freien Speicherplatz zu ermitteln.Weitere Informationen
Zurück zum Anfang des Artikels
Zurück zur Community-Seite