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
26.09.14
[CentOS 6] Office 365 als SMTP relay für Postfix nutzen
yum install postfix cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
Relayhost konfigurieren:
postconf -e 'relayhost = smtp.office365.com:587'
TLS Verschlüsselung aktivieren:
postconf -e 'smtp_tls_security_level=encrypt'
IPv6 als Internet Protokoll deaktivieren:
postconf -e 'inet_protocols=ipv4'
Authentifizierung aktivieren, auth mapping Datei erstellen und in auth Datenbank konvertieren:
postconf -e 'smtp_sasl_auth_enable = yes'
postconf -e 'smtp_sasl_security_options = noanonymous'
postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
echo "smtp.office365.com user@domain.com:password" > /etc/postfix/sasl_passwdchown root:root /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
Namenszuordnung erstellen um zu erreichen, dass Exchange Mails annimmt:
postconf -e 'canonical_maps = hash:/etc/postfix/canonical'
vi /etc/postfix/canonical
root nagios@netbiscuits.com
postmap /etc/postfix/canonical
25.09.14
[Linux] Dateien rekursiv nach Suchstring durchsuchen
Es werden alle Dateien des aktuellen Verzeichnisses und aller Unterverzeichnisse nach 'Suchstring' gesucht. (-i) ignoriert Groß- und Kleinschreibung. Will man einen erweiterten regulären Ausdruck suchen, benutzt man einfach egrep.
$ grep -s -r -i 'Suchstring' ./
Will man Fehlermeldungen ignorieren fügt man noch '-s' (supress errormessages) hinzu.
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
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.



