Xen recipes #1: HW e software di base

Ingredienti fondamentali per riprodurre ‘o miracolo.

  1. Scheda madre Intel che supporti VT-d. Ci sono altri produttori che supportano VT-d nei loro modelli ma il tutto è abbastanza fumoso. La mia scelta è andata per una DQ67OW
  2. Processore compatibile VT-d. Ho scelto lo XEON E3-1260L per via della scheda grafica integrata, delle prestazioni (4 core, 8 thread) e dei consumi (45W TDP).
  3. Una sheda grafica supportata, la mia scelta è andata per una FirePro V5700 tra l’altro poco costosa a causa del crash da bitcoin mining (vedasi).

Il bios della scheda madre è alquanto antipatico ed oltre a quello non sono riuscito a configurare l’opzione di default di GRUB: cioé sono riuscito a impostarla, ma il bootloader semplicemente la ignora, per cui ho scelto la via più semplice. Installare GRUB su una chiavetta USB e fare il boot da quella.

Dei tre componenti HW quello più delicato sembra essere la scheda grafica: la percentuale di successo con schede grafiche NVidia o non FirePro è decisamente bassa mentre la V5700 è indicata tra le schede testate (e spero supportate).

Dopo di che ho installato Fedora 16 in versione x64.
Xen si installa via terminale sudato con

yum install xen

Fin qui la parte facile, descritta anche in questa pagina Wiki.

Più complicato è stato creare il network bridge necessario per la connettività dei vari sistemi virtualizzati. Le istruzioni della pagina Wiki di cui sopra a tal riguardo sono incomplete. Nella directory /etc/sysconfig/network-scripts vanno creati due file.

File ifcfg-br0:

DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
NM_CONTROLLED=NO

File ifcfg-em1:

DEVICE=em1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=NO
BRIDGE=br0

Per chi vuole spolparsi il manuale, la documentazione riguardo questi interface configuration files è linkata qui. Il nome del bridge (nel caso di cui sopra è br0) è importante per la configurazione delle macchine (para)virtuali. Dopo di che va disabilitato il servizio NetworkManager (che non supporta i bridge) e abilitato il servizio network al suo posto:

systemctl disable NetworkManager.service
systemctl stop NetworkManager.service
systemctl enable network.service
systemctl start network.service

Come ultima fase del setup iniziale ho creato un folder /xen e ho abilitato la condivisione dei file via SMB usando le istruzioni che ho trovato qui.

Ho creato una nuova installazione di grub su chiavetta USB usando:

grub2-install --force --no-floppy --root-directory=/mnt/USB /dev/sdx

laddove /mnt/USB è la directory su cui è montata la chiavetta USB e /dev/sdx è il file associato al dispositivo che si ottiene usando il comando lsscsi. Ho poi copiato e alleggerito il file di configurazione grub da /boot/grub2/grub.cfg a /mnt/USB/boot/grub2/grub.cfg.

Il passo successivo è la creazione di macchine virtuali.

Pubblicato martedì 24 gennaio 2012 alle 1:47 AM - 3 commenti so far
Archiviato in: Virtualizzazione

Xensolidation

Tempo fa mi son posto una domanda che non saprei qualificare: ma se invece di avere un laptop, una workstation e un server creassi un super-computer che ne faccia le veci e sostituissi il laptop con un tablet più consono alla lettura di PDF e CBR?

A pensarci la tecnologia per farlo c’è. Ad esempio VT-d, sigla con cui Intel indica la capacità di virtualizzare, ovvero assegnare fisicamente ad un sistema operativo guest, intere periferiche: controller SATA, controller di RETE, controller USB, porte PCI-*, ecc. Teoricamente si potrebbe assegnare un’intera scheda grafica ed un controller USB ad un sistema operativo desktop che emulerebbe completamente l’esperienza di una macchina desktop pur girando su un hypervisore in compagnia di Solaris per ZFS, WHS per il backup e per servizi .Net, un Windows XP per esperimenti da usa e getta, ecc. (AMD offre una tecnologia equivalente, ma la mia familiarità con i loro prodotti è decisamente scarsa).

Il problema è che sembra che questo scenario interessi veramente a pochi esseri umani in tutto il globo relativisticamente parlando: il supporto della virtualizzazione della scheda grafica è a livello di leggenda ma posso dire, visto che sto scrivendo dalla workstation virtuale, che con un po’ di sforzo è possibile farcela. Ci son voluti mesi, dal punto di vista puramente economico è un discorso completamente in perdita se non si considera la conoscenza derivante avere un valore. Ho provato tante soluzioni: ESXi, 4.x e 5.0, non funziona. XenServer 6.0 sulla carta supporta lo scenario ma non sono riuscito ad installarlo e quindi ho deciso di propendere per la strada più contorta, ovvero XEN.Book of Xen

