VMware Homelab – Hardware für den Homeserver

Die letzten Wochen über habe ich immer wieder häppchenweise Hardware für mein Homelab resp. den Homeserver bestellt. Ich konnte und wollte nicht alles auf einmal bestellen da ich zum einen, wie in einem vorherigen Post bereits angemerkt, kein unbegrenztes Budget habe, und im Moment auch nicht viel Zeit um die Hardware zusammenzubauen. Zudem will ich alles miteinander verbauen, und nicht jetzt mal etwas und in drei Wochen wieder etwas. Das macht mehr Spass 🙂

Nun ist die Hardware endlich komplett und der Zusammenbau kann beginnen. Als Homeserver habe ich meine ehemalige Game-Workstation wieder in Betrieb genommen. Diese bildet eine recht gute und solide Basis, wie ich finde, vor allem aber bietet sie ausreichend Platz für Hardware und Erweiterungen. Ein Intel Prozessor und ein ASUS Rampage Mainboard bilden das Fundament. Dazu gesellen sich insgesamt 64 GB Ram, ein LSI SAS-Controller, einige SSDs sowie ICY-Docks mit Hotplug-Einschüben.

Das ist die Hardwareliste für den Homeserver

CPU: Intel Core i7-3930K 3,2 GHz (Sandy Bridge E)
Mainboard: ASUS Rampage IV Extreme, Intel X79, Sockel 2011
Ram: Kingston Value RAM (2x, 8GB, DDR3-1600, DIMM 240)
SAS-Controller: LSI SAS 9211-8i HBAi (single)
SAS-Kabel: 3ware CBL-SFF8087OCF-10M, SFF-8087 zu 4 x SATA, 1m
VSAN Cache SSD: Crucial BX200 (240GB, 2.5″)
VSAN Capazity SSD: Samsung 850 EVO Basic (500GB, 2.5″)
Hotplug-Bay für die Disks: ICY DOCK MB996SP-6SB 6-Bay 2.5″ Backplane
Case:

Phanteks Enthoo Primo, schwarz (Big Tower, Schwarz)

Und so sieht das ganze aus

Geplanter Ausbau des Homelab

Auf dem Homeserver wird auf einer eigenen SSD ein ESXi installiert. Auf diesem ESXi wiederum werden drei weitere ESXi als virtuelle Maschinen laufen (nested ESXi). Jeder dieser VM sollen eigene physische Disks zur Verfügung stehen. Das Ziel dieses Homelabs ist eine nested ESXi Umgebung für den Betrieb mit VMware Virtual SAN. Auf den virtuellen ESXi werden schlussendlich einige weitere VMs laufen, um Dinge wie HA, DRS, FT etc. zu testen. Auch werde ich meine liebste Backup Software für die Datensicherung einsetzen. Alles in allem ein kleiner feiner Server. Leider lässt das Board nicht mehr als 64 GB Ram zu. Aber für den Anfang ist das für mich absolut ausreichend.

Vielleicht werde ich auch mal in Intel NUCs investieren und das Homelab weiter ausbauen. Drei Stück, mit all-Flash Konfiguration und 32 GB Ram sind die Basis für ein Homelab mit VSAN. Die bekommt man schon für wenig Geld. Müssen ja keine Hochleistungsrechner sein…

Veeam: NetApp Storage Snapshot

Always on, Zero Downtime, Availability, Backups, Snapshot… Heute muss alles zu jederzeit egal von wo aus immer verfügbar sein. Der Aussendienstmitarbeiter will seine Mails auf dem Laptop oder dem Smartphone jederzeit abrufen können. Zeigniederlassungen einer Firma müssen zu jederzeit auf den Terminalservern oder virtuellen Desktops arbeiten können. Der Webshop muss immer laufen damit die Kunden Waren bestellen können. Das sind hohe Anforderungen an die IT in der heutigen Zeit. Aber für alle von uns irgendwie selbstverständlich. Wir nutzen viele dieser Dienste ja selbst auch, und ärgern uns wenn etwas mal nicht funktioniert.

Das gleiche gilt für die Datensicherung. Früher ging es nicht anders, da hat die Datensicherung einfach mal eine Nacht lange, oder länger, gedauert bis alles aufs Band gesichert werden konnte. In der heutigen Zeit nahezu undenkbar. Daten ändern sich heute in kürzester Zeit wieder, vielfach bereits schon während der Sicherung, spätestens kurz darauf. Wie soll man da kurze RPO oder RTO einhalten?

