Tutorial: XenServer und RDX

Bislang sicherten wir immer auf RDX-Laufwerke* mit 320GB-Cartridges*, via Silex USB-Server*. Da dies aber mit wachsender Backup-Grösse immer länger dauert, und wir via Silex USB-Server* nur einen Durchsatz von ca. 25Mbps hatten, bekam ich den Auftrag ein internes RDX-Laufwerk* an unseren XenServern so anzubinden, dass wir die Cartridges direkt an eine VM weitergeben, und somit etwas Geschwindigkeit herausholen können.

Die Vorbereitung

Als erstes benötigen wir ein Windows, welches das XenCenter installiert hat. Dies ist zwingend notwendig, da die hier vorgeschriebene Methode die Utility “XE.EXE” aus dem XenCenter benötigt.
Ich empfehle hier übrigens – wie immer – sämtliche Windows Updates auf den virtuellen Maschinen herunterzuladen. Sicher ist sicher.

Nachdem nun ein aktuelles Windows-System vorhanden ist, geht es weiter mit der Konfiguration der “usbmount.bat”. Diese könnt ihr Euch übrigens direkt bei mir herunterladen.

usbmount.bat anpassen

1. Öffnet die Datei mit einem Texteditor wie Notepad++ oder dem “Editor” von Microsoft. Die nachfolgenden Änderungen müssen zwingend erledigt werden, damit das Anbinden, bzw. Enfernen der RDX-Cartridges gelingt.

2. Benutzername, Passwort und IP-Adresse des XenServers angeben (Notwendig für die Authentifizierung am Server):

SET XE_USERNAME=root
SET XE_PASSWORD=PASSWORT
SET XE_SERVER=0.0.0.0

3. Findet die UUID der SR “Removable Storage” heraus. Dies könnt Ihr mit folgendem Befehl in der XenServer-Console tun:

xe sr-list name-label=Removable\ Storage

4. Anschliessend passt Ihr die UUID in der Batch-Datei an:

REM Removable Storage Repository UUID
SET REMOVABLE_SR_UUID=UUID_EINTRAGEN

5. Findet die UUID der VM heraus, die später die Backups schreibt, die also die Cartridge des RDX-Laufwerks zugewiesen bekommen soll:

xe vm-list

5.1. Sofern Ihr den Namen der VM im XenCenter kennt, könnt Ihr den Befehl auch etwas ausweiten, da gerade bei vielen VMs schnell die Übersicht des vm-list-Befehls verloren geht:

xe vm-list name-label="NAME DER VM" 

6. Anschliessend die UUID wieder in der Batch anpassen:

REM UUID of the VM you wish to attach the USB storage to
SET VM_UUID=CHANGEME

7. Platten-Reihenfolge festlegen. Das ist wichtig, weil Ihr sonst in Zukunft eventuell Überschneidungen bei der Disk-Zuweisung bekommen könntet. Wenn eine VM nur eine Festplatte (z.B. die VHD) zugewiesen hat, so ist die nächste freie Platte “hdb”:

REM Device name/order on the VM (example: hdb, hdc, hdd…)
SET DEVICE_NAME=hdb

8. Führt die Batch zu Testzwecken auf einem CMD heraus aus. Beachtet hierbei jedoch, dass diese Batch mit den Argumenten ATTACH und DETACH (zum Hinzufügen und Entfernen des Laufwerks) aufgerufen werden muss.

Einlegen, mounten, sichern – aber wie auswerfen?

Nachdem wir nun mit der Batch-Datei das Laufwerk eingebunden haben, es funktioniert und das Backup auch schon geschrieben wurde stellt sich berechtigterweise die Frage, wie die RDX-Cardridge nun wieder aus dem RDX-Laufwerk heruaszubekommen ist. Normalerweise sollte ein Klick auf den “Eject”-Button am RDX-Laufwerk doch genügen, damit die Cardridge herauskommt – oder?!

Das stimmt halb. Sofern das Laufwerk nach erfolgtem Backup wieder mit dem DETACH-Befehl entfernt wird, würde ein Knopfdruck reichen, um das Band auszuwerfen. Was aber nun, wenn die Backup-Routine mal “hängt”, die Sicherung also nie zu dem Punkt kommt, an dem das Laufwerk entfernt werden soll?

Hier folgt nun der eigentliche Teil. Der Teil, in dem wir einen Cronjob anlegen, welcher uns jedem Morgen das Band auswirft.

Einrichten des Cronjobs

1. Verbindet Euch mit dem XenServer (am besten via XenCenter) und öffnet die XenServer-Console (nicht! xsconsole)

2. Erstellt eine Datei “eject.sh” im “root”-Verzeichnis:

touch /root/eject.sh

3. Die Datei werden wir nun mit dem eject-Befehl für das RDX-Cartridge* ausstatten. Hierzu benötigen wir den Befehl fdisk-l – bei mir hatte die RDX-Cartridge* die Kennung /dev/sdd,mit welcher ich nun fortfahre.

vi /root/eject.sh

öffnet den Editor vi, mit dem Ihr folgendes in die Datei /root/eject.sh eintragt (vi-Befehle):

eject -s /dev/sdd

Passt /sdd aber bitte an Eure eigene Kennung an!

4. Als nächstes vergeben wir die Rechte für die Datei /root/eject.sh. Das ist wichtig, denn sonst kann der Cronjob nicht ausgeführt werden. Ich hing zuletzt gut 2 Stunden an diesem einen Problem – wer denkt auch schon daran, dass er ls Besitzer die eigene Datei nicht ausführen kann?!:

chmod 755 /root/eject.sh

5. Nun fügen wir die Datei /root/eject.sh im crontab hinzu (Für Anfänger empfehle ich die Webseite von cyberciti). Der Cronjob soll Montags bis Freitags um 7:15 Uhr ausgeführt werden:

15 7 * * 1-5 /root/eject.sh

6. Startet vorsichtshalber den XenServer neu. Dies ist aber kein Muss!

Zurücklehnen und geniessen!

Geschafft! Endlich ist der Cronjob, sowie die ATTACH- und DETACH-Funktionalität eingerichtet, das Backup läuft schneller vor sich hin, und Ihr habt erfolgreich einige Minuten damit verbracht, produktiv zu sein, ohne viel dafür tun zu müssen!

Glückwunsch ;)

 

* = Partnerlink. Kostenloses KnowHow gegen eine kleine Provision. Fair, oder? ;)

Credits:
Ein riesiges Dankeschön an René Klaefiger von der Firma Internet Factory für seine Unterstützung bei einigen Befehlen :)

Veröffentlicht von

Manuel Sychold, Citrix Certified Adminitrator for XenServer 6 und XenDesktop 5 arbeitet als CIO in einem international tätigen Akustik-Unternehmen. Manuel bloggt hauptsächlich über Citrix -Produkte (XenServer, XenDesktop, XenApp), sowie Microsoft-Produkte. Manuel erreicht man über Google+

2 Kommentare » Schreibe einen Kommentar

  1. Schade, der Link zur usbmount.bat führt ins leere. Sonst hätte ich jetzt bestimmt viel Lob hier gelassen ;-)

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.


Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This Blog will give regular Commentators DoFollow Status. Implemented from IT Blögg