Tesina Tiralongo Sis/Ing

Da Wiki-itsos.

Server DRBL
Itsos Marie Curie – Cernusco sul Naviglio


Andrea Tiralongo
5° Informatico B
AS 2013-14 Materie: Sistemi e Inglese



Il server DRBL

DRBL is a server providing a diskless or systemless environment for client macchines. Installation is possible on a macchine with a linux operating system already installed. It uses distributed hardware resources and makes it possible for clients to fully access local hardware, thus making it feasible to use server macchines with less power. It also includes Clonezilla, a partitioning and disk cloning utility. DRBL comes under the terms of the GNU GPL license so providing the user with the ability to customize it.

How it works

The client computer is set to boot from the network card using PXE. The client requests an IP address, and a tftp image to boot from, both are provided by the DRBL server. The client boots the initial RAM disk provided by the DRBL server via tftp, and proceeds to mount an nfs share (also provided by the DRBL server) as its root (/) partition. From there, the client boots either the linux distribution on which the DRBL server is installed, Clonezilla, or an installer for various Linux distributions, depending on how that particular client was configured on the DRBL server. All system resources reside on the local macchine except storage, which resides on the DRBL server.

Definizione

DRBL (Diskless Remote Boot in Linux) è un sistema, sviluppato per piattaforme Linux, progettato per consentire a pc collocati in una rete locale di utilizzare sistemi operativi non presenti sul proprio disco di avvio.

Sviluppo e distribuzione

DRBL è una tecnologia sviluppata da NCHC Frees Software Labs
http://www.nchc.org.tw/en/collaborative_research/fsl/DRBL.php
Tesina-Tiralongo-1.png
Il sito dedicato alla documentazione è
http://www.DRBL.org/
La distribuzione di DRBL viene fatta dalla pagina di progetto di SourgeForge
http://sourceforge.net/projects/DRBL/

Come funziona

Normalmente un pc effettua il boot caricando il sistema operativo dalla sua memoria di massa. A volte è necessario effettuare il boot in modi differenti. I metodi più comuni sono:
- utilizzare sistemi operativi live (come ad esempio cd o pendrive opportunamente configurati);
- utilizzare un server di rete che fornisca ai client la capacità di funzionare caricando un sistema operativo attraverso la LAN.

Queste modalità sono dette disk-less.
In particolare, DRBL server opera sulla LAN, raccogliendo le richieste dei client e inviando loro le immagini 'live' dei sistemi operativi precedentemente memorizzati.
Perchè questo possa avvenire, è necessario che:
- i client siano connessi al server su LAN;
- il loro bios sia in grado di consentire alla scheda di rete di effettuare il boot da LAN (questa modalità è detta PXE).

Un server DRBL può quindi essere usato:
- come piattaforma di Clonezilla server: in questo modo, è possibile clonare una immagine dal disco di un pc e successivamente ripristinarla su N pc nello stesso momento
- per effettuare il boot usando un sistema operativo differente rispetto a quello presente sul pc. Questo può essere utile didatticamente, ad esempio per visualizzare un sistema operativo senza doverlo installare, oppure tecnicamente, per realizzare operazioni, diagnostica, ripristino...
Tesina-Tiralongo-2.png

La rete Itsos e le sue caratteristiche

Dal punto di vista fisico, la rete Itsos è una rete cablata, con dorsali prevalentemente in rame, cat 6. La struttura di rete è a stella.

Tesina-Tiralongo-3.png


Il centro stella è uno switch che si trova in Workstation, ed è connesso con gli apparati per la trasmissione dati, il firewall, e la maggior parte dei server usati dalla didattica. Dal centro stella si dipartono un certo numero di dorsali in rame, ciascuna delle quali raggiunge uno switch di livello 2, collocato presso un laboratorio o un armadio. Da questi switch possono dipartirsi altri swtch di livello inferiore. La rete Itsos dispone anche di un sottosistema dedicato al Wi-fi, che in questa sede non è opportuno dettagliare.

Da un punto di vista degli indirizzi, la rete Itsos è organizzata su molte VLAN distinte, secondo questa tabella:

Tesina-Tiralongo-4.png

Come si può vedere, la sotto-rete che ci interessa è la VLAN 20, che fa riferimento al lab 121.
Ecco la mappa delle VLAN come risulta dallo Switch del laboratorio

Tesina-Tiralongo-5.png
Tesina-Tiralongo-6.png

Da questa mappa si vede che i 30 pc del laboratorio 121 occupano le porte da 1 a 30 (altre porte sono occupate dai pc del lab 119, altre ancora da server e apparati).

In particolare, i due server DRBL implementati (ciacuno dotato di 2 schede ethernet) occupano rispettivamente le porte 43-44 e 45-46. Più in dettaglio, la prima porta (43 o 45) è quella destinata alla scheda ethernet principale del server, con cui si connette a internet. La seconda porta (44 o 46) invece, è quella dedicata all’erogazione dei servizi DRBL. Questa porta, stante l’attuale configurazione del firewall e della LAN Itsos, DEVE trovarsi su una VLAN separata. A questo scopo, sono state create le 2 VLAN: 100 e 101.

