Seit vielen Jahren stellt VMware das VDDK für die Arbeit mit seinem Festplattensubsystem bereit, einem umfangreichen Satz von Bibliotheken, Dokumentationen und Codebeispielen, die Ihre Anwendung für die Arbeit mit Festplatten virtueller Maschinen verwenden kann. Natürlich mögen wir es bei Veeam nicht, unnötige Fahrräder neu zu erfinden, deshalb wird VDDK in unseren Produkten sehr aktiv eingesetzt.
Dies hat jedoch immer noch keinen Einfluss auf die Anzahl der Clients, die glauben, dass die Arbeit mit Festplatten noch schneller sein kann, und alle vorgeschlagenen Leistungstests zeigen a priori falsche Ergebnisse. In solchen Momenten kommt uns die ultimative Waffe zu Hilfe - VixDiskLibSample.
VixDiskLibSample ist ein kleines C ++ - Programm, das im VDDK enthalten ist und die Prinzipien der Arbeit mit der vixDiskLib-Bibliothek demonstriert. Das heißt, niemand wird besser und schneller mit Festplatten virtueller Maschinen arbeiten als diese. Und was für uns besonders wichtig ist, kann als Benchmark für das Schreiben und Lesen verwendet werden. Eine Art Ultimatum-Test, dessen Ergebnisse kaum als ungültig bezeichnet werden können.
Sie können es zusammen mit dem VDDK selbst bekommen. Laden Sie es von der VMware-Website herunter und kompilieren Sie es unter Linux einfach nach der Installation
[root@toor diskLib] cd /usr/lib/vmware-vix-disklib/doc/samples/diskLib
[root@toor diskLib] ls
Makefile vixDiskLibSample.cpp
[root@toor disklib] make
[root@toor diskLib] ls
Makefile vix-disklib-sample vixDiskLibSample.cpp
Der Standardinstallationspfad.
/usr/share/doc/vmware-vix-disklib/samples/disklib
Es gibt auch Informationen im Netzwerk, dass Sie bei einigen Distributionen die folgenden Zeilen zu vixDiskLibSample.cpp hinzufügen müssen, um erfolgreich kompiliert zu werden:
#else
#include <stdio.h>
#include <string.h>
Wenn es nicht in diesem Fall kompilieren, dann ist es empfehlenswert , um zu versuchen , die Umgebungsvariable Hinzufügen LD_LIBRARY_PATH = / usr / lib / vmware-VIX-disklib / lib64 und Lauf ldconf als root nach dem Hinzufügen der Adresse / usr / lib / vmware-VIX-disklib / lib64 zu /etc/ld.so.conf.d/vmware-vix-disklib.conf
Aber unter Windows in Visual Studio wird alles problemlos kompiliert. Und ein Hinweis an die Herrin: VDDK in Veeam wird nur verwendet, wenn über einen Windows-Proxy gearbeitet wird. Unter Linux wird aus mehreren Gründen eine eigene Lösung mit der vSphere-API verwendet.
Was ist mit Veeam-Benutzern?
Wir antworten: Durch Verbinden der VDDK-Bibliotheken verschiedener Versionen, die mit Veeam Backup & Replication geliefert werden, können Sie die tatsächliche Arbeitsgeschwindigkeit mit dem Host in einer Vielzahl von Modi überprüfen.
Bibliotheken werden unter C: \ Programme (x86) \ Veeam \ Backup Transport \ x64 \ vddk_X_X gespeichert . Ihre Verwendung ist für korrekte Ergebnisse obligatorisch.
Schauen wir uns nun beim Start die wichtigsten Befehle und Optionen für uns an. Denn wie bei allen Testwerkzeugen ist die vollständige Liste hier sehr, sehr klein.
-readbench Führt den Lese-Benchmark mit der angegebenen Blockgröße aus. Die Größe wird in Sektoren angegeben.
-writebench Alles ist gleich, nur schreiben. Wichtig:Dies ist eine zerstörerische Operation! Die Aufnahme ist fair! Versuchen Sie nicht, eine Produktionsmaschine zu starten! Es wird mit binärem Müll überschrieben!
-multithread N Seit Version 6.5 kann parallel mit mehreren Festplatten gearbeitet werden.
-Host Host zu verbinden. Dies kann in Form eines DNS-Namens oder einer IP-Adresse erfolgen.
-user Benutzer gemäß Domäne \ Benutzerschema
-password Ich denke, es ist klar
-vm vmPath = / path / to / vm Dies ist, wenn wir wissen, wo sich unser Computer befindet, aber wir kennen nicht die anderen Koordinaten
-vm "moref = vm-XXX" Pfad zu Autos im Inventar. Er ist mehr. Der einfachste Weg, es zu finden, ist über das MOB unter https: //vcenter.local/mob/. Wichtig:Wenn Sie nur einen einsamen Host ohne vCenter haben, verwenden Sie moref = XXX ohne vm
-ssmoref. Verknüpfen Sie mit einem Snapshot Ihres Computers, da das Lesen von Daten von Datenträgern bekanntlich eine Sache ist und eine andere Sache, wenn Ihnen ein Snapshot im Weg steht. Oder ein paar Schnappschüsse. Erforderlicher Parameter (sowie der Snapshot selbst) für die enthaltenen Computer.
-mode Ein Parameter, der den Arbeitsmodus mit der Festplatte angibt. Bezieht sich auf VixDiskLib_ConnectEx. Die verfügbaren Werte sind nbd, nbdssl, san und hotadd. Alle von ihnen sind unseren Benutzern bekannt.
-libdir Pfad zum Bibliotheksordner. Standardmäßig sollte es "C: \ Programme (x86) \ Veeam \ Backup Transport \ x86 \ vddk_X_X" sein. Wenn Sie mit einem eigenständigen Host arbeiten, können Sie dieses Feld leer lassen.
-DaumenEingeführt in Version 6.0, einem obligatorischen Parameter zum Angeben eines Fingerabdrucks eines SSL-Zertifikats. Ohne das geht es nicht. Am einfachsten ist es, den Browser auszuspionieren;)
-initex-Konfigurationsdatei Pfad zur Konfigurationsdatei für VixDiskLib_InitEx
Detaillierte Protokolle werden standardmäßig in den
Ordner C: \ Benutzer \ aktueller Benutzer \ AppData \ Local \ Temp \ vmware-aktueller Benutzer \ vixDiskLib - #### geschrieben. log
Für ein stressfreies Leben empfehle ich Ihnen dringend, diesen Ordner nach jedem Testlauf im San- und Hotadd-Modus zu leeren. Schließen Sie das Fenster mit der Konsole (dh dem Windows-Befehl, nicht dem Linux-Befehl). Dies liegt an der Besonderheit der VDDKEndAccess-Funktion, die nicht aufgerufen wird, wenn der Test durch Strg + C gestoppt wird und die Testdisketten an den ausgewählten Computer angeschlossen bleiben.
Nachdem wir mit der allgemeinen Theorie fertig sind, gehen Sie zum Abschnitt
Trainieren
Die allgemeine Startsyntax sieht so aus
vixdisklibsample.exe command [options] diskPath
Im einfachsten Fall können wir eine Verbindung zum Host herstellen, indem wir dessen Namen, Login, Passwort und Pfad zum gewünschten Computer angeben.
C:\VDDK\bin>vixDiskLibSample.exe -info -host demo -user root -password secret [datastore1] test/test.vmdk
-info zeigt den DiskPath des ausgewählten Laufwerks an.
Wenn der Host mit dem vCenter verbunden ist, müssen die Optionen -libdir und -vm hinzugefügt werden. Bei VDDK> 6.0 -thumb nicht vergessen
C:\VDDK\bin>vixDiskLibSample.exe -info -host demo -user Administrator -password secret -thumb "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00" -libdir "C:\Program Files (x86)\Veeam\Backup Transport\x86\vddk_X_X" -vm vmPath=Datastorage/vm/DemoVM "[datastore1] DemoVM/Demo.vmdk"
Und dann beginnt der Spaß: Wir geben -mode und -ssmoref an. Ich empfehle dringend, alle Tests mit einem Schnappschuss durchzuführen, um die ursprüngliche Festplatte nicht versehentlich zu beschädigen. Und denken Sie daran: Der Schreibtest ist eine destruktive Operation! Es schreibt tatsächlich Daten, simuliert nicht den Prozess!
Andererseits kann ich Ihnen auch nichts verbieten.
Also führen wir den Schreibtest im Hotadd-Modus durch
C:\VDDK\bin>vixDiskLibSample.exe -writebench 1024 -host demo.local -user "demo\adm" -password "%TOPSECRET%" -vm "moref=vm-80380" -ssmoref "snapshot-82782" -thumb "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00"
-mode hotadd -libdir "C:\Program Files (x86)\Veeam\Backup Transport\x86\vddk_6_0" "[datastore1] test/test.vmdk"
appGlobals.port902VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Disk "[datastore1] test/test-000001.vmdk" is open using transport mode "hotadd".
ReadFlag : 0
Processing 10240 buffers of 1048576 bytes.
Wrote 64 MBytes in 2699 msec (23 MBytes/sec)
Wrote 64 MBytes in 2667 msec (23 MBytes/sec)
Wrote 64 MBytes in 687 msec (93 MBytes/sec)
Wrote 64 MBytes in 608 msec (105 MBytes/sec)
Wrote 64 MBytes in 687 msec (93 MBytes/sec)
...
Wrote 64 MBytes in 795 msec (80 MBytes/sec)
Wrote 64 MBytes in 749 msec (85 MBytes/sec)
Wrote 64 MBytes in 1326 msec (48 MBytes/sec)
Wrote 64 MBytes in 2465 msec (25 MBytes/sec)
Wrote 64 MBytes in 2449 msec (26 MBytes/sec)
Wrote 10240 MBytes in 141040 msec (72 MBytes/sec)
Deleted directory C:\Users\ADMINI~1\AppData\Local\Temp\2\vmware-Administrator\4206be79-cfef-4175-51a5-6e7c0900591b-vm-80380\hotadd
Im SAN-Modus ist alles gleich. Beachten Sie jedoch, dass für diesen Test cmd mit Administratorrechten ausgeführt werden muss. Andernfalls werden die Fehler "Sie haben keine Zugriffsrechte auf diese Datei" und "Kein Pfad zur Geräte-LVID" angezeigt.
Wenn Sie die Wiederherstellungsoption im direkten SAN-Modus testen möchten, müssen Sie die gefälschte UUID im Zweig HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ VMware, Inc. \ volatile \ UUIDHost angeben.
Versuchen Sie nun, den Lesegeschwindigkeitstest im nbd-Modus auszuführen.
C:\VDDK\bin>vixDiskLibSample.exe -readbench 1024 -host demo.local -user "demo\adm" -password "%TOPSECRET%" -vm "moref=vm-80380" -ssmoref "snapshot-82782" -thumb "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00" -ssmoref "snapshot-82782"
-mode nbd -libdir "C:\Program Files (x86)\Veeam\Backup Transport\x86\vddk_6_0" "[datastore1] test/test.vmdk"
appGlobals.port902VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Disk "[datastore1] test/test.vmdk" is open using transportmode "nbd".
ReadFlag : 4
Processing 20480 buffers of 524288 bytes.
Read 64 MBytes in 2293 msec (27 MBytes/sec)
Read 64 MBytes in 2153 msec (29 MBytes/sec)
Read 64 MBytes in 1747 msec (36 MBytes/sec)
Read 64 MBytes in 2013 msec (31 MBytes/sec)
Read 64 MBytes in 2823 msec (22 MBytes/sec)
…
Wenn Sie eine echte Last geben möchten, können Sie -readbench oder -writebench für mehrere Festplatten gleichzeitig ausführen. Dafür benötigen Sie jedoch VDDK 6.5 oder 7.0
C:\VDDK\bin\vixDiskLibSample.exe" -readbench 1024 -host "10.0.0.1" -user "AD\user" -password "****" -vm "moref=vm-1" -ssmoref "snapshot-100" -thumb "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00" -mode san -libdir "C:\Program Files (x86)\Veeam\Backup Transport\x64\vddk_6_5" -initex "C:\VDDK60\initex.txt" "[Datastore01] VM/VM.vmdk" "[Datastore01] VM/VM_1.vmdk" "[Datastore01] VM/VM_2.vmdk" "[Datastore01] VM/VM_3.vmdk
Lassen Sie uns abschließend sehen, welche Informationen zu virtuellen Festplatten wir mit -info erhalten können
C:\VDDK\bin>vixDiskLibSample.exe -info -host demo.local -user "demo\adm" -password "%TOPSECRET%" -vm "moref=vm-80380"
-ssmoref "snapshot-82787" -thumb "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00" -mode nbd -libdir "C:\Program Files (x86)\Veeam\Backup Transport\x86\vddk_6_0" "[datastore1] test/test.vmdk"
appGlobals.port902VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Disk "[datastore1] test/test.vmdk" is open using transport mode "nbd".
capacity = 20971520 sectors
number of links = 1
adapter type = LsiLogic SCSI
BIOS geometry = 0/0/0
physical geometry = 1305/255/63
Transport modes supported by vixDiskLib: file:san:hotadd:nbdssl:nbd
Übrigens, wenn Sie plötzlich keine echten Festplatten mehr von echten Maschinen riskieren möchten, können Sie diese hier erstellen. Zwar können Sie durch -create nicht sofort eine Festplatte auf dem Host erstellen, aber hier hilft uns die Option -clone. Der Parameter -cap legt die Größe in Megabyte fest. Dies ist auf einem Linux-Computer bequemer.
./vix-disklib-sample -create -cap 1024 newdisk.vmdk
./vix-disklib-sample -clone virtdisk.vmdk –host demo.local –user root –password TOP_SECRET newdisk.vmdk
Damit ist mein kurzer Ausflug in die Welt der vielfältigen Möglichkeiten von VixDiskLibSample abgeschlossen. Ja, an einigen Stellen ist das Dienstprogramm etwas dumm und die Ausgabe ist nicht sehr praktisch. Sie können jedoch immer etwas Eigenes daraus machen, wodurch Sie Ihre Probleme elegant lösen können, ohne Fahrräder zu erfinden und undeutliche Schichten zu verwenden.
Und einige nützliche Links am Ende:
- Jede Version des VDDK kann über diesen Link heruntergeladen werden . Standardmäßig wird Ihnen 7.0 angeboten, aber von oben können Sie mindestens zu 5.1 wechseln
- VDDK.