torstai 9. marraskuuta 2017

Hyper-V ja VirtualBox käyttö rinnakkain

Joskus tulee eteen tilanne jossa olisi tarvetta käyttää kahta virtualisointijärjestelmää rinnakkain. Jokin aika sitten luokassa oleva Hyper-V ympäristö alkoi hidastua niin merkittävällä tavalla että päätimme siirtyä VirtualBox ympäristöön. Pikaisella silmäyksellä hidastuminen liittyi Defenderiin joka kuormitti kiintolevyjä todella ankarasti. Koska emme halunneet lähteä selvittämään kuormituksen syyte sen kummemmin, päätimme kokeilla virtuaalikoneiden suorituskykyä VirtualBox ympäristössä. Ihme ja kumma…VirtualBoxin puolella ongelmaa ei esiintynyt.

Hyper-V ja sen hypervisor…ongelma ja ratkaisu

Lähtökohtaisesti Hyper-V ja VirtualBox ympäristön yhtäaikainen käyttö ei ole mahdollista koska Hyper-V hypervisor varaa järjestelmän täysin omaan käyttöönsä. Vaihtoehtoina ovat A) koko Hyper-V ominaisuuden poistaminen Windowsista tai B) Hyper-V:n hypervisorin sammuttaminen.

Kyseisiä ohjelmia ei siis voida käyttää yhtä aikaa, vaan vähintään on varmistettava että Hyper-V:n hypervisor ei ole käynnissä kun VirtualBox ohjelmaa käytetään. VirtualBox virtuaalkoneen käynnistäminen aiheuttaa BSOD virheen mikäli Hyper-V:n hypervisor on tällöin käynnissä.

Tilan voi tarkastaa esim. Järjestelmätiedot (msinfo32.exe) ohjelman avulla. Kyseinen ohjelma  ilmoittaa Hyper-V ominaisuuden tilasta hieman hämäävästi.

Alla näkyvässä kuvassa Hyper-V ominaisuutta ole asennettu tai ainakaan Hyper-V:n hypervisor ei ole käytössä.

VirtualBox9

Tämän kuvan mukaisessa tilanteessa Hyper-V on käytössä.

VirtualBox10

Hyper-V:n pois asentaminen tietysti ratkaisee ongelman. Jos molempia virtualisointijärjestelmiä halutaan käyttää kuitenkin yhtä aikaa, on tämä liian työläs järjestely. Onneksi Hyper-V:n hypervisorin voi sammuttaa ilman ko. ominaisuuden täydellistä poistamista.

Järjestelmänvalvojan komentokehotteessa annettu komento:bcdedit /set hypervisorlaunchtype off   sammuttaa hypervisorin (uudelleen käynnistyksen jälkeen).

VirtualBox3

Komento bcdedit /set hypervisorlaunchtype auto käynnistää sen uudelleen (uudelleen käynnistyksen jälkeen).

VirtualBox4

Edellä mainituista komennoista voidaan esim. tehdä työpöydälle pikakuvakkeet jotka viittaavat PowerShell skriptiin tai komentojonoon jossa em. komennot ovat kirjattuna. Kyseiseen skriptiin tai komentojonoon lisättävä komento C:\windows\system32\shutdown -r -t 2 käynnistää työaseman automaattisesti uudelleen. On huomattava että pikakuvakkeen ominaisuuksista voidaan asettaa päälle sen suorittaminen järjestelmän valvojan oikeuksin.

VirtualBox5

Hyper-V:n poistaminen ei onnistu ?

Jos Hyper-V:ä halutaan luopua kokonaan, voidaan se asentaa samoin tein pois. Esimerkiksi PowerShell komento Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All poistaa Hyper-V ominaisuuden käytöstä.

VirtualBox6

Vaan entäpä jos poistaminen ei onnistukaan? On kuitenkin olemassa tilanne jossa ominaisuuden pois asentaminen ei onnistu. Nimittäin jos Device Guard ominaisuus on käytössä, ei Hyper-V:n suostu poistumaan järjestelmästä. Device Guard nimittäin käyttää toiminnassaan Hyper-V:n virtualisointi ominaisuuksia. Device Guard ominaisuus sisältyy ainoastaan Windows 10 Enterprise ja Education versioihin.

Device Guard ominaisuuden tilan voi tarkistaa esim. Järjestelmätiedot (msinfo32.exe) ohjelman System Summary kohdasta.

VirtualBox7

Mikäli Device Guard on päällä, täytyy tietysti TARKKAAN selvittää voiko/kannattaako/saako sitä kytkeä pois päältä. Jos ko. ominaisuus kuitenkin halutaan kytkeä pois päältä, voidaan se tehdä esim. paikallista ryhmäkäytäntöeditoria käyttäen (gpedit.msc), asettamalla asetus Turn on Virtualization Based Security tilaan Disabled.

VirtualBox8

Kyseisen ominaisuuden käytöstä poistamisen jälkeen myös Hyper-V:n pois asentaminen onnistuu.

PS: Alkuperäinen ongelma Defenderin kuormittamasta kiintolevystä jäi hieman vaivaamaan…varsinkin kun kyseistä ongelmaa ei esiinny VirtualBox työasemissa. Pitänee palata vielä tutkimaan asiaa.


1 kommentti: