05.12.14
Hyper-V running Linux-VMs - Best Practices
Best Practices for running Linux on Hyper-V
Linux and FreeBSD Virtual Machines on Hyper-V
22.05.14
V2V oVirt <--> HyperV
Virtuelle Maschine in oVirt herunterfahren und exportieren.
Die exportierte Festplatte (RAW-Image ohne Dateiendung) auf das Hyper-V Storage kopieren.
Mittels vhdtool.exe in das Hyper-V Format (VHD) konvertieren --> vhdtool.exe /convert "folder/virtualdisk"
Das vhdtool hängt an das RAW-Image einen VHD footer an, wie im obigen Screenshot ersichtlich ist.
Nach dem Konvertieren hängt man .vhd an den Dateinamen an (z.B.: ren C:\temp\temp temp.vhd)
Nun kann man in Hyper-V eine VM erstellen und booten.
Unter umständen erhält man bei Linux VMs die folgende Fehlermeldung:
"e2fsck: The superblock could not be read or does not describe a correct ext2 filesystem"
Dies kann man folgendermaßen beheben:
In meinem Fall lag es daran, dass der Linux Kernel die Partitionslabel geändert hat.
Mit fdisk -l die Partitionslabel abfragen und per "vi /etc/fstab" an die ausgabe con fdisk -l anpassen.
Zum Beispiel von /dev/vdb1 nach /dev/sdb1.
Sollte vi im read only mode gestartet werden, muss man das filesystem im r/w Modus remounten: mount -o remount,rw /
21.05.14
Hyper-V 3.0 - Kernel Panic durch Hyper-V Treiber
Das gleiche Ergebnis erhält man auch bei der Migration (P2V oder V2V) nach Hyper-V.
Da die Kernel in CentOS bzw. RHEL 5.9 und höher die Version 3.1 der Hyper-V Integration Services Module enthalten, erwartet das System, dass diese beim Booten geladen werden. Da diese Module im 5.5er Kernel nicht enthalten waren, werden sie beim Kernel Upgrade Prozess von mkinitrd nicht erkannt und deshalb im neuen ramdisk Image nicht hinzugefügt.
Um dieses Problem zu beheben, muss man folgendermaßen vorgehen:
- Von CentOS (RHEL) Installationsmedium booten
- "linux rescue" beim "boot:" prompt eingeben
- Alle Dateisysteme im read-write Modus mounten:
mount --bind /proc /mnt/sysimage/proc mount --bind /dev /mnt/sysimage/dev mount --bind /sys /mnt/sysimage/sys chroot /mnt/sysimage
cd /boot
- Backup von der Ramdisk erstellen:
mv initrd-2.6.18-194.32.1.el5.img initrd-2.6.18-194.32.1.el5.old
- Neue Ramdisk mit mkinitrd erstellen:
mkinitrd initrd-2.6.18-194.32.1.el5.img 2.6.18-194.32.1.el5
- Server rebooten
15.04.14
HyperV 3.0 - Panic: early exception
Dieser Fehler tritt bei manchen VM Konfigurationen beim Zuweisen einer bestimmten Speicherkapazität auf oder jedoch beim Zuweisen von CPUs (in unserem Falle 8).
Um NUMA zu deaktivieren geht man folgendermaßen vor.
- VM ausschalten
- Anzahl der CPUs / Speicher reduzieren bis die Maschine hochfährt
- vi /boot/grub/grub.conf
- An die Kernelzeile "numa=off" anhängen
- VM herunterfahren
- Anzahl der CPUs / Speicher auf gewünschten Wert erhöhen
* Non-Uniform Memory Access - Hardware-Konzept für Multi-Prozessor-Systeme, welches jeder CPU einen eigenen Bereich des Arbeitsspeichers zuordnet
02.02.12
VHD verkleinern und in fixed umwandeln
Das Problem besteht darin, dass Windows versucht, die VHD auf den angegebenen Speicherplatz (bspw. 40GB) zu erweitern, was unter Umständen mangels Speicherplatz in einem Bluescreen resultieren kann.
Nun kann man die dynamische VHD verkleinern und direkt "fixen", d.h. die VHD belegt sofort den Speicherplatz, den man für die virtuelle Festplatte gewählt hat.
Start --> Ausführen --> cmd
diskpart
select vdisk file=<
attach vdisk
select volume <Volume Nr>
shrink [desired=<Größe in MB>
select vdisk file=<
detach vdisk
exit
Danach mit VHD resizer in "fixed" umwandeln, fertig!
15.12.11
VHD- und AVHD-Dateien zusammenführen
14.12.11
Ausgeblendete Netzwerkkarte im Geräte-Manager anzeigen
Versucht man nun diese Schnittstelle nach Lan-Verbindung umzubenennen, erhält man die Fehlermeldung: "Lan-Verbindung bereits vorhanden, anderen Namen wählen.".
Um die Netzwerkschnittstelle jedoch wieder auf den ursprünglichen Wert umzubenennen, muss man folgende Schritte durchführen:
- Erweiterte Systemeigenschaften --> Umgebungsvariablen --> Systemvariablen --> Neu
- Name der Variablen: devmgr_show_nonpresent_devices
- Wert der Variablen: 1
Geräte Manager starten --> Ausgeblendete Geräte anzeigen
Hier kann man nun die alte Netzwerkkarte löschen.
Um die Karte umbenennen zu können, fehlt abschließend noch ein Schritt.
Start --> Ausführen --> regedit
Zum Schlüssel "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network" navigieren und die veralteten Einträge entfernen (Sicherung der Registry erstellen).
Nach einem Neustart sollte die Netzwerkkarte automatisch "Lan-Verbindung" heißen.
19.10.11
Windows von bestehender VHD booten
Möchte man eine vorhandene virtuelle Windows-Installation auf einem physikalischen Rechner booten, so kann man das VHD-Image auf der lokalen Maschine einbinden und davon booten.
Zuerst die VHD-Datei auf die lokale Festplatte kopieren, z.B.: C:\VHD\W2k8.vhd
Vom Windows-Installationsdatenträger booten
Achtung: Es muss die Windows 7 oder Server 2008 R2 DVD sein, vorherige Versionen können nicht mit VHDs umgehen.
Im Installationsmenü mit Shift+F10 die Konsole öffnen.
VHD einbinden:
diskpart
select vdisk file=C:\VHD\W2k8.vhd (LW-Buchstabe kann vom tatsächlichen Pfad abweichen)
attach vdisk
exit
Bootmanager und MBR auf Festplatte schreiben und nach Windows 7/2008-Installationen suchen lassen:
bootrec /fixmbr
bootrec/fixboot
bootrec/rebuildBcd
Beim nächsten Startvorgang erscheint ein Bootmenü, in welchem man nun das System auswählen kann.
20.09.11
Linux Integration Services 3.1 released
Der Microsoft TechNet RSS-Feed hat mich allerdings erst heute erreicht.
Features:
- Driver support: Linux Integration Services supports the network controller and the IDE and SCSI storage controllers that were developed specifically for Hyper-V.
- Fastpath Boot Support for Hyper-V: Boot devices now take advantage of the block
Virtualization Service Client (VSC) to provide enhanced performance. - Timesync: The clock inside the virtual machine will remain synchronized with the clock on
the virtualization server with the help of the pluggable time source device. - Integrated Shutdown: Virtual machines running Linux can be shut down from either Hyper-V Manager or System Center Virtual Machine Manager by using the “Shut Down” command.
- Symmetric Multi-Processing (SMP) Support: Supported Linux distributions can use up to 4 virtual processors (VP) per virtual machine.
SMP support is not available for 32-bit Linux guest operating systems running on
Windows Server 2008 Hyper-V or Microsoft Hyper-V Server 2008. - Heartbeat: Allows the virtualization server to detect whether the virtual machine is running and responsive.
- KVP (Key Value Pair) Exchange: Information about the running Linux virtual machine can
be obtained by using the Key Value Pair exchange functionality on the Windows Server 2008 virtualization server.
- Red Hat Enterprise Linux 6.0 and 6.1 x86 and x64 (Up to 4 vCPU)
- CentOS 6.0 x86 and x64 (Up to 4 vCPU)
Für die Betriebssysteme SUSE Linux Enterprise Server 10 und Red Hat Enterprise Linux 5, muss man nach wie vor auf die Version 2.1 zurückgreifen, welche es hier gibt.
20.05.11
debian 6.0.1a unter Hyper-V

Nachdem die CentOS Installation erfolgreich virtualisiert ist, habe ich heute die Virtualisierung von debian Lenny getestet.
Da hier ein Kernel (2.6.38) zum Einsatz kommt, welcher Hyper-V unterstützt, werden keine Integration-Services benötigt.
Installationsmodus: Server ohne GUI
Nach der Grundinstallation sind noch einige Pakete zu installieren:
apt-get update
aptitude update
apt-get install -y build-essential
apt-get install -y ncurses-dev kernel-package fakeroot
apt-get install -y linux-headers-`uname -r`
apt-get install -y linux-source-`uname -r | awk -F"-" '{print $1}'`
cd /usr/src
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2
bzip2 -d linux-2.6.38.tar.bz2
tar xf linux-2.6.38.tar
cd linux-2.6.38
cp /boot/config* ./.config
make menuconfig
Nun werden die “Hyper-V Client Drivers“ aktiviert.
Device Drivers --> Staging Drivers
Kernel-Konfiguration verlassen und Konfiguration speichern.
Nun geht es weiter mit der Kompilierung und der Installation des Kernels:
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-hyperv kernel_image kernel_headers
cd ..
dpkg -i linux-image-2.6.38-hyperv_2.6.38-hyperv-10.00.Custom_amd64.deb linux-headers-2.6.38-hyperv_2.6.38-hyperv-10.00.Custom_amd64.deb
echo -e "hv_vmbus\nhv_storvsc\nhv_blkvsc\nhv_netvsc" >> /etc/initramfs-tools/modules
update-initramfs –u –k 2.6.38-hyperv
Austausch der Netzwerkkarte
Tauscht man die “ältere Netzwerkkarte” gegen die Hyper-V Karte, hat eth0 keine IP-Adresse. Grund hierfür ist der Eintrag in der Datei “70-persistent-net.rules”.nano /etc/udev/rules.d/70-persistent-net.rules
Alle Einträge unterhalb der Kommentare löschen.
Nach einem Reboot übernimmt die Hyper-V Karte die Einstellungen der alten Netzwerkkarte.
Nachdem ich nun debian und CentOS unter HyperV laufen habe, denke ich, dass ich mich für debian entscheiden werde. Das System bootet schon mal wesentlich schneller als CentOS (40sec. gegenüber 150sec.) und im Gesamten scheint es performanter zu laufen.
19.05.11
CentOS 5.6 unter Hyper-V

Hier mal ein kleines How-To, wie man CentOS 5.6 unter Hyper-V zum Laufen kriegt.
Für mich hat sich diese Aufgabe gestellt, da ich nun auch meinen Nagios-Server in die Tonne treten und durch eine virtuelle Maschine ersetzen will.
Welche Distribution schlussendlich das Rennen macht, entscheide ich, wenn Nagios + Centreon installiert sind.
Ich schwanke zwischen Debian Lenny und CentOS 5.6.
Zu allererst sind aber die Distributionen unter Hyper-V zum Laufen zu bringen, was nicht unbedingt trivial ist.
Die synthetische Netzwerkkarte, SCSI-Laufwerke, Herunterfahren per Hyper-V-Manager etc. werden nicht standardmäßig unterstützt.
Jedoch bietet Microsoft die Hyper-V Integration Services 2.1 an, mit welchen man diese Features integrieren kann.
Die Installation von CentOS 5.6 startet man im Textmodus und wählt den Modus Server (Desktop abwählen).
Ist die Grundinstallation auf die ich nicht näher eingehe abgeschlossen, wird das System rebootet und es werden die Systemupdates heruntergeladen:
yum update
reboot
Nach einem erneuten Reboot, werden die für die Installation der Linux Integration Services benötigten Tools installiert:
yum groupinstall "Development Tools"
yum install kernel-devel
yum install gcc
Nun werden die Linux Integration Services 2.1 heruntergeladen, entpackt und installiert.
cd /lib/modules/2.6.18-xx
rm source build
ln -s ../../../usr/src/kernels/2.6.18-xx build
ln -s build source
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
mkdir /opt/linux_ic
cp –R /mnt/cdrom/ /opt/linux_ic
umount /mnt/cdrom
cd /opt/linux_ic/
make
make install
Mit folgenden Befehl kann man prüfen, ob die Hyper-V-Subkomponenten laufen:
/sbin/lsmod | grep vsc
Folgende Ausgabe sollte nun zu sehen sein:
blkvsc
storvsc
netvsc
vmbus
scsi_mod
Nun hat man eine Linux-VM mit installierten Integrationskomponenten.
05.05.11
Microsoft System Center - Data Protection Manager 2010
Umstellung von Exchange 2003 auf 2010: abgeschlossen
Monitoring mittels Nagios: CHECK!
Sodele, wer jetzt denkt, bei mir käme Langeweile auf, hat sich geirrt. ;-)
Mir hat sich vor der Umstellung der Domäne die Frage gestellt, wie ich sämtliche Server und eventuell einige Clients möglichst komfortabel sichere. Da wir MAPS-Abonnenten sind, wurde ich im Action Pack schnell fündig --> Microsoft DPM 2010!
Wichtige Argumente für den Einsatz von DPM waren für mich:
- Support für Hyper-V 2.0
- Funktionen zur Sicherung von Windows Client-Computern (von Windows XP bis zu Windows 7)
- kein teurer Kauf von Zusatzmodulen notwendig (Exchange-Agents, SQL-Agents...)
- komfortable und relativ einfache Verwaltung (Fehlersuche dank Microsoft manchmal etwas umständlich, aber machbar)
Ein weiterer Vorteil von DPM stellt sich für mich dadurch dar, dass ich vom Hostsystem aus die VM sichern kann, ohne diese herunterfahren zu müssen, um sie wegzukopieren.
Mittels DPM kann ich alles per VSS sichern (alle 15 Minuten, 7 Tage die Woche, 30 Tage).
Bei Fileservern, an welchen ständig der Datenbestand verändert wird, eine feine Sache. :-)
Darüberhinaus kann ich im DPM noch Bare-Metal-Recovery aktivieren, d.h., entschließe ich mich dazu, aus einer VM doch eine physikalische Maschine zu erstellen, realisiere ich das Ganze über BMR.
Wieso schreib ich den ganzen Mist hier?
Sollte jemand auf der Suche nach einer Sicherungssoftware sein, mit welcher man ohne großen Aufwand Clients, Server, Hyper-V-Maschinen, SQL- bzw. Exchange-Datenbanken im Griff hat, sollte sich auf jeden Fall Microsofts DPM2010 anschauen.
Nun läuft alles und es wird noch ein bissel rumgetestet, dann kommt schon wieder das nächste Projekt: Panda Gatedefender Integra weg - Watchguard XTM 22 rein
11.01.11
VMDK in VHD umwandeln
1.) VMWare-Tools deinstallieren
2.) VM herunterfahren
Falls die VM auf einem SCSI-Laufwerk installiert ist und das Betriebssystem Windows XP, 2003 oder älter ist, muss man den IDE-Treiber zur VM hinzufügen.
Dieser Schritt ist bei Windows Vista, Windows 7 oder Server 2008 nicht notwendig.
3.) IDE-Laufwerk zur VM hinzufügen (Größe beliebig).
“Adapter: IDE 0 Device: 0” unter “Virtual Device Node”
4.) VM hochfahren und in der Laufwerksverwaltung prüfen, ob ein neues Laufwerk erkannt wurde.
5.) Virtuelle Maschine herunterfahren und IDE-Laufwerk entfernen (delete from disk). VM nicht mehr hochfahren!
6.) VMDK-Datei ins VHD-Format konvertieren. Vmdk2Vhd utility.
7.) VMware Server deinstallieren und die Rolle Hyper-V hinzufügen.
8.) Neue Maschine in Hyper-V mit bestehender Festplatte erstellen.
9.) Hochfahren, Integrationsdienste installieren und neustarten.
10.) IP-Konfiguration prüfen und analog der Einstellungen unter VMWare konfigurieren.
11.) Geräte-Manager auf korrekt installierte Treiber überprüfen.
12.) Nochmals neustarten.
13.) Dienste und Anwendungen auf korrekte Funktion prüfen.
14.) Fertig!