Verschieben Sie die VMware ESXi-VM in einen neuen Datenspeicher, um Thin Provisioning zu gewährleisten


27

Ich suche nach einer guten Lösung für ein VMware ESXi-Umgebungsproblem, bei dem kein vCenter verfügbar ist.

Wie kann eine VM auf einem einzelnen ESXi-Host am besten von einem Datenspeicher auf einen anderen verschoben werden, während die VMDK-Thin-Provisionierung beibehalten wird?

Dies ist ein eigenständiger Server, der mit einem anderen Laufwerksarray / Datenspeicher erweitert wurde. Ich möchte die im alten Array enthaltenen Daten in das neue verschieben.

Bearbeiten: Die Größe des Zieldatenspeichers ist tatsächlich kleiner als die der Quelle. Ich habe nicht genug Platz, um die dicke Datei zu kopieren.


Halten Sie es wirklich für sinnvoll, eine VM in einen Datenspeicher zu verschieben, der zu klein ist, um darauf zu passen? Was passiert mit einem Schurkenprozess in dieser VM, bei dem der gesamte Speicherplatz belegt wird?
Zoredache

Im Allgemeinen nein ... aber dies ist ein Sonderfall. Die VM wächst nicht.
Ewwhite

Wenn die VM nicht wächst, gibt es keinen Grund, die Thin Provisioning-Funktion beizubehalten.
Jim B

Welche Version von ESXi?
Jed Daniels

Dies ist ESXi 5.
ewwhite

Antworten:


21

Sie können auch Datei -> Exportieren -> OVF-Vorlage exportieren verwenden

und dann importieren. Das letzte Mal, als ich es ausprobiert habe, denke ich, dass dadurch das vmdk-Format erhalten bleibt. Bin mir jetzt nicht so sicher, wie es schon einige Zeit war.


3
Ab Version 4.1 werden Sie beim Import zur Verwendung von thin oder thick aufgefordert.
Jed Daniels

2
Du hast es! Der OVF-Export in eine komprimierte Sparse-Datei verlief schnell und problemlos. Beim Import wurde mir die Option einer dünnen oder dicken Provision eingeräumt, und der Import verlief zügig. 5 Minuten für eine virtuelle Maschine mit 72 GB (8 GB).
ewwhite

3
FWIW, Sie können dies auch über eine Befehlszeile mit ovftool tun.
Jed Daniels

28

Ich habe gerade einen Weg gefunden, dies selbst zu tun. Es folgt eine hoffentlich leicht verständliche Anleitung zum Verschieben Ihrer VM in einen neuen Datenspeicher, wobei die Thin Provisioning-Funktion während der Übertragung beibehalten wird (wodurch auch die Übertragungszeiten verkürzt werden):

Schrittweise Anleitung zur Verwendung von vmkfstools in der CLI

  1. Schalten Sie die VM aus
  2. (Optional) Führen Sie Snapshots bei Bedarf zusammen.
  3. Entfernen Sie die VM aus dem vCenter-Inventar
    • Klicken Sie mit der rechten Maustaste auf VM und klicken Sie auf "Aus Inventar entfernen". Bildbeschreibung hier eingeben
  4. Aktivieren Sie SSH auf dem ESXi-Computer
    • Gehen Sie im vSphere-Client zu: Konfiguration -> Sicherheitsprofil -> Eigenschaften (neben Dienste) -> SSH (in der Liste) -> Optionen -> Starten
  5. Melden Sie sich über SSH als root an
  6. Bereiten Sie ein Verzeichnis im Zieldatenspeicher vor
    • mkdir "/vmfs/volumes/destination_datastore/Some VM"
  7. Klonen Sie die .vmdk-Dateien mit Thin Provisioning
    • vmkfstools -i "/vmfs/volumes/source_datastore/Some VM/Some VM.vmdk" -d thin "/vmfs/volumes/destination_datastore/Some VM/Some VM.vmdk"
  8. Kopieren Sie alle verbleibenden Dateien (vermeiden Sie das Überschreiben der .vmdk-Dateien)
    • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep -v ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  9. Wenn Sie in Schritt 2 keine Snapshots konsolidiert haben, sind möglicherweise .vmdk-Delta-Snapshot-Dateien vorhanden. Diese müssen ebenfalls kopiert werden (dies kann einige Zeit dauern):
    • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep [0123456789][0123456789][0123456789][0123456789][0123456789][0123456789] | grep ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  10. Nachdem Sie alle erforderlichen Dateien geklont und kopiert haben, fügen Sie die VM aus dem neuen Datenspeicher wieder zum Inventar hinzu
    • Gehen Sie im vSphere-Client zu: Konfiguration-> Speicher-> Datenbrowser , klicken Sie mit der rechten Maustaste auf den Zieldatenspeicher, in den Sie Ihre VM verschoben haben, und klicken Sie auf "Datenspeicher durchsuchen". Bildbeschreibung hier eingeben
  11. Navigieren Sie zu Ihrer VM und klicken Sie mit der rechten Maustaste auf die VMX- Datei. Klicken Sie dann auf "Zur Bestandsliste hinzufügen ". Bildbeschreibung hier eingeben
  12. Starten Sie die VM, um zu überprüfen, ob sie funktioniert. Wenn Sie gefragt werden, ob Sie sie kopiert oder verschoben haben, antworten Sie einfach, dass Sie sie kopiert haben. (Ich bin nicht sicher, was dies bedeutet, aber ich denke, es hat zumindest mit der MAC-Adresse der vNIC zu tun, die geändert wird.) Bildbeschreibung hier eingeben
  13. Wenn die VM einwandfrei startet, können Sie sie aus dem alten Datenspeicher entfernen.
    • rm -rf "/vmfs/volumes/source_datastore/Some VM"

