You are here

Q&S (Quick and simple) - How to align misaligned VMs on a ESXi4 or ESXi5 Host with NetApp MBRTools

In diesem Artikel möchte ich aufzeigen, wie unter vSphere 4 und vSphere 5, genauer gesagt unter ESXi 4 und ESXi 5 misalignte Disks für den Betrieb an einem NetApp Storage System optimiert werden können.

Was sind misalignte Disks und warum sollte ich diese alignen?
Eine schöne detailierte Erklärung ist im NetApp TR-3747 "Best Practices for File System Alignment in Virtual Environments" (http://media.netapp.com/documents/tr-3747.pdf) zu finden.

Die Kernaussage des Artikels ist folgender:

Standardmäßig startet die erste Primary Partition bei vielen Gast-Betriebssystemen (Windows 2000, Windows XP, Windows 2003, diverse Linux-Distributionen) bei Sektor (logischer Block) 63.
Diese Tatsache sorgt in virtuellen Umgebungen für "misalign"te Filesysteme, denn die Partition beginnt nicht bei einem Sektor, der 1:1 mit dem Beginn eines darunterliegenden Sektors des Storages übereinstimmt.
Sprich: die Blöcke decken sich nicht 1:1 und es kann dazu führen, dass für das Lesen oder Schreiben eines Guest-OS-Blockes von 2 Blöcken auf Storageseite gelesen oder geschrieben werden muss.
Dies wirkt sich negativ auf die IO-Performance der virtuellen Gast-Betriebssysteme aus und kann durch richtiges Alignment optimiert werden.

Wichtig ist hierbei, dass Windows Server 2008, Windows Vista und Windows 7 Gastbetriebssystme standardmäßig ihr Offset bei 1.048.576 haben und somit kein Alignment brauchen, weil dieser Wert durch 4.096 teilbar ist und somit perfekt mit dem Storagelayout harmoniert.
Das gleiche gilt für Red Hat Enterprise Linux 6, da es seine Partitionen per default richtig alignt.

In diesem Artikel geht es um eine Step-by-Step Anleitung, wie ein misalignter VM-Guest angepasst werden kann:
WICHTIG: Mit diesen Schritten werden grundlegende Änderungen an vmdk-Layouts vorgenommen. Prüfen Sie, ob aktuelle Backups für den Fall der Fälle vorliegen!

01. Die MBRTools sind Teil der NetApp Virtual Storage Console 2.1.1. Diese sollte auf dem vCenter installiert sein

02. Die MBRTools können aus dem VI-Client im NetApp Virtual Storage Console Plugin des vCenters heruntergeladen werden

03. Entpacken der gedownloadeten MBRTools. Die entpackten Dateien sind im 2. Screenshot zu sehen.

04. Über den VI-Client via Datastorebrowser die MBRTools auf den ESXi kopieren, welcher die MBR-Tasks ausführen soll

05. per SSH auf den jeweiligen ESX aufwählen (ACHTUNG: Bei ESXi muss der Remote Support aktiviert sein) und den Ordner "Ontap" nach /opt kopieren

06. Die Dateien sollten nun unter /opt/ontap liegen

07. Die Dateien "mbralign" und "mbrscan" mit den Befehlen "chmod 770 mbralign" und "chmod 770 mbrscan" ausführbar machen

08. Mit einem "./mbrscan PFAD_ZUR_VMDK-FLAT_DATEI" kann das derzeitige Alignment geprüft werden - ACHTUNG: Die virtuelle Maschine sollte keine Snapshots haben, kein LinkedClone sein und MUSS ausgeschaltet sein!

09. Beispielhafter Screenshot von einer Windows 2008 Server und einer Windows 7 VM - defaultmäßig richtiges Alignment

10. Screenshot einer misalignten XP-VM

11. Durch die Ausführung des Befehls "./mbralign --preview PFAD_ZUR_VMDK-FLAT_DATEI" kann geprüft werden, welche Auswirkungen der Alignment-Prozess auf die vmdk hat und das Zieldesign wird angezeigt.

12. Alignment mit "./mbralign PFAD_ZUR_VMDK-FLAT_DATEI" anstarten - ACHTUNG: Doppelter Speicherplatz wird benötigt, da vmdk kopiert wird!

13. Nach dem Alignmentvorgang gibt es die neuen passenden alignten vmdk's und als Backup die vorherigen vmdk's

14. Mit "./mbrscan PFAD_ZUR_VMDK-FLAT_DATEI" noch einmal prüfen, ob die neuen vmdk's richtig alignt sind

15. VM wieder anstarten und testen, ob alles funktioniert

Quick and simple...

Benjamin Ulsamer
Consultant & Trainer
teamix GmbH

Kommentare

Hallo Benjamin,

wenn ich auf NFS Volumes zugreife organisiert doch das WAFL den Filezugriff komplett selbständig und legt sich die VMDKs doch so wie er es möchte, oder? Benötige ich dann überhaupt ein Alignment auf NFS Datastores?

Danke und bester Gruß
Timo

Hi Timo,

hier sprechen wir nicht vom Misalignment einer LUN, hierbei sprechen wir vom Misalignment im Betriebssystem der virtuellen Maschine. Hier ist der Startblock "misaligned" -> im Beispiel von Windows XP sitzt der Startblock im virtuellen Gast auf Block 63. Da diese Zahl nicht durch 64 teilbar ist, wird aus dem Guest-OS immer versetzt geschrieben. Somit wird von Guest-OS Seite immer misaligned geschrieben, egal über welchen Verbindungsweg (NFS, ISCSI, FC oder FCoE).

Inwieweit sich der Aufwand für das "right"-alignen lohnt, muss man auf der Netapp gegenprüfen:
NFS mit "nfsstat -d" -> "Files Causing Misaligned I/O's"
ISCSI, FC, FCoE mit "stats show lun:*:*" -> read_align_histo und write_align_histo der Blöcke 0-7 ansehen und interpretieren (Optimum: alle IOps laufen auf Block 0 = erste 512bytes des 8 Block großen 4K WAFL Blocks)

Derzeit sehe ich das "Misalignment" bei vielen Kunden sterben:
a) durch ein sauber aligntes Template, aus dem alle weiteren virtuellen Maschinen deployt werden
b) Ablösung "veralteter" Systeme durch moderne Betriebssysteme (z.B. Windows 2008), die von grundauf richtig aligned sind