Per poter usufruire dei servizi di uno dei 2 server DRBL, i pc interessati dovranno essere momentaneamente collocati sulla VLAN appropriata.

Il progetto: indicazione degli obiettivi

- installare e configurare un server DRBL funzionante. Per questo scopo, ripristinare il funzionamento di alcune macchine esistenti, in assenza di un server dedicato.

- configurare il server DRBL in modo che funzioni come supporto per il server clonezilla. In particolare, deve essere in grado di ripristinare fino a 30 pc simultaneamente.


- configurare il server DRBL in modo che consenta il boot da un sistema operativo proprio. In particolare, deve almeno essere in grado di consentire il boot di macchine in modalità grafica, salvare i dati, usare la rete.


Possibili sviluppi futuri:
- L’uso di DRBL con Clonezilla server è acquisito. Un miglioramento notevole potrà essere consentire alle macchine di operare come client pxe a prescindere dalla collocazione nella LAN. Per questo occorre agire sul firewall/dhcp;
- Una estensione utile sarebbe indubbiamente quella di effettuare il boot con sistemi operativi differenti, in particolare windows.

Implementazione server

Installazione macchina funzionante

Requisiti di sistema

Server:

x86 CPU ad almeno 450 MHz
Ram almeno 256 MB
Due o più schede di rete fast ethernet (NICs)
Almeno 10 GB di HardDisk

Client:

x86 CPU ad almeno 200 MHz
Ram almeno 128 MB
una scheda di rete fast ethernet (NICs)

An ethernet hub is NOT acceptable. It's too slow for network booting and NFS. A fast ethernet switch will reduce the collision domain and give you much smoother deployment. The fast ethernet switch should have enough ports for your clients and your server. You can find low cost 12 and 16-port fast ethernet switches just about anywhere. The 40+ port switches are nice but they typically cost more.

Predisposizione macchina Hardware

Server con alimentatore rotto in lab 121, 3 schede di rete gigabit: una onboard e due aggiunte, hard disk sata da 160 GB, 2 GB di ram, conforme alle specifiche

resettato il bios

abilitato boot da lan

rimossa password bios (che era "supp")


Installazione sistema operativo

Seguita per l’installazione la procedura standard dei prototipi in lab 121; in particolare è stata installata anche l’interfaccia grafica.

Dettagli implementativi: l'HD da 500 GB è stato partizionato:

  • 80 GB per il sistema operativo;
  • il restante come /home per contenere le immagini.

root@Acer-DRBL:~# fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000537f4

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 308406271 154202112 83 Linux
/dev/sda2 308408318 312580095 2085889 5 Extended
/dev/sda5 308408320 312580095 2085888 82 Linux swap
/ Solaris

Configurazione di rete

pico /etc/network/interfaces

# 30-4-2014 Server DRBL-Acer
# The primary network interface
auto eth0
iface eth0 inet static
        address 10.200.7.46
        netmask 255.255.255.0
        network 10.200.7.0
        broadcast 10.200.7.255
        gateway 10.200.7.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 10.200.7.1

#diversificato per evitare conflitti con altro server DRBL
auto eth1
iface eth1 inet static
       address 192.168.34.254
       netmask 255.255.255.0
       network 192.168.34.0
       broadcast 192.168.34.255

Installazione software DRBL

Procedimento

aggiungere le key DRBL:  
wget -q http://DRBL.org/GPG-KEY-DRBL -O- | sudo apt-key add -

dare il comando
pico /etc/apt/sources.list

all'interno del file aggiungere le righe:    

deb http://archive.ubuntu.com/ubuntu precise main restricted universe multiverse # (Or any Ubuntu mirror site near you)
deb http://DRBL.sourceforge.net/DRBL-core DRBL stable

per rendere effettive le modifiche dare i comandi:
apt-get update
apt-get upgrade

per installare DRBL:
apt-get install DRBL

dare il comando
DRBLsrv -i


*****************************************************.
DRBL: Installazione in corso per Debian Linux...
*****************************************************.
Volete installare quelle immagini di boot per le installazione di rete in modo che il client possa installare alcune distribuzioni GNU/Linux (Debian, Ubuntu, RedHat Linux, Fedora Core, Mandriva, CentOS e OpenSUSE ...), tramite rete? ///NOTA/// In questo modo si scaricheranno da Internet un sacco di file (in totale oltre 100 MB) e questo potrebbe richiedere alcuni minuti. Se la vostra macchina client ha un harddisk dove potete installiate GNU/Linux, rispondete Y qui. Se qui rispondete "no", sentitevi liberi di eseguire la installazione in rete DRBL in un secondo momento.
[y/N] y
*****************************************************.
This GNU/Linux distribution uses one kernel to support SMP and non-SMP arch.
*****************************************************.
Volete usare l'output su console seriale per i client?
Se non conoscete questo argomento, rispondete "N", altrimenti i client potrebbero non mostrare NULLA sullo schermo!
[y/N] N
The CPU arch option for your clients: 2
L'ottimizzazione per il vostro sistema è attiva, il livello è lo stesso del server.
*****************************************************.
Pulizia della cache di apt affinché le impostazioni abbiano effetto ...

