In un ambiente virtuale, il monitoraggio delle perfomance delle VM è di importanza cruciale se si vogliono garantire performance adeguate. I tre più importanti aspetti da considerare sono: memoria, risorse del disco e della CPU, sistema operativo host.
In principio, la virtualizzazione del server divenne popolare tra i professionisti IT come modo per ridurre i costi sfruttando meglio l’hardware del server esistente.
L’idea era che molti server venivano utilizzati solo per il 10-20% delle loro capacità, quindi aveva senso combinare quei server in una singola macchina piuttosto che acquistare hardware dedicato per ogni server.
Ma la virtualizzazione del server ha subito negli ultimi anni un mutamento fondamentale e con essa oggi si mira piuttosto ad ottenere flessibilità e resilienza all’interno dei data center.
Invece che virtualizzare solo server con un basso overhead, alcune aziende hanno cominciato a virtualizzare interi data center. In questo modo, i manager IT possono considerare i server host alla stregua di un bacino di risorse, da allocare in base alle esigenze del momento.
In questo articolo vediamo i componenti principali da considerare inel processo di virtualizzazione.
Risorse del disco
Gli hard drive di un server sono di gran lunga i componenti più lenti e rappresentano spesso i colli di bottiglia dell’intero sistema
La soluzione ideale consiste nell’utilizzare una SAN per lo storage dei server virtuali. In questo senso, ricordiamo che al sistema operativo host andrebbe dedicato un drive specifico, non un semplice volume. In questo modo non è in competizione con la VM per le risorse del disco. Se il server host può gestire un drive in più, allora prendete in considerazione di spostare anche il pagefile del sistema operativo su un drive dedicato.
Gli array RAID sono fondamentali per garantire le prestazioni del server virtuale. Gli array del disco dovrebbero utilizzare almeno RAID 1, ma RAID 1+0 costituisce una scelta migliore perché fornisce fault tolerance senza l’overhead di prestazioni di RAID 5. Se possibile, dedicate una array di disco a ogni server virtuale.
Oltre al tipo di storage array, sono molto importanti anche i tipi di dischi utilizzati nell’array. Se due o più server virtuali stanno condividendo un array, allora prendete in considerazione di utilizzare drive da 10.000 RPM (valgono il costo aggiuntivo rispetto ai drive da 7.500 RPM).
Non dimenticate di utilizzare drive SCSI hot-swap nei vostri array di storage (in caso contrario dovete mettere offline un intero array per sostituire un hard drive guasto).
Indipendentemente dal tipo di storage che state utilizzando, assicuratevi di aver installato il driver appropriato. In molte situazioni, Windows ha identificato in modo automatico un dispositivo di storage ma non lo ha fatto in modo corretto: i dispositivi di storage funzionavano, ma le prestazioni non risultavano ottimali a causa del driver.
Infine, si possono avere prestazioni migliore se i vostri server virtuali sono configurati per utilizzare hard drive virtuali di una dimensione definita. Se da un lato è facile espandere dinamicamente gli hard drive, dall’altro questa impostazione può inficiare le prestazioni del server.
Memoria e risorse CPU
La memoria fisica è l’unico fattore veramente importante per determinare il numero di VM che un server può gestire, nonché la loro efficienza. Installate sempre la memoria massima che il vostro server è in grado di gestire e assicuratevi di lasciare abbastanza memoria libera per permettere al sistema operativo host di funzionare correttamente.
Alcuni prodotti di virtualizzazione permettono di allocare più CPU virtuali del numero totale di core CPU fisici installati nel sistema. Per ottenere le migliori prestazioni, allocate almeno due core CPU per il sistema operative host e controllate che ogni CPU virtuale aggiuntiva abbia un core CPU fisico corrispondente.
Questi consigli hanno come obiettivo le prestazioni ottimali. A volte si possono allocare più CPU virtuali del numero di core CPU fisici e avere prestazioni più che ragionevoli (che però non saranno quelle ottimali).
Sistema operativo host
Non tutti i prodotti di virtualizzazione si basano su un sistema operativo "convenzionale" Windows Server. Hyper-V Server, per esempio, è un prodotto dedicato, stand-alone.
Se il vostro obiettivo principale è quello di ottenere prestazioni ottimali, allora utilizzate un prodotto di virtualizzazione stand-alone, sia che si tratti di un server Hyper-V o di un altro.
A volte, però, c’è l’esigenza di far funzionare un sistema operativo tradizionale sul vostro server host. In questo caso, si possono prendere alcuni accorgimenti per minimizzare l’overhead del sistema operativo.
Cominciate a fare la lista dei i processi in funzione sul vostro sistema operativo host e determinate quali sono necessari e quali no. Sul vostro sistema operativo non dovrbbero funzionare più applicazioni di quelle stretamente necessarie per la gestione del sistema, come agent di backup o antivirus. Tutte le altre applicazioni devono essere disinstallate e bisogna disabilitare tutti i servizi di sistema superflui.
Poi, controllare che l’antivirus sul sistema operativo host non sia configurato per eseguire la scansione delle cartelle che contengono hard drive virtuali o qualsiasi altro componente correlato con la vostra VM. Nel migliore dei casi, la scansione di queste cartell diminuirà le prestazioni del vostro server. Nel peggiore, il vostro antivirus potrebbe corrompere un file dell’hard drive virtuale.
Un’altra tecnica di ottimizzazione consiste nel cambiare il metodo di scheduling del processore del sistema operativo dell’host. Windows Server consente ad esempio di impostare lo scheduling del processore in modo da dare priorità ai programmi o ai servizi in background. Gli host virtualizzati dovrebbero sempre favorire i servizi in background.
Infine, se il vostro server host esegue una deframmentazione automatica, bisogna programmarla solo durante i periodi di inattività. Allo stesso modo, se eseguite una deframmentazione automatica della vostra VM, quella deframmentazione va fatta durante le ore non di picco, secondo un programma che impedisce a più VM di eseguire deframmentazioni simultanee.
Poiché la virtualizzazione dell’host comincia a gestire flussi di lavoro più impegnativi, diventa più che mai importante l’ottimizzazione delle prestazioni del server host. L’ottimizzazione assicura che le risorse hardware disponibili vengano utilizzato nel modo più efficiente possibile.