Mostly Anything

IT Blog über VMWare, SQL, Storage, Security und mehr.

Mostly Anything header image 2

Perl Backupscript für VMWare auf Netapp

Juni 12th, 2008 · 7 Kommentare

Im letzen Artikel ging es um die Wahl des geeigneten Backups der virtuellen Maschinen. Da wir Filer von NetApp einsetzen, fiel die Wahl leicht. Snapshots, die dann auf Nearstores in Zürich und Köln gespiegelt werden. Doch wie wird dies implementiert? Was haben wir für Möglichkeiten?

  • Cold Backup
    Hier werden die VMs runtergefahren und dann ein Snapshot erstellt
  • Warm Backup
    Die Snapshots werden in Koordination mit VMWare erstellt, damit die Daten konsistent sind.
  • Hot backup
    Erstellen der Snapshots auf dem Storage Systeme ohne Koordination mit VMWare

„Cold backup“ kommt für uns nicht in Frage. Die VMs runterzufahren und dann zu backup ist nicht praktikabel.

„Hot backup“ ist relativ heikel. Es soll zwar Leute geben, die alle Stunde ein Storage Snapshot erstellen und dann argumentieren, dass die Möglichkeit besteht, das ein paar dieser Snapshots inkonsistent sind, aber bei 24 Snapshots im Tag mind. 1 „guter“ Snapshot vorhanden sein müsste. Rein rechnerisch. Genau das müsste ist mir aber etwas zu wenig sicher. Falls die dritte Lösung zu komplex oder zu langsam wäre, könnte dies eventuell in Betracht gezogen werden. Sonst eher nicht. Müsste ist mir einfach zu wenig.

Beim „Warm backup“ werden die VMs zuerst in einen spezielle „Backup Mode“ gesetzt und dann wird der Storage Snapshot erstellt. Mit VMWare ist dieser Vorgang zumindest in der Theorie relativ simpel. Als erstes wird ein VMWare Snapshot erstellt. Dadurch wird sichergestellt, dass auf der VMDK der virtuellen Maschine keine I/O Operationen mehr durchgeführt werden. Diese werden in eine neue Datei geschrieben (wegen dem VMWare Snapshot). Danach kann ein Snapshot auf dem NetApp Storage erstellt werden. Dieser ist konsistent. Am Schluss wir der VMWare Snapshot wieder gelöscht und alle I/O Operationen werden wieder auf die originale VMDK Datei geschrieben. Von NetApp gibts auch ein Script dafür (PDF, Seite 39). Leider löscht dieses alle bestehenden VMWare Snapshots, da es vmware-cmd verwendet. Da wir VMWare Snapshots auch für Testserver benutzten, um die Entwickler zu unterstützen ist dies ein Problem. Ich habe ein kleines Script geschrieben, dass das Perl API von VMWare benutzt und dadurch nur den spezifischen Snapshot löscht. Das Script verbindet sich mit Virtual Center und erstellt nur von den VMs einen Snapshot, die auf einem spezifischen Datastore liegen. Nun ist der ganze Backup Vorgang sehr einfach:

  1. VMWare Snapshot mit Script erstellen (stellt sicher, dass keine I/O Operationen auf der VMDK sind)
  2. NetApp Snapshot
  3. VMWare Snapshot mit Script löschen

Somit können wir konsistente Backups im laufenden Betrieb erstellen. Bei 14 virtuellen Maschinen auf einem ESX Host (Dell PowerEdge 2950 mit 16GB RAM) geht der ganze Vorgang rund 27 Sekunden. Dadurch dass wir NetApp Snapshots fürs eigentliche Backup verwenden, werden nur Deltas gespeichert. Für Desaster Recovery werden diese Snapshots mit Bordmitteln an den zweiten Standort in Zürich und nach Köln gespiegelt.

Das Script (Script für VMWare Snapshots) hat folgende Parameter:

  • -datacenter Der Name des Datacenter, in dem die ESX Hosts sind. Muss angegeben werden.
  • -datastore Name des Datastore, der gesichert wird. Muss angegeben werden.
  • -action {create|delete} Sollen Snapshots erstellt (create) oder gelöscht (delete) werden? Muss angegeben werden..
  • -verbose {0|1} Standard ist 0, bei 1 werden noch weitere Infos ausgegeben.
  • -snapshotname Standard ist ITOP_NetApp_Snapshot. Dieser Name wird für den Snapshot verwendet. Alle Snapshots mit diesem Namen werden bei der Action delete gelöscht.

Tags: VMWare

7 Antworten bis jetzt ↓

  • 1 isi // Jan 27, 2009 at 11:14

    der link für das perl-skript ist kaputt

  • 2 Marc // Jan 30, 2009 at 13:33

    Der Webserver des Hosters will das Script sonst ausführen. Ich muss schauen, ob ich mittels einem .htaccess File das beheben kann. Als Workaround kannst du mit Rechtsklick und speichern als das Script benutzen.

  • 3 Roger // Feb 13, 2009 at 15:35

    Würde gerne das Script „managesnapshots.pl“ für meine Umgebung testen – kann es aber nicht downloaden, auch nicht über speichern unter.

    Gibt es einen andren Weg an die Datei zu kommen?

  • 4 Tino // Apr 10, 2009 at 19:53

    kannst du das script evtl. als zip datei auf den webserver legen? ich krieg es auch nicht zum runterladen.

  • 5 masto // Apr 14, 2009 at 12:39

    Hi, der Download mit Rechtsklick geht leider auch nicht mehr… Kannst du das Script bitte nochmals bereitstellen? Danke MFG masto

  • 6 Marc // Mai 27, 2009 at 13:24

    Script Link funtioniert jetzt. Das Script werde ich aber in Zukunft nicht mehr benutzten. VIBE von NetApp beherrscht jetzt auch einzelne Datastores. Ich werde das in einem neuen Artikel behandeln.

  • 7 Backup von VMWare auf NetApp Filer mit VIBE // Mai 27, 2009 at 14:34

    […] hatte ja in einem früheren Artikel ein Skript vorgestellt, mit dem ich Backup von VMWare Hosts auf NetApp Filern gemacht habe. Es gab […]

Hinterlasse ein Kommentar