Schlagwort-Archive: Hyper-V

Windows 8.1 booten in eine virtuelle Festplatte (VHD bzw. VHDX)

Seit Windows 7 bietet Microsoft Windows die Möglichkeit direkt in eine VHD (Virtuelle Hard Disk) zu booten. Dies ist besonders nützlich, wenn man wie ich auf seiner regulären Workstation auch entwickeln möchte. Um durch die ganzen Entwicklungswerkzeuge und Dienste (Webserver etc) bei der regulären Arbeit nicht ausgebremst zu werden, isoliere ich meine Entwicklungsumgebung gerne in eine VHD von der ich nur boote, wenn ich die entsprechenden Werkzeuge auch benötige. Diese Möglichkeit kann man selbstverständlich auch für weitere Dienste wie z. B. SpielePC, KinderPC, Server etc verwenden. Jedem dieser Systeme wird dabei die volle Performance des Rechners inkl. all seiner Schnittstellen zur Verfügung stehen. Einzig die Festplatte wird durch die Umleitung in die VHD ein ticken (< 5 %) langsamer sein.

Um eine VHD mit dem gewünschten Betriebssystem zu erstellen, gibt es im wesentlichen drei Möglichkeiten.

  1. Erstellen einer VHD und Installation des Betriebssystems mittels DISM (ersetzt imagex aus dem Windows Automated Installation Kit (AIK))
  2. Einbinden einer über einen HyperV erstellten VHD
  3. Erstellen einer VHD und Installation direkt im System (wie reguläre Installation eines Betriebssystems)

Im folgenden werde die die notwendigen Schritte für die Optionen 1 und 2 erklären. Option drei ist meiner Meinung zu umständlich und zu fehleranfällig. Ich habe diese ausser zum Testen bis jetzt auch nicht verwendet – daher erspare ich euch und mir diese Beschreibung.

Alle Optionen haben gemein, dass man zuerst eine virtuelle Festplatte (VHDx) benötigt. Im Falle von Hyper-V kann man diese mit einem Mausklick in der GUI erzeugen. Für die anderen beiden Wege stehen folgende Möglichkeiten zur Verfügung:

Anlegen einer VHD – der Weg über die GUI

  1. Windowstaste + X drücken und das Disk Management öffnen
  2. Im Menü Action und dann Create VHD auswählen.
  3. In dem sich öffnenden Fenster den gewünschten Speicherort, die Größe, das Format und den Typ auswählen und mit OK bestätigen. (Der Vorgang kann je nach Auswahl etwas dauern).
    snaghtml1b10313_thumb-5627732
  4. Am Ende sollte jedoch im Disk Manager eine neue Festplatte auftauchen. image_thumb-3552987
  5. Durch einen Rechtsklick auf den linken Teil der neuen Platte können wir diese Initialisieren und damit einen Master Boot Record (MBR) erstellen.
  6. Durch einen erneuten Rechtsklick, dieses Mal auf den rechten Teilbereich, können wir ein neues Simple Volume erstellen. Nachdem dieses formatiert wurde, wird dem Laufwerk ein Buchstabe zugeordnet (in meinem Fall K). image_thumb1-7161479

Anlegen einer VHD – der Weg über die Kommandozeile

Selbstverständlich kann man eine VHD auch über eine (administrative) Kommandozeile (CMD) erstellen und erspart sich damit die ganzen Mausklicks – beide Wege führe jedoch zum gleichen Ziel.

diskpart
create vdisk file=g:\Win8_1_template.vhdx maximum=50000 type=expandable
select vdisk file=g:\Win8_1_template.vhdx
attach vdisk
create partition primary
assign letter=K
format quick label=System
exit

Über die Kommandozeile hat man grundsätzlich die Möglichkeit noch etwas mehr zu machen. Es besteht z. B. die Möglichkeit bestehende vdisks als parent zu verwenden. Wie das genau geht und welche Vorteile man davon hat erkläre ich in einem Folgeartikel.

Windows 8.1 VHD mit Hilfe von DISM betanken

