Praxisbericht

Wie Dells Equallogic-Speicher und XenServer zusammenarbeiten

10.06.2009 von Andrej Radonic
Citrix möchte die Anbindung von SANs an virtualisierte Server mit Hilfe der "Storagelink"-Technik vereinfachen. Der folgende Erfahrungsbericht beschreibt, wie das Zusammenspiel der beiden Systeme in der Praxis funktioniert.

Die Virtualisierung von Servern benötigt eine fortgeschrittene Speichertechnik für den ausfallsicheren und effizienten Betrieb. Storage Area Networks (SANs) sind hier erste Wahl. Allerdings herrscht zumeist noch eine eher umständliche Arbeitsteilung zwischen dem Management der virtuellen Infrastruktur und dem Storage-System. Die Virtualisierungssoftware verwaltet die VMs, die SAN-Umgebung dagegen den Speicherplatz, seine Virtualisierung und Absicherung (etwa mittels Replikation).

Citrix XenServer Enterprise 5 sowie die neuen "Citrix Essentials for XenServer" enthalten ein Modul namens "Storagelink", mit dem XenServer relativ einfach auf SANs von Dell und NetApp betrieben werden kann. Alle wichtigen Speicheroperationen wie das Erzeugen oder Klonen von virtuellen Maschinen (VMs) können dabei von der Managementkonsole "XenCenter" aus erledigt werden und bedürfen weniger Detailkenntnisse zur Storage-Technik.

XenServer mit Dell Equallogic
Anbinden eines Dell-Equallogic
Das SAN-System lässt sich über Xencenter an den virtualisierten Server anbinden.
Laufwerk hinzufügen
Mit der grafischen Konsole von XenServer lassen sich Laufwerke aus dem iSCSI-Storage-Pool hinzufügen.
Clonen einer virtuellen Maschine
XenServer delegiert das Clonen von VMs weitgehend an das Storage-System.
Hochverfügbarkeit einrichten
Die Hochverfügbarkeitsoption sorgt bei einem Rechnerdefekt für den Neustart einer VM auf einem anderen Host.
Volumensbelegung des Equallogic-Speichers
Die Web-Konsole von Dell zeigt eine Übersicht mit XenServer-Volumes.

Dell bietet mit den "Equallogic"-Geräten der PS-Serie (PS 5500 e, 5500 x, 5500 xv) Speichervirtualisierung, effiziente Speicherplatznutzung, Load Balancing und Failover. Das zugrunde liegende RAID-System wird automatisch verwaltet. Über Thin Provisioning lässt sich nur der tatsächlich benötigte Speicherplatz belegen, wobei diese Technik auch aus XenServer heraus genutzt werden kann.

Testszenario

Das Setup dürfte typisch für viele Anforderungen in kleineren und mittelständischen Unternehmen sein:

Bei erstmaliger Nutzung eines Dell Equallogic versucht XenCenter verfügbare iSCSI-Systeme automatisch zu erkennen und einzubinden. Dabei steht der gesamte freie Speicherplatz zur Verfügung und für virtuelle Festplatten werden Volumes (LUNs) automatisch erstellt. Im Gegensatz zu einem gewöhnlichen iSCSI Storage Repository (LVM over iSCSI) lässt sich der Speicherplatz so auch außerhalb des XenServers dynamisch nutzen. Der Zugriff auf die XenServer-Volumes wird standardmäßig auf deren Initiator-Namen beschränkt, so dass sie nur im XenServer zur Verfügung stehen.

Aufgaben an das SAN delegieren

Beim Anlegen einer neuen virtuellen Maschine in XenCenter erzeugt das Dell Equallogic automatisch ein Volume auf dem System und integriert es als virtuelle Festplatte in die VM. Zugriffsberechtigungen werden dabei automatisch gesetzt.

Thin Provisioning

XenServer verwaltet das Storage Repositories dynamisch, er kann nachträglich weitere hinzufügen oder diese vergrößern. Thin Provisioning kann beim Anlegen des Volumes während der Generierung einer VM oder beim Hinzufügen eines virtuellen Laufwerks aktiviert werden. Dies löst die entsprechende Aktion direkt auf der Dell-Equallogic-Storagebox aus.

(Fast) Clones

Neue VMs lassen sich durch Duplizieren vorhandener VMs ebenfalls direkt aus XenCenter anlegen. Beim Fast Cloning wird der eigentliche Kopiervorgang des Volumes an den EqualLogic-Server ausgelagert und erfolgt daher nicht über das Netzwerk. Der EqualLogic-Server kennt die benutzten Bereiche eines Volumes, nur diese werden tatsächlich kopiert. Das Klonen einer VM wird auf diese Weise erheblich beschleunigt, ein 40 GB Volume mit einer tatsächlichen Belegung von 7 GB wird in zirka 10 Sekunden dupliziert.

Snapshots

Im Gegensatz zum Cloning und Provisioning findet sich die Snapshot-Funktionalität nicht in XenCenter, sondern muss von der Kommandozeile (CLI) über das Programm "xe" ausgeführt werden. Diese Funktion dient dazu, Daten zu sichern, die dann online als Laufwerk eingebunden werden können. Außerdem lassen sie sich zur Wiederherstellung von Daten verwenden.