Hinweis: Nur mit ESXi 5 getestet

Illustrationen aus diesem Blog schamlos kopiert .


1
Dies sollte funktionieren, aber selbst das Bereitstellen von Informationen zum Verschieben einer VM mit Snapshots ist albern. Fordern Sie die Benutzer auf, alle Schnappschüsse zu entfernen, bevor Sie eine solche Aktion ausführen.
Pause

2
@ ohaals obiger Post in esxi 5.5 u1 musste den -print0 in -print ändern und es funktionierte wie ein Zauber! PS. Ich würde dafür stimmen, aber kein Repräsentant.
icereval

2
@ohaal wurde auf ESXi 6.7 überprüft. Vielen Dank!
Ed of the Mountain

Gibt es einen Grund, andere Dateien als die .vmdk- und die .vmx-Datei zu kopieren? Wenn nicht, können Sie die findLinie zu einem einfachen drehen cp.
Lado

8

Schauen Sie sich diese Antwort an . Die gleiche Logik gilt in Ihrer Situation, nämlich dieses Zitat:

Es heißt "Konverter", sollte aber eigentlich "Allzweck-OS Data Mover" heißen. Rollt aber nicht ganz so schön von der Zunge.

Der einzige Unterschied besteht darin, dass der Quell- und der Zielhost identisch sind, die Datenspeicher sich jedoch unterscheiden. Dies bedeutet, dass die Dateien vom ESXi-Host zum Converter-Computer und dann zurück zum Host übertragen werden. Es wäre schön, wenn Converter "klug" wäre und wüsste, dass es der gleiche Host ist. Das kostet leider Geld.

CAVEAT: Durch das Konvertieren der VM wird eine neue MAC-Adresse für alle Netzwerkadapter generiert. Die meisten Gastbetriebssysteme interpretieren dies als neues Gerät.


1
Ein hervorragender Punkt zu den MAC-Adressen.
JamesBarnett

3

Erstellen Sie einfach den Ordner am Zielort und kopieren Sie die Dateien in den Ordner von der Quelle. Der Ordner bleibt dann dünn. Wenn Sie den Ordner kopieren, wird er von dünn nach dick konvertiert.


2
Das ist falsch. du -h .Wird die Überprüfung mit Thin durchgeführt, wird sie in einen bereits erstellten Ordner im selben Datenspeicher kopiert. cp C* ../newdir
Rowan Hawkins

0

Ich würde die Datei dann kopieren und über vmkfstools wieder in Thin konvertieren.


Die Größe des Zieldatenspeichers ist tatsächlich kleiner als die der Quelle. Ich habe nicht genug Platz, um die dicke Datei zu kopieren.
Ewwhite

In diesem Fall funktioniert Kopieren und Neukonvertieren nicht, Sie können jedoch auch vmkfstools verwenden, um es direkt in das Ziel zu klonen. Dadurch wird auch die für die Übertragung erforderliche Zeit verkürzt, da die zusätzlichen GBs von Nullen nicht übertragen werden. Meine Antwort enthält Details dazu.
Ohaal
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.