Le componenti principali di una soluzione Lustre sono:
- MGS - E' il servizio che tiene conto di tutte le configurazioni di un cluster Lustre
- MDS - E' il servizio che gestisce i metadati di un singolo filesystem distribuito
- OSS - E' il servizio che gestisce gli storage server dove vengono salvati i dati
- Client - E' la componente che permette l'accesso al cluster
- LNET - E' il sottosistema di rete nativo di Lustre
Tutte le componenti sono state sviluppate come moduli del kernel, le configurazioni vengono scritte durante la fase di formattazione del filesystem e passate al MGS, non esistono a livello del filesystem alcun file da configurare o configurazione da gestire.
Lustre necessita per le componenti MGS, MDS e OSS il patching del kernel partendo dai sorgenti, per il client è possibile scegliere tra un client patched o patchless, la differenza è in qualche punto percentuale di degrado delle performance. Se non si desidera ricompilare il kernel, vengono resi disponibili gli RPM pre-compilati e già pronti per le distribuzioni Oracle Linux, Red Hat Enterprise Linux e Suse Linux.
A titolo didattico partiamo con una soluzione, rappresentata in figura, con un unico server Lustre contenente le componenti MGS, MDS e OSS. Tale server dotato di una distribuzione Red Hat Enterprise Linux con kernel 2.6.18-164.11.1.el5 è agganciata a uno storage esterno iSCSI dove verranno ricavate 4 partizioni secondo il seguente schema:
- Target del MGS: partizione /dev/sdb1 da 1 GB
- Target del MDS: partizione /dev/sdb4 da 1 GB
- Due target per la componente di Storage: OST0 /dev/sdb2 da 10GB e OST1 /dev/sdb3 da 10GB
La versione di Lustre utilizzata è la 1.8.3, sul client utilizzeremo la configurazione patchless.
Lato server installeremo i seguenti pacchetti con il comando:
rpm -ivh e2fsprogs-1.41.10.sun2-0redhat.rhel5.i386.rpm
kernel-2.6.18-164.11.1.el5_lustre.1.8.3.i686.rpm
lustre-1.8.3-2.6.18_164.11.1.el5_lustre.1.8.3.i686.rpm
lustre-ldiskfs 3.0.9-2.6.18_164.11.1.el5_lustre.1.8.3.i686.rpm
lustre-modules-1.8.3-2.6.18_164.11.1.el5_lustre.1.8.3.i686.rpm --forcee aggiungeremo al file /etc/modprobe.conf la seguente riga per abilitare il sistema LNET su ethernet:
options lnet networks=tcp
riavviamo il server con il kernel appena installato e iniziamo a formattare / configurare Lustre con i seguenti comandi:
- MGS: mkfs.lustre --mgs /dev/sdb1
- MDS: mkfs.lustre --mdt --mgsnode=192.168.2.20 --fsname=prova /dev/sdb4
- OSS0: mkfs.lustre --ost --mgsnode=192.168.2.20 --fsname=prova /dev/sdb2
- OSS1: mkfs.lustre --ost --mgsnode=192.168.2.20 --fsname=prova /dev/sdb3
mkdir -p /lustre/mgs_prova
mkdir -p /lustre/mdt_prova
mkdir -p /lustre/ost0_prova
mkdir -p /lustre/ost1_prova
e quindi montiamo:
mount -t lustre /dev/sdb1 /lustre/mgs_prova
mount -t lustre /dev/sdb4 /lustre/mdt_prova
mount -t lustre /dev/sdb2 /lustre/ost0_prova
mount -t lustre /dev/sdb3 /lustre/ost1_prova
ATTENZIONE: I filesystem appena montati NON devono essere acceduti, questa operazione serve solamente per avviare i moduli dei servizi server di Lustre.
Lato client installeremo i seguenti pacchetti:
rpm -ivh lustre-client-1.8.3-2.6.18_164.11.1.el5_lustre.1.8.3.i686.rpm lustre-client-modules-1.8.3-2.6.18_164.11.1.el5_lustre.1.8.3.i686.rpm
e aggiungeremo al file /etc/modprobe.conf la seguente riga per abilitare il sistema LNET su ethernet:
options lnet networks=tcp
per maggiore sicurezza facciamo un bel reboot del client e proviamo ad accedere al nostro filesystem "prova":
mkdir /prova
modprobe lustre
mount -t lustre 192.168.2.20@tcp:/prova /prova
dovreste vedere il vostro filesystem /prova montato e delle dimensioni di 20GB.
La procedure corretta di stop del cluster Lustre sarà :
- dal client: umount /prova
- dal server: umount /lustre/ost1_prova
- dal server: umount /lustre/ost0_prova
- dal server: umount /lustre/mdt_prova
- dal server: umount /lustre/mgs_prova
Devo ringraziare per la collaborazione Roberto.
Nessun commento:
Posta un commento