time xe vm-export vm=742ba99e-5f8b-b29d-e5a4-2f0e647838cb filename=/data/xtradius.xvm
In ca. 5 minuten ist er mit 4GB fertig.
Was macht XENserver da ? Es erstellt ein Archiv mit allen Daten der VM.
[root@xen211 data]# file xtradius.xvm xtradius.xvm: tar archive [root@xen211 data]# tar tvf xtradius.xvm ---------- 0/0 73769 1970-01-01 01:00:00 ova.xml ---------- 0/0 1048576 1970-01-01 01:00:00 Ref:42/00000000 ---------- 0/0 40 1970-01-01 01:00:00 Ref:42/00000000.checksum ---------- 0/0 1048576 1970-01-01 01:00:00 Ref:42/00000001 ---------- 0/0 40 1970-01-01 01:00:00 Ref:42/00000001.checksum ---------- 0/0 1048576 1970-01-01 01:00:00 Ref:42/00000003 ...
Die ova.xml sieht ungefähr so aus:
<value> <struct> <member> <name>version</name> <value> <struct> <member> <name>hostname</name> <value>chocky-2</value> </member> <member> <name>date</name> <value>2009-01-30</value> </member> <member> <name>product_version</name> <value>5.0.0</value> </member> <member> <name>product_brand</name> <value>XenServer</value> </member> <member> <name>build_number</name> <value>12527p</value> </member> <member> <name>xapi_major</name> <value>1</value> </member> <member> <name>xapi_minor</name> <value>2</value> </member> <member> <name>export_vsn</name> <value>2</value> </member> </struct> </value> </member> <member> <name>objects</name> <value> <array> <data> <value> <struct> <member> <name>class</name> <value>VM</value> </member> <member> <name>id</name> <value>Ref:36</value> </member> <member> <name>snapshot</name> <value> <struct> <member> <name>uuid</name> <value>742ba99e-5f8b-b29d-e5a4-2f0e647838cb</value> </member> <member> <name>allowed_operations</name> <value> <array> <data> <value>copy</value> <value>clone</value> <value>export</value> </data> </array> </value> </member> <member> <name>current_operations</name> <value> <struct> <member> <name>OpaqueRef:3f0b3fc4-771d-a131-a254-27c6bcbe941f</name> <value>export</value> </member> </struct> </value> </member> <member> <name>power_state</name> <value>Halted</value> </member> <member> <name>name_label</name> <value>xtradius .178.14</value> </member> <member> <name>name_description</name> <value/> </member> <member> <name>user_version</name> <value>1</value> </member> <member> <name>is_a_template</name> <value> <boolean>0</boolean> </value> </member> <member> <name>suspend_VDI</name> <value>OpaqueRef:NULL</value> </member> <member> <name>resident_on</name> <value>OpaqueRef:NULL</value> </member> <member> <name>affinity</name> <value>OpaqueRef:23f2b1c8-1a4d-324b-6e91-a98a091ac0de</value> </member> <member> <name>memory_target</name> <value>268435456</value> </member> <member> <name>memory_static_max</name> <value>268435456</value> </member> <member> <name>memory_dynamic_max</name> <value>268435456</value> </member> <member> <name>memory_dynamic_min</name> <value>268435456</value> </member> <member> <name>memory_static_min</name> <value>16777216</value> </member> <member> <name>VCPUs_params</name> <value> <struct/> </value> </member> <member> <name>VCPUs_max</name> <value>1</value> </member> <member> <name>VCPUs_at_startup</name> <value>1</value> </member> <member> <name>actions_after_shutdown</name> <value>destroy</value> </member> <member> <name>actions_after_reboot</name> <value>restart</value> </member> <member> <name>actions_after_crash</name> <value>restart</value> </member> <member> <name>consoles</name> <value> <array> <data/> </array> </value> </member> <member> <name>VIFs</name> <value> <array> <data> <value>Ref:37</value> <value>Ref:39</value> </data> </array> </value> </member> <member> <name>VBDs</name> <value> <array> <data> <value>Ref:41</value> <value>Ref:44</value> <value>Ref:45</value> </data> </array> </value> </member> <member> <name>crash_dumps</name> <value> <array> <data/> </array> </value> </member> ...
Die exportierte Maschine können wir jetzt mittels scp auf einen anderen XENserver bringen und dort
importieren. Da wir eine identische Kopie wollen mit denselben MAC-Adressen, wird der Parameter “preserve” verwendet.
xe vm-import filename=/data/xtradius.xvm preserve=true
Nach ca. 20 Minuten ist die VM komplett verfügbar, taucht auch im XENcenter des neuen Hosts auf und
kann gestartet und genutzt werden. Allerdings hat die Maschine nun eine neue UUID, weshalb man beim Skripten besser auf den Namen gehen sollte.
xe vm-start name-label="xtradius .178.14"
Alternativ kann man import und start auch verknüpfen:
xe vm-start uuid=$(xe vm-import filename=/data/xtradius.xvm preserve=true)
