Nested virtualization.

Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito Nested virtualization.

    Sto riorganizzando il lab di casa.
    Fino a Febbraio utilizzavo come postazione "lab" una APU 5800K su mobo ASUS A88X-Pro e, utilizzando CentOS 7 come sistema operativo host, sono riuscito senza troppi problemi a mettere in piedi un laboratorio in grado di gestire la "nested virtualization" e quindi virtual machine in grado di eseguire al loro interno altre virtual machine. In quel caso l'hypervisor (sia host che guest) era KVM (QEMU 1.53) e le vm guest altre installazioni di CentOS utilizzate per testare un ambiente di gestione cloud.

    Ho poi deciso di riorganizzare tutto, dedicare l'APU a pc "daily" e attrezzare una altro pc con CPU PhenomII 1090T e mobo ASUS M5A97 EVO R2.0 al lab. Anche se il PhenomII è una CPU più vecchia, entrambe le piattaforme supportano le estensioni AMD-V e "Rapid Virtualization Indexing (RVI)" necessarie e la M5A97 sembra non risentire di alcuni bug presenti nella gestione dello IOMMU presenti invece sull'altra mobo e abbastanza frequenti nelle piattaforme desktop.

    Dato che mi interessava poter eseguire anche istanze di ESXi e Hyper-V virtualizzate, ho cambiato il sistema operativo host e sono passato su Fedora 22 versione "Server", per cui sono disponibili i pacchetti binari dell'ultima versione di QEMU (qemu-2.3.0-5.fc22) e libvirt (libvirt-1.2.17.fc22.x86_64), necessarie per eseguire istanze virtuali di ESXi senza dover patchare a mano i sorgenti.
    Dopo una marea di PSOD, sono riuscito ad installare ed avviare regolarmente ESXi ma al momento di avviare le virtual machine il sistema si accorge di essere in esecuzione dentro un hypervisor non supportato e blocca l'esecuzione della virtual machine. Problema analogo accade anche con Hyper-V: Le istruzioni di virtualizzazione vengono correttamente passate dalla macchina fisica alla virtual machine ma viene anche passata una "firma" da parte della macchina fisica che permette alla virtual machine di accorgersi di non essere "sul ferro" (A hypervisor is already running.).

    Ho provato (inutilmente!) un po' di tutto, anche aggiungere l'istruzione per nascondere la firma di KVM:

    codice HTML:
    <kvm>
          <hidden state='on'/>
    </kvm>
    Alla fine, per ESXi credo di aver più o meno risolto secondo le indicazioni di questa kb VMware e questo blog (che ringrazio!!):

    VMware as a Guest Hypervisor Under Foreign Hypervisors

    If we detect that a VMware product is running under a foreign hypervisor, we will refuse to power on a nested guest. To bypass this constraint, add the following option to your nested guest's configuration file:
    vmx.allowNested = TRUE
    Ho quindi aggiunto queste istruzioni alla configurazione dell'host ESXi 6.0 (dopo l'installazione, login via ssh nella vm startata e riavvio per applicare le modifiche):

    Originariamente inviato da /etc/vmware/config
    hv.assumeEnabled="TRUE"
    vhv.enable = "TRUE"
    vmx.allowNested = "TRUE"
    e impostato la tipologia della CPU nella virtual machine in KVM come "host-passthrough" (condizione necessaria per poter eseguire vm con capacità di utilizzare i 64bit, altrimenti con ogni altra modalità è possibile avviare solo vm 32bit).




    Ora mi manca di riuscire a fare la stessa cosa con hyper-v...
    Ultima modifica di frakka : 22-07-2015 a 20:46

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  2. #2
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito

    Sto cercando da qualche giorno ma sembra che per ora non sia possibile... Esistono diverse istruzioni per eseguire hyper-v su ESXi (quindi usando il prodotto VMware come hypervisor "L0" e hyper-v come "L1") ma non ho trovato nulla di equivalente per KVM.
    La cosa che mi innervosisce è che si tratta quasi certamente di un blocco imposto a livello "software" (per ESXi i workaround ci sono) non di una reale "impossibilità". Intanto provo a vedere se mi riesce di far girare un hyper-v come "L3"...
    Ultima modifica di frakka : 25-07-2015 a 02:57

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  3. #3
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito

    Per ora mi fermo qui... Mi interessava principalmente poter utilizzare ESXi come "guest hypervisor" e quello funziona.



    Ho riscontrato dei comportamenti anomali di Win2k12r2 installato come "guest" di ESXi (quindi come guest di un hypervisor virtualizzato): Random, con o senza integration tool vmware, ho riscontrato dei freeze del so fino all'intervento del watchdog. Questa instabilità mi ha impedito di provare ad utilizzare hyper-v all'interno di ESXi ma i motivi potrebbero essere i più disparati, a partire dal fatto che sto utilizzando una mobo desktop e quindi l'implementazione delle tecnologie di virtualizzazione potrebbe decisamente non essere ottimale.

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022