In der heutigen Zeit, wo bereits ein sehr hoher Virtualisierungsgrad bei den meisten Firmen vorhanden ist, sollte das möglich sein. Zumindest wenn man mit einer Verfügbarkeitssoftware wie Veeam Backup & Replication resp. Veeam Availability Suite arbeitet. Ja ihr habt richtig gelesen. Verfügbarkeitssoftware steht da. Mit Veeam lässt sich viel mehr machen als bloss Daten zu sichern. Klar, das geht einfach, gut und schnell mit Veeam. Aber mit dieser Software lässt sich mehr machen. Kurze RPO oder RTO lassen sich realisieren, Veeam nennt das kombiniert RTPO. Einzelne Dateien, Ordner oder gar ganze virtuelle Maschinen lassen sich innerhalb von Minuten wiederherstellen. Innerhalb von kurzer Zeit einen kompletten Site Failover durchführen. Alles möglich mit Veeam.

Storage SnapShots

Heute möchte ich euch eine Funktion etwas näher bringen. Die Storage Spezialisten und NetApp Freunde kennen dies sicher schon länger. Storage Snapshots. Das ist etwas ähnliches wie ein Snapshot einer virtuellen Maschine zu erstellen. Jedoch nochmals eine Ebene tiefer direkt auf der Storage. Das ist einfach, schnell, und minimiert den Einfluss auf die laufenden virtuellen Maschinen um ein vielfaches. Der laufende Betrieb wird dadurch nicht gestört. Und wenn eine VM nicht mehr sauber läuft, oder Daten gelöscht wurden, kann dieser Storage Snapshot genutzt werden, um die Sache rasch und einfach zu beheben.

NetApp-logo-smallVeeam ist ein NetApp Alliance Partner und unterstützt eine breite Palette von Storage Systemen. Diese enge Zusammenarbeit zwischen Veeam und NetApp macht es möglich, das Maximum aus der bestehenden Virtualisierungsinfrastruktur herauszuholen. Ebenso kann ein Maximum an Verfügbarkeit, sowie schnelle Backups und schnelle Restores zu gewährleistet werden.

Wie nutze ich NetApp Storage SnapShot in Veeam

Wenn ihr schon mit Veeam arbeitet und einen Backup Job eingerichtet habt, geht ihr im Prinzip durch die gleichen Schritte durch. Nur das Repository, also das Ziel der Datensicherung, ändert sich. So einfach lässt sich das einrichten. Etwas mehr Details zeige ich euch anhand der nachfolgenden Screenshots.

In der Veeam Console erstellt ihr einen neuen Backup Job:

Storage SnapShot

Ihr gebt dem Backup Job einen passenden Namen…

Storage SnapShot

…und fügt die gewünschten VMs hinzu. Wählt hierbei aber die verfügbaren Speicher aus in der Anzeige, nicht die ESXi Hosts!

Storage SnapShot

Als Backup Repository wählt ihr nun aus der Dropdownliste “NetApp SnapShot” aus.

Storage SnapShot

Die bekannten Funktionen zum “application-aware processing” können wie bei einem normalen Backup Job über “Advanced” gesetzt werden (VSS etc.). Vergesst die notwendigen Guest OS Credentials nicht.

Storage SnapShot

Erstellt einen Zeitplan für eure Storage Snapshots und schon seid ihr fertig.

Storage SnapShot

Weiterführende Informationen

Veeam: kleine Performance-Optimierung

Mit dem Release von Veeam Backup & Replication v9 wurde die allgemeine Performance im Vergleich zu den Vorgängerversionen weiter verbessert. Version 8 lief schon sehr gut und hat überzeugende Resultate gezeigt. Mit Version 9 wurde das aber nochmals getoppt. Ebenso sind viele neue Features in die Software integriert worden. Drei kleine, vielleicht eher versteckte Features, möchte ich euch heute vorstellen. Sie sollen euch helfen noch etwas mehr Performance aus der Software rauszuholen und eure Backupzeitfenster weiter verkleinern.

Use per-VM backup files

Das erste der drei Feature ist auf Repository-Ebene zu finden und heisst “Per-VM Backup Files”. Wenn ihr einen Backup Job einrichtet und ihn auf das gewünschte Repository sichern lasst, macht Veeam erstmal eine grosse vbk-Datei und sichert dort alle VMs rein. Das gleiche passiert bei den darauf folgenden inkrementellen Sicherungen, da ists einfach eine grosse vib-Datei. Im Endeffekt wird einfach mit einem Stream auf das Repository geschrieben.

