PDA

View Full Version : [LINUX] unire hardisk in unico grande volume logico con possibilità di grown ?


Perseverance
05-12-2016, 14:16
Ho un sacco di hardisk di dimensione differente e vorrei unirli usando linux al fine di creare un unico volume logico in modalità lineare (non striped), con possibilità di poter aggiungere nuovi hardisks e quindi aumentare lo spazio del volume.

Provando a creare un array con MDADM di tipo "linear" (alla fine risulta come RAID0 lineare) l'operazione viene conclusa però è impossibile effettuare il grown dell'array qualora volessi aggiungere un nuovo hardisk.

Ho letto che potrebbe essere possibile tramite LVM2, ma non sono pratico di questo metodo. Qualcuno che mi da qualche dritta o guida?

EmBo2
05-12-2016, 15:27
mdadm è inadatto per quello che vuoi fare.
LVM, come hai già intuito, è quello che cerchi. Peraltro io personalmente lo ritengo molto più versatile di mdadm e offre, volendo, la stessa possibilità di avere configurazione stripe, mirror, ecc.
L'unico problema di LVM e' che si tratta di un concetto che spesso necessita' di un minimo di attenzione per la configurazione, che si basa sui concetto di physical volume, volume group e logical volume. E necessita di riga di comando (esistono delle GUI ma te le sconsiglio vivamente).

Poniamo che tu abbia due hard drive, es. sda e sdb, partizionati nella seguente maniera:

sda
|- sda1 /boot
|- sda2 /root
|- sda3 spazio libero

sdb
|- sdb1 spazio libero

Quello che vuoi fare è creare un volume logico che includa sda3 + sdb1 (per esempio, per una directory /home).

I passaggi, nell'ordine, sono:
- creazione di due physical volume (per /dev/sda3 e /dev/sdb1)
- creazione di un volume group e assegnazione dei physical volumes al volume group
- creazione di un logical volume della dimensione desiderata

La creazione del physical volume si fa con il seguente comando (attenzione: formatterai l'unita', quindi occhio ai dati che eventualmente sono gia' dentro):
# pvcreate /dev/sda3
# pvcreate /dev/sdb1

Dopo di che, devi provedere alla creazione del volume group:
# vgcreate VolGroup /dev/sda3 /dev/sdb1
Nota: puoi cambiare il nome "VolGroup" con quello che piu' ti aggrada


Alla fine crei, all'interno del volume group, il volume logico della dimensione che ti interessa. Per esempio, nel caso di un volume di 50GB:
# lvcreate -L 50G VolGroup -n lvolume01
Nel caso di un volume che ovvupi tutto lo spazio disponibile:
# lvcreate -l +100%FREE VolGroup -n lvolume01
Anche qui, il nome che dai a lvolume01 puoi sceglierlo a piacere.

A questo punto troverai la tua unita' logica su /dev/mapper/VolGroup-lvolume01
Puoi formattarla con il filesystem che piu' ti aggrada:
# mkfs.ext4 /dev/mapper/VolGroup-lvolume01

Perseverance
06-12-2016, 20:07
Perfetto fino a qui. Adesso è però sorto un problema: solo root può leggere\scrivere lì dentro. Esiste un tool per cambiare gli attributi ed i permessi ai volumi LVM oppure si fà coi comandi standard?

Ho notato la presenza del file di configurazione /etc/lvm/lvm.conf e dell'attributo umask che adesso è 077. Devo agire lì dentro modificando umask o non bisogna toccare niente?

EmBo2
06-12-2016, 22:35
Il volume logico si formatta con un filesystem e lo si monta normalmente.
I permessi del contenuto dipendono dai permessi del file system (in base al file system che hai usato, immagino ext4).

pabloski
08-12-2016, 11:41
Aggiungo a quanto scritto da EmBo2 che quello che ti serve e' l'opzione
-E root_owner=uid:gid
di mkfs.ext4.

Ovviamente devi specificare userid e groupid dell'utente che sara' il proprietario del filesystem ( l'utente che usi normalmente per loggarti ).

Perseverance
09-12-2016, 13:18
Perfetto, tutto funzionante, ho anche già testato la funzionalità vgextend e quindi lvextend per aggiungere un nuovo disco :)

Grazie a tutti e due :)