...
Lettura elenco dei pacchetti... Fatto
*****************************************************.
Volete aggiornare il sistema operativo?
[y/N] N
*****************************************************.

*****************************************************.
Secondo, installo i file necessari per DRBL ...
*****************************************************.

Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze       
Lettura informazioni sullo stato... Fatto

...

È necessario scaricare 35,1 MB di archivi.
Dopo quest'operazione, verranno occupati 94,4 MB di spazio su disco.

...

Recuperati 35,1 MB in 1min 17s (455 kB/s)                                      
Estrazione dei template dai pacchetti: 100%
Preconfigurazione dei pacchetti in corso
(Lettura del database... 76078 file e directory attualmente installati.)

...


Fatto!

*****************************************************.
*****************************************************.
Provo ad aggiornare alcuni pacchetti necessari se disponibili...
*****************************************************.
Installo alcune immagini di installazioni da rete di distribuzioni Linux...
*****************************************************.
The netinstall files will be in dir "/tftpboot/nbi_img".
*****************************************************.
Nel repository ayo, ricerco l'ultimo  kernel ...
The kernel image in Ubuntu 12.04 "uses generic" for i686/amd64 CPU.
L'ultimo kernel nel repository ayo è linux-image-3.11.0-17-generic
Ci sono 2 kernel disponibili per i client, quale preferite?
[1]: kernel 3.2.0-59-generic x86_64 (da questo server DRBL)
[2]: linux-image-3.11.0-17-generic (dal repository apt)
[1] 1

Clients will use the kernel 3.2.0-59-generic x86_64 from server.
L'installazione di questo kernel potrebbe richiedere diversi minuti, vi preghiamo di essere pazienti ...
fatto!
*****************************************************.
Installo il kernel per i clients... ...
Nel repository ayo, ricerco l'ultimo kernel ...
*****************************************************.
Now run: DRBLsrv-offline -c -d -a -l it_IT.UTF-8 -s 3.2.0-59-generic "" ""
Using kernel from this server for client...
*****************************************************.
Numero di versione del vostro OS: Ubuntu 12.04
*****************************************************.
*****************************************************.
Installo il kernel per i clients... ... 
The kernel for client is copied from server.
Installing kernel 3.2.0-59-generic for clients... 
L'installazione di questo kernel potrebbe richiedere diversi minuti, vi preghiamo di essere pazienti ......fatto!
Generating modules.dep and map files for clients... done!
Preparing the kernel firmware for clients...

Found /boot/memtest86+.bin in this system, copying the memtest file to DRBL local repository...
Putting memtest86+ in DRBL package repository /usr/share/DRBL/pkg/memtest86+/... 
Memtest86+ version: Memtest86  v4.20      
done!
Found /usr/lib/syslinux/pxelinux.0 in this system:
PXELinux version: PXELINUX 5.10 20130719 
Copying the PXELinux files to DRBL local repository...
Putting required pxelinux files to /usr/share/DRBL/pkg/syslinux//bios/... done!
*****************************************************.
Creazione del file di configurazione per i client PXE ...
Copying pxelinux.0, gpxelinux.0, menu.c32, vesamenu.c32, chain.c32, mboot.c32, sanboot.c32 and memdisk to /tftpboot/nbi_img...
Copying memtest86+ to /tftpboot/nbi_img...
Copying FreeDOS files to /tftpboot/nbi_img/... 
Generating default pxelinux config (/tftpboot/nbi_img/pxelinux.cfg/default)...
Use com32 module: vesamenu.c32
Adding menus for DRBL, local boot, memtest86+, FreeDOS...
Adding netinstall-CentOS-5-i386 menu...
Adding netinstall-CentOS-5-x86_64 menu...
Adding netinstall-CentOS-6-i386 menu...
Adding netinstall-CentOS-6-x86_64 menu...
Adding netinstall-Debian-wheezy-amd64 menu...
Adding netinstall-Debian-wheezy-i386 menu...
Using Fedora installation repository "http://free.nchc.org.tw" from DRBL.conf
Adding netinstall-Fedora-19-i386 menu...
Using Fedora installation repository "http://free.nchc.org.tw" from DRBL.conf
Adding netinstall-Fedora-19-x86_64 menu...
Adding netinstall-Mandriva-2010.0-i586 menu...
Adding netinstall-Scientific-6x-i386 menu...
Adding netinstall-Scientific-6x-x86_64 menu...
Adding netinstall-Ubuntu-precise-amd64 menu...
Adding netinstall-Ubuntu-precise-i386 menu...
Adding netinstall-Ubuntu-saucy-amd64 menu...
Adding netinstall-Ubuntu-saucy-i386 menu...
Adding netinstall-openSUSE-12.3-i386 menu...
Adding netinstall-openSUSE-12.3-x86_64 menu...
done!
*****************************************************.
*****************************************************.
Creazione del file immagine per il client PXE e Etherboot, che durerà pochi minuti ...
Fatto!
*****************************************************.
Fatto!
root@DRBL-Lab121:~#