Mit der Funktion “Per-VM Backup Files” aus Version 9 sichert der Backup Job nicht mehr alles in einer Datei sondern erstellt für jede VM eine eigene Backup Chain. So könnt ihr das Repository besser auslasten und mehrere Streams parallel auf das Repository schreiben. Das steigert die Backup Performance erspart euch unter Umständen etwas Zeit beim Backup, da die Parallelisierung nicht nur im Job sondern auch auf Repository-Ebene genutzt werden kann. Ebenso hilfreich ist die Funktion, falls man eine VM restoren muss während das Backup läuft. So wird nicht das gesamte Backup-File durch Veeam blockiert sondern nur die Files die grad gesichert werden.

Macht einen Rechtsklick auf euer Repository => Edit => Repository => Advanced => Haken setzen bei “Use per-VM backup files”

Hinweis: bei einem leeren Repository wird diese Funktion beim nächsten Lauf des Backup Jobs aktiv. Bei einem Repository welches bereits genutzt wird muss erst ein Full Backup gemacht werden. Ab dem Startzeitpunkt des Full Backups wird pro VM eine Backup Chain erstellt.

Exclude deleted file blocks

Das zweite Feature ist auf Stufe Backup Job zu finden. Mit dem Aktivieren dieser Funktion werden gelöschte Datenblöcke innerhalb einer VM nicht mehr durch Veeam gesichert. Das erspart euch einige Gigabyte (oder vielleicht mehr) an Platz im Repository. Wenn man innerhalb einer VM Daten löscht (Platten bereinigt, Datenbanken verkleinert, grössere Datenmengen löscht) dann werden diese Blöcke als Frei / Überschreibbar markiert. Veeam achtet beim Changed Block Tracking darauf und sichert diese Blöcke, da sie sich ja verändert haben.

Wenn man nun die gelöschten Blöcke ausklammert mit dem Aktivieren dieser Funktion, weiss Veeam dass solche Blöcke nicht gesichert werden müssen, da sie gelöscht wurden und dort somit keine Daten enthalten sind.

Macht einen Rechtsklick auf den gewünschten Backup Job => Edit => Storage => Advanced => Storage

File Exclusions

Das dritte Feature im Bunde kennt man von diversen anderen Backupprogrammen. Neu in Version 9 können nun auch Dateien oder Ordner explizit vom Backup ausgeschlossen oder gegebenenfalls inkludiert werden. Dieses Feature findet man auf der Stufe der virtuellen Maschine. Vielleicht ist diese Funktion nicht unbedingt eine Performance-Optimierung. Aus meiner Erfahrung wird das Backupzeitfenster auf jeden Fall nicht sehr verlängert.

Nehmen wir einen WSUS-Server als Beispiel. Da liegen zig Gigabyte an Daten herum, Updates für Windows, Office und Co. und ihr wollt die nicht sichern. Das ist durchaus legitim. Sind ja Updates, kann man jederzeit wieder neu herunterladen. Das können aber auch andere Ordner oder Files sein, wie bspw. Druckertreiber. Ihr wisst selbst am Besten was ihr alles an Daten in eurer Infrastruktur habt.

Mit der Funktion von File Exclusions sagt ihr auf Stufe der VM welche Dateien oder Ordner ihr explizit nicht sichern wollt. Oder eben doch, wenn an einer VM noch eine Disk dranhängt, wo nur eine handvoll Ordner mit etwas an Daten drauf liegen. Dann könnt ihr explizit diesen Ordner angeben das er auch gesichert wird.

Macht einen Rechtsklick auf den gewünschten Backup Job => Edit => Guest Processing => Applications => Klickt die VM an => Edit => File Exclusions

Fazit zur Performance

Alles in allem drei doch sehr hilfreiche Funktionen, finde ich, wenn es um Performance und Platz sparen geht. Die Performance von Veam Backup & Replication sucht seinesgleichen. Ich persönlich kenne keine Backupsoftware die schnell mal über den Mittag in einer halben Stunde eine ganze vSphere Infrastruktur sichert. Klar, das ist sicher abhängig von den eingesetzten Komponenten (Hosts, Storage, Backupserver, Netzwerk etc.). Und wenn man da noch das eine oder andere Quäntchen rausholen kann, wieso nicht? Selbst physische Server können mittlerweile mit Veeam gesichert werden, bald sogar richtig sauber auch Exchange und SQL, inkl. Log-Truncation. Aber dazu zu einem späteren Zeitpunkt mehr…

Veeam Dateierweiterungen / Filetypes / weiterführende Links

Dateierweiterung Beschreibung
.vbk Full backup file
.vib or .vrb incremental backup file
.vbm Backup Metadata
.bco Veeam configuration backup
.vsb Pointers to backup data blocks
.vlb SQL server transaction log files

VMware vSphere Homelab: Die erste VM läuft im PoC