Bei Windows-Gästen kommuniziert XenServer mit dem Microsoft Volume Shadow Copy Service (VSS), um vor dem Snapshot das Dateisystem in einen konsistenten Zustand zu versetzen und somit ein valides Abbild erzeugen zu können. Alternativ kann das Storage-Sytem via Web-GUI einen Snapshot erstellen. In Windows-VMs können dafür die Dell "Equallogic Host Integration Tools" installiert werden, um VSS zu nutzen. Dies setzt allerdings voraus, dass die jeweilige iSCSI-LUN über den Microsoft iSCSI-Initiator eingebunden wird.

Hochverfügbarkeit gewährleisten

Beim Einsatz von XenServer Enterprise auf mehreren Maschinen empfiehlt es sich, das mitgelieferte HA-Feature zu verwenden. Dieses sorgt dafür, dass bei Ausfall eines der Hosts die betroffenen VMs automatisch auf einem verfügbaren Rechner neu gestartet werden.

Für diesen Zweck wird ein Heartbeat Storage benötigt. Dazu ist manuell ein Volume (mindestens 356MB) auf dem EqualLogic-Server anzulegen und als iSCSI Storage-Repository auf Pool-Ebene einzubinden. Das bloße Vorhandensein eines EqualLogic Storage-Repositories reicht demzufolge nicht aus. Einen entsprechenden Hinweis erhält man im XenCenter jedoch, bevor nach geeigneten Storage Repositories gesucht wird.

Leistungsfähige Netzanbindung

Die Netzwerkverbindung zwischen den XenServern und ihrem SAN-Storage ist die zentrale Schlagader, ohne die nichts geht. Konsequenterweise sollte sie redundant ausgelegt werden. Beide Systemwelten helfen dabei: XenServer als auch Dell-SAN beherrschen Multipathing beziehungsweise Multipath IO.

Auf der Basis eines Active/Active NIC Bondings kann XenServer im Falle des Ausfalles eines Netzwerk-Links einen automatischen Failover durchführen, so dass immer mindestens eine funktionierende Netzwerkanbindung vorhanden ist.

Idealerweise wird ein separates Subnetz je Netzwerkpfad kreiert, so dass XenServer alle Pfade nutzen kann. Der Hypervisor bekommt nämlich vom Dell-SAN-System immer die Cluster-IP statt die IPs der verfügbaren Targets mitgeteilt. Der EqualLogic-Server verteilt die NICs selbst. Auch wenn man ein iSCSI-Discovery ausführt, gibt er grundsätzlich für jede LUN als Target nur die Gruppen-IP zurück. Der XenServer erfragt jedoch je IP beziehungsweise Target die Pfade, folglich sieht der XenServer immer nur einen Pfad.

Das Dell-System beherrscht neben dem Failover zusätzlich auch ein Load-Balancing, so dass bei hohem Aufkommen der Traffic automatisch auf die Netzwerkpfade und NICs aufgeteilt wird.

Performance

Gerade bei I/O-intensiven Anwendungen wie Datenbanken, Mail-Servern oder stark genutzten interaktiven Applikationen kommt es auf den Datendurchsatz an. Da dabei alle Daten über das Netz gehen, muss diesem Faktor entsprechende Aufmerksamkeit geschenkt werden.

Im Grunde bringt das Duo aus XenServer und Dell Equallogic hierfür gute Voraussetzungen mit: XenServer beherrscht hierfür Bonding (auch "Trunking"), das SAN kann ebenfalls den Datenstrom über die mindestens dreifach ausgelegten Netzwerkadapter bündeln.

In der Praxis liefert das Gespann eine gute Performance beim Schreiben und Lesen, die für die meisten Anwendungen und VMs genügen wird. Bei starker Beanspruchung ist jedoch eine weitere Optimierung angeraten, wobei dann überprüft werden sollte, ob die Kombination dafür ausreicht.

In unserem Test wurde auf der XenServer-Seite ein Bonding der zwei im Server vorhandenen NICs im Storage-Subnetz eingerichtet. Bei einem Schreibtest auf die "Xen Virtual Disk" zweier VMs, die auf einem Rechner liefen, waren rund 60 bis 70 MB/s je VM erreichbar.

Bei echtem Bonding sollte jedoch über die zwei vorhandenen Netzwerk-Links eine höhere Performance erreichbar sein. Citrix erklärt die geringeren Werte damit, dass XenServer Source Load Balancing (Bonding Mode 7) nutzt. Dabei wird der Traffic verschiedener VMs auf verschiedene NICs verteilt (daher auch der Name), im Idealfall steht jeder VM eine eigene NIC zur Verfügung. Dies funktioniert für den Storage-Traffic nicht, da der XenServer ("Domain 0") selbst eine VM darstellt.

Wenn in einer VM maximale Performance benötigt wird, empfiehlt sich, entweder den iSCSI-Initiator in der VM statt im Host/XenServer einrichten oder unter Umgehung der Hersteller-Vorgaben den Bond-Modus 0 oder 3 im Host/XenServer ("Domain 0") einzustellen.