Featured Posts

:: syscallme :: Rss

L’ardito airone d’aprile

Posted on : 15-04-2008 | By : daniele | In : Linux, News

Tags: , , , , , ,

0

E’ quasi fatta manca poco. Manca qualche spiccio di giorni e poi Ubuntu rilascerà ufficialmente Hardy Heron, la nuova distribuzione codice 8.04. Nel frattempo sul sito della distro di Canonical  compare finalmente il banner in homepage, per scaricare la beta e prendere informazioni. Ubuntu è sempre così reticente a parlare della nuova distribuzione prima che esca ufficialmente: non trovi mai sezioni apposite che ti diano un’idea dello stato e dell’avanzamento dello sviluppo, non trovi la possibilità di scaricare l’alpha, non trovi pareri, frasi, commenti, novità. Lavorano in silenzio. Per carità, in un mondo in cui tutti parlano, sono da apprezzare. Però a volte l’assenza globale di informazioni (in un mondo in cui le informazioni condizionano la giornata dell’uomo) ti fa chiedere se te la sei sognata la data di rilascio o il nome oppure se qualcosa succederà davvero (prima o poi…).

Too many vms, not many ip addresses

Posted on : 16-11-2007 | By : daniele | In : Advanced, Experience, Linux

Tags: , , ,

1

Allora il punto era questo.

Ho un server fisico supermegacarrozzato dove ci infilo le macchine virtuali che mi chiedono continuamente. L’ultima richiesta era fantastica:

Ci servono 2 virtual machines per comporre un cluster, e altre tre per comporre un altro cluster. Fai te, basta che ce le metti a disposizione.

Guardo gli ip address statici a disposizione e…mmm…mi sa che non bastano…o se bastano li finisco…e se li finisco poi sono cavoli. E poi come lo simuli per benino un cluster in questa maniera?

E allora l’ingegno, l’aiuto del fido xen e la potenza di Linux mi hanno risolto il problema.

Ho creato le cinque macchine virtuali, con indirizzi di rete interna in classe 192.168.1.0/24. Sulla macchina host ho aggiunto due indirizzi statici su due interfacce virtuali in eth0 (eth0:1 e eth0:2 per capirci) e sull’eth1 del server (interfaccia fisica si intende) ho messo un indirizzo della stessa sottoclasse delle vm.

Una volta startate, le virtuali erano in sottorete con la macchina host. Quindi un solo indirizzo ip statico settato fisicamente su una eth virtuale del server host, diventava una specie di Virtual-IP perfetto per i rispettivi nodi del rispettivo cluster. Fantastico.

A quel punto era necessario dare accesso ai ragazzi alle macchine virtuali…e come fare? Vabbè domanda scema e risposta semplice: un paio di dnat facevano al caso mio. Più o meno scrivendo questo per cluster a due nodi:

iptables -t nat -A PREROUTING -i eth0 -d XXX.XXX.XXX.XXX -p tcp -m tcp –dport 22 -j DNAT –to-destination 192.168.1.2
iptables -t nat -A PREROUTING -i eth0 -d XXX.XXX.XXX.XXX -p tcp -m tcp –dport 222 -j DNAT –to-destination 192.168.1.3

e questo per il cluster a tre nodi:

iptables -t nat -A PREROUTING -i eth0 -d YYY.YYY.YYY.YYY -p tcp -m tcp –dport 22 -j DNAT –to-destination 192.168.1.12
iptables -t nat -A PREROUTING -i eth0 -d YYY.YYY.YYY.YYY -p tcp -m tcp –dport 222 -j DNAT –to-destination 192.168.1.13
iptables -t nat -A PREROUTING -i eth0 -d YYY.YYY.YYY.YYY -p tcp -m tcp –dport 2222 -j DNAT –to-destination 192.168.1.14

Questo per portare l’accesso ssh sulle macchine di backend passando dai rispettivi ip statici ai nodi in rete “interna”, ovviamente dopo aver abilitato il listening dell’ssh anche sulle porte interessate dal destination nat.

Difficile? Ma no! semplicissimo e molto divertente!!!