sabato 5 gennaio 2008

Installazione di un server per la virtualizzazione

Ovvero "How I did it" per gli appassionati di "Young Frankenstein" altrimenti noto come Frankenstein Junior

Allo scopo di virtualizzare due macchine piuttosto vecchie e passare a nuovo hardware ridando vita a sistemi operativi piuttosto attempati e a software che necessitava di macchine più "brillanti" si è acquistato un server HP ProLiant ML 380 G4 dotato di controller RAID, 4 dischi hot swap da 360 GB configurati in un volume RAID 5, 5 GB di RAM e un dat DDS72.

Riepilogo delle operazioni di installazione del sistema operativo e del software vmware dopo le fasi di test.

Installazione del sistema operativo:

Si è utilizzato il CD Ubuntu Dapper 6.06 flight 7 INSTALL

NB: Si è scelta dapper dopo vari test su Breezy perchè rende disponibile il kernel amd64-server risultato più veloce e che già supporta più di 4 Gb di RAM. Gli altri kernel possibili erano amd64-xeon e amd64-generic. Tutti nascono compilati per multiprocessore ed eventualmente si adattano da soli al monoprocessore.

Selezione lingua: Italiana
Tastiera: Italiana

Installazione di tipo server; partizionamento come segue:

Dispositivo Boot Start End Blocks Id System Mount point
/dev/cciss/c0d0p1 * 1 64 514048+ 83 Linux /boot
/dev/cciss/c0d0p2
65 72434 581312025 83 Linux /
/dev/cciss/c0d0p3
72435 72689 2048287+ 82 Linux swap / Solaris
/dev/cciss/c0d0p4
72690 72944 2048287+ 82 Linux swap / Solaris

E' stato usato il software di partizionamento dell'installer procedendo a creare prima una partizione di 500 MB, successivamente a partire dagli ultimi blocchi due partizioni swap da 2 GB, ed infine una partizione con il restante spazio.

NB: Utilizzando il partizionamento automatico si è riscontrato un errore su Grub all'avvio perciò si è scelto di utilizzare una partizione /boot.

NB: Swap non puo' essere più di 2GB. Se si desidera + swap e' necessario creare più partizioni come in questo caso. Eventualmente e' poi possibile parallelizzarle.

Durante l'installazione è stata configurata manualmente (non tramite DHCP) la scheda di rete eth0 (ne sono presenti due) assegnando i seguenti parametri in accordo con la LAN:
  • Indirizzo IP
  • Netmask
  • Gateway
  • DNS
E' stato inoltre inserito il nome macchina ed un utente utente principale vmadmin (nella distribuzione Ubuntu l'utente creato al momento dell'installazione ha i diritti di effettuare sudo).

A fine installazione si è provveduto ad abilitare l'utente root con
sudo passwd root
e tutte le sorgenti di pacchetti che non fossero "backports" editando il file di configurazione
sudo vim /etc/apt/sources.list 
(per i dettagli si veda la sezione Package management della guida ufficiale di Ubuntu 6.06).

E' stato aggiornato il software con
apt-get update
apt-get dist-upgrade
Si sono installati i pacchetti del kernel nuovo con:
apt-get install  linux-headers-2.6.15-25 linux-headers-amd64-server linux-image-amd64-server
e quindi riavviato il server.

NB: fare attenzione che grub carichi di default il kernel giusto, altrimenti modificare il parametro default nel file di configurazione di grub.

Al riavvio si è proceduto ad inserire i moduli necessari per il corretto funzionamento del DAT:
modprobe aic7xxx
modprobe st
echo "engage scsi" > /proc/driver/cciss/cciss0

e si sono aggiunte nel file /etc/modules le righe
aic7xxx
st

si è creato un file in /etc/init.d chiamato engage-scsi di proprietà di root come segue:

#!/bin/sh
#
# engage-scsi
#
# abilita lo scsi, avviato da rc.S.
echo "engage scsi" > /proc/driver/cciss/cciss0

quindi si è creato un link al file nella directory /etc/rc.S dove ci sono i link agli script che devono partire prima dei vari rc.0-rc.1

ln -s /etc/init.d/engage-scsi S65engage-scsi

NB: il riassunto e' che per far funzionare correttamente lo scsi tape devono funzionare correttamente i moduli relativi allo scsi (aic7xxx in questo caso per uno SCSI adaptec ma per altro hardware può essere diverso) e poi del tape (st). Anche in questo caso con Kernel diversi da amd64-server si sono riscontrati problemi all'atto del caricamento dei moduli.

