CONFINE Research Device HOWTO
CONFINE è un progetto di ricerca che ha l’obiettivo di costruire un’infrastruttura all’interno di varie community network europee per metterla a disposizione dei ricercatori, che possono così studiare reti reali, con utenti veri, anziché limitarsi ad esperimenti in laboratorio o simulati.
Questa guida spiega come configurare un Research Device per entrare a far parte dell'infrastruttura CommunityLab di CONFINE.
Vedere anche ConfineHowTo
Indice
- CONFINE Research Device HOWTO
INFORMAZIONI IMPORTANTI
- I Research Device, ovvero i computer di CONFINE, devono essere collegati ad un nodo ninux (la ricerca riguarda le Community Network)
- La policy di ninux Roma, decisa a riunione, è che i partecipanti a questo progetto abbiano la propria connettività (ad esempio la propria ADSL). La motivazione è che dai Research Device potrebbero essere effettuati download e quindi sarebbe meglio non caricare il backbone
- Chi prende un Research Device si impegna a lasciarlo acceso e funzionante almeno fino al termine del progetto CONFINE (fine 2015). In seguito sarebbe buono continuare ad utilizzare questi computer per servizi distribuiti dentro ninux
Requisiti Hardware
I Research Device sono i computer che costituiscono la maggior parte dell'infrastruttura di CONFINE (chiamata Community-Lab). Qualunque dispositivo con i seguenti requisiti hardware può fungere da Research Device:
- architettura x86 (per il momento)
- almeno 60GB di disco
- almeno 4GB di RAM
Durante l'installazione potrebbero far comodo monitor, tastiera e mouse.
Preparazione Intel NUC
I dispositivi principali forniti da Unidata nell'ambito del progetto CONFLATE sono Intel NUC (Next Unit of Computing) DC3217IYE, con processore i3 dual core, 60GB disco SSD, 8GB RAM. Il consumo di corrente varia tra gli 8W senza carico e circa 20W a pieno regime. La temperatura non va mai oltre i 40 gradi centigradi e la ventola, pure se presente, è molto silenziosa.
Per installare disco e RAM bisogna svitare le viti che si trovano nella parte inferiore.
Quindi installare il disco Mini PCIE SSD e la RAM. Notare la presenza della vite per tenere fermo il disco.
Quindi collegare tastiera e monitor (il mouse è comodo ma non necessario), accendere il NUC ed entrare nel BIOS premendo il tasto F2.
Andare su "Advanced Setup" -> Power e settare la voce "After Power Failure" su "Power On" per fare in modo che il device si riavvii senza bisogno di intervento manuale.
Andare su "Advanced Setup" -> "boot" ed attivare "Boot USB Devices First" per avere la possibilità di installare il firmware sul dispositivo da pen drive USB.
Premere F10 per uscire. Alla richiesta se si vogliono salvare le impostazioni rispondere 'Y'.
Registrazione del device e download del firmware
Il sistema operativo da installare sui Research Device è chiamato CONFINE Firmware. Si tratta di una versione customizzata di OpenWrt e il codice sorgente si può trovare qui.
Per ottenere un'immagine compilata e configurata del CONFINE Firmware innanzitutto bisgona registrarsi su panel.community-lab.net.
Effettuare il login. Quindi cliccare su "Nodes" e poi su "Add node" in alto a destra.
Scegliere un nome ed impostare Group: ninux.org, Island: Ninux.org. L'impostazione "Island" configura il Gateway Tinc (vedi Glossario in fondo) della community network. Molte delle impostazioni "Advanced" (in particolare IP statici ed IPv6) al momento della scrittura di questa guida ancora non funzionano propriamente.
Impostare anche "Community network URL" con il Permalink del nodo preso dal mapserver. Per esempio: http://map.ninux.org/select/utovrm/
Cliccare su "Save and continue editing" in basso. Ignorare i warning e cliccare su "Download Firmware" in alto a destra.
Selezionare l'immagine piu' recente (al momento "master.9b561fb" o "CONFINE-owrt-master-i686-20150715-1002.img.gz"), "Dell power edge r510" come registry API service, tutti gli "Optional files" (che servono per configurare l'autenticazione con il Controller e la rete di management Tinc - vedi Glossario in fondo) e la casella "USB Image" se si vuole effettuare l'installazione del firmware tramite pen drive USB. Scegliere una password per l'utente root. In alternativa si puo' copiare e incollare una riga con la propria chiave ssh pubblica nell'apposito campo.
Cliccare su "Build Firmware!" in basso.
Scaricare l'immagine del firmware compilata e configurata.
Installazione del firmware tramite pen drive
ATTENZIONE: Utilizzando questo metodo tutti i dati presenti sul pen drive USB verranno persi
Per trasferire l'immagine su un pen drive USB si puo' utlizzare unetbootin, oppure il comando dd nel seguente modo:
- collegare il pen drive e monitorare i messaggi del kernel per trovare il nome del device associato
$ dmesg | tail [ 6447.637043] sd 8:0:0:0: [sdd] Write Protect is off [ 6447.637057] sd 8:0:0:0: [sdd] Mode Sense: 03 00 00 00 [ 6447.637234] sd 8:0:0:0: [sdd] No Caching mode page found [ 6447.637238] sd 8:0:0:0: [sdd] Assuming drive cache: write through [ 6447.639322] sd 8:0:0:0: [sdd] No Caching mode page found [ 6447.639326] sd 8:0:0:0: [sdd] Assuming drive cache: write through [ 6447.713506] sdd: sdd1 sdd2 [ 6447.715095] sd 8:0:0:0: [sdd] No Caching mode page found [ 6447.715103] sd 8:0:0:0: [sdd] Assuming drive cache: write through [ 6447.715110] sd 8:0:0:0: [sdd] Attached SCSI removable disk
- se il sistema operativo utilizza il mount automatico, fare l'unmount del pen drive
- dare il seguente comando, modificando il nome del file immagine e del device in modo opportuno:
$ gunzip -c /tmp/USB-confine-firmware-newRDname-i686.img.gz | sudo dd of=/dev/sdX bs=1M ; sync
Attenzione: con i firmware rilasciati dal giugno 2014 in poi la configurazione della rete parte automaticamente. Quindi se il boot e' configurato per partire automaticamente da USB occorre togliere il pen drive dopo il reboot.
Inserire il pen drive nel Research Device (ad esempio il NUC) ed effettuare il boot. A boot terminato premere invio per far partire gli script di installazione di CONFINE. Alla domanda se si vuole installare rispondere 'y'.
Spegnere il sistema digitando il comando poweroff, togliere il pen drive e far ripartire il Research Device. A questo punto avverra' una serie di reboot (di solito 3) che servono alla preparazione del sistema.
Configurazione post installazione
Al momento della scrittura di questa guida ci sono delle configurazioni aggiuntive da effettuare, specifiche per gli Intel NUC. I ticket associati a questi problemi sono qui e qui.
Riconfigurare la rete
Attenzione: con i firmware rilasciati dal giugno 2014 in poi la riconfigurazione della rete non è più necessaria
Durante l'installazione il networking potrebbe essere stato configurato male. Per sistemare utlizzare i seguenti comandi:
uci del network.lan uci commit reboot
Evitare messaggi "ttyS0" nei log
Per evitare di avere i log di sistema inondati da messaggi relativi alla porta seriale (che non esiste sugli Intel NUC), bisogna modificare il file /etc/inittab commentando con "#" o rimuovendo la riga che inizia con "ttyS0".
::sysinit:/etc/init.d/rcS S boot ::shutdown:/etc/init.d/rcS K shutdown #ttyS0::askfirst:/bin/ash --login tty1::askfirst:/bin/ash --login
Messa in Produzione del Research Device
Il research device va collegato ad un nodo della rete ninux ed ha bisogno di un server DHCP attivo sulla lan. Oltre all'indirizzo IP dell'host serviranno altri indirizzi (8 sono quelli consigliati) per le macchine virtuali. Sono possibili due opzioni:
- utilizzare gli indirizzi IP della propria subnet (quindi dovrebbe bastare un semplice collegamento ad uno switch o router che faccia parte del nodo)
- configurare una lan apposita. Questo richiede sia un server DHCP apposito sia l'annuncio di questa subnet come HNA OLSR (per ninux Roma).
Dopo aver collegato il Research Device al nodo ninux tramite un cavo ethernet ed aver aspettato qualche minuto, se tutto e' andato bene loggandosi su https://panel.community-lab.net lo stato corrente del nodo dovrebbe essere "SAFE".
Cliccare sul nome del nodo ed impostare lo stato su "PRODUCTION" e salvare. Dopo qualche minuto anche lo stato corrente del nodo dovrebbe passare a "PRODUCTION".
Congratulazioni!!! Il tuo Research Device è ora parte del testbed di CONFINE!
Metodi alternativi
Il firmware di CONFINE puo' essere installato in altri modi.
Boot da altra distribuzione
Si puo' far fare il boot da USB ad una distribuzione Linux live qualunque, quindi scaricare o uploadare il firmware (compilato senza l'opzione "USB Image") e poi scompattarlo e copiarlo sull'hard disk del Research Device (/!\ ATTENZIONE: non dare il comando sul proprio PC /!\) utilizzando il comando dd:
gunzip -c confine-install.img.gz | sudo dd of=/dev/sdX bs=1M ; sync
dove /dev/sdX e' l'hard disk principale del Research Device (normalmente /dev/sda).
Boot da rete
Un altro metodo consiste nel configurare il PXE ovvero il boot da rete. Ci sono varie guide online, per esempio questa.
Macchine Virtuali
Macchine virtuali possono essere utilizzate come Research Device dentro CONFINE a patto di scegliere un nome che contenga la sigla "VM" al momento della registrazione del nodo.
Aggiornamento
Per fare l'upgrade del firmware:
andare in http://panel.community-lab.net sulla pagina del nodo da aggiornare
- cliccare su "Download Firmware" in alto a destra
- cliccare su "Delete Build" alla fine della pagina per eliminare la build del vecchio firmware
scegliere il nuovo firmware. La versione attualmente consigliata e' la "master.9b561fb" o "CONFINE-owrt-master-i686-20150715-1002.img.gz"
- come registry API scegliere l'unica disponibile
- cliccare su "Build Firmware!" in basso
- scaricare la nuova immagine del firmware compilata e configurata
- Quindi ci sono due opzioni:
- ripetere la procedura di installazione tramite penna USB, oppure:
copiare, tramite scp, l'immagine sul device. Per esempio:
scp communitylab-firmware-NUC-i686.img.gz root@[fdf5:5351:1dfd:42::2]:/tmp/
e poi entrare in ssh sul device, scaricare l'ultimo script di upgrade ed eseguirlo, dando i comandi:
wget --no-check-certificate https://redmine.confine-project.eu/projects/confine/repository/revisions/master/raw/packages/confine/confine-parted/files/usr/sbin/confine.sysupgrade chmod +x ./confine.sysupgrade gunzip communitylab-firmware-NUC-i686.img.gz ./confine.sysupgrade -n communitylab-firmware-NUC-i686.img
Invece la procedura di upgrade che utilizzava un unico comando dd scrivendo l'immagine direttamente sul disco non e' piu' supportata.
Maggiori informazioni qui
Troubleshooting
Il comando ifconfig potrebbe non far comparire tutti gli indirizzi IP effettivamente configurati. Utilizzare ip address show
- Dopo l'installazione del sistema avvengono dai 3 ai 5 riavvii. Questo e' normale
- Alcune tastiere (ad esempio wireless con hub USB interno) potrebbero non funzionare correttamente. Provare ad utilizzare una tastiera USB piu' basica
Se all'avvio il sistema non ha connettivita' verso Internet, il research device rimarra' nello stato OFFLINE sul controller per un tempo indefinito. Issue
- Tra l'inserimento del cavo ethernet e l'effettiva registrazione da parte del kernel dell'evento potrebbero passare parecchi secondi
Anche se la RAM inclusa e' 8GB, il sistema ne vede 4. Issue (risolto tramite l'utilizzo di PAE)
Vedere Anche
Node Installation sul wiki di CONFINE: http://wiki.confine-project.eu/testbeds:addnode
Node Administrator Guide sul wiki di CONFINE: https://wiki.confine-project.eu/usage:node-admin