Devo dire che se avessi fatto l’esperimento un anno fa avrei fallito miseramente: in un anno grossi pezzi di XEN sono diventati parte del kernel ufficiale di Linux per cui oggi tutto è estremamente più semplice o in una parola sola possibile.

Va aggiunto che XEN è uno dei progetti peggio documentati che esistano per cui navigare a vista è impossibile e si sopravvive solo grazie alla Bibbia opportunamente integrata da vagonate di ricerche su Google.

Io sono partito da Ubuntu 11.10, a causa della totale disinformazione a riguardo, che mi ha lasciato intendere che l’Oniric fosse una delle poche distro a supportare XEN come Dom0. L’esperimento ha avuto però alcuni risvolti positivi, ovvero mi ha dato la possibilità di verificare che era possibile sostituire il mio setup basato su ESXi 4.x con uno pseudo-equivalente basato su XEN (improvvisamente VMWare a causa della Netflixizzazione è diventata estremamente antipatica).

Nel frattempo è stato aggiornato il Wiki con una pagina dedicata a Fedora 16 che ne esplicitava la compatibilità completa come Dom0. La sostituzione di Ubuntu con Fedora è stata pressoché indolore (un eufemismo nel mondo Linux).

L’ultimo pezzo del puzzle è stato quello di verificare la virtualizzazione della scheda grafica che seppur parziale (ovvero non funziona durante la fase di boot ma solo dalla schermata di login in poi) è risultata funzionale abbastanza da completare il mio sogno di nuvola personale. C’è ancora qualche asperità da limare (ad esempio cambiare i parametri di default di grub2 che sono complicati) ma il risultato è soddisfacente e consiste in un super-computer, prontamente battezzato Cray1, così configurato:

  • WHS che gira con il suo hard-disk dedicato e un controller USB assegnato (la scheda madre ne ha due e per fortuna uno dei due controlla le USB “frontali”, l’altro le USB “posteriori”). In tal modo ho potuto assengare una scheda audio USB ed un lettore di SD al server per il “servizio rippatutto e senza click” a cui dedicherò uno dei prossimi post.
  • Windows 7 che gira con il suo SSD dedicato e l’altro controller USB per tastiera, mouse e tutto il resto (ció però lascia il sistema Host completamente senza controller USB e per ora non mi sembra rappresenta un problema: nel caso peggiore una scheda PCI-e con qualche porta USB colmerebbe la lacuna)
  • Windows XP che gira in maniera completamente virtuale
  • Solaris, nell’incarnazione made in Nexenta, che gestisce in paravirtualizzazione i 4 dischi dati
  • Linux Fedora 16 a fare da host puro; volendo è possibile controllarlo tramite SSH o via VNC.

Per completare l’opera dal punto di vista prettamente “materiale” ho dovuto hackerare un “comodino” IKEA in piedistallo per il nuovo server accorciandolo in due dimensioni su tre e farcelo stare comodamente all’interno dell’angolo cottura.

Mi aspetto che il futuro, con il rilascio di XCP 1.5, sarà sempre più friendly verso questo tipo di progetti.

-quack

Pubblicato martedì 3 gennaio 2012 alle 7:05 AM - 16 commenti so far
Archiviato in: Virtualizzazione

Buone feste 2012!

Dedicato ai più nostalgici, perché le feste di oggi non sono più quelle di una volta (verissimo!).

Auguri andergraund

-quack

Pubblicato martedì 20 dicembre 2011 alle 7:32 PM - 20 commenti so far
Archiviato in: Cazzate

Dotti medici e sapienti

dotti_medici_sapientiICI e Vaticano: mettiamo da parte completamente il fatto di chiedersi se sia giusto o meno che la Chiesa paghi, quando paghi e per cosa paghi, sarebbe un argomento politico e questo un luogo di perdizione.

Parliamo invece di quei dotti, medici e sapienti che di fronte alla parola esclusivamente ci hanno spiegato che ma no, non è così, ecc. ecc.

Qualcuno ha introdotto il discorso con “io non sono cattolico, ecc., però, … blah blah blah voglio fare informazione blah blah blah, ecc. il trucchetto della cappella non è possibile… blah blah blah”. Per spiegarci che questa storia fondata sull’esclusivamente è tutta una favola. Come se non essere cattolici fosse condizione necessaria e sufficiente sull’uso imparziale della ragione.