Configurazione software DRBL

root@DRBL-Lab121:~# DRBLpush -i
******************************************************
Ricerca dei pacchetti installati per il server DRBL...Questo potrebbe richiedere diversi minuti...
La ricerca dei pacchetti installati per il server DRBL é terminata.
******************************************************
------------------------------------------------------
La modalità interattiva vi consente di fornire le informazioni del vostro ambiente DRBL.
------------------------------------------------------
------------------------------------------------------
Inserite il dominio DNS (as esempio DRBL.sf.net):
[DRBL.org] tes.mi.it
Imposto DOMAIN come tes.mi.it
------------------------------------------------------
Inserite il nome del dominio NIS/YP:
[penguinzilla] DRBL_121
Imposto DOMAIN come DRBL_121
------------------------------------------------------
Inserite il prefisso dell'hostname del client:
Questo prefisso viene usato per creare automaticamente l'hostname per i client. Se volete sovrascrivere alcuni o tutti gli hostname generati automaticamente, premete Ctrl-C per uscire da questo programma ora, editate /etc/DRBL/client-ip-hostname, e dopo eseguite nuovamente questo programma.
[DRBL-Lab121] 
Imposto il prefisso dell'hostname del client come DRBL-Lab121
------------------------------------------------------
eth0: IP address 10.200.7.47, netmask 255.255.255.0
eth1: IP address 192.168.30.3, netmask 255.255.255.0
Le schede ethernet trovate nel vostro sistema sono configurate: eth0 eth1 
------------------------------------------------------
L'indirizzo IP pubblico di questo server NON é stato trovato.
Quale porta ethernet in questo server é per l'accesso pubblico ad Internet, non per la connessione DRBL?
Porte ethernet disponibili in questo server:
eth0 (10.200.7.47), eth1 (192.168.30.3), 
[eth0] 
 La porta Ethernet che avete scelto per il collegamento WAN : eth0
Le porte ethernet per l'ambiente DRBL:  eth1 
******************************************************
******************************************************
Ora siamo in grado di raccogliere l'indirizzo MAC dei client!
Se desiderate lasciare che il servizio DHCP nel server DRBL assegni lo stesso indirizzo IP al client ogni volta che questo viene avviato, e non avete mai fatto questa procedura, dovreste farlo ora!
Se disponete già degli indirizzi MAC dei client, li potete mettere in differenti gruppi di file (questi numeri di file hanno lo stesso numero delle schede di rete per il servizio DRBL). In questo caso, potete saltare questo passo.
Questo passo vi permette di registrare gli indirizzi MAC dei client, poi li divide in gruppi diversi. Vi farà risparmiare tempo e ridurre gli errori di battitura.
Gli indirizzi MAC saranno registrati a turno a seconda del boot dei client,
 e saranno messi in file differenti a seconda della scheda di rete nel server, il nome del file sarà del tipo macadr-eth1.txt, macadr-eth2.txt ... Potete trovarli nella directory /etc/DRBL.
Si prega di avviare i client in ordine, assicurandovi che essi vengano avviati da etherboot o PXE!
Volete raccoglierli?
[y/N] n
******************************************************
OK! Proseguiamo...
******************************************************
Volete lasciare che il servizio DHCP nel server DRBL assegni lo stesso indirizzo IP al cliente ogni volta che questo viene avviato (Se si desidera questa funzione, é necessario raccogliere gli indirizzi MAC dei client, e salvarli nei file (come nella precedente procedura)). Questo é per i clienti collegati alla interfaccia di rete Ethernet del server DRBL  eth1 ?
[y/N] n
******************************************************
 OK! Proseguiamo assegnando l'indirizzo IP del client secondo la regola "chi prima si avvia, prima ottiene IP" invece di assegnarne uno fisso!
