besterino
Legende
Thread Starter
- Mitglied seit
- 31.05.2010
- Beiträge
- 7.570
- Desktop System
- Rechenknecht
- Laptop
- Lenovo Legion 7 Pro (5900HX, 3080, 32GB)
- Prozessor
- Intel i9-13900KS@6300
- Mainboard
- ASUS Maximus Z790 Hero
- Kühler
- Kryo Next S1700, 2xMora 420, Tube 200, D5+3xDDC, Aquaero 6 Pro, DFS High Flow USB, Farbwerk360
- Speicher
- 32GB (2x16GB @7600)
- Grafikprozessor
- Inno3D RTX 4090 Frostbite
- Display
- 55" OLED (Dell AW5520QF)
- SSD
- 1x1TB NVME (OS), 1x4TB NVME, Rest (~12TB NVME) über iSCSI-/SMB-Storage
- HDD
- Näh. Technik von gestern.
- Opt. Laufwerk
- Näh. Technik von gestern.
- Soundkarte
- Cambridge Audio DacMagic 200M
- Gehäuse
- Lian-Li DK-05F
- Netzteil
- be Quiet Dark Power 13 1000W
- Keyboard
- Keychron Q6 Pro, Maxkeyboard Custom Caps, Black Lotus / Dolphin Frankenswitch, Everest Pads
- Mouse
- Swiftpoint Z
- Betriebssystem
- Windows 11 Pro for Workstations (SMB Direct - yeah baby)
- Sonstiges
- Mellanox ConnectX-4 (Dual 100Gbit Netzwerk + WaKü), Rode NT-USB, Nubert ampX uvm. ...
HowTo 9: Discrete Device Assignment mit Dell HBA (Proof of Concept mit Dell T130)
So, alles für so'n Selfmade-Frickler wie mich gar nicht so einfach (komme mir schon voll wie der Powershell-Guru vor - aber Vorsicht: nur gefährliches Halbwissen am Start hier!)...
Als erstes musste ich den Dell-HBA mal dem Host "wegnehmen", da ein "dismount" von Geräten, die vom Host noch benutzt werden, nicht so einfach möglich ist. Den Dismount braucht's wiederum, um das Ding einer VM zuweisen zu können. Naja, und anstatt brutaler Gewalt (also nicht gleich mal mit "-force" rangehen) wollte ich es doch mal genauer wissen.
1. Also mal geschaut, wo denn mein guter Dell-HBA zu finden ist. Um genau zu sein: unter welcher Klasse (class). Dabei hilft der Befehl get-pnpdevice:
2. Im nächsten Schritt ziehe ich das Ding (genauer: alle Geräte dieser Klasse) in eine Variable "$pnpdevs":
3. Schauen wir uns mal den Inhalt der Variable an:
Wir stellen fest, das Ding ist das 2. in der Liste - da Microsoft bei 0 anfängt zu zählen, hat das gute Stück also die Index-Nummer "1".
4. Jetzt deaktivieren wir den Dell-HBA für den Host:
5. Wenn wir uns jetzt noch einmal die Liste mit Geräten der SCSIAdapter-Klasse anzeigen lassen, sehen wir für den Dell-HBA einen Fehler (weil eben nicht mehr für den Host vorhanden):
6. Kümmern wir uns kurz um die nötige Information, um das Gerät für den Dismount richtig ansprechen zu können (Achtung, wieder richtige Index-Nummer aus der $pnpdevs beachten:
Zunächst in eine Variable mit:
... die man sich dann mit $locationpath anzeigen lassen kann.
7. Jetzt können wir auch noch mal einen Dismount versuchen:
(Im Bild hatte ich die Location direkt eingetippt, eleganter ist's natürlich, direkt mit der Variable zu arbeiten: "Dismount-VmHostAssignableDevice -LocationPath $locationpath")
Scheisse war's. Aber immerhin haben wir das Gerät sauber vom Host getrennt.
8. Also dann eben doch mit Gewalt:
Und weg ist die Fehlermeldung...
9. Auch der "Status" des Geräts hat sich damit noch einmal geändert:
10. Und nun schauen wir mal, ob wir der VM den Dell-HBA auch zuweisen können:
Nach einem Fehlversuch und Beseitigung der Ursache, ging der Befehl dann auch sauber durch.
Jetzt installiere ich mal Windows 10 in der VM und suche mal darin dann den Dell HBA...
- - - Updated - - -
Höhö... da ist der Schlingel auch schon in der VM - allerdings mit Fehlermeldung (die ich mir noch nicht so recht erklären kann - vielleicht weil keine Platten dranhängen?):
- - - Und nochmal Updated - - -
Und einen hab ich noch: mit Platte dran (und vorsichtshalber auch noch mal den HBA bisken im Slot gewackelt / festgedrückt) ist nun auch der Fehler weg! Tjo - das war mal erstaunlich erfolgreich quasi gleich im ersten Anlauf!
Die umrandete Platte hängt tatsächlich am Dell HBA:
EDIT/NACHTRAG:
11. Bei einem späteren Versuch mit DDA hatte ich dann eine neue Fehlermeldung, dass ein Virtualisierungsfeature für den Benutzer nicht verfügbar war:
Dagegen soll dann in einer admin-CMD helfen (wobei noch nicht ganz raus ist, ob DDA nicht gerade "broken" ist):
So, alles für so'n Selfmade-Frickler wie mich gar nicht so einfach (komme mir schon voll wie der Powershell-Guru vor - aber Vorsicht: nur gefährliches Halbwissen am Start hier!)...
Als erstes musste ich den Dell-HBA mal dem Host "wegnehmen", da ein "dismount" von Geräten, die vom Host noch benutzt werden, nicht so einfach möglich ist. Den Dismount braucht's wiederum, um das Ding einer VM zuweisen zu können. Naja, und anstatt brutaler Gewalt (also nicht gleich mal mit "-force" rangehen) wollte ich es doch mal genauer wissen.
1. Also mal geschaut, wo denn mein guter Dell-HBA zu finden ist. Um genau zu sein: unter welcher Klasse (class). Dabei hilft der Befehl get-pnpdevice:
2. Im nächsten Schritt ziehe ich das Ding (genauer: alle Geräte dieser Klasse) in eine Variable "$pnpdevs":
Code:
PS C:\Users\Administrator> $pnpdevs = Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq “SCSIAdapter”}
3. Schauen wir uns mal den Inhalt der Variable an:
Wir stellen fest, das Ding ist das 2. in der Liste - da Microsoft bei 0 anfängt zu zählen, hat das gute Stück also die Index-Nummer "1".
4. Jetzt deaktivieren wir den Dell-HBA für den Host:
Code:
PS C:\Users\Administrator> disable-PnpDevice -InstanceId $pnpdevs[1].InstanceId -Confirm:$false
5. Wenn wir uns jetzt noch einmal die Liste mit Geräten der SCSIAdapter-Klasse anzeigen lassen, sehen wir für den Dell-HBA einen Fehler (weil eben nicht mehr für den Host vorhanden):
6. Kümmern wir uns kurz um die nötige Information, um das Gerät für den Dismount richtig ansprechen zu können (Achtung, wieder richtige Index-Nummer aus der $pnpdevs beachten:
Zunächst in eine Variable mit:
Code:
$locationpath = ($pnpdevs[1] | get-pnpdeviceproperty DEVPKEY_Device_LocationPaths).data[0]
... die man sich dann mit $locationpath anzeigen lassen kann.
7. Jetzt können wir auch noch mal einen Dismount versuchen:
(Im Bild hatte ich die Location direkt eingetippt, eleganter ist's natürlich, direkt mit der Variable zu arbeiten: "Dismount-VmHostAssignableDevice -LocationPath $locationpath")
Scheisse war's. Aber immerhin haben wir das Gerät sauber vom Host getrennt.
8. Also dann eben doch mit Gewalt:
Und weg ist die Fehlermeldung...
9. Auch der "Status" des Geräts hat sich damit noch einmal geändert:
10. Und nun schauen wir mal, ob wir der VM den Dell-HBA auch zuweisen können:
Nach einem Fehlversuch und Beseitigung der Ursache, ging der Befehl dann auch sauber durch.
Hinweis: die Fehlermeldung beim 1. Versuch ist ja selbsterklärend - es funktioniert ohne Fehler, wenn man im Hyper-V Manager unter den Einstellungen der VM für die automatische Stoppaktion z.B. "Gastbetriebssystem herunterfahren" auswählt:
Jetzt installiere ich mal Windows 10 in der VM und suche mal darin dann den Dell HBA...
- - - Updated - - -
Höhö... da ist der Schlingel auch schon in der VM - allerdings mit Fehlermeldung (die ich mir noch nicht so recht erklären kann - vielleicht weil keine Platten dranhängen?):
- - - Und nochmal Updated - - -
Und einen hab ich noch: mit Platte dran (und vorsichtshalber auch noch mal den HBA bisken im Slot gewackelt / festgedrückt) ist nun auch der Fehler weg! Tjo - das war mal erstaunlich erfolgreich quasi gleich im ersten Anlauf!
Die umrandete Platte hängt tatsächlich am Dell HBA:
EDIT/NACHTRAG:
11. Bei einem späteren Versuch mit DDA hatte ich dann eine neue Fehlermeldung, dass ein Virtualisierungsfeature für den Benutzer nicht verfügbar war:
Dagegen soll dann in einer admin-CMD helfen (wobei noch nicht ganz raus ist, ob DDA nicht gerade "broken" ist):
Code:
bcdedit /set hypervisoriommupolicy enable
Anhänge
Zuletzt bearbeitet: