La scorsa settimana è arrivato in ditta un nuovo server, (HP Proliant DL185) acquistato con l'intento di virtualizzarci sopra un po' di macchine.
Io volevo installarci VMWare ESXi v3.5 e dimenticarmi poi della sua esistenza, ma... sorpresa! La macchina in questione (o almeno il controller raid in esso presente) non è nella compatibility-list di ESXi e infatti, tentando di installarlo, il risultato è un bell'errore del tipo "Non trovo i dischi".
Ok, piano B... Installo Novell SLES 10 SP2 EMT64 ridotto al minimo e un bel VMWare GSX Server v2.0, e qui iniziano i problemi.
Installo GSX, lancio lo script di configurazione vmware-config.pl setto tutto a dovere (forse) e tutto funziona...
Riavvio la macchina e non funziona più nulla... morale della storia, non vengono avviati i servizi di VMWare GSX Server, che (APPARENTEMENTE) sono 4:
vmware
vmware-core - non ho capito la differenza tra questi due comunque il core di vmware con l'HAL
vmware-autostart - il servizio che consente di avviare il automatico le virtual machines al riavvio dell'host
vmware-mgmt - Il servizio che consente la gesione remota tramite web-interface e/o Virtual Infrastructure Client
Verificando con YAST (o tramite "service --status-all") questi 4 servizi, infatti risultavano spenti e anche cercando di assegnargli, sempre tramite yast, il runlevel giusto (2,3 e 5) non cambiava nulla, ovvero le impostazioni non avevano alcun effetto e venivano ignorate.
Bene, allora via di maniere forti... verifichiamo che gli script di questi servizi siano presenti in /etc/init.d e che siano linkati nelle varie sottocartelle rc[X].d e qui la prima sorpresa. "vmware" è uno script reale, invece "vmware-core", "vmware-autostart" e "vmware-mgmt" sono link a "vmware" e nelle varire cartelle rc[X].d sono presenti tutti e quattro i link ai vari servizi, ma in realtà sono tutti link allo script "vmware".
Risparmio tutti gli step per capire cosa questo implicasse, ma il fatto che venisse richiamato varie volte lo stesso script (vmware) da più link diversi, faceva si che quando insserv provasse a fare lo start dei vari script di init, questo andasse in errore.
Soluzione 1:
Eliminare da /etc/init.d tutti i link allo script di vmware e copiare questo script rinominandolo nei vari vmware-core, vmware-autostart, vmware-mgmt in modo che diventino tutti script reali, ovviamente vanno ricreati anche i link corretti nelle varie cartelle rc[X].d a seconda dei runlevel da assegnare. Inoltre per far si che tutto funzioni, in ogni script bisogna editare il blocco commentato INIT INFO in modo da sostituire "vmware" con i rispettivi "vmware-core", "vmware-autostart"e "vmware-mgmt" (questo blocco, compreso tra BEGIN INIT INFO e END INIT INFO viene letto da insserv).
Soluzione 2:
Letta su internet, non capita e non testata... qualcosa che ha a che fare con l'attributo RUN_PARALLEL=Yes... dato che la soluzione 1 funziona, non ho approfondito!