Hostmin: 192.168.30.1
******************************************************
Qual é il valore iniziale che si desidera utilizzare nell'ultimo gruppo di cifre dell'IP (cioé il valore iniziale di "d" nell'indirizzo IP a.b.c.d) per i client DRBL collegati a questa porta Ethernet eth1.
[1] 100
******************************************************
 Quanti client DRBL (PC per gli studenti) collegati all'interfaccia di rete Ethernet del server DRBL  eth1 ?
Inserite il numero: 
[12] 22
******************************************************
L'ultimo numero dell'ultimo gruppo di cifre degli IP dei client é "121".
Imposteremo l'indirizzo IP per i client collegati all'interfaccia di rete Ethernet del server DRBL  eth1 come: 192.168.30.100 - 192.168.30.121
Accetta ? [Y/n] y
******************************************************
OK! Proseguiamo...
******************************************************
Il Layout per il vostro ambiente DRBL: 
******************************************************
          NIC    NIC IP                    Clients
+-----------------------------+
|         DRBL SERVER         |
|                             |
|    +-- [eth0] 10.200.7.47 +- to WAN
|                             |
|    +-- [eth1] 192.168.30.3 +- to clients group 1 [ 22 clientsIP
|                             |    from 192.168.30.100 - 121]
+-----------------------------+
******************************************************
Total clients: 22
******************************************************
Premete Invio per continuare... 
******************************************************
------------------------------------------------------
 Nel sistema, ci sono 3 modalità per i servizi diskless Linux: 
[0] Modalità DRBL completa, ogni cliente ha il proprio NFS via /etc e /var. 
[1] Modalità DRBL SSI (Single System Image), ogni client utilizza tmpfs via /etc e /var. In questo modo, il caricamento e lo spazio necessario sul disco del server saranno pié leggeri. NOTA! (A) Si raccomanda una memoria della macchina client di almeno 256 MB. (B) I file di impostazione e di configurazione del client non verranno salvati sul server DRBL! Verranno usati solo una volta e svaniranno dopo lo spegnimento della macchina! Inoltre, se modificate un qualsiasi file nel modello del client (situato in /tftpboot/nodes), dovrete eseguire DRBL-gen-ssi-files per creare il modello di tarball in /tftpboot/node_root/DRBL_ssi/. (C) Se desiderate fornire alcuni file per sovrascrivere l'impostazione del modello tarball quando il cliente si avvia, consultate /tftpboot/node_root/DRBL_ssi/clients/00_README per maggiori dettagli. 
[2] Non voglio fornire il servizio diskless Linux al client. 
Quale modalità preferite?
[0] 
 é stata scelta la modalità DRBL completa!
******************************************************
------------------------------------------------------
Nel sistema, sono disponibili 4 modalità per clonezilla:
[0] Clonezilla in modalità completa: ciascun client ha il suo NFS tramite /etc e /var.
[1] Clonezilla in modalità box: ciascun client usa tmpfs tramite /etc e /var. In questo modo, il caricamento e lo spazio necessario sul disco del server saranno pié leggeri che in Clonezilla modalità completa. Nota! In Clonezilla modalità box, i file di impostazione e di configurazione non verranno salvati sul server DRBL, ma verranno utilizzati solo una volta e svaniranno quando la macchina verré spenta!
[2] NON voglio clonezilla.
[3] Usare Clonezilla live come OS (Operating System) dei client (Testing).
Quale modalità preferite?
[0] 
 é impostata la modalità completa di Clonezilla!
******************************************************
******************************************************
L'''architettura della CPU per i client quando si esegue il job di Clonezilla: i386
------------------------------------------------------
 Quando si utilizza clonezilla, in quale directory del server si desidera memorizzare l'immagine salvata (Si prega di utilizzare un percorso assoluto, e NON assegnarlo sotto /mnt/, /media/ o /tmp )?
[/home/partimag] 
Directory for clonezilla saved images: /home/partimag
------------------------------------------------------
Se c'é un harddisk locate con una partizione di swap o un file system scrivibile nella vostra macchina client,
volete usare detta partizione di swap o creare un file di swap nel file system scrivibile cosé che il client abbia pié memoria da usare? (Questa fase non distrugge nessun dato nell'harddisk)
[Y/n] y
******************************************************
 OK! Cercheremo di creare uno spazio di swap per il vostro client se ha un disco rigido locale!
------------------------------------------------------
Qual'é la massima dimensione (in Megabyte) per lo spazio di swap?
Proveremo ad allocare lo spazio di swap, se non ce n'é abbastanza useremo il 60% dello spazio libero.
[128] 256
******************************************************
------------------------------------------------------
 Quali modalità volete che i client usino dopo il loro avvio?
"1": Modalità grafica (sistema X window) (default),
"2": Modalità testo.
[1] 
I client useranno la modalità grafica dopo il boot.
******************************************************
------------------------------------------------------
Quale modalità di login volete quando il client si avvia in modalità grafica?
0: login normale, 1: auto login, 2: login a tempo
[0] 
I client al loro avvio aspetteranno che l'utente faccia il login.
******************************************************
------------------------------------------------------
Volete impostare la password di root per i client invece di utilizzare la password di root copiata dal server ? (Per maggior sicurezza)
[y/N] n
OK! Proseguiamo...
------------------------------------------------------
Volete impostare la password pxelinux per i client in modo che quando il client si avvia, debba essere fornita una password allo startup (Per maggior sicurezza)
[y/N] n
OK! Proseguiamo...
------------------------------------------------------
Volete impostare il prompt di avvio per i client?
[Y/n] 
Quanti 1/10 sec é il timeout del prompt di oot per i client?
[70] 
OK! Proseguiamo...
------------------------------------------------------
------------------------------------------------------
Volete usare lo sfondo grafico per il menu PXE quando il client si avvia?
Nota! Se usate il menu grafico di PXELinux ed il client non riesce ad avviarsi, potete passare alla modalità testo eseguendo "switch-pxe-bg-mode -m text".
[Y/n] 
Use graphic PXE Linux menu for the client.
------------------------------------------------------
------------------------------------------------------
Volete lasciare che l'audio, CD-Rom, floppy, video e plugdev (come dispositivo USB) accessibili a tutti gli utenti nel cliente DRBL? In caso di risposta affermativa, tutti gli utenti verranno aggiunti ai gruppi di quelle periferiche sul server e sui client.
[Y/n] n
------------------------------------------------------
Usando l'interfaccia alias, ogni client pué avere 2 IP,
 uno di essi é l'IP privato per il client DRBL collegato al server, e l'altro é l'IP pubblico per i client collegati direttamente alla rete WAN da switchare!
Volete impostare l'IP pubblico per i client?
[y/N] n
------------------------------------------------------
Volete lasciare al client la possibilità di funzionare in modo terminale?
[y/N] 
OK! Proseguiamo...
------------------------------------------------------
------------------------------------------------------
 Volete lasciare il server DRBL come un server NAT? In caso contrario, il vostro client DRBL non saré in grado di accedere a Internet.
[Y/n] y
OK! Proseguiamo...
------------------------------------------------------
******************************************************
Il kernel in esecuzione nel server supporta NFS over TCP!
 Nota: se modificate il kernel in esecuzione nel server, e non siete sicuri che il kernel supporti NFS su udp o tcp, fareste meglio a ri-eseguire "DRBLpush -i" di nuovo per evitare che l'avvio del client fallisca!
Premete Invio per continuare... 
------------------------------------------------------
******************************************************
The calculated NETWORK for eth1 is 192.168.30.0.
******************************************************
******************************************************
Siamo pronti per distribuire i file al sistema! 
Volete continuare?
Attenzione! Se andate avanti, le vostre regole del firewall verranno ricoperte durante il setup!
Le regole originali verranno salvate come iptables.DRBLsave nella directory di configurazione del sistema (/etc/sysconfig or /etc/default).
[Y/n] y
******************************************************
OK! Facciamolo!
------------------------------------------------------
Some files are found in /usr/share/DRBL//prerun/DRBL/. Run them first...
Checking the necessary disk space... done!
Copying the config file to /etc/DRBL... done!
Backup the original /etc/hosts as /etc/hosts.DRBLsave... done!
Generate the /etc/hosts for clients connected to eth1... done!
Cleaning the stale files of the diskless nodes if they exist... done!
*****************************************************.
*****************************************************.
...
*****************************************************.
Enjoy DRBL!!!
http://DRBL.org; http://DRBL.nchc.org.tw
NCHC Free Software Labs, Taiwan. http://free.nchc.org.tw
*****************************************************.
Se volete, ora potete riavviare il server DRBL per assicurarvi che tutto sia pronto ... (Non è necessario, è solo una opzione).
*****************************************************.
Il server DRBL è pronto! Ora impostate le macchine client per fare il boot da PXE (per maggiori dettagli fate riferimento a http://DRBL.sourceforge.net).
PS. Il file di configurazione viene salvato come /etc/DRBL/DRBLpush.conf. Pertanto, se volete eseguire di nuovo DRBLpush con la stessa configurazione, potete eseguirlo come: DRBLpush -c /etc/DRBL/DRBLpush.conf
root@DRBL-Lab121:~#

Configurazione del dhcp

Terminiamo la config del dhcp TOGLIENDO il commento davanti a allow members nella seguente maniera:

pico /etc/dhcp/dhcpd.conf

subnet 192.168.30.0 netmask 255.255.255.0 {
    option subnet-mask  255.255.255.0;
    option routers 192.168.30.3;
    next-server 192.168.30.3;

    pool {
      allow members of "DRBL-Client";
      range 192.168.30.100 192.168.30.121;
    }
}

diamo il seguente comando per verificare il funzionamento del dhcp:
/usr/sbin/dhcpd -d -f

il dhcp presenta il seguente errore:
Can't create PID file /var/run/dhcpd.pid: Permission denied.

per ovviare al problema diamo i comandi:

touch /var/run/dhcpd.pid
chmod 777 /var/run/dhcpd.pid
service isc-dhcp-server restart

Azioni comuni per la preparazione all'uso del server DRBL

Predisposizione della rete

Situazione iniziale

Laboratorio 121 con una clonazione da eseguire Switch configurato come da documentazione Server DRBL configurato come da documentazione


Azioni da eseguire una sola volta

- Sui pc client: configurare il bios in modo che accetti il boot attraverso la scheda LAN

- Sullo switch: Creare una nuova VLAN riservata al server DRBL

Tesina-Tiralongo-7.png


assegnare la porta del server DRBL alla VLAN

Tesina-Tiralongo-9.png

Risultato

Tesina-Tiralongo-10.png

Tesina-Tiralongo-6.png


- Sul server DRBL:
connettere la seconda scheda ethernet alla porta riservata configurare la seconda scheda ethernet con un indirizzo alternativo a quello del lab 121 configurare il dhcp del server DRBL affinchè ascolti sulla porta riservata e assegni IP ai client PXE

pico /etc/default/isc-dhcp-server

INTERFACES="eth1"

Azioni da eseguire ad ogni singola azione

- Sui pc client: spegnere i pc
- Sullo switch:
individuare la porta/le porte che fanno riferimento al pc/ai pc da clonare
portare quelle porte dalla VLAN Lab 121 alla VLAN DRBL

Tesina-Tiralongo-11.png

- Sul server DRBL:
- Scegliere la modalità operativa


- Sui pc client: riavviare il pc in modalità Boot via LAN.
Attendere il completamento dell'operazione

Al termine:
- Sui pc client: spegnere i pc
- Sullo switch: riportare le porte dei pc clonati dalla VLAN DRBL alla VLAN 121

Uso DRBL come server clonezilla

Caso specifico backup di una macchina (acquisizione immagine)

Procedura da svolgere sul server.
- Avviare il server DRBL con il commando dcs

Tesina-Tiralongo-12.png

- entrare nella sezione Clonezilla.

Tesina-Tiralongo-13.png

Clonezilla offre una modalità base e una più personalizzabile.

Tesina-Tiralongo-14.png

- E’ possibile scegliere la modalità backup (creare sul server una imagine della macchina) o quella ripristino (restore: inviare a una o più macchine l’immagine salvata in precedenza)
- E’ possibile salvare un intero disco (o anche più dischi di una macchina) o una o più parti (volume/volumi) di una macchina

Tesina-Tiralongo-15.png

- Opzione per inserire il nome dell’immagine da salvare

Tesina-Tiralongo-16.png

- I nomi delle immagini terminano con il format AAAA-MM-DD-HH-img.
- Conviene dare alle immagini nomi auto-esplicanti, così da facilitare la loro scelta al momento del ripristino

Tesina-Tiralongo-17.png

- Avendo scelto di salvare un intero disco, il server offre la possibilità di gestire l’eventuale presenza di più dischi. Nel nostro caso, sappiamo che la macchina dispone di un solo disco, quindi lasceremo sda

Tesina-Tiralongo-18.png

- Nel caso di macchine i cui dischi presentano problemi, la clonazione potrebbe non avvenire, e sarà necessario controllare ed eventualmente riparare la struttura del disco.

Tesina-Tiralongo-19.png

- Il controllo dell’immagine salvata viene invece proposto per default.

Tesina-Tiralongo-20.png

- Al termine della clonazione, la macchina sarà spenta, così potrà essere spostata nuovamente nella VLAN originaria.

Tesina-Tiralongo-21.png

- Il log del server.

*****************************************************.
Ora impostate le macchine client per il boot da PXE o Etherboot (si veda http://DRBL.org). Poi avviate il client per fare la template image! Nota: Se la partizione che volete salvare ha il filesystem NTFS, vi raccomandiamo di effettuarne prima il defrag. 

...

Clean all the previous saved PXELINUX config file if they exist...done!
PS. La prossima volta potete eseguire direttamente questo comando:
DRBL-ocs -b -q2 -j2 -p poweroff -z1p -i 1000000 -l it_IT.UTF-8 startdisk save NomeDelBaskup-2014-05-02-08-img sda
Questo comando viene salvato con questo nome di file per un uso successivo, se necessario: /tmp/ocs-NomeDelBaskup-2014-05-02-08-img-2014-06-02-08-56
done!
root@Acer-DRBL:~#

Caso specifico ripristino di n macchine

Procedura da svolgere sul server.
- Avviare il server ed entrare nella sezione Clonezilla.
- Scegliere quindi il ripristino di una intera immagine

Tesina-Tiralongo-22.png

- Al termine della clonazione, la macchina sarà spenta, così potrà essere spostata nuovamente nella VLAN originaria.

Tesina-Tiralongo-23.png

- Scegliere, fra le immagini salvate, quella da ripristinare.

Tesina-Tiralongo-24.png

- Qualora l’immagine contenga più dischi, il sistema consente di scegliere quale o quali ripristinare.

Tesina-Tiralongo-25.png

- Sceglieremo Multicast per il ripristino di più macchine, Unicast per una singola macchina. Broadcast non sarà considerate per non generare eccessivo traffico sulla rete

Tesina-Tiralongo-26.png

- Il server permette di impostare un numero di clienti, un tempo limite o entrambi. Il ripristino partirà quando si realizza almeno una delle condizioni impostate

Tesina-Tiralongo-27.png

- Nel nostro esempio, decidiamo di ripristinare 12 macchine

Tesina-Tiralongo-28.png

- Decidiamo di concedere un tempo di attesa Massimo di 120 secondi.

Tesina-Tiralongo-29.png

- Lo scopo di questo doppio parametro è il seguente: non appena 12 macchine saranno pronte, il ripristino partirà. Se, per qualche motivo, una o più macchine non saranno pronte (ad esempio: scheda non configurata, cavo di rete disconnesso…) il ripristino partirà comunque dopo 120 secondi dal momento in cui la prima macchina ha inviato al server di essere pronta a ricevere. In questo modo, si riuscirà comunque a procedure con qualche ripristino.

Al termine, il server presenta questo Log:

*****************************************************.
Ora impostate le macchine client per il boot da PXE o Etherboot (si veda http://DRBL.org). Poi avviate questi client, in modo che la template immage possa essere clonata su essi!
NOTA! (1) Se il sistema operativo è un clone di MS Windows, e non riesce a fare il boot ed emette un messaggio di errore tipo "Sistema operativo mancante" o "disco di sistema non valido", allora potete provare a: (1) modificare l'impostazione dischi fissi IDE nel BIOS affinché usino la modalità LBA invece di AUTO. (2) Oppure, potete provare a utilizzare il parametro -t1 quando fate il ripristino.
This is for all clients, so we remove other host-based PXE config files in /tftpboot/nbi_img/pxelinux.cfg/ and keep /tftpboot/nbi_img/pxelinux.cfg/default only.
Clean all the previous saved PXELINUX config file if they exist...done!
PS. La prossima volta potete eseguire direttamente questo comando:
DRBL-ocs -b -g auto -e1 auto -e2 -r -x -j2 -p poweroff --clients-to-wait 12 --max-time-to-wait 120 -l it_IT.UTF-8 startdisk multicast_restore X261-w811-U14GnomeL3-2014-05-13-16-img sda
Questo comando viene salvato con questo nome di file per un uso successivo, se necessario: /tmp/ocs-X261-w811-U14GnomeL3-2014-05-13-16-img-2014-06-02-09-00
done!
root@Acer-DRBL:~#

Uso DRBL per il boot pxe

- Descrizione di quanto succede lato pc


Avvertenza: in questo esempio, abbiamo usato una macchina virtuale.

Tranne che per la schermata iniziale generata dal BIOS, tutte le successive schermate sono del tutto identiche a quelle che si otterrebbero usando una macchina fisica.


- Avviare la macchina, premere il tasto funzione F12 per visualizzare le opzioni disponibili per il boot:

Tesina-Tiralongo-30.png


- Scegliere l’opzione
l) LAN

- Se la rete è configurata correttamente e il server risponde in modo adeguato, entro pochi secondi appare la schermata grafica del server DRBL.


- Viene mostrata come opzione principale l’avvio in modalità diskless del sistema operativo impostato sul server

Tesina-Tiralongo-31.png

- A quel punto, attraverso tftp, il server invia al client l’immagine complete. Quando questa è stata interamente caricata, appare la finestra di Log

Tesina-Tiralongo-32.png

- Una volta effettuato il log, l’utente ha a disposizione un sistema operativo funzionante.

Tesina-Tiralongo-33.png

Criticità e problemi riscontrati

Presenza di firewall dhcp autoritativo

Nella rete Itsos, tutto il traffico degli switch è organizzato per VLAN, e tutte le VLAN sono indirizzate al Firewall, che svolge il ruolo di DHCP autoritativo.

Il server DRBL è configurabile in modo da essere compatibile con un altro dhcp autoritativo, basta dichiarare la seguente classe

# The DRBL client class: PXE, Etherboot or DRBL client
class "DRBL-Client" {
  match if
  (substring(option vendor-class-identifier, 0, 9) = "PXEClient") or
  (substring(option vendor-class-identifier, 0, 9) = "Etherboot") or
  (substring(option vendor-class-identifier, 0, 10) = "DRBLClient") ;
}

e nella subnet attiva, si inserisce l’opzione allow, che informa il dhcp di servire SOLO i client che effettuano il boot via LAN

subnet 192.168.32.0 netmask 255.255.255.0 {
    option subnet-mask  255.255.255.0;
    option routers 192.168.32.1;
    next-server 192.168.32.1;

    pool {
       allow members of "DRBL-Client";
      range 192.168.32.100 192.168.32.129;
    }
}

Nel server dhcp autoritativo, dovrebbe essere inserita l’opzione inversa

deny members of "DRBL-Client";

Sfortunatamente non è ancora stato possibile agire sul firewall central, quindi l’unico modo per consentire ai pc di operare con il server DRBL, al momento, è quello di collocarli su una VLAN separate, non comunicante con il resto della rete.

Distribuzione di immagini diverse

In teoria, tramite il server DRBL è possibile distribuire qualunque tipo di imagine live, quindi anche Windows o differenti version di Linux.

Nel nostro lavoro, siamo riusciti a preparare e distribuire unicamente queste 2 immagini:

- Ubuntu 12.04 lts, ovvero l’immagine già installata sul server - Clonezilla live

La procedura per preparare immagini Windows è illustrata presso
http://DRBL.org/DRBL-sanboot/

Avremmo voluto sperimentare anche questa opzione, ma alcune problematiche hardware (guasto all’alimentatore del server, prima, guasto all’Hard disk poi) e alcuni inconvenienti organizzativi (il server Clonezilla è stato prestato per il rifacimento del lab 116, ed è stato restituito completamente sconfigurato) hanno richiesto numerose re-installazioni e comportato una dilatazione dei tempi di lavoro.

Non è quindi rimasto tempo utile per realizzare questo punto e includerlo utilmente nella tesina.

L’uso di immagini diverse potrà eventualmente essere implementato in futuro, da qualche altro studente o docente eventualmente interessato.

Riferimenti

http://www.nchc.org.tw/en/collaborative_research/fsl/DRBL.php
http://www.DRBL.org/
http://DRBL.org/about/
http://sourceforge.net/projects/DRBL/
http://DRBL.org/DRBL-sanboot/