vSphere Web Client - vCenter

Heute Abend habe ich endlich wieder Zeit gefunden um mich um meinen Proof of Concept (PoC) zu kümmern. Wie vor einiger Zeit angekündigt arbeite ich derzeit an einem PoC für mein Homelab. Das Ziel des Homelab ist eine Anzahl an nested ESXi auf einem physischen ESXi zu installieren, und ganz oben drauf, auf den nested ESXi, einige VMs zu Testzwecken einzurichten. Schlussendlich soll mir das Homelab zum besseren Verständnis der VMware Technologien und zur Vorbereitung auf Zertifizierungsprüfungen dienen. Da noch nicht die gesamte Hardware bei mir ist (eine gute Basis ist sehr wohl vorhanden, es fehlen aber noch verschiedene Komponenten) musste ich mich etwas einschränken. Im Blogpost über die ersten Gehversuche im Homelab habe ich die ersten Schritte erklärt.

Nun habe ich heute Abend also meine erste VM innerhalb des PoC Homelabs, also dem ESXi Cluster mit VSAN, eingerichtet und installiert. Es war zu Beginn etwas mühsam. Ich bin auf das eine oder andere Problem gestossen welches ich lösen musste. Angefangen bei der VM-Konsole, über das Mounten des ISO-Images für das Betriebssystem bis hin zu DNS.

Problem 1 – PoC und die Eingabegeräte

Besonders mühsam war die VM-Konsole, also der “Bildschirm” über welchen ich die VM anschauen und bedienen kann. Mit vSphere 6 läuft der vSphere Web Client richtig gut. Ich habe im ersten Moment gar nicht daran gedacht den C# Client (Fat Client) zu installieren. Die Performance des Web Client ist toll, ein riesiger Sprung im Vergleich zu dessen Vorgängerversionen. Jedoch ist es so eine Sache mit der VM-Konsole in der HTML5 Oberfläche im Browser. Die Tastatur hat funktioniert, auch klicken mit der Maus war drin, aber den Cursor konnte ich nicht bewegen. Ich denke da herrscht noch Nachholbedarf seitens VMware. So musste ich dennoch den VMware vSphere Client herunterladen und installieren und konnte dann über diesen bequem die VM-Konsole starten.

Problem 2 – ISO-Image in den Datastore laden

Zugegeben, dieses Problem ist noch nicht gelöst. Aufgrund der nichtssagenden Fehlermeldung konnte ich hier auf die Schnelle keine Lösung finden. Es war nicht möglich via Browser (HTML5 Web Client) ein ISO-File in den VSAN Datastore hochzuladen, um dies dann bspw. für die Installation einer VM zu nutzen. Also musste ich das ISO-Image beim virtuellen (nested) ESXi einbinden und durchreichen. Das ist sicher nicht der übliche Weg, aber er hat funktioniert. Und nur für den PoC reichts allemal. Aber ich suche noch nach einer Lösung für dieses Problem.

Problem 3 – DNS, DNS, DNS…

Wenn es in einem Netzwerk zu irgendwelchen Problemen kommt, ist das wohl einer der ersten Punkte den man prüft. DNS. Kann ich den Hostnamen pingen? Wird der Hostname korrekt in eine IP-Adresse aufgelöst? Funktioniert das ganze auch zurück?

"Unable to connect to the MKS: Login (username / password) incorrect"

Das war die Fehlermeldung wenn ich die VM-Konsole starten wollte. Ein erster Ansatz war eine Konfigurationsdatei von VMware Workstation anzupassen und dort drin den “authd.client.port” auf Port 902 zu stellen (war bei mir 903). Anschliessend noch den “VMware Authorization Service” sowie den “VMware Workstation Server” neustarten, dann sollte es gehen. Sollte. Ging aber nicht. Also weitergrübeln und suchen. Ich fand einen Beitrag in der VMware Community der schlussendlich zur Lösung half. Anscheinend sind gewisse VMware Dienste / Programme heikel was DNS angeht. Wenn DNS nicht sauber funktioniert, funktionieren auch bestimmte Dinge bei VMware nicht. So konnte ich mich bspw. über die IP-Adresse der vCenter Server Appliance mit dem vSphere Client anmelden. Sobald ich aber die VM-Konsole öffnen wollte, erschien obige Fehlermeldung.

Sodann habe ich auf meinem Rechner das Hosts-File gesucht und die notwendigen Einträge gemacht. Anschliessend habe ich mich über den FQDN der vCenter Server Appliance mit dem vSphere Client verbunden und konnte erfolgreich die VM-Konsole starten.

Ach ja, so sieht sie aus, die erste VM im PoC Homelab…

