Tags: Hyper-V, Storage, PowerShell
Richtet man eine virtuelle Maschine unter Hyper-V ein, dann hat man die Wahl zwischen IDE- und SCSI-Controllern. Gerade auf dem Server würde man spontan SCSI wegen der erwarteten Performance-Vorteile bevorzugen, aber die gibt es nicht. Dafür haben beide Controller-Typen ihre spezifischen Einschränkungen, so dass man in einigen Fällen beide parallel verwenden muss.
Die Verwendung eines SCSI- oder IDE-Controllers ist völlig unabhängig davon, welche Hardware im betreffenden Rechner tatsächlich installiert ist. Es handelt sich dabei nur um ein virtuelles Gerät, das gegenüber dem Gastbetriebssystem präsentiert wird.
VMs können nur von IDE booten
Ein wesentlicher Unterschied zwischen IDE und SCSI besteht darin, dass Hyper-V einen IDE-Controller emulieren kann. Das Gastbetriebssystem muss also nicht wissen, dass es in einer virtuellen Maschine läuft, vielmehr erfolgen die Zugriffe auf IDE-Laufwerke, als handelte es sich dabei um physikalische Hardware. Der Hypervisor fängt die Kommandos ab und koordiniert die Kommunikation der VMs mit dem Controller.
Aus diesem Grund stehen IDE-Disks schon zur Verfügung, bevor der Gast die Integrationsdienste lädt. Und deshalb können virtuelle Maschinen von IDE-Platten booten, wogegen dies von SCSI-Laufwerken nicht möglich ist (dies ändert sich für VMs der Generation 2 in Windows Server 2012 R2). Die SCSI-Schnittstelle ist als paravirtualisierter Treiber implementiert, der auf den VMBus von Hyper-V aufsetzt und deshalb erst verfügbar ist, sobald die Integrationsdienste geladen sind.
Paravirtualisierte Treiber für IDE und SCSI
Wenn Geräte über paravirtualisierte Treiber angesprochen werden, dann verbessert dies vor allem die Performance. Daher werden IDE-Controller nur während der Startphase emuliert oder wenn Hyper-V das Gastbetriebssystem nicht unterstützt. Andernfalls werden mit den Integrationsdiensten ebenfalls optimierte Treiber für IDE installiert, so dass dann keine Performance-Unterschiede zwischen den zwei Controller-Typen mehr bestehen.
Eine wesentliche Einschränkung von IDE besteht darin, dass eine virtuelle Maschine nur zwei derartige Controller haben kann und diese auf jeweils 2 Geräte beschränkt sind. Einen Anschluss beansprucht normalerweise das CD/VD-Laufwerk, so dass neben der Boot-Disk nur mehr zwei zusätzliche Platten über die IDE-Controller betrieben werden können.
Hot-add von Disks nur mit SCSI
Angesichts des neuen VHDX-Formats, das virtuelle Laufwerke bis zu einer Größe von 64 TB zulässt, sollten die Kapazitäten von IDE-Controllern für die meisten VMs ausreichen. Ist das nicht der Fall, dann kann man bis zu 64 virtuelle Disks an einen der maximal 4 zulässigen virtuellen SCSI-Controller anhängen. Dies kann auch zur Laufzeit der virtuellen Maschine erfolgen, wogegen ein solches Hot-add von IDE nicht unterstützt wird. Dort muss man die VM herunterfahren, um weitere Laufwerke anzuschließen.
Die maximal möglichen zwei IDE-Controller sowie ein SCSI-Adapter gehören zur Basisausstattung einer jeden neu angelegten VM. Das Hinzufügen von Laufwerken erfolgt entweder im Hyper-V Manager über die Einstellungen der VM, wobei sie wie erwähnt bei IDE für diesen Zweck ausgeschaltet sein muss.
Laufwerke hinzufügen mit PowerShell
Das Hot-add von SCSI-Platten lässt sich auch über PowerShell bewerkstelligen. Im ersten Schritt wird man dabei ermitteln, ob und wie viele SCSI-Controller installiert sind:
Get-VMScsiController -VMname <Name der VM>
Aus dem Output des Cmdlets kann man die Nummer des gewünschten Controllers entnehmen, dem man anschließend eine VHD(X) zuweist:
Add-VMHardDiskDrive -VMname <Name der VM> -Path test.vhdx -ControllerType SCSI -ControllerNumber 0
Sollte noch kein SCSI-Controller mit der VM verbunden sein, dann kann man diesen über das Cmdlet Add-VMScsiController
einfach hinzufügen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- iSCSI-Verbindungen mit PowerShell verwalten
- Virtuelle Maschine vollständig mit PowerShell erstellen (am Beispiel von Azure Stack HCI)
- Postfächer in Exchange (Online) mit PowerShell verwalten
- PowerShell-Remoting, Hyper-V Manager: Fehler wegen Netzwerkverbindungstyp "Öffentlich"
- Partitionen (remote) vergrößern und verkleinern mit PowerShell
Weitere Links