Wie eingangs bereits erwähnt wurde die Funktionalität von imagex durch DISM ersetzt und DISM wird bei Windows 8 direkt mit dem Betriebssystem ausgeliefert und muss somit nicht mehr über ein extra Toolset nachinstalliert werden. Die notwendigen Schritte um Windows (egal ob Win7, Win2012 etc) auf die frisch erstellte VHDx zu bekommen sind folgende (Die Kommandozeilen Befehle müssen aus einem administrativen Kommando Promt (CMD) ausgeführt werden!):

  1. Zuerst muss die ISO-Datei des zu installierenden Betriebssystems gemountet werden. Unter Windows 8 erreicht man dies über einen Doppelklick auf die *.iso Datei. Im Explorer sollte daraufhin ein neues DVD-Laufwerk erscheinen (in meinem Fall Laufwerk E).
  2. Einige DVDs enthalten mehrere Editionen des selben Betriebssystems (Pro, Ultimate, Standard, Enterprise etc). Um die richtige Version zu installieren müssen wir daher den Index der Edition herausfinden, die wir installieren möchten. Hierzu führen wir die folgenden beiden Befehle aus (E:\ ist dabei die soeben eingebundene ISO-Datei):
    cd e:\sources
    dism /get-wiminfo /wimfile:install.wim

    image_thumb2-4874136
    Meine DVD enthält nur eine Edition mit dem Index 1.

  3. Um die Installation vorzunehmen ist die Eingabe des folgenden Befehls notwendig (K ist dabei die eingebundene VHDx Datei):
    dism /apply-image /imagefile:install.wim /index:1 /ApplyDir:K:\

    image_thumb3-7430679

Virtuelle Festplatte in das Bootmenü eintragen

Zum Abschluss ist es nun noch notwendig die erstellte VHDx Datei in das Bootmenü einzutragen, damit wir beim Start des Rechners auswählen können welches System hochgefahren werden soll. Der Befehl hierfür (aus einer administrativen CMD) ist sehr einfach (Laufwerksbuchstabe der gemounteten VHDx Datei ist hier K):

bcdboot K:\Windows

image_thumb4-2526205

Einbinden einer über einen Hyper-V erstellten VHD

Dieser Weg ist mitunter fast der einfachste. Man erstellt eine ganz normale virtuelle Maschine in Hyper-V (das geht zwischenzeitlich auch auf einem Win8 System!). Hat man dies erledigt, wird die virtuelle Maschine mit Hilfe von sysprep auf neue Hardware vorbereitet. Das Tool sysprep findet man auf einem Windows 8 System in dem Ordner “%WINDIR%\system32\sysprep”

snaghtml5829ace_thumb-2419799

Nach einem Doppelklick auf sysprep.exe erhält man folgende Auswahl:

snaghtml5840192_thumb-4934316

Wichtig ist hier das Aktivieren von “Generalize” und “Shutdown”. Durch diese beiden Optionen wird beim nächsten Start aus dieser VHDx die Hardware neu gesucht und damit an den eigenen Rechner angepasst.

Hinweis: Bei mir funktioniert die VHD oft auch direkt – also ohne sysprep. Eine Garantie dafür hat man aber nicht.

Um die VHD nun in das Bootmenü einzutragen sind die gleichen Schritte wie im vorherigen Prozess notwendig. Man bindet also die VHD als Laufwerk in sein laufendes Windows ein und führt aus einer administrativen CMD den Befehl bcdboot K:\Windows aus.

VHD’s als Vorlagen

Hat man sich z. B. eine Basis-VHD installiert, so kann man die Datei auch einfach kopieren und erneut einbinden. So kann man sich die Installation der notwendigen Helferlein auf mehreren Systemen ersparen oder man kann sein Testsystem sichern bevor man Software installiert, die man nicht langfristig behalten möchte. Ich habe für diesen Zweck zwischenzeitlich eine schöne Auswahl an VHD’s für verschiedene Einsatzgebiete.

Windows 8.1 – HyperV Rolle aktivieren

Mit Windows 8 hat Microsoft die Virtualisierungslösung Hyper-V auch auf den Client gebracht. Mit Hilfe von Hyper-V kann man auf einer physischen Hardware mehrere virtuelle Clients betreiben. Ich verwende diese Möglichkeit z. B. sehr gerne um Teststellungen aufzubauen (meist mittels Templates) oder aber auch um Viren und Würmern bei Ihrer “Arbeit” zusehen zu können ohne dabei mein Hauptsystem einer Gefahr aussetzen zu müssen.

Das aktivieren der Hyper-V Rolle in Windows 8 ist denkbar einfach. Über die Windows Suche (Windowstaste + S) navigiert man zu der Funktion “Turn Windows features on or off”.

snaghtml19d5347_thumb-2888138

In dem sich öffnenden Fenster findet man recht weit oben die Funktion Hyper-V, die man durch anklicken selektieren kann.

snaghtml19e8520_thumb-9405857

Nach einem Klick auf OK startet die Installation, die bei mir in wenigen Sekunden abgeschlossen war.

snaghtml1a00ebe_thumb-5539903

Nach einem Neustart des Systems läuft dieses bereits auf dem Hypervisor des Hyper-V und man kann auf die Verwaltungskonsole zugreifen um z. B. neue virtuelle Maschinen anzulegen.

image_thumb-3090509

iSCSI SAN für Hyper-V (Win2k8R2 core) auf Basis von open-e – Teil 4

