tiri technology blog

im web oder während unserer arbeit gefunden

24. Juni 2009

xen VM-Export — Commandline ist am schnellsten

Abgelegt unter: Allgemein — Tags:, , , , — tirili @ 19:33

Ein Export einer XEN-VM über das XEN-Center dauert eine erhebliche Zeit, wobei nicht nachvollziehbar ist, wo diese verschenkt wird. Daher ist es empfehlenswert, den Export in eine .xva-Datei über die Befehlszeile auf ein Netzlaufwerk, lokale Platte oder USB-Disk vorzunehmen.

Anzeige aller VMs, die exportiert werden könnten (status: halted)

xe vm-list params=all power-state=halted

Wichtig ist für uns der vm-name bzw. die uuid. Jetzt können wir den Export starten.


[root@xen211 ~]# time xe vm-export filename=/tmp/export/017-otrs.xva vm=09faa5ff-ceea-1234-e02e-97cae69878d5
Export succeeded

real 7m30.623s
user 0m1.310s
sys 0m12.590s
[root@xen211 ~]# ls -Al /tmp/export/017-otrs.xva
-rwxr-xr-x 1 root root 4234127360 Jun 24 20:28 /tmp/export/017-otrs.xva

Sofern die Maschine nicht für den Export bereit ist, kommt eine entsprechende Meldung, z.B.
Another operation involving the object is currently in progress
class: VM

12. März 2009

XENserver export/import virtueller Maschinen

Abgelegt unter: Wissen — Tags:, , , , , — tirili @ 22:45
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)

Powered by WordPress ( WordPress Deutschland )