XenServer kann unterschiedliche Storage Repositories benutzen. Bei einem lokalen Storage wird jedoch standardmäßig LVM Storage erzeugt. LVM Storage hat zwar den Vorteil, dass es ein „virtual disk image resize“ unterstützt aber Thin provisioning oder Fast clone funktionieren nur innerhalb von Filebased Storage (NFS, NetApp oder ext). Dieser Artikel beschreibt, wie man einen Local Storage von LVM in EXT konvertiert um die Vorteile von File-based Storage mit VHD Files bei local Storage zu nutzen.
Nachfolgend eine kurze Aufstellung der vom XenServer unterstützten Storage Typen und deren Eigenschaften. Interessant ist die Spalte SR Typ, bei der Konfiguration von Storage Repositories über die CLI wird diese Typ-Bezeichnung verwendet.
| Local | Local | FC | iSCSI (Hardware) | iSCSI (Software) | NFS | NetApp | |
|---|---|---|---|---|---|---|---|
| SR Typ | LVM | EXT | LVMOHBA | LVMOHBA | LVMOISCSI | NFS | NETAPP |
| Virtuelle Maschinen | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Shared SR | ✔ | ✔ | ✔ | ✔ | ✔ | ||
| Disk Image Rezise | ✔ | ✔ | ✔ | ✔ | ✔ | ||
| Auto VM Platzierung | ✔ | ✔ | ✔ | ✔ | ✔ | ||
| XenMotion | ✔ | ✔ | ✔ | ✔ | ✔ | ||
| Fast Clone | ✔ | ✔ | ✔ | ||||
| Thin Provisioning | ✔ | ✔ | ✔ |
Bei der nachfolgenden Prozedur werden alle virtuellen Maschinen die auf dem zu konvertierenden LVM Storage liegen gelöscht. Diese müssen vorher unbedingt gesichert oder exportiert werden.
Zuerst müssen wir einige Einstellungen und Daten herausfinden. An der Konsole des Server (oder remote über SSH) müssen wir die Einstellungen des Default Storage herausfinden. dies machen wir mit:
cat /etc/xensource-inventory
Die Ausgabe dieses Befehls liefert uns eine Bezeichnung=Wert Liste, in der uns nur der folgende Eintrag interessiert:
DEFAULT_SR_PHYSDEVS='/dev/cciss/c0d0p3'
Auf Standardsystemen mit nur einer Disk wird es warscheinlich /dev/sda3 sein.
Nun müssen wir noch die UUID des Default SR herausfinden (und notieren), dies geht mit
xe sr-list type=lvm
Was wir dann noch brauchen (und uns notieren) ist die UUID des Default PBD (Physical Block Device), die wir mit folgendem Kommando bekommen:
xe pbd-list sr-uuid=<Default SR UUID vom Schritt zuvor>
Jetzt können wir mit den gesammelten UUIDs anfangen, das Default SR „abzuhängen“. Als ersten muss das PBD disconnected werden.
xe pbd-unplug uuid=<UUID des PBD>
Danach wird das LVM SR gelöscht.
xe sr-destroy uuid=<Default SR UUID>
Jetzt erzeugen wir ein neues EXT SR für VHD Files
xe sr-create content-type="local SR" host-uuid=<UUID des Hosts> type=ext ∠ device-config-device=<z.B. /dev/cciss/c0d0p3> shared=false name-label="Local File SR"
Nicht wundern, die Ausführung dieses Kommandos kann ein paar Minuten dauern.
Nach Ablauf des Kommandos wird die UUID des neuen SRs ausgegeben, die wir uns notieren müssen. Diese UUID brauchen wir jetzt für das folgende Kommando, dass uns das neu erstellte SR als Default SR anlegt.
xe pool-param-set default-SR=<Neue SR UUID> uuid=<UUID des Hosts>
Zum Schluss konfigurieren wir noch das neue EXT SR als Standard für „suspended VM Images“
xe pool-param-set suspend-image-SR=<Neue SR UUID> uuid=<UUID des Hosts>
Das war's, dass neue Local Storage Repository arbeitet nun VHD File based. Der letzte Schritt ist jetzt noch, die zuvor gesicherten VM's wieder zu restoren.