Il tutto ovviamente è dal punto di vista logico, inteso come termine esclusivamente scientifico, estremamente debole.

Se l’esclusivamente-cappella è una favola, di cosa vuol discutere oggi il cardinale Bagnasco? Non si capirebbe.

Se l’esclusivamente-cappella è una favola, perché il capo del Governo Italiano ha detto che “non si è posto il problema” visto che il problema, per l’appunto, non dovrebbe essere neppur esistente?

Se l’esclusivamente-cappella  è una favola, non sarebbe più facile dimostrare che l’albergo delle brigidine in Piazza Farnese a Roma paga l’ICI come tutti gli altri alberghi o in alternativa che si tratta di un luogo di culto dove la gente si ferma a dormire dopo tanto pregare?

Ripeto, non mi interessa cosa sia giusto o meno. Mi interessa capire una cosa: di cosa stanno parlando questi dotti, medici e sapienti? Così, usando la Logos aristotelica per contrappasso.

-quack

Pubblicato venerdì 9 dicembre 2011 alle 7:44 PM - 14 commenti so far
Archiviato in: Cazzate

Come vincere al totocalcio

In un’estate di tanti anni fa, in vacanza a Milano (?!) ebbi la fortuna dicomevincerealtotocalcio_lores leggere questo libro la cui prima edizione risale addirittura al 1968. Presentai ai miei amici di comitiva il concetto ivi contenuto di “sistema a correzione di errore”, giocammo una schedina in società (dieci quote da mille lire ciascuna, il prezzo di una colonna credo che fosse cinquecento lire), sviluppai il sistema a mano su schedine a lettura ottica fresche di introduzione e facemmo dodici grazie ad un errore nello sviluppo acchiappando circa 125mila lire, che diviso dieci fecero dodicimilacinquecento lire caduno.

Non avessi fatto quell’errore avremmo fatto undici; a fini storici le dodicimila e cinquecento lire furono spese in altri sistemi ovviamente meno fortunati di quello di partenza.

Ma tanto bastò per farmi appassionare alla “sistemistica” che altro non è che una branca della matematica combinatoria con risvolti decisamente interessanti. Quello più interessante riguarda il concetto di sistema ridotto perfetto, ovvero sistemi che garantiscono la “vincita di seconda categoria” (es. il dodici) a fronte di un costo sensibilmente minore. In alcuni casi il ridotto perfetto è possibile, in quanto il numero di colonne integrale è un multiplo esatto del numero di colonne a scarto uno proprio del sistema. Ad esempio, un sistema di 4 triple integrale garantisce una colonna da prima categoria + 4 x 2 colonne da seconda categoria (per ogni tripla basta sostituire il segno buono, con i due non buoni). Ovvero in 4 triple ci sono 9 colonne buone. Siccome quattro triple integrali equivalgono ad uno sviluppo integrale di 81 colonne che è un multiplo di nove, la riduzione perfetta potrebbe esistere, ed in realtà esiste. Uno sviluppo ridotto (ce ne sono tantissimi dovuti a possibili permutazioni e sostituzioni) è quello indicato qui sotto che cito a memoria in quanto ha una certa simmetria estetica non trascurabile

                                             1 X 2   1 X 2   1 X 2
                                             1 X 2   X 2 1   2 1 X
                                             1 X 2   2 1 X   X 2 1
                                             1 1 1   X X X   2 2 2

Qualsiasi quadrupla dell’alfabeto {1, X, 2} è contenuta con uno scarto di al massimo un simbolo nello sviluppo ridotto sopra indicato.

Un altro sistema che permette la riduzione perfetta è, incidentalmente, quello di tredici triple in quanto le colonne papabili sono ventisette e l’eventuale sviluppo ridotto porterebbe a 59049 colonne.

La matematica nel frattempo ha fatto grandi passi dal 1968, per non parlare della forza bruta dell’informatica. Sull’argomento, che ha affinità con i codici a correzione d’errore, è disponibile un testo “sacro” chiamato Covering Codes.

È da un po’ che mi cimento a tempo perso e l’obiettivo non è sistemistico ma puramente matematico. Non si rischia di vincere niente… semmai il Nobel per la matematica!

-quack

Pubblicato lunedì 5 dicembre 2011 alle 8:20 PM - 5 commenti so far
Archiviato in: Cazzate