Virtualizzare i Domain Controller
Si potrebbe pensare che l'idea di virtualizzare i Domain Controller di Active Directory non sia un argomento che necessiti di discussione, eppure mi accorgo che la domanda se i DC di AD debbano o meno essere virtualizzati si presenta regolarmente. In teoria, non c'è alcun bisogno di porsi questa domanda perché disponiamo nel settore di una guida molto più generale che ci dice che tutti i carichi di lavoro possibili dovrebbero essere virtualizzati, e AD non presenta certo casi particolari con cui creare un'eccezione a questa regola consolidata e di carattere generale.
Stranamente, però, le persone sembrano andare regolarmente in cerca di chiarimenti proprio su questo specifico carico di lavoro, e se si cercano cattivi consigli, qualcuno è sicuro di fornirli. Moltissime persone pubblicano consigli che raccomandano server fisici per Active Directory, ma raramente, se non mai, con una qualche spiegazione del perché raccomanderebbero di violare le best practice in assoluto, e tanto meno con un carico di lavoro così ordinario e ben conosciuto.
Quanto al motivo per cui chi implementa i DC di AD decide che ciò meriti un'indagine specifica sulla virtualizzazione, quando nessun altro carico di lavoro lo richiede, non saprei rispondere. Ma dopo molti anni di ricerca su questo fenomeno, ho acquisito una certa comprensione dell'origine dei consigli avventati sulle implementazioni fisiche.
Il primo errore deriva da una generale incomprensione di che cosa sia persino la virtualizzazione. Questo è purtroppo incredibilmente comune e le persone pensano molto spesso che virtualizzazione significhi consolidamento, cosa che ovviamente non è. Così prendono questo errore e applicano poi la falsa logica secondo cui consolidamento significherebbe consolidare due DC di AD sullo stesso host fisico. Ciò richiede anche il salto logico di pensare che ci saranno sempre due o più DC di AD, ma anche questa è una convinzione diffusa. Quindi tre grandi errori di logica si combinano per dar vita a consigli pessimi che, se si analizzano a fondo le raccomandazioni, è normalmente possibile ricondurre alla loro origine. Questa sembra essere la radice della maggior parte dei cattivi consigli.
Altre cause derivano talvolta dal fraintendimento delle vere best practice, come la frase “Se hai due DC di AD, ciascuno deve trovarsi su un host fisico separato.” Questa affermazione ci dice che in questo scenario devono essere utilizzate due macchine fisicamente distinte, il che è assolutamente corretto. Ma non implica che nessuna delle due debba avere un hypervisor, bensì soltanto che sono necessari due host diversi. La formulazione usata per questo tipo di consiglio è spesso difficile da comprendere se non si possiede già la consapevolezza che in nessuna circostanza è accettabile un carico di lavoro non virtuale. Se si legge la raccomandazione con questa consapevolezza, il suo significato è chiaro e, si spera, ovvio. Purtroppo, tale raccomandazione viene spesso ripetuta fuori contesto, così il significato sottostante può facilmente andare perduto.
Molto tempo fa, all'incirca un decennio fa, alcune piattaforme di virtualizzazione presentavano alcuni problemi legati alla temporizzazione e agli orologi di sistema che potevano scatenare il caos nei sistemi di database in cluster come Active Directory. Questo era un problema legittimo molto tempo fa, ma è stato risolto molto tempo fa, come era necessario fosse per molti carichi di lavoro diversi. Si è creata tuttavia la percezione che AD potesse richiedere un trattamento speciale, e sembra persistere anche se, in termini informatici, sono passate una o due generazioni da quando questo era un problema e avrebbe dovuto essere dimenticato da tempo.
Un altro mito che porta a cattivi consigli affonda le radici nel fatto che i DC di AD, come altri database in cluster, quando utilizzati in modalità cluster non dovrebbero essere sottoposti a snapshot, poiché ciò creerebbe facilmente la corruzione del database se un solo nodo del cluster venisse ripristinato in tal modo. Questo è tuttavia un aspetto generale dell'archiviazione e dei database e non è affatto correlato alla virtualizzazione. Le stesse informazioni sono necessarie allo stesso modo per i DC di AD fisici. Che gli snapshot siano associati alla virtualizzazione è un altro mito; la virtualizzazione non implica alcun artefatto di archiviazione di questo tipo.
Altri miti ancora nascono dalla convinzione che la virtualizzazione debba fare affidamento su Active Directory stessa per poter funzionare e che pertanto AD debba essere eseguita senza virtualizzazione. Questo è del tutto un mito e privo di senso. Non esiste alcun requisito circolare di questo tipo.
Purtroppo, alcuni ambiti tecnici hanno dato origine a miti su vasta scala, spesso numerosi, che li circondano e possono rendere difficile distinguere la verità. La virtualizzazione è appena abbastanza complessa che molte persone tentano di imparare non solo come usarla, ma anche che cosa sia concettualmente, a memoria, dando origine a fraintendimenti talvolta assurdi e così lontani dalla realtà che può essere difficile rendersi conto che è davvero questo ciò che stiamo osservando. E in un caso come questo, i fraintendimenti su virtualizzazione, storia, database in cluster, tecniche di alta disponibilità, archiviazione e altro ancora si sommano in strato su strato di fraintendimenti, rendendo difficile capire come così tante cose possano confluire attorno a una sola questione di implementazione.
In definitiva, pochi carichi di lavoro sono perfettamente adatti alla virtualizzazione quanto i Domain Controller di Active Directory. Non esiste alcun caso in cui l'idea di utilizzare un'implementazione di sistema operativo su bare metal fisico per un DC debba essere presa in considerazione – virtualizzare ogni volta.