In diesem Artikel geht es darum einen Win2k8 R2 Hyper-V (core) Server mit dem SAN zu verbinden. (mit der GUI kann das ja jeder 🙂 ). Wie man einen HyperV-core-Server installiert und konfiguriert kann man hier nachlesen.

Speichernetzwerk

Für die Anbindung des Hyper-V an das SAN empfiehlt es sich mindestens eine dedizierte, möglichst schnelle, Netzwerkverbindung bereit zu stellen. Ich verwende in meinem Beispiel eine Crossover Verbindung zwischen den Maschinen. Die IP-Range dieser Netzwerkkarte liegt im 192.168.3.0/24 Bereich:

t4_abb1_thumb-4572813

Die Netzwerkkarte auf meinem Hyper-V System muss daher ebenfalls in dieses Netz gehoben werden:

Auflisten der vorhandenen NIC’s

netsh interface ipv4 show interfaces

Setzen der IP

netsh interface ipv4 set address name=“<ID>“ source=static address=<StaticIP> mask=<SubnetMask>

t4_abb2_thumb-8466440

iSCSI Initiator Dienst starten

Um den iSCSI Initiator dauerhaft zu starten sind zwei einfache Befehle notwendig:

sc config msiscsi start= auto

Wichtig: Das Leerzeichen vor auto muss da sein!

net start msiscsi

t4_abb3_thumb-6448995

LUN verbinden

Zuerst müssen wir uns mit dem SAN-Portal verbinden:

iSCSIcli QAddTargetPortal <SAN-IP> <chap-user> <password>

t4_abb4_thumb-4415258

Nun lassen wir uns alle verfügbaren Targets auflisten:

iSCSIcli ListTargets

t4_abb5_thumb-1722648

Nun melden wir uns an einem der Targets an:

iSCSIcli QloginTarget <iqn> <chap-user> <password>

iSCSIcli PersistentLoginTarget <iqn> T * * * * * * * * * * * * * * * 0

(ja, die Sternchen und Leerzeichen sollen da sein!)

t4_abb6_thumb-3346771

Das Target permanent Verbinden:

iscsicli BindPersistentVolumes

t4_abb6a_thumb-1691842

Auflisten des soeben verbunden Targets:

iSCSIcli ListPersistentTargets

t4_abb7_thumb-1516375

LUN formatieren und einbinden

Unser HyperV Server hat nun eine neue Festplatte verbunden. Um diese nutzen zu können, ist es nötig (wie bei einer „normalen“ Platte) diese zu partitionieren und zu formatieren. Mangels GUI machen wir auch dies über die Komandozeile. Das Tool der Wahl ist dabei diskpart.

Diskpart

List disk

t4_abb8_thumb-6175452

Wie man sehen kann wurde unsere Disk 1 (die liegt im SAN) bereits eingehängt.

Nur noch wenige Schritte bis die Disk verwendet werden kann:

t4_abb9_thumb-7946332

[Update]

iSCSI SAN für ESXi & Hyper-V – Teil 1

iSCSI SAN für ESXi & Hyper-V auf Basis von open-e – Teil 2

iSCSI SAN für ESXi & Hyper-V auf Basis von open-e – Teil 3

iSCSI SAN für Hyper-V (Win2k8R2 core) auf Basis von open-e – Teil 4

iSCSI SAN für ESXi auf Basis von open-e – Teil 5

Multipath I/O (MPIO) mit Windows 2008 R2 Server Core und iSCSI

HowTo: Windows 2008 R2 core – Hyper-V Installieren

Um einen Hyper-V Server auf einem Win2k8R2 core-System zu installieren sind einige Schritte und Befehle notwendig. Einen Teil dieser Befehle habe ich bereits für win2k8 hier dokumentiert.

Ich gehe mal davon aus, dass jeder die Installation selbst hin bekommt und setze daher eine fertige Installation und den angemeldeten Administrator voraus.

Remotedesktop aktivieren

Um die nachfolgenden Befehle via copy und paste ausführen zu können (und um nicht bei dem Server sein zu müssen) ist es zuerst wichtig die Maschine aus der Ferne administrieren zu können. Auch der Core-Server stellt hierfür einen RDP-Zugang zur Verfügung. Dieser muss jedoch erst aktiviert werden. Dies erreicht man mit folgendem Befehl:

Cscript %windir%\System32\SCRegEdit.wsf /ar 0

Will man mit einem älteren System (XP od. Win2k3) auf den Server zugreifen so braucht man zusätzlich noch diesen Befehle:

Cscript %windir%\System32\SCRegEdit.wsf /cs 0

abb01_rdp_thumb-2776689

Servername Ändern