Hoffe, die Antwort hilft..?!

Benjamin Ulsamer
Consultant & Trainer
teamix GmbH

Hallo Benjamin,

du sagst, dass moderne Betriebssystem nicht missaligned sind. Ich habe bei einem Kunden in der Testumgebung "nfsstat -d" auf der Netapp eingegeben (ESX 4.1, vCenter 5.1, Ontap 7.3.6) und unter "Files Causing Misaligned IO's" für jede VM einen Eintarg erhalten.

Hier Beispielsweise der vServer:
[Counter=189148], Filename=vmware_test_datastore/vcenterXXX/vcenterXXX-flat.vmdk

Es handelt sich dabei um Windows 2008R2 mit dem Partition Starting Offset (msinfo32 --> Storage --> Disks) 1.048.576 (durch 4096 teilbar)

Ist die VM nun aligned oder nicht?

Viele Grüße
Marc

okay, ich hab die Lösing glaube ich selbst gefunden:

"nfsstat -d" gibt keine Aussage darüber, ob die VM missaligned ist, sondern nur ob und wie viele missalined IOPS gesendet wurden. Natürlich liegt auch nahe, dass VMs mit einer hohen Anzahl von missalined IOPS auch ein missalined Filessystem haben. Das lässt sich aber nur über die mbrtools herausfinden.

Richtig?

VG
Marc