• Home
  • Impressum
ComSubVies Creative Content

ComSubVies Creative Content

  • Informatik
  • Kultur
    • Film / Kino
  • Modellbau
  • Sonstiges
  • Urlaub
    • Tauchen
    • Wandern

Migration von LVM Volumes

Posted on 10. Dez, 2009 by Markus Schabel in Informatik

Nachdem ich gerade damit beschäftigt bin, ein paar virtuelle Maschinen von einem Server auf einen anderen zu migrieren, und ich jedes Mal danach suche (und finde), wie denn das mit dem Export von LVM Logical Volumes funktioniert, muss ich es hier einmal zusammenfassen.

Für Xen-Systeme ist es recht gängig, die einzelnen Partitionen als LVM Volumes einzurichten, da diese leicht auf mehrere physikalische Geräte verteilt und einfach vergrößert werden können. Ein zusätzliches wichtiges Feature für Server-Systeme ist es, dass mit LVM auch sehr einfach Snapshots eines (laufenden) Volumes erstellt werden können.

Um ein LVM Logical Volume zu kopieren (ohne dabei Einfluss auf die laufenden Systeme zu nehmen), sollte zuerst ein Snapshot von dem entsprechenden Volume gemacht werden. Um einen Snapshot zu erstellen, wird der Befehl lvcreate verwendet, wobei der Parameter -s einen Snapshot erstellt. Mit dem Parameter -n wird der Name des Snapshot-Volumes angegeben (im Beispiel lv01-snapshot), und als letzter Parameter das Volume, von dem der Snapshot erstellt werden soll (in diesem Fall /dev/vg0/lv01). Zusätzlich muss noch die Größe des Volumes angegeben werden, da diese – aus für mich unerfindlichen Gründen – nicht automatisch übernommen wird. Diese Größe kann man mit lvdisplay /dev/vg0/lv01 herausfinden (es ist das Attribut LV Size) und mit dem Parameter -L an lvcreate übergeben:

src-system:~# lvdisplay /dev/vg0/lv01
  --- Logical volume ---
  LV Name                /dev/vg0/lv01
  VG Name                lvmxen
  LV UUID                qhNjG9-IqN9-ISRR-uD17-TJyQ-HGcY-ZOq9pm
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                2.00 GB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:20
src-systen:~# lvcreate -L2G -s -n lv01-snapshot /dev/vg0/lv01
  Logical volume "lv01-snapshot" created

Dieses Snapshot Volume kann nun über beliebige Methoden auf den Zielserver übertragen werden. Dazu muss zuerst ein DiskDump davon erstellt werden, der dann beispielsweise über HTTP oder SCP oder ähnliche Methoden auf das Zielsystem kopiert werden kann (eine elegante Methode wäre natürlich auch die Übertragung mittels netcat). Um einen DiskDump zu erstellen kann der folgende Befehl verwendet werden:

src-system:~# dd if=/dev/vg0/lv01-snapshot conv=noerror,sync bs=256k | gzip -9 > ~/lv01.dd.gz

Auf dem Zielsystem muss nun ein entsprechendes Logical Volume der passenden Größe erstellt werden. Auch dazu wird der Befehl lvcreate verwendet:

dst-system:~# lvcreate -L2G -n lv01 vg0
  Logical volume "lv01" created

Nachdem der Diskdump vom Quellsystem auf das Zielsystem übertragen wurde, kann dieser entsprechend auf das Logical Volume geschrieben werden:

dst-system:~# cat lv01.dd.gz | gzip -d | dd of=/dev/vg0/lv01 bs=256k

Es ist natürlich genauso möglich, den Zwischenschritt über den DiskDump als Datei zu überspringen und das ganze direkt zu übertragen, beispielsweise über SCP (ideal wäre hier natürlich die Verwendung von netcat):

src-system:~# dd if=/dev/vg0/lv01-snapshot conv=noerror,sync bs=256k | gzip -9 | ssh root@dst-system 'gzip -d | dd of=/dev/vg0/lv01'

Bei einem hinreichend schnellen Netzwerk kann die Komprimierung mit gzip genausogut entfallen. Wobei hier vermutlich die Komprimierung weniger rechenintensiv ist, als die Verschlüsselung durch ssh.

Nachdem das Volume erfolgreich übertragen wurde, kann der Snapshot wieder gelöscht werden. Dies geschieht mit dem folgenden Befehl:

src-system:~# lvremove /dev/vg0/lv01-snapshot
Do you really want to remove active logical volume "lv01-snapshot"? [y/n]: y
  Logical volume "lv01-snapshot" successfully removed

Wenn alle Volumes eines Xen-Gastsystems übertragen wurden, sollte sich dieses am Zielsystem genauso starten lassen, wie am Quellsystem. Es ist dabei jedoch eventuell darauf zu achten vorher die IP-Adressen zu aktualisieren.

Verwandte Literatur (amazon):

Xen: Virtualisierung unter LinuxXen: Virtualisierung unter Linux
XEN Kochbuch. Intelligente Virtualisierungslösungen mit XEN 3XEN Kochbuch. Intelligente Virtualisierungslösungen mit XEN 3
Citrix XenApp 6 und XenDesktop 5: Das Praxishandbuch für Administratoren (Galileo Computing)Citrix XenApp 6 und XenDesktop 5: Das Praxishandbuch für Administratoren (Galileo Computing)
Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • FriendFeed
  • HackerNews
  • PDF
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
  • Twitter

Leave a Reply

Hier klicken, um die Antwort abzubrechen.

10. Dez, 2009

Markus Schabel

Informatik

Tags: LVM, Xen

Leave a comment

  • <
  • >
  • Letzte Artikel

    • Command & Conquer – Freeware
    • Schneeschuhwanderung auf der Rax
    • Installation eines Git-Hosts
    • Husarentempel
    • Parrot AR.Drone
    • GandALF T-Shirt
    • Solomon Kane
    • Silex SX-560 Embedded WLAN
    • Migration von LVM Volumes
    • Parkinson’s Law
  • Letzte Kommentare

    • Theo Baysinger bei AVR microtouch Projekt
    • Erik Schwarzfeld bei Urlaub Curaçao – Tag 0
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 2
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 4
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 6
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 5
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 3
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 1
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 7
    • Curaçao 2009 | ComSubVies Creative Content bei Urlaub Curaçao – Tag 0
  • Schlagwörter

    AirPower Apple Autopilot AVR Cocoa Cocoa Touch Computerspiele Curaçao Dokumentation Drone Embedded Systems featured Filme Flugshow Git Hubschrauber iPhone iPhone SDK Java Karibik Kino Lanzarote Linux LVM Museen Navigation Neunkirchnerhütte Norwegen NTP Programmieren Rätsel Serien SX-560 T-Shirt Tauchen Touchscreen Trailer UAV Versionskontrolle VHDL Wandern Windows 7 Wissenschaft WLAN Xen
  • Archive

    • Februar 2010 (2)
    • Januar 2010 (5)
    • Dezember 2009 (2)
    • November 2009 (8)
    • Oktober 2009 (7)
    • August 2009 (1)
    • Juli 2009 (26)
    • Juni 2009 (1)
    • Mai 2009 (3)
    • April 2009 (1)
    • März 2009 (2)
    • Februar 2009 (8)
    • Januar 2009 (1)
  • Blogroll

    • Development Blog
    • Documentation
    • Plugins
    • Suggest Ideas
    • Support Forum
    • Themes
    • WordPress Planet

© 2009 ComSubVies Creative Content. All Rights Reserved.

Delicious font by exljbris. Powered by Wordpress. Designed by Woo Themes