VMware vSphere Homelab – erste Gehversuche

VMware Workstation 12 Pro

Gestern Abend habe ich meine ersten Gehversuche mit einem VMware vSphere Homelab gestartet. Ja, Gehversuche. Weil ich keine unlimitierte Hardwarekapazität zu Hause habe, und nicht hunderte von Dollar in ein virtuelles Lab in der Cloud investieren kann und will, musste ich mir erst mal Gedanken machen wie ich das ganze angehen soll. Also musste ich ein Proof of Concept für ein Homelab erarbeiten.

VMware Workstation 12 Pro - Homelab
VMware Workstation 12 Pro – Homelab

Ich musste meine Idee zu Papier bringen, um zumindest die grössten Fallstricke im Vornherein zu erkennen und zu lösen. Welche vorhandene Hardware kann ich nutzen und wie kann ich sie erweitern? Wie installiere ich einen Hypervisor als virtuelle Maschine und wie verwalte ich das ganze? Brauche ich dazu einen Domaincontroller? Wie mache ich das mit dem Storage?

Das waren einige der Fragen die ich mir für mein Homelab stellen musste und auf die ich auch Antworten gefunden habe. Anschliessend habe ich viel Zeit mit Recherchen verbracht, im Internet gesucht wie das andere Leute gelöst haben. Viele interessante Ansätze, technisch anspruchsvolle Lösungen und verschiedenste Hardware konnte ich so kennen lernen. Und natürlich auch mit meinen Ansätzen vergleichen um zu sehen ob es noch weitere Fallstricke gibt.

Somit werde ich als übernächsten Schritt meine ehemalige Workstation mit zusätzlicher Hardware aufrüsten. Die ersten bestellten Teile sind bereits eingetroffen und warten auf die Montage. Die CPU-Basis ist gut, genügend Cores sind vorhanden. Dazu gesellen sich dann 64 GB Ram und verschiedene SSD-Disks sowie ein SAS-Controller. Weitere Details dazu liefere ich sobald diese Maschine zusammengebaut ist. Und wer weiss. Vielleicht wird Version 2.0 meines Homelab ja auch aus einigen kleinen Intel NUC’s bestehen…

Die ersten Schritte im Homelab

Parallel zur Hardwareplanung und -Beschaffung habe ich mit VMware Workstation eine kleine Version meines Homelabs auf meiner aktuellen Workstation eingerichtet. Mit diesem Minilab arbeite ich am Proof of Concept. Wenn die Hardware mal zusammengebaut ist, will ich nicht tagelang mit der Installation beschäftigt sein, dann will ich die Ressourcen schnell nutzen und mit dem Lab produktiv arbeiten. Der Schwerpunkt liegt dabei auf Tests von verschiedenen Szenarien als auch dem Ausprobieren der Technik und Software sowie der Vorbereitung auf Zertifizierungsprüfungen.

Jetzt aber mal los…

Zuallererst kümmerte ich mich um die Installation eines Domaincontrollers. Aufgrund eines bereits vorhandenen Server-Templates auf Basis von Windows Server 2008 R2 konnte ich hier den Zeitaufwand drücken. Folglich war rund eine Stunde und einige Windows Updates später eine Domäne inkl. DNS-Server eingerichtet.

Dank dem Blog von William Lam konnte ich auch den Zeitaufwand für die Installation von virtuellen ESXi Servern auf ein Minimum reduzieren. Nach etwas weniger als zehn Minuten waren drei ESXi installiert, konfiguriert und bereit. Auch auf dem Blog von Florian Grehl habe ich gute Tipps gefunden wie man schnell und einfach eine vCenter Server Appliance in Betrieb nimmt. Das Deployment an sich war einfach. Allerdings habe ich mir dann doch ernste Gedanken gemacht ob das Ding jetzt läuft oder nicht, als sich nach 10 Minuten der Ladebalken noch keinen Millimeter weiter bewegt hat. In den Kommentaren zum Artikel von Florian Grehl habe ich aber dann gelesen dass es gut mal eine Viertelstunde dauern kann bis vCenter das erste Mal gestartet ist. Puhh, nochmal gut gegangen.

Homelab Troubleshooting und erste Bilder

Heute Abend werde ich den Fehlermeldungen im vCenter auf den Grund gehen. Insgesamt sind elf Warnungen und Alarme vorhanden welche Virtual SAN betreffen, alles Integritätsalarme. Ich bin gespannt was dabei rauskommt. Nun folgen aber erst mal einige Bilder des “Setups”. Mehr Informationen zum Troubleshooting gibt es zu einem späteren Zeitpunkt.