Um den Servernamen zu ändern ist es notwendig den aktuellen (vom System vergebenen) Namen zu kennen. Diesen erfährt man mit dem Befehl:

hostname

Mit diesem Namen kann man dann folgenden Befehl ausführen um den Namen zu ändern:

netdom renamecomputer <ComputerName> /NewName:<NewComputerName>

Domäne beitreten

Um die Administration des Servers zu vereinfachen sollte die Maschine (wenn vorhanden) Mitglied der Domäne sein. Dies erreicht man durch folgenden Befehl:

netdom join <ComputerName> /domain:<DomainName> /userd:<UserName> /passwordd:*

abb02_domjoin_thumb-9239978

Server aktivieren

Auch ein core-server muss aktiviert werden – dies erledigt man mit folgenden Befehlen:

cscript %systemroot%\system32\SLmgr.vbs -ipk [Seriennummer]
slmgr.vbs -ato

Fernzugriff auf die MMC aktivieren

Um remote auf die MMC zugreifen zu können ist es nötig die Firewall entsprechend zu konfigurieren – auch dies geht mit einem Einzeiler:

netsh advfirewall firewall set rule group="Remote Administration" new enable=yes

Hyper-V Rolle installieren

Hyper-V ist eine Rolle des Core-Servers und kann somit über die Standard Werkzeuge installiert werden. Es gilt zu beachten, dass dieser Befehl Case Sensitiv ist!

start /w ocsetup Microsoft-Hyper-V

Die Installation selbst dauert ein wenig – auch wenn man keinen Fortschrittsbalken oder sonst was Blinkendes sieht. Man kann die Zeit dazu verwenden um den nächsten Schritt schon mal durchzuführen.

Remote Server Administration

Da es nicht wirklich Spaß macht die VM’s über die Konsole zu verwalten, gibt es natürlich auch komfortablere Lösungen. Zum einen könnte man seinen Server über einen SCVM Management Server verwalten (für größere Umgebungen sehr gut!) oder man verwendet die Remote Server Administration Tools (kurz: RSAT).

Download: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7d2f6ad7-656b-4313-a005-4e344e43997d

Nach der Installation des Packets muss man die Tools erst noch aktivieren. Dies erledigt man durch öffnen der Programmverwaltung (Programs and Features). Dort klickt man auf „Turn Windows Features on“ und aktiviert hier Remote Server Administration Tools.

abb04_rsat_thumb-4396198

Danach kann man in einer MMC (oder direkt über das Suchfeld im Startmenü) den Hyper-V Manager starten.

abb03_hyperv_manager_thumb-5654898

Verzeichnis der VM’s freigeben

Um ein Verzeichnis auf einem Core-Server freizugeben ist nur ein recht einfacher Befehl notwendig:

Net share vmfs=c:\vmfs /Grant:"rootdom\hyperv-admins",Full

Dieser Befehl gibt der AD-Gruppe hyperv-admins Vollzugriff auf das Share “vmfs”.

abb05_share_thumb-8332322

Hyper-V VHD als Laufwerk einbinden

Da ich ein paar Daten aus meinem alten Backup (vhd Dateien) wiederherstellen wollte ohne gleich die ganzen VM’s wieder starten zu müssen habe ich nach einer Möglichkeit gesucht VHD Dateien als Laufwerk unter Vista (x64 in meinem Fall) einzubinden – und ich wurde fündig. Zusammen mit dem Virtual Server von Microsoft kommt ein kleines Tool mit dem Namen vhdmount.exe welches genau diese Funktion bereitstellen kann. Ich habe das ganze mit Windows Vista Ultimate x64 durchgeführt, es sollte jedoch auch ohne Probleme mit der x86 Version funktionieren.

Zuerst brauchen wir die Installationsdateien von Virtual Server: http://technet.microsoft.com/en-us/evalcenter/bb738033.aspx (LiveID wird benötigt). Nach dem Download führt man die setup.exe aus. Wenn man nur die Funktion zum mounten von vhd Dateien nutzen möchte kann man den setup Typ auf Benutzerdefiniert umstellen:

image-thumb-8173162

und im nächsten Fenster alle Funktionen ausser VHD Mount abwählen:

image-thumb1-2430859

Den Rest der Installation klickt man dann einfach durch.

Nun öffnet man einen elevated command prompt (Windows – CMD in die Suchen Box – rechte Maustaste auf CMD.exe – Ausführen als Administrator auswählen).

In dem Command Prompt gibt ma nun folgenden Befehl ein:

„Program Files\Microsoft Virtual Server\Vhdmount\vhdmount.exe“ /m G:\disk.vhd

image-thumb2-1697995

… nach ein paar Sekunden findet man dann in seinem Explorer ein weiteres Laufwerk und kann nun die gewünschten Dateien kopieren.