Dies ist der Befehl virt-alignment-scan, der im kostenlosen OnWorks-Hosting-Provider mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
virt-alignment-scan - Ausrichtung der Partitionen virtueller Maschinen prüfen
ZUSAMMENFASSUNG
virt-alignment-scan [--options] -d Domänenname
virt-alignment-scan [--options] -a disk.img [-a disk.img ...]
virt-alignment-scan [--optionen]
BESCHREIBUNG
Wenn sich ältere Betriebssysteme selbst installieren, platzieren die Partitionierungstools Partitionen
bei einem Sektor, der nicht mit dem zugrunde liegenden Speicher ausgerichtet ist (normalerweise beginnt die erste Partition am
Sektor 63). Falsch ausgerichtete Partitionen können dazu führen, dass ein Betriebssystem mehr E/A ausgibt als
sollte notwendig sein.
Das Tool virt-alignment-scan überprüft die Ausrichtung von Partitionen in virtuellen Maschinen und
Disk-Images und warnt Sie bei Ausrichtungsproblemen.
Derzeit gibt es kein virt-Tool zum Beheben von Ausrichtungsproblemen. Sie können nur die neu installieren
Gastbetriebssystem. Das folgende NetApp Dokument fasst das Problem und mögliche
Lösungen: http://media.netapp.com/documents/tr-3747.pdf
AUSGABE
Um dieses Tool direkt auf einem Disk-Image auszuführen, verwenden Sie die -a Option:
$ virt-alignment-scan -a winxp.img
/dev/sda1 32256 512 fehlerhaft (Ausrichtung < 4K)
$ virt-alignment-scan -a fedora16.img
/dev/sda1 1048576 1024K ok
/dev/sda2 2097152 2048K ok
/dev/sda3 526385152 2048K ok
Um das Tool auf einem Gast auszuführen, der libvirt bekannt ist, verwenden Sie die -d Option und möglicherweise die -c Option:
# virt-alignment-scan -d RHEL5
/dev/sda1 32256 512 fehlerhaft (Ausrichtung < 4K)
/dev/sda2 106928640 512 fehlerhaft (Ausrichtung < 4K)
$ virt-alignment-scan -c qemu:///system -d Win7TwoDisks
/dev/sda1 1048576 1024K ok
/dev/sda2 105906176 1024K ok
/dev/sdb1 65536 64K ok
Führen Sie virt-alignment-scan ohne irgendwelche aus -a or -d Optionen zum Scannen aller libvirt-Domänen.
# Virt-Alignment-Scan
F16x64:/dev/sda1 1048576 1024K ok
F16x64:/dev/sda2 2097152 2048K ok
F16x64:/dev/sda3 526385152 2048K ok
Die Ausgabe besteht aus 4 oder mehr durch Leerzeichen getrennten Spalten. Nur die ersten 4 Spalten
sind von Bedeutung, wenn Sie dies von einem Programm aus parsen möchten. Die Spalten sind:
1 Kragen
Der Geräte- und Partitionsname (z. / Dev / sda1 bedeutet die erste Partition auf der ersten
Gerät blockieren).
Beim Auflisten aller libvirt-Domains (kein -a or -d Option angegeben) dieser Spalte ist vorangestellt
der libvirt-Name oder die UUID (wenn --uuid gegeben ist). zB: "WinXP:/dev/sda1"
2 Kragen
der Anfang der Partition in Bytes
3 Kragen
das Alignment in Bytes oder Kbytes (zB 512 oder "4K")
4 Kragen
"ok", wenn die Ausrichtung für die Leistung am besten ist, oder "schlecht", wenn die Ausrichtung verursachen kann
Leistungsprobleme
Spalte 5+
optionale Freitext-Erklärung.
Der Exit-Code des Programms ändert sich, je nachdem, ob schlecht ausgerichtete Partitionen
gefunden. Siehe "EXIT-STATUS" unten.
Wenn Sie nur den Exit-Code ohne Ausgabe wünschen, verwenden Sie den -q .
OPTIONAL
--help
Kurze Hilfe anzeigen.
-a Datei
--hinzufügen Datei
Speichern Datei Dies sollte ein Disk-Image von einer virtuellen Maschine sein.
Das Format des Disk-Images wird automatisch erkannt. Um dies zu überschreiben und a . zu erzwingen
bestimmtes Format verwenden --format=.. .
-a URI
--hinzufügen URI
Fügen Sie eine Remote-Festplatte hinzu. Siehe "FERNSPEICHER HINZUFÜGEN" in Gastfisch(1).
-c URI
--verbinden URI
Wenn Sie libvirt verwenden, verbinden Sie sich mit dem angegebenen URI. Wenn weggelassen, dann verbinden wir uns mit dem
Standard-Libvirt-Hypervisor.
Wenn Sie Gastblockgeräte direkt angeben (-a), dann wird libvirt überhaupt nicht verwendet.
-d Gast
--Domain Gast
Fügen Sie alle Festplatten des benannten libvirt-Gasts hinzu. Domänen-UUIDs können anstelle von verwendet werden
Namen.
--format=raw|qcow2|..
--Format
Die Standardeinstellung für die -a Option besteht darin, das Format des Disk-Images automatisch zu erkennen. Verwenden von
dies erzwingt das Festplattenformat für -a Optionen, die auf der Befehlszeile folgen. Verwenden von
--Format ohne Argument wechselt zurück zur automatischen Erkennung für nachfolgende -a nach.
Beispielsweise:
virt-alignment-scan --format=raw -a disk.img
erzwingt das Rohformat (keine automatische Erkennung) für disk.img.
virt-alignment-scan --format=raw -a disk.img --format -a other.img
erzwingt das Rohformat (keine automatische Erkennung) für disk.img und kehrt zur automatischen Erkennung zurück für
ein anderes.img.
Wenn Sie nicht vertrauenswürdige Gast-Disk-Images im Raw-Format haben, sollten Sie diese Option verwenden, um
Geben Sie das Festplattenformat an. Dies vermeidet ein mögliches Sicherheitsproblem mit bösartigen
Gäste (CVE-2010-3851).
-P Nr_threads
Seit libguestfs 1.22 ist virt-alignment-scan multithreaded und untersucht Gäste in
parallel. Standardmäßig wird die Anzahl der zu verwendenden Threads basierend auf der Anzahl der ausgewählt
freier Speicher, der zum Zeitpunkt des Starts von virt-alignment-scan verfügbar ist. Sie können erzwingen
virt-alignment-scan, um höchstens "nr_threads" zu verwenden, indem man die -P .
Beachten Sie, dass -P 0 bedeutet, automatisch zu erkennen, und -P 1 bedeutet, einen einzelnen Thread zu verwenden.
-q
--ruhig
Erzeuge keine Ausgabe. Stellen Sie einfach den Exit-Code ein (siehe "EXIT STATUS" unten).
--uuid
Drucken Sie UUIDs anstelle von Namen. Dies ist nützlich, um einem Gast zu folgen, auch wenn der
guest migriert oder umbenannt wird oder wenn zwei Gäste denselben Namen haben.
Diese Option gilt nur, wenn alle libvirt-Domains aufgelistet werden (wenn keine -a or -d Optionen
angegeben sind).
-v
- ausführlich
Aktivieren Sie ausführliche Nachrichten zum Debuggen.
-V
--Version
Versionsnummer anzeigen und beenden.
-x Aktivieren Sie die Ablaufverfolgung von libguestfs-API-Aufrufen.
EMPFOHLEN AUSRICHTUNG
Betriebssysteme älter als Windows 2008 und Linux vor ca.2010 platzieren den ersten Sektor
der ersten Partition bei Sektor 63 mit einer Sektorgröße von 512 Byte. Dies geschieht wegen
ein historischer Unfall. Antriebe müssen eine Zylinder-/Kopf-/Sektor-(CHS)-Geometrie melden
das BIOS. Die Geometrie ist auf modernen Laufwerken völlig bedeutungslos, aber es kommt vor, dass
die gemeldete Geometrie hat immer 63 Sektoren pro Spur. Das Betriebssystem also
platziert die erste Partition am Anfang des zweiten "Tracks", im Sektor 63.
Wenn das Gastbetriebssystem virtualisiert ist, bevorzugen das Hostbetriebssystem und der Hypervisor möglicherweise
Zugriffe, die auf einen der folgenden ausgerichtet sind:
· 512 Byte
wenn das Host-Betriebssystem lokalen Speicher direkt auf Festplattenpartitionen verwendet und die Festplatte
Laufwerk hat 512 Byte physische Sektoren.
· 4 KB
zur lokalen Speicherung auf neuen Festplatten mit 4Kbyte physischen Sektoren; für dateigestützten
Speicherung auf Dateisystemen mit 4Kbyte Blockgröße; oder für einige Arten von netzwerkgebundenen
Lagerung.
· 64 KB
für High-End-Netzwerkspeicher. Dies ist die optimale Blockgröße für einige NetApp
Hardware.
· 1 MB
siehe "1 MB PARTITION-AUSRICHTUNG" unten.
Partitionen, die nicht richtig auf den zugrunde liegenden Speicher ausgerichtet sind, verursachen zusätzliche E/A. Zum
Beispiel:
Sekte#63
┌──────────────────────────┬ ─ ─ ─ ─
│ Gast │
│ Dateisystemblock │
─ ┬──────────────────┴──────┬───────────────────┴── ───┬ ─ ─
│ Hostblock │ Hostblock │
│ │ │
─ ┴─────────────────────────┴────────────────────── ───┴ ─ ─
In diesem Beispiel müssen jedes Mal, wenn ein 4K-Gastblock gelesen wird, zwei Blöcke auf dem Host
auf den zugegriffen wird (damit wird doppelt so viel E/A ausgeführt). Wenn ein 4K-Gastblock geschrieben wird, werden zwei Host
Blöcke müssen zuerst gelesen, die alten und neuen Daten kombiniert und die beiden Blöcke zurückgeschrieben werden
(4x E/A).
LINUX HOST BLOCK UND I / O GRÖßE
Neue Versionen des Linux-Kernels legen die physische und logische Blockgröße und das Minimum offen
und empfohlene E/A-Größe.
Für eine typische Consumer-Festplatte mit 512-Byte-Sektoren:
$ Katze /sys/block/sda/queue/hw_sector_size
512
$ Katze /sys/block/sda/queue/physical_block_size
512
$ Katze /sys/block/sda/queue/logical_block_size
512
$ Katze /sys/block/sda/queue/minimum_io_size
512
$ Katze /sys/block/sda/queue/optimal_io_size
0
Für eine neue Consumer-Festplatte mit 4Kbyte-Sektoren:
$ Katze /sys/block/sda/queue/hw_sector_size
4096
$ Katze /sys/block/sda/queue/physical_block_size
4096
$ Katze /sys/block/sda/queue/logical_block_size
4096
$ Katze /sys/block/sda/queue/minimum_io_size
4096
$ Katze /sys/block/sda/queue/optimal_io_size
0
Für eine NetApp-LUN:
$ cat /sys/block/sdc/queue/logical_block_size
512
$ cat /sys/block/sdc/queue/physical_block_size
512
$ cat /sys/block/sdc/queue/minimum_io_size
4096
$ cat /sys/block/sdc/queue/optimal_io_size
65536
Die NetApp erlaubt 512 Byte Zugriffe (aber sie sind sehr ineffizient), bevorzugt ein Minimum
4K E/A-Größe, aber die optimale E/A-Größe beträgt 64K.
Ausführliche Informationen zur Bedeutung dieser Zahlen finden Sie unter
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/newstorage-iolimits.html
[Danke an Matt Booth für die Bereitstellung von 4K-Laufwerksdaten. Danke an Mike Snitzer für die Bereitstellung
NetApp-Daten und zusätzliche Informationen.]
1 MB TRENNWAND AUSRICHTUNG
Microsoft hat 1 MB als Standardausrichtung für alle Partitionen ausgewählt, die mit Windows beginnen
2008 Server, und Linux ist diesem gefolgt.
Unter der Annahme von 512 Byte Sektoren im Gast sehen Sie jetzt die erste Partition beginnend bei
Sektor 2048 und nachfolgende Partitionen (falls vorhanden) beginnen bei einem Vielfachen von 2048 Sektoren.
1 MB Alignment ist kompatibel mit allen aktuellen Alignment-Anforderungen (4K, 64K) und
bietet Raum für zukünftiges Wachstum der physischen Blockgrößen.
RAHMEN AUSRICHTUNG
virtuelle Größenänderung(1) kann die Ausrichtung der Partitionen einiger Gäste ändern. Derzeit ist es
kann alle Partitionen aller Windows-Gäste vollständig ausrichten und den Bootloader reparieren
wo nötig. Für Linux-Gäste kann es die zweite und die nachfolgenden Partitionen ausrichten, also
die Mehrheit der Betriebssystemzugriffe außer beim Booten wird ausgerichtet.
Eine andere Möglichkeit, Probleme mit der Partitionsausrichtung zu beheben, ist die Neuinstallation Ihres Gastbetriebs
Systeme. Wenn Sie Betriebssysteme aus Vorlagen installieren, stellen Sie sicher, dass diese korrekt sind
auch Partitionsausrichtung.
Für ältere Windows-Versionen enthält das folgende NetApp-Dokument nützliche Informationen:
http://media.netapp.com/documents/tr-3747.pdf
Verwenden Sie für Red Hat Enterprise Linux ≤ 5 ein Kickstart-Skript, das ein explizites %pre . enthält
Abschnitt, der ausgerichtete Partitionen erstellt mit geteilt(8). Verwenden Sie nicht den Kickstart-"Teil"
Befehl. Das obige NetApp-Dokument enthält ein Beispiel.
EXIT STATUS
Dieses Programm gibt zurück:
· 0
erfolgreicher Exit, alle Partitionen sind ausgerichtet ≥ 64K für beste Leistung
· 1
ein Fehler beim Scannen des Disk-Image oder des Gasts
· 2
erfolgreiches Beenden, einige Partitionen haben eine Ausrichtung < 64K, was zu schlechten Ergebnissen führen kann
Leistung auf High-End-Netzwerkspeicher
· 3
erfolgreiches Beenden, einige Partitionen haben eine Ausrichtung < 4K, was zu schlechten Ergebnissen führen kann
Leistung auf den meisten Hypervisoren
Verwenden Sie virt-alignment-scan online mit den onworks.net-Diensten