BTRFS/LVM quale vantaggio?
Moderatore: Staff
Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
BTRFS/LVM quale vantaggio?
Di BTRFS mi piacciono gli snapshot(che però ci sono anche sotto lvm)
e sopratutto la possibilità di ridurre a caldo il fs.
Un solo dubbio.
Su lvm supponiamo
root 33G
Home 49G
Ho molto spazio nella root,e di conseguenza voglio donare
a Home,supponiamo..5G.
lvresize -r -L -10G root && lvresize -L +10G home && e2fsck,bla,bla ,bla..
Su btrfs come fareste?È possibile fare il resize di un sottovolume?
Grazie.
e sopratutto la possibilità di ridurre a caldo il fs.
Un solo dubbio.
Su lvm supponiamo
root 33G
Home 49G
Ho molto spazio nella root,e di conseguenza voglio donare
a Home,supponiamo..5G.
lvresize -r -L -10G root && lvresize -L +10G home && e2fsck,bla,bla ,bla..
Su btrfs come fareste?È possibile fare il resize di un sottovolume?
Grazie.
-
- Packager
- Messaggi: 2021
- Iscritto il: ven 4 giu 2010, 10:27
- Nome Cognome: Luca De Pandis
- Distribuzione: macOS/OpenBSD
- Località: Lecce/Bergamo
Re: BTRFS/LVM quale vantaggio?
Aspetta, però.Meskalamdug ha scritto:Di BTRFS mi piacciono gli snapshot(che però ci sono anche sotto lvm)
C'è una differenza abissale tra gli snapshot di LVM e quelli di Btrfs/ZFS.
Il primo altro non è che un clonare l'intero LV in un altro LV. Ciò richiede la creazione di un LV di dimensioni pari se non maggiori di quello originale.
Su Btrfs/ZFS lo snapshot è basato su diff, il che lo rende molto più efficiente se bisogna trasferire lo snapshot da una pool all'altra (zfs send/recv e controparte Btrfs). Ciò vuol dire infatti che su Btrfs/ZFS gli snapshot partono da una dimensione nulla per poi aumentare, man mano che la differenza tra lo snapshot e l'originale aumenta.
Comunque tornando alla richiesta principale.
Tecnicamente, no. Non puoi fare un resize di un subvolume, come non puoi fare un resize di un dataset ZFS.
I dataset/subvolumi sono fondamentalmente directory che vengono gestite come file system.
In sostanza, non hanno una quantità di spazio preallocata. Su ZFS i volumi pre-allocati prendono il nome di ZVOL e sono dei block-device formattabili. Quelli si possono allargare o restringere come normali file system.
I subvolumi, come i dataset, partono da una dimensione minima ed hanno una quantità di spazio di allocazione disponibile pari alla dimensione della pool stessa.
Se vuoi limitare lo spazio disponibile, devi usare il sistema di quote del disco. Con lo ZFS fai: zfs set quota=DIMENSIONE tank/dataset.
Btrfs può gestire le quote solo col kernel 3.6+, quindi se vuoi usarlo su Slackware 14.0, dovresti compilare un nuovo trunk e aggiornare la utility btrfs-progs.
L'equivalente dello zfs set quota è:
Ora, resta da capire un attimo una cosa, perché sulla base di questo la soluzione al tuo problema cambia.man btrfs ha scritto:# btrfs qgroup limit DIMENSIONE <path>/<subvolume>
Il Btrfs funziona più o meno come lo ZFS. Ciò significa che:
1) Puoi avere una home come subvolume di root.
2) Puoi avere root e home come subvolumi indipendenti di una pool, con il secondo montato nel primo.
Nel primo caso, root è il dataset della pool e home è un suo subvolume.
Ergo, se il funzionamento delle quote e dell'ereditarietà delle opzioni è simile allo ZFS, non si può togliere spazio a root e lasciarlo ad home, in quanto il secondo dipende dal primo.
In sostanza, home avrà dimensioni PARI o INFERIORI al dataset genitore.
Quello che sto cercando di dire è che non ci dovrebbe essere la soluzione che cerchi su questo scenario.
Se Btrfs lo permette ugualmente, sarebbe un errore logico madornale.
Nel secondo caso, abbiamo due dataset differenti: il primo "root" montato su / ed il secondo montato su "/home".
Qui sostanzialmente dovresti poterlo fare senza problemi, in quanto root ed home sono due subvolumi indipendenti l'uno dall'altro.
La sintassi dovrebbe essere questa:
Codice: Seleziona tutto
# btrfs qgroup limit 23G /
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
Re: BTRFS/LVM quale vantaggio?
Chiarissimo,grazie.hashbang ha scritto:Aspetta, però.Meskalamdug ha scritto:Di BTRFS mi piacciono gli snapshot(che però ci sono anche sotto lvm)
C'è una differenza abissale tra gli snapshot di LVM e quelli di Btrfs/ZFS.
Il primo altro non è che un clonare l'intero LV in un altro LV. Ciò richiede la creazione di un LV di dimensioni pari se non maggiori di quello originale.
Su Btrfs/ZFS lo snapshot è basato su diff, il che lo rende molto più efficiente se bisogna trasferire lo snapshot da una pool all'altra (zfs send/recv e controparte Btrfs). Ciò vuol dire infatti che su Btrfs/ZFS gli snapshot partono da una dimensione nulla per poi aumentare, man mano che la differenza tra lo snapshot e l'originale aumenta.
Comunque tornando alla richiesta principale.
Tecnicamente, no. Non puoi fare un resize di un subvolume, come non puoi fare un resize di un dataset ZFS.
I dataset/subvolumi sono fondamentalmente directory che vengono gestite come file system.
In sostanza, non hanno una quantità di spazio preallocata. Su ZFS i volumi pre-allocati prendono il nome di ZVOL e sono dei block-device formattabili. Quelli si possono allargare o restringere come normali file system.
I subvolumi, come i dataset, partono da una dimensione minima ed hanno una quantità di spazio di allocazione disponibile pari alla dimensione della pool stessa.
Se vuoi limitare lo spazio disponibile, devi usare il sistema di quote del disco. Con lo ZFS fai: zfs set quota=DIMENSIONE tank/dataset.
Btrfs può gestire le quote solo col kernel 3.6+, quindi se vuoi usarlo su Slackware 14.0, dovresti compilare un nuovo trunk e aggiornare la utility btrfs-progs.
L'equivalente dello zfs set quota è:Ora, resta da capire un attimo una cosa, perché sulla base di questo la soluzione al tuo problema cambia.man btrfs ha scritto:# btrfs qgroup limit DIMENSIONE <path>/<subvolume>
Il Btrfs funziona più o meno come lo ZFS. Ciò significa che:
1) Puoi avere una home come subvolume di root.
2) Puoi avere root e home come subvolumi indipendenti di una pool, con il secondo montato nel primo.
Nel primo caso, root è il dataset della pool e home è un suo subvolume.
Ergo, se il funzionamento delle quote e dell'ereditarietà delle opzioni è simile allo ZFS, non si può togliere spazio a root e lasciarlo ad home, in quanto il secondo dipende dal primo.
In sostanza, home avrà dimensioni PARI o INFERIORI al dataset genitore.
Quello che sto cercando di dire è che non ci dovrebbe essere la soluzione che cerchi su questo scenario.
Se Btrfs lo permette ugualmente, sarebbe un errore logico madornale.
Nel secondo caso, abbiamo due dataset differenti: il primo "root" montato su / ed il secondo montato su "/home".
Qui sostanzialmente dovresti poterlo fare senza problemi, in quanto root ed home sono due subvolumi indipendenti l'uno dall'altro.
La sintassi dovrebbe essere questa:Codice: Seleziona tutto
# btrfs qgroup limit 23G /
Ultima domanda: sai mica se slackware-14.0 può far partire come root un subvolume con il pool costituito da diversi dischi?
Supponiamo
mkfs.btrfs /dev/sd{a..c}3
creo i subvolumi root e home
configuro lilo per bene con append rootvolume,etc..
creo mkinitrd..
e non parte,devo montare a mano la mnt(sic) a ogni avvio.
Troppo arretrati i programmi e il kernel slackware14 o ho sbagliato io?
-
- Packager
- Messaggi: 2021
- Iscritto il: ven 4 giu 2010, 10:27
- Nome Cognome: Luca De Pandis
- Distribuzione: macOS/OpenBSD
- Località: Lecce/Bergamo
Re: BTRFS/LVM quale vantaggio?
Allora, in questo caso ti consiglio due cose:Meskalamdug ha scritto:Chiarissimo,grazie.
Ultima domanda: sai mica se slackware-14.0 può far partire come root un subvolume con il pool costituito da diversi dischi?
Supponiamo
mkfs.btrfs /dev/sd{a..c}3
creo i subvolumi root e home
configuro lilo per bene con append rootvolume,etc..
creo mkinitrd..
e non parte,devo montare a mano la mnt(sic) a ogni avvio.
Troppo arretrati i programmi e il kernel slackware14 o ho sbagliato io?
1) A differenza dello ZFS che usa il label di default per impostare le pool, Btrfs usa (sic) ancora la vecchia e STUPIDA maniera di parlare di storage pool basandosi sui device.
Ciò risulta assurdo quando si parla di pool basate su sistemi multidevice.
La soluzione è:
Codice: Seleziona tutto
# mkfs.btrfs -L tank /dev/tutti_i_device_che_vuoi_mettere
LABEL=tank, invece che la root device.
2) Se hai la necessità di montare un determinato dataset come subvolume di root, hai due possibilità.
2.1)
Codice: Seleziona tutto
# btrfs subvolume set-default ID_DEL_SUBVOLUME <mnt_point>
Per farla breve:
Facciamo che hai una pool con DUE dataset: svol1 e svol2
svol1 ha la root di Linux e svol2 ha la home.
Se monto normalmente la pool in /mnt, in quel path mi ritroverò le due directory/subvolumi. Il che rende impossibile il montaggio in fase di boot.
Ora, per ovviare voglio far si che quando monto la pool, a meno che non imponga esplicitamente un altro subvolume, voglio che sia svol1 ad essere montato.
Perciò, prima di tutto monto la pool e mi prendo l'ID del subvolume svol1
Codice: Seleziona tutto
# mount -t btrfs LABEL=tank /mnt
# btrfs subvolume list /mnt
Per renderlo il subvolume di default, diamo quindi
Codice: Seleziona tutto
# btrfs subvolume set-default 55 /mnt
Ovviamente dovrai passarlo per forza per la home
Codice: Seleziona tutto
# mount -t btrfs -o subvol=home LABEL=tank /mnt/home
C'è chi lamenta problemi con questa soluzione, ma onestamente ne ho fatte molte di installazioni con questo metodo, ma non ho mai avuto problemi.
2.2) Il secondo metodo, consiste nel modificare /etc/fstab nell'initrd, per fargli capire che quando monta il dataset di root lo deve fare passando l'opzione
Codice: Seleziona tutto
subvol=svol1
Per quanto riguarda la configurazione multidevice, meglio leggere questo wiki
https://btrfs.wiki.kernel.org/index.php ... le_Devices
Penso che il boot da un RAID sia supportato. Su questo non ti so dire di preciso.
Era questo ciò che ti serviva sapere? O forse ho capito male io?
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
Re: BTRFS/LVM quale vantaggio?
Era questo.
Ti ringrazio
Ti ringrazio
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
Re: BTRFS/LVM quale vantaggio?
Ora il casino...
" How do I label a filesystem?
The label on a filesystem can be set at creation time, using the -L option to mkfs.btrfs.
You can also use btrfs command. There are currently few limitations:
the filesystem has to be unmounted
the filesystem should not have more than one device
btrfs filesystem label <dev> [newlabel]
"
https://btrfs.wiki.kernel.org/index.php ... esystem.3F
Conta che sono device già esistenti e formattati
" How do I label a filesystem?
The label on a filesystem can be set at creation time, using the -L option to mkfs.btrfs.
You can also use btrfs command. There are currently few limitations:
the filesystem has to be unmounted
the filesystem should not have more than one device
btrfs filesystem label <dev> [newlabel]
"
https://btrfs.wiki.kernel.org/index.php ... esystem.3F
Conta che sono device già esistenti e formattati
-
- Packager
- Messaggi: 2021
- Iscritto il: ven 4 giu 2010, 10:27
- Nome Cognome: Luca De Pandis
- Distribuzione: macOS/OpenBSD
- Località: Lecce/Bergamo
Re: BTRFS/LVM quale vantaggio?
A quanto ricordo, quando la pool è multidevice, a Btrfs basta indicare uno dei device facenti parte della pool per montare tutto.
Anche se è una fesseria immonda il non usare il label di default per le storage pool (o quanto meno dei block device appositi come fa LVM con i suoi VG), monta la pool con uno dei device.
Ad esempio:
Btrfs è fatto da /dev/sda1 /dev/sdb1 e /dev/sdc1
Dovrebbe bastare
per montare anche gli altri due.
Dovrebbe funzionare...anche se è fuori da ogni logica.
Anche se è una fesseria immonda il non usare il label di default per le storage pool (o quanto meno dei block device appositi come fa LVM con i suoi VG), monta la pool con uno dei device.
Ad esempio:
Btrfs è fatto da /dev/sda1 /dev/sdb1 e /dev/sdc1
Dovrebbe bastare
Codice: Seleziona tutto
# mount -t btrfs /dev/sda1 /mnt
Dovrebbe funzionare...anche se è fuori da ogni logica.
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
Re: BTRFS/LVM quale vantaggio?
Non funziona.hashbang ha scritto:A quanto ricordo, quando la pool è multidevice, a Btrfs basta indicare uno dei device facenti parte della pool per montare tutto.
Anche se è una fesseria immonda il non usare il label di default per le storage pool (o quanto meno dei block device appositi come fa LVM con i suoi VG), monta la pool con uno dei device.
Ad esempio:
Btrfs è fatto da /dev/sda1 /dev/sdb1 e /dev/sdc1
Dovrebbe bastareper montare anche gli altri due.Codice: Seleziona tutto
# mount -t btrfs /dev/sda1 /mnt
Dovrebbe funzionare...anche se è fuori da ogni logica.
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
Re: BTRFS/LVM quale vantaggio?
Comunque sono riuscito a fare il label.
Ho passato a lilo LABEL anzichè root
messo LABEL in mkinitrd.. ma niente.
Ho notato che la fstab di mkintird contiene solo proc
,è normale?
Ho passato a lilo LABEL anzichè root
messo LABEL in mkinitrd.. ma niente.
Ho notato che la fstab di mkintird contiene solo proc
,è normale?
-
- Packager
- Messaggi: 2021
- Iscritto il: ven 4 giu 2010, 10:27
- Nome Cognome: Luca De Pandis
- Distribuzione: macOS/OpenBSD
- Località: Lecce/Bergamo
Re: BTRFS/LVM quale vantaggio?
Che errore da al boot?Meskalamdug ha scritto:Comunque sono riuscito a fare il label.
Ho passato a lilo LABEL anzichè root
messo LABEL in mkinitrd.. ma niente
siHo notato che la fstab di mkintird contiene solo proc
,è normale?
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
Re: BTRFS/LVM quale vantaggio?
Errore ""btrfs: failed to read the system array on sda3"hashbang ha scritto:Che errore da al boot?Meskalamdug ha scritto:Comunque sono riuscito a fare il label.
Ho passato a lilo LABEL anzichè root
messo LABEL in mkinitrd.. ma niente
siHo notato che la fstab di mkintird contiene solo proc
,è normale?
ovviamente se monto con sdb3 monta.
Se creo il mkinitrd con sdb3...fa viceversa,ovvero
"btrfs: failed to read the system array on sdb3"
e devo montare con sda3!
-
- Packager
- Messaggi: 2021
- Iscritto il: ven 4 giu 2010, 10:27
- Nome Cognome: Luca De Pandis
- Distribuzione: macOS/OpenBSD
- Località: Lecce/Bergamo
Re: BTRFS/LVM quale vantaggio?
Hai provato questa soluzione?Meskalamdug ha scritto:Errore ""btrfs: failed to read the system array on sda3"
ovviamente se monto con sdb3 monta.
Se creo il mkinitrd con sdb3...fa viceversa,ovvero
"btrfs: failed to read the system array on sdb3"
e devo montare con sda3!
https://btrfs.wiki.kernel.org/index.php ... tc.2Ffstab
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
Re: BTRFS/LVM quale vantaggio?
Si.hashbang ha scritto:Hai provato questa soluzione?Meskalamdug ha scritto:Errore ""btrfs: failed to read the system array on sda3"
ovviamente se monto con sdb3 monta.
Se creo il mkinitrd con sdb3...fa viceversa,ovvero
"btrfs: failed to read the system array on sdb3"
e devo montare con sda3!
https://btrfs.wiki.kernel.org/index.php ... tc.2Ffstab
-
- Packager
- Messaggi: 2021
- Iscritto il: ven 4 giu 2010, 10:27
- Nome Cognome: Luca De Pandis
- Distribuzione: macOS/OpenBSD
- Località: Lecce/Bergamo
Re: BTRFS/LVM quale vantaggio?
Ma se monti a mano la pool, funziona tutto?
Voglio dire, il problema sta solo al montaggio in boot?
Stavo giusto leggendo un bug report di Red Hat in cui si dice che un problema del genere lo si ha quando si monta una pool Btrfs in RAID, senza aver usato btrfsctl -a
https://bugzilla.redhat.com/show_bug.cgi?id=581204
A questo punto, controlla se l'initrd ha btrfsctl e, nel caso non ci fosse, prova ad installare le btrfs-progs nell'initrd.
Voglio dire, il problema sta solo al montaggio in boot?
Stavo giusto leggendo un bug report di Red Hat in cui si dice che un problema del genere lo si ha quando si monta una pool Btrfs in RAID, senza aver usato btrfsctl -a
https://bugzilla.redhat.com/show_bug.cgi?id=581204
A questo punto, controlla se l'initrd ha btrfsctl e, nel caso non ci fosse, prova ad installare le btrfs-progs nell'initrd.
-
- Iper Master
- Messaggi: 3961
- Iscritto il: ven 14 mag 2004, 0:00
Re: BTRFS/LVM quale vantaggio?
btrfsctl è deprecata,ho messo btrfs(opzione -B )
ma da errore ovvero non monta proprio la root
ma da errore ovvero non monta proprio la root