Useiden virtual PCI-laitteden Hot-Plug toiminta uudelleen käynnistyksen yhteydessä

Jossain tapauksissa on huomattu että Windows virtuaalikoneelta on tapahtunut seuraavia ongelmia sammutus ja uudelleen käynnistys yhteydessä.

  •       Jäänyt osa erillisistä volumeista ”Offline” tilaan Windowsissa
  •       Verkkointerfaceilta kadonnut staattinen IP-konfiguraatio

Kyseiset oireet saatiin rajattua siihen, että hot-plugina liitetyt laitteet päätyvät saamaan ennen ensimmäistä power cycleä ns. puhtaan PCI-osoitteen hypervisorilta. Pilvi kuitenkin hallitsee ja generoi hypervisoreille keskitetysti instanssien konfiguraatiota, eikä tätä tilapäistä osoitetta voida mihinkään heijastaa. Tämän seurauksena kun instanssi ensimmäisen kerran sammutetaan (shutdown) ja käynnistetään uudestaan (pelkkä reboot ei siis riitä tätä triggeröimään)  loksahtaa device konfiguraatiosta sopivaan koloon ja näin ollen ei säilytä tuota PCI-osoitetta, joka sillä hot-plugin aikana oli.

Windows guestit bindaavat verkkokonfiguraationsa nimenomaan tiettyyn PCI-laitteeseen kohdistettuun interfaceen. Jos tämän PCI-laitteen numerointi muuttuu, ei Windows enää pidä sitä samana laitteena. Windows guestin osalta myös volumejen automaattinen löytäminen oli osittain samasta syystä kateissa, koska default asetuksilla Windows ei salli millään tapaa muuttuneiden ”SAN-levyjen” nousta Online tilaan automaattisesti (tarkoitettu suojafeatureksi jaettuun LUN-käyttöön).

Tästä ei synny haittaa esim. Linux käyttöjärjestelmissä (joissa useimmiten MAC-osoite, ajurin bindaus tms. mekaniikka hoitaa tuon) tai Windows konfiguraatioissa, joissa on käytössä 1kpl DHCP:llä varustettuja verkkoliityntöjä.

Fixes & workarounds:

  • Windows voidaan konfiguroida sallimaan volumejen Onlinetys ja tunnistus siitä huolimatta, että PCI-osoite on heilahtanut. Komentamalla DISKPART:ssa ”san policy=OnlineAll” (http://www.happysysadm.com/2010/11/disk-is-offline-because-of-policy-set…). Tätä asetusta käyttäen Windows 2012 ja uudempiin guesteihin voi edelleen liittää tarvittaessa volumeita tarvittaessa hotplugina.
  • Verkkoliitosten osalta Windows guestien tilanne on se, että kaikki verkkointerfacejen lisäykset suositellaan tehtäväksi instanssi sammutettuna. Tällä varmistut siitä, että konfiguraatiot interfaceen tehdään varmasti oikeaan PCI-osoitteeseen kohdistettuna eivätkä ne tulevaisuuden power cycleissä katoa.
  • Kaikkiin käyttöönottotestauksiin ja vastaaviin testeihin olisi aina hyvä lisätä rebootin lisäksi (tai tilalle) myös shutdown + start testi, ainakin Pilvi 9.0:n osalta. Koska reboot operaatio tapahtuu saman prosessin sisällä, mutta shutdownin kautta instanssi oikeasti käynnistetään hypervisorilla uuteen prosessiin, nähdään tämän ns. power cyclen kautta helpommin tämän kaltaiset vikatilanteet jo ympäristön testauksessa.