Visualizzazione post con etichetta esxi. Mostra tutti i post
Visualizzazione post con etichetta esxi. Mostra tutti i post

giovedì 2 aprile 2009

VMWare ESXi: cluster e dischi condivisi

La realizzazione di cluster per il deploy di applicativi ad alta criticità è ormai diventata una prassi molto comune anche nelle piccole aziende; lo scoglio più duro, dal punto di vista economico, continua ad essere l'acquisto dello storage condiviso, sia esso una San o un più semplice Nas.

Anche in questo caso l'utilizzo di sistemi di virtualizzazione, soprattutto per gli ambienti di sviluppo/collaudo/preproduzione, è di molto aiuto per contenere i costi. Nel caso si utilizzi VMWare ESX o ESXi la procedura per la creazione dello storage condiviso è abbastanza semplice ma non è ben documentata così ho cercato di sintetizzare i passi necessari in questo post.

Naturalmente la creazione di unità di storage condiviso è volta a permettere a più nodi di un cluster di montare in lettura/scrittura gli stessi dischi e per tale operazione è necessario utilizzare un filesystem che lo permetta: gfs, ocfs2, etc.. (chi utilizza distribuzioni RedHat 4.2, o rebuild varie, tenga presente che per il funzionamento dei tool di ocfs2 è necessario configurare opportunamente selinux o disabilitarlo).

Tornando alla creazione dello storage condiviso, la prima operazione da compiere in Vmware è la creazione di un disco in modo che si abbia in seguito la possibilità di aggiungerlo come disco condiviso ai nodi del nostro cluster, ma questa operazione può essere effettuata solo da riga di comando.

Per quanto riguarda ESX l'accesso ad una shell non è un problema, chi utilizza ESXi dovrà invece seguire la procedura che ho già descritto in questo post:


La creazione di un nuovo disco da condividere deve essere eseguita utilizzando il vmkfstools (post originale su VMWare communities) perchè è necessario utilizzare un parametro (-d thick) non selezionabile dall'interfaccia grafica:
vmkfstools -c 60G -a lsilogic -d thick /vmfs/volumes/VirtualMachines/DIR/VMDK01.vmdk
Si intende per:

- 60G: la dimensione del disco che stiamo creando;
- DIR: la directory che avete creato (da CLI: mkdir /vmfs/volumes/VirtualMachines/DIR) i vostri dischi condivisi;
- VMDK01: il nome del disco condiviso;

A questo punto sarà sufficiente aggiungere il disco a tutti i nodi del cluster tramite il VMWare infrastructure client:

- Edit Virtual Machine Settings -> Add Hard Disk -> Use an exisisting virtual disk -> Browse - scegliete il disco che avete creato: /vmfs/volumes/VirtualMachines/DIR/VMDK01.vmdk) ;
- Selezionate un id su un altro controller SCSI da Virtual Device Node (Es: 1:0) ed attivate Indipendent -> Persistent;
- Selezionate il nuovo controller SCSI e selezionate per il SCSI Bus Sharing l'opzione Virtual;


venerdì 13 marzo 2009

VMWare ESXi: Come clonare una virtual machine

La virtualizzazione è ormai alla portata di tutti sia dal punto di vista della semplicità delle operazioni richieste sia per il costo molto ridotto. In considerazione del successo che sta avendo il post che ho scritto qualche mese fa (VMware Server 2.0 Firefox 3.0.1 e vi web access) mi sembra utile condividere qualche informazione a proposito di alcune operazioni non documentate.

Tutti i vendor ormai propongono soluzioni di virtualizzazione e paravirtualizzazione gratuite, tra questi è presente ovviamente anche VMWare (che ha la percentuale maggiore di clienti) con il suo ESXi; per le differenze tra il gratuito ESXi ed il costoso Infrastructure (nuovo nome per ESX server) vi rimando a questa pubblicazione ufficiale: VMWare ESX and ESXi comparison.

ESXi è un ottimo prodotto ma ha un alcuni limiti che possono risultare bloccanti, tra questi quello più scocciante è non potere clonare le virtual machine. Altri prodotti VMWare lo permettono in maniera nativa (e molto semplice), in questo caso invece l'unica soluzione sembrerebbe essere quella di utilizzare il VMWare converter (gratuito). L'inconveniente più scocciante nell'utilizzare il converter è l'esponenziale aumento dei tempi necessari per l'operazione di cloning (o più precisamente in questo caso: conversione).

Per ovviare a questo limite è però possibile utilizzare un metodo non documentato! Mi riferisco al Tech Support Mode che VMWare ha descritto solo in questo articolo nella loro knowledge base: Tech support mode for emergency support.

E' sufficiente recarsi davanti al proprio server premere ALT+F1 e digitare (i caratteri non si vedranno sul video): unsupported; a questo punto vi si presenterà la richiesta della password e dopo averla inserita accederete ad una shell.

Oltre a non essere documentato questo metodo è anche non supportato (come chiaramente segnalato da un messaggio di colore rosso) quindi fate molta attenzione alle operazioni che eseguite.

Per prima cosa abilitate la possibilità di accedere in ssh al vostro server: editate il file xinetd.conf (vi /etc/inetd.conf) togliendo il commento (#) nel rigo relativo (ssh) e riavviate i servizi (/sbin/services.sh restart).

A questo punto per clonare una virtual machine sarà sufficiente:

- spegnere la virtual machine che si vuole clonare;
- creare la cartella sul vostro datastore utilizzando il datastore browser - Connettetevi al server ESXi utilizzando VMWare infrastructure client e fate doppio click sul vostro datastore da Configuration - Storage (ES: vm02);
- copiare il file con estensione vmdk (Es: vm01.vmdk) dalla cartella della virtual machine da clonare alla cartella appena creata (vm02) - Fate click con il tasto destro del mouse sul nome del file e selezionate copia e proseguite con l'ovvio incolla nella directory appena creata (la procedura può richiedere del tempo in funzione delle dimensioni dei dischi della macchina virtuale);

Adesso sarà necessario connettersi in ssh al server ed eseguire alcuni comandi per terminare l'operazione di clone:

- spostarsi nella directory della nuova virtual machine: cd /vmfs/volumes/nomedelvostrodatastore/vm02;
- rinominare il file che avete copiato avendo cura di utilizzare lo stesso nome della directory che avete creato in precedenza: mv vm01.vmdk vm02.vmdk;
- rinominare l'altro file che trovate nella cartella della virtual machine: mv vm01-flat.vmdk vm02-flat.vmdk;
- editare il file vm02.vmdk e modificare opportunamente il riferimento al file nel rigo successivo ad Extent description: vi vm02.vmdk;

Per terminare l'operazione, utilizzando il VMWare infrastructure client, creare una nuova virtual machine e scegliere la configurazione custom. Al momento della configurazione del virtual disk selezionare: use an existing virtual disk e scegliere nel vostro datastore il file con estensione vmdk che avete appena rinominato.

Adesso sarà possibile avviare la nuova virtual machine clonata (naturalmente dovrete avere l'accortezza di modificare hostname, ip etc..).

Ricordate di ripristinare il commento nel file /etc/xinetd.conf per inibire nuovamente l'accesso in ssh che altrimenti potrebbe rendere meno sicura la vostra installazione.

A disposizione per eventuali chiarimenti.