IT Blog | michael wessel

Zugriff auf Dateisystem virtueller Maschine in XenServer LVM Storage

Geschrieben von Team von michael wessel | 08.2011

Wenn der XenServer nicht mehr startet oder sein lokales Storage Repository nicht mehr findet, kann folgendes Vorgehen Abhilfe schaffen, um kurzfristig auf benötigte Dateien zuzugreifen.

Voraussetzung des Zugriffs auf XenServer Storage-Daten

Eine Voraussetzung, um auf die Daten der virtuellen Maschinen im lokalen XenServer Storage zuzugreifen, ist eine Live-CD mit LVM Unterstützung. In diesem Fall wurde eine Debian GNU/Linux 6 Live-CD verwendet.

Das Vorgehen

1. Booten Sie von der Live-CD melden Sie sich als Benutzer root an.

2. Führen Sie den Befehl lvscan aus, wählen das benötigte Logical Volume aus und klicken Sie auf „merken“. Welches LV zu welcher virtuellen Maschine gehört lässt sich meist nur durch Ausprobieren herausfinden, eingrenzen kann man die wahrscheinlichsten Kandidaten meist nur anhand der Größe des LV.

root@debian:/# lvscan

ACTIVE ‚/dev/VG_XenStorage-4a48ea5b-ca5d-280f-4699-8d930df8500b/LV-8adc14c2-38ff-4377-a096-911eff7f58c8‘ [100.20 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [100.20 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [9.24 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [38.86 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [26.03 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [10.28 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [8.06 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [100.20 GB] inherit
[…]

3. Ermitteln Sie über "parted" den Offset der Partition des benötigten LV. Dazu starten Sie "parted" unter Angabe des LV (welches wir uns in Schritt 2 gemerkt haben) und ändern Sie die Darstellung auf Blocks.

root@debian:/# parted /dev/VG_XenStorage-<ID>/LV-<ID>
GNU Parted 2.3
Using /dev/dm-1
Welcome to GNU Parted! Type ‚help‘ to view a list of commands.
(parted) unit
Unit? [compact]? b
(parted) print
Model: Linux device-mapper (linear) (dm)
Disk /dev/dm-1: 16106127360B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 32256B 16106127360B 16105065984B primary ntfs boot

(parted)
quit

Durch den Befehl "print" werden verfügbare Partitionen aufgelistet, nun müssen Sie sich einen weiteren Wert merken, und zwar den Wert in der Spalte "Start". Anschließend können Sie das Programm parted mit dem Befehl quit verlassen.

Erstellung eines Loopback-Device

root@debian:/# losetup -o 32256B -f /dev/VG_XenStorage-<ID>/LV-<ID>

Der Parameter –o bestimmt den Offset und –f die Datei bzw. in unserem Beispiel das LV welches eingehängt werden soll.

Ermittlung des zugewiesenen Loopback-Device

root@debian:/# losetup –a

Einhängen des Loopback-Device mit Hilfe von mount

root@debian:/# mount /dev/loop-1 /mnt/lv-test1

Sofern der Typ des Dateisystems bekannt ist, können Sie anschließend in den Dateien der Virtuellen Maschine stöbern.