Non ho ancora provato però guardando la
pagina della wiki dedicata alla virtualizzazione di Windows leggo
Nel caso non dovessi risolvere vado di ESXi con scheda HBA (già ricompilare il kernel di un sistema normale non è la cosa migliore da fare, figurati con un sistema "preciso"/"delicato" come FreeNAS).
Ciao, avendo costruito un NAS praticamente identico al tuo (avevo una intel s1200rpl invece della Supermicro, ma cambia poco), ti posso dire che la soluzione esxi è sicuramente una buona soluzione.
Se però il goal è avere una macchina con freenas che magari ti fa anche da workstation col passthrough della scheda grafica, l'unica soluzione che ho trovato è non fare il passthrough della scheda grafica e utilizzare windows 10 con hyper-v per le macchine virtuali. Sì, lo so, è Windows, e Windows 10 per giunta, ma data la scarsità di mezzi della build in questione è la soluzione che mi ha dato meno problemi: l'unico veramente rognoso era la lentezza della rete che però ho più o meno risolto alla fine (non ricordo come, ma ci sono le guide su internet). Disgraziatamente né la tua macchina né la mia supportano SRV-IO e quindi la virtualizzazione è relativamente monca: il passthrough non è infatti possibile con hyper-v senza SRV-IO, mentre lo è con vmware.
Comprata a fine del 2015 adesso la mia macchinina è basata su FreeNas perché con uno storage di 25TB di dati non mi fido neanche morto a fare altrimenti. Però per 5 anni ho fatto quello che vuoi fare tu senza grossi problemi. Ti racconto la mia storia anche a beneficio di altri.
Per cominciare, togliamoci subito alcuni sassolini su bhyve:
- bhyve va benissimo con linux e freebsd; è estremamente stabile, anche con Windows. Figurati che l'ho usato di recente perfino per tenere su sql server 2017 per linux, e funzionava bene; l'ho abbandonato solo perché mi dava rogne con l'autenticazione active directory/kerberos; ma il problema era linux/kerberos/sql server e non bhyve. Per vincere una scommessa, sono riuscito a farci girare sopra Microsoft Dynamics AX 2012 r3, cosa che non avrei mai pensato fosse possibile. Per dire.
- la virtualizzazione di Windows tramite bhyve è però terribile per tanti motivi. Io adesso lo uso per tener su un domain controller/DNS/dhcp server windows 2012 r2 e un server linux con nextcloud e plex; con regolare licenza, fai conto però che non sono riuscito a installare sopra il WSUS e sono certo che è colpa di bhyve perché ripristinando la stessa macchina sotto esxi andava subito. Va bene per quello che fa, ma non è sicuramente ideale: il sistema è veramente lento rispetto ai miei standard; windows 10 sul mio portatile i5-5200U è molto più veloce di windows 2012 sullo xeon i3-1230v3 che monta il NAS; entrambi hanno dischi a stato solido ma il portatile ha un a-data, il nas un samsung 960 evo. Fatti test in linux, credo che il disco sia lentissimo perché devo usare l'emulazione ahci invece dei driver virtio che fanno crashare windows; devi ricordarti di usare i driver virtio per la rete però, altrimenti windows va in crash. La rete della vm windows va la metà di quella della vm linux (testata con iperf).
- windows sotto bhyve significa dire addio a una gestione dei consumi in freenas/freebsd; praticamente il server non è più in grado di gestire i powerstate e viaggia alla costante velocità massima, nel mio caso 3.300 mhz; e fortuna che ho disattivato il turbo boost; la soluzione che ho dovuto implementare in freenas è inserire un tunable rc per powerd e bloccare il processore a 2300 mhz, che tutto sommato è un buon compromesso, ma aumento i consumi sensibilmente
- comunque installare windows in bhyve è tutt'altro che semplice; come vedi devi ricordarti parecchie cose, è una procedura lenta. Lo shutdown automatico non funziona se devi spegnere la macchina (ma questo è un problema anche in esxi). Insomma, devi sapere che di morte vai a morire.
- bhyve non supporta, che io sappia, il passthrough della scheda grafica visto che nella wiki è espressamente negato. Di sicuro non si può impostare in freenas senza fare trucchi ignobili che sconsiglio fortemente. Alcuni riescono a farla funzionare con sistemi unix (https://www.freebsdnews.com/2019/05/16/gpu-passthrough-on-bhyve/) ma lascerei perdere.
Per quanto riguarda altre soluzioni, io ho provato nell'ordine ESXi5.5, 6 e 6.5, XenServer 7.x, Windows Server 2016 e 2019 con hyper-v e infine windows 10 con hyper-v.
In tutti i casi ho passato senza alcun problema il sistema freenas da una soluzione all'altra semplicemente facendo il backup della configurazione di freenas, reinstallando la versione giusta sotto vm piuttosto che bare metal e ripristinando la configurazione sulla nuova soluzione. Chiaramente a patto di far vedere sempre tutti i dischi.
ESXi - tenuta oltre 3 anni
Buona soluzione, avendo una licenza regolare poi col vcenter la facilità di gestione è massima. Ci giocavo tranquillamente con una vm Windows 7 e poi Windows 10 con scheda grafica, scheda usb e scheda audio in passthrough (ma potevo usare anche l'hdmi integrato della scheda video per l'audio).
Riguardo alla vm freenas il passthrough simultaneo della scheda video e dell'hba (la solita serveraid m1015 flashata) sulla mia build causava problemi seri a livello di interrupt alle due schede; provate mille soluzione fino a che ho rinunciato quando ho riscontrato
data corruption in freenas a seguito di uno scrub. Persi due file senza importanza, grazie freenas per aver salvato i miei dati ancora una volta.
Ho quindi optato per la soluzione sconsigliatissima RDM (Raw Device Mapping, virtual e non physical mi raccomando, altrimenti manco a dirlo:
data corruption). Cosa posso dire:
- avevo un bel gruppo di continuità (2400VA), quindi il rischio era ridotto
- ha funzionato molto bene, anche in caso di ben 3 rotture di dischi, che erano un po' vecchiotti, non ho perso che alcuni log di freenas sul pool di sistema perché in un caso il sistema si è bloccato e ho dovuto fare shutdown a forza; in pratica se il disco cede di schianto no problem, è quando agonizza che crea rogne; ESXi si aspetta probabilmente di avere uno storage di un certo livello, non robetta da supermercato.
- la mia configurazione però era di 2 pool in triplo mirroring (6 dischi da 3 tb) che è veramente, veramente robusta, ma dispendiosa. Quando ho dovuto aggiungere altri tera, ho abbandonato questo tipo di soluzione e adesso ho 2 pool di 6 dischi da 4tb in raid-z2. Non lo farei mai con freenas virtualizzato se tenessi ai dati che ci butto sopra.
- RDM è una rottura di scatole, perché devi configurartelo a mano da riga di comando di esx.
- RDM ti maschera i dischi, quindi quando un disco si rompe non è semplicissimo capire quale disco si è rotto se non sai smanettare con esxi a riga di comando; io chiamavo i file vmdk col numero di serie così quando non partiva la macchina sapevo qual era da cambiare; comunque è una merda, se non hai molto tempo a disposizione e non stai più che attento a quello che fai.
Un altro problema che avevo con ESXi che alla fine me l'ha fatto abbandonare è che il passthrough della scheda USB3 funzionava solo per mouse, tastiera e joypad. Per i dispositivi mass-storage (tipo chiavette e hard disk USB) a tutt'oggi non funziona. O meglio, sembra che funzioni, ma se provi a copiare qualche giga,
data corruption. Questo problema è annoso e non ne sono affette tutte le macchine: per qualche motivo insondabile, ad esempio, sulla workstation HP Z800 dove adesso ho installato esxi 6.5 funziona, ma si vede che fa fatica. La velocità è sensibilmente inferiore al normale, per quanto accettabile, e a volte si incanta per qualche secondo e infatti compaiono righe di log a profusione in ESXi.
XenServer; era la 7.3 mi sembra, 3 mesi
Praticamente è linux, ma con varie limitazioni perché in fondo anche loro vogliono vendere la licenza ed è comprensibile.
- La configurazione del passthrough la preferisco a riga di comando, è semplice e te la puoi anche salvare in uno script senza tutte le balle di ESXi; funzionava tutto, incluso l'USB e il mass storage
- La configurazione del freenas era con dischi raw perché anche qui il passthrough dell'HBA generava data corruption. Ancora una volta mi piaceva abbastanza, era molto lineare da configurare a linea di comando; inoltre vedevo i seriali dei dischi, e potevo contare sull'affidabilità di linux.
- Problema 1, noioso: per utilizzare il driver paravirtuale (o, se per questo, l'emulazione e1000 per andare a un gigabit) della scheda di rete nella versione free, dovevo patchare gli scipt della distro a mano altrimenti ero condannato a usare il driver a 100Mbit. Probabile violazione della licenza, e chiaramente ad ogni aggiornamento da rifare possibilmente in modo diverso. Inaccettabile.
- Problema 2, molto grave: a seguito di uno shutdown non pulito, i dati delle macchine virtuali erano a posto, ma molto spesso mi capitava che si sputtanasse completamente la distro xenserver e avevo difficoltà a farla ripartire; perdevo pezzi della configurazione, non trovava più i dischi virtuali, ecc. Non conoscendo benissimo il sistema, facevo prima a reinstallare. Totalmente inaccettabile.
- Problema 3, veramente fastidioso: la versione free rende veramente difficilmente effettuare il backup della macchine virtuali, e all'epoca non esisteva il coltellino svizzero che uso adesso (veeam backup free). Spostare una macchina virtuale era una sofferenza inenarrabile, la copia via rete dallo storage locale è resa artificialmente lentissima come fa vmware. Assurdo.
Altri problemi vari mi hanno fatto abbandonare subito la soluzione che offriva praticamente quello che mi offriva ESXi
ma con difficoltà di gestione che, a confronto, erano mostruose. Non ho più tempo di correre dietro a queste cose e la licenza costava un botto. Abbandonato alla seconda reinstallazione forzata di XenServer. A questo punto facevo prima a installare netbsd e far girare xen free tutto da riga di comando. Ma purtroppo non avevo tempo perché ho cambiato lavoro.
Windows Server 2016 con hyper-v, 10 giorni
Come Windows 10. Ma non avevo la licenza di Windows. Non l'ho acquistata perché costava troppo, è windows, e comunque non potevo fare il passthrough di un bel niente col mio hardware. Certo, avendo SRV-IO lo consiglierei per quello che dico dopo su Windows 10, se proprio uno vuole fare certe cose.
Windows 10 Pro con hyper-v, tenuta per quasi 2 anni
I pregi di questa soluzione erano:
- una macchina virtuale in meno: niente passthrough; la macchina host hyper-v era quella che usavo come workstation per giocare, fare i montaggi video, ecc. Ovviamente funzionava tutto, e al meglio, tutte le periferiche avevano driver ottimizzati: scheda video, scheda audio; potevo anche usare le porte usb3 della scheda madre senza necessità di utilizzare una scheda aggiuntiva che infatti ho tolto. Molto più comodo. Avevo anche un paio di giga di memoria in più da usare per freenas.
- gestione OK, purtroppo hyper-v per windows 10 non è hyper-v per windows server: ho tentato di backuppare con veeam e non funziona perché è una versione monca; non ha le funzioni avanzate però per lo meno non è castrato come xenserver o esxi. Se devi muovere le vm, non sarà comodo come col vcenter, ma ti sposti i tuoi file e pace
- i dischi freenas erano raw, e non ho mai avuto problemi (ma attenzione, erano sempre in mirroring); vedevo tutte le info da windows e quindi quando mi si è rotto un disco no problem; l'unica cosa: avevo disattivato la cache di windows per i dischi di freenas, senza drammatici impatti sulle performance.
Capiamoci: non sono un windows fan boy. Faccio consulenza su Microsoft Dynamics, ma per 10 anni ho usato solo linux e lo uso ancora. Hyper-v fa cagare, sul lavoro vmware forever. Ma a casa...
Ultimo appunto:
unRAID.
Sospetto che la soluzione migliore per certi magheggi alla fine sia sempre linux.
Io userei ancora freenas in macchina virtuale passandogli i dischi raw ma solo perché voglio usare ZFS sotto freebsd e non mi fido tanto del porting linux.
CERTAMENTE non ha la solidità di freenas, che attualmente sono arcicontento di poter usare come va usato.