Creazione del volume LVM e del filesystem XFS

By | giugno 25, 2014

DebianPer questa fase abbiamo bisogno della creazione del volume LVM e del filesystem XFS. In due parole, LVM (Logical Volume Manager) è un sottile strato di software posto appena sopra i dispositivi fisici (hard disk e partizioni), che rende possibile l’allocazione dinamica dello spazio, il ridimensionamento dei volumi, gli snapshot, e via dicendo. Con LVM, per esempio, si possono unire più partizioni e farne un unico device, in modo analogo allo striping dei controller RAID o al JBOD. XFS, invece, è un filesystem originariamente sviluppato dall’americana SGI e successivamente rilasciato al mondo Open Source, dotato di ottime performance e affidabilità, nonché di caratteristiche che lo rendono interessante in abbinamento con LVM e Samba, come la capacità di ridimensionamento a caldo e il supporto per le ACL (Access Control List). Potendo ridimensionare a caldo sia il device sottostante, anche aggiungendo nuovi dischi fissi, sia il filesystem sovrastante, è possibile di fatto allocare dinamicamente lo spazio, a macchina accesa e utenti collegati!
Bene, procediamo. Installiamo i pacchetti relativi all’LVM e alle utility XFS:

sudo apt-get install lvm2 xfsprogs

Prepariamo la partizione che ospiterà i dati. Nel nostro esempio la macchina Linux è dotata di un secondo hard disk (/dev/sdb), che verrà interamente utilizzato come spazio per LVM.

 

sudo fdisk -c -u /dev/sdb

I comandi da inserire sono evidenziati:

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-266338303, default 2048): (premere Invio)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-266338303, default 266338303): (premere Invio)
Using default value 266338303

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

La partizione /dev/sdb1 è stata creata. Prepariamola per l’utilizzo con LVM:

sudo pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

Creiamo ora il Volume Group. Il Volume Group è un’astrazione sopra i device fisici (partizioni), che funge da serbatoio per lo spazio su disco. Più device possono contribuire alla formazione di un Volume Group, ed è possibile aggiungere, eliminare e spostare device da un Volume Group. In breve, il Volume Group è un po’ come l’hard disk del sistema LVM, ma a differenza degli hard disk tradizionali è molto flessibile.

sudo vgcreate vg0 /dev/sdb1
Volume group "vg0" successfully created

Lo spazio contenuto nel Volume Group non è direttamente utilizzabile, ma deve essere assegnato a dei Logical Volume. I Logical Volume sono visti dal sistema esattamente come le partizioni tradizionali, ma a differenza di queste ultime possono essere manipolati in molti modi: si può espanderli, restringerli (con qualche precauzione), spostarli, farne uno snapshot, e via dicendo. Creiamo dunque un Logical Volume da 10GB con nome lv0 sopra il Volume Group creato in precedenza:

sudo lvcreate -n lv0 -L 10g vg0
Logical volume "lv0" created

Bene. Abbiamo un device, utilizzabile esattamente come una partizione tradizionale, ed accessibile dal percorso /dev/vg0/lv0. È giunto il momento di creare il nostro filesystem:

sudo mkfs -t xfs /dev/vg0/lv0
meta-data=/dev/vg0/lv0 isize=256 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

È ora di montare il filesystem. Innanzitutto creiamo il mount point:

sudo mkdir /var/fileserver

Quindi creiamo la entry nel file /etc/fstab, in modo che il sistema monti il nostro filesystem ad ogni boot:

sudo nano /etc/fstab

Aggiungiamo queste righe alla fine del file:

/dev/mapper/vg0-lv0 /var/fileserver xfs defaults 0 0

Notare che sia /dev/mapper/vg0-lv0 che /dev/vg0/lv0 sono link simbolici che puntano a /dev/dm-0. Salviamo e usciamo da Nano. Montiamo il filesystem:

sudo mount /dev/vgo/lv0

 

Creiamo la directory dati al suo interno:

sudo mkdir /var/fileserver/dati

Dobbiamo assegnare i permessi di lettura e scrittura alla directory dati, ma lo faremo più avanti poiché ancora non abbiamo in linea gli utenti del dominio. Per questo ci vogliono Kerberos e Winbind. Forza, non manca molto!