Infine, per permettere le connessioni XDMCP remote, si è modificato il file /etc/X11/wdm/wdm-config
commentando la riga 24:

 23 > # Don't listen for XDMCP
24 > #DisplayManager.requestPort: 0

e riavviato il servizio con
/etc/init.d/wdm restart


Installazione vmware


Al fine di standardizzare ed automatizzare l'installazione di vmware si sono preparati gli script Apt-Install-Dapper.fl7 e POST-apt-installDAPPER disponibili per il download. Si è quindi lanciato lo script Apt-Install-Dapper.fl7 che installa i componenti del Sistema Operativo necessari alla successiva installazione di vmware.
Dopo aver riavviato il server ed effettuato un accesso alla console grafica per consentire la creazione del profilo (utente vmadmin), si è lanciato lo script POST-apt-installDAPPER che crea i collegamenti sul profilo dell'utente vmadmin e pulisce la cache di apt.

Eseguendo l'installazione di vmware server beta3 23869 si incontra un errore nella generazione dei certificati ssl (un file con estensione .key). Cio' è dovuto al fatto che vmware è compilato a 32-bit mentre le librerie sono per applicazioni a 64-bit.
Per far funzionare vmware su un kernel a 64-bit è stato necessario avere a disposizione le seguenti librerie: ia32-libs, libpam0g, libdb2. Le ia32-libs sono librerie per emulare applicazioni a 32-bit su sistemi a 64-bit e sono state installate con il comando (che crea la cartella /lib32 con le librerie a 32-bit per kernel a 64):

apt-get install ia32-libs

per quanto riguarda le libpam0g e le libdb2 invece esse sono state soltanto scaricate e estratte e poi copiate in /lib32

wget http://archive.ubuntu.com/ubuntu/pool/main/p/pam/libpam0g_0.79-3ubuntu14_i386.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/d/db2/libdb2_2.7.7.0-10_i386.deb
dpkg -x libpam0g_0.79-3ubuntu14_i386.deb /
dpkg -x libdb2_2.7.7.0-10_i386.deb /

poi si muove il contenuto della cartella //lib in /lib32 per entrambi i pacchetti omettendo di muovere il contenuto di //usr che contiene la documentazione.

A questo punto si procede con la installzione di vmware.

Per prima cosa è necessario impostare la corretta versione del compilatore in accordo con quello utilizzato per il kernel; nel nostro caso è sufficiente impostare la seguente variabile di ambiente nella shell che sarà utilizzata per la compilazione:

export CC=/usr/bin/gcc-3.4

scompattare i pacchetti di vmware-server

cd vmware-server-distrib
./vmware-install.pl

scompattare i pacchetti di vmware console

cd vmware-console-distrib
./vmware-install.pl

Le scelte di default vanno bene in entrambi i casi, abbiamo scelto di configurare solo la bridged network nella configurazione di rete.

A questo punto VMware è installato correttamente ma non è possibile accedere al server dalle console remote: errore (“Login (username/password) incorrect ”).

Per ovviare al problema è necessario scaricare i files ”pam_unix.so pam_unix_acct.so pam_unix_auth.so pam_unix_passwd.so pam_unix_session.so” dalla versione a 32-bit di debian o ubuntu e metterli in /lib32/security.
editare /etc/pam.d/vmware-authd, cambiare il path di pam_unix_*.so in /lib32/security.
Riavviando il servizio di vmware (/etc/init.d/vmware restart) sarà possibile connettersi dalle console remote.
Non e' possibile installare il pacchetto api di vmware su kernel a 64-bit ma questo non è ncessario.

Versioni successive di VMware


Il server è stato in seguito aggiornato alle versioni più nuove di vmware fino ad arrivare alla versione 1.0.1 Build 29996 che risulta molto stabile e prestante. Per l'installazione delle versioni successive si è proceduto alla disinstallazione della precedente ed alla installazione della nuova, utilizzando sempre lo stesso metodo, non si sono mai trovati problemi. E' possibile che installando direttamente l'ultima versione indicata alcuni passaggi particolari come la modifica del metodo di autenticazione pam non siano necessari in quanto adesso la release 6.06 di Ubuntu risulta supportata da VMware

Nessun commento: