Parece que isso não é possível a partir da linha de comando. striping
é bem diferente do esquema de alocação linear
padrão. Portanto, embora você possa desenvolver um sistema de arquivos em vários volumes físicos ( PV
), não obtém as vantagens de "equilíbrio de carga" do striping.
Para aumentar o sistema de arquivos, você faria algo assim:
pvcreate /dev/mapper/md2_crypt
vgextend crypto /dev/mapper/md2_crypt
umount /dev/mapper/crypto-srv
fsck.ext4 -C0 -f /dev/mapper/crypto-srv
lvresize -l +100%FREE /dev/mapper/crypto-srv
resize2fs /dev/mapper/crypto-srv
mount /srv
No exemplo acima, md2_crypt
é um volume criptografado na parte superior de uma matriz RAID-1, mas pode ser qualquer dispositivo. crypto
é o grupo de volumes ( VG
) e crypto-srv
é o volume lógico que mantém o sistema de arquivos montado em /srv
.
Reminder: you should really use at least a RAID-1 array because if a PV fails in a
linear
logical volume (LV
), you can loose all the data.
Isso não fará com que a partição /srv
seja distribuída pelos PVs. Isso ocorre porque não há ferramentas da terra de usuário para oferecer suporte a linear
a striped
conversions . Logicamente, isso seria no comando lvconvert
, mas isso só suporta a movimentação de linear
para mirror
mode e de volta, por exemplo. E com todo o novo desenvolvimento indo para BTRFS , eu ficaria surpreso se isso fosse documentado.
Uma coisa que você pode fazer, no entanto, é que os dados novos na unidade sejam distribuídos. Isso é bastante complicado, mas pode ser feito. Vamos supor que queremos distribuir crypto-tmp
, o LV por /tmp
. Primeiro precisamos liberar espaço para as listras no primeiro PV:
pvmove -n crypto/tmp /dev/mapper/md1_crypt
Isto irá realocar o LV através dos PVs, no meu caso ele moveu tudo para o segundo PV:
root@foo:~# pvs --segments -o+lv_name,seg_start_pe,segtype
PV VG Fmt Attr PSize PFree Start SSize LV Start Type
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 10.00g 0 2384 root 0 linear
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 10.00g 2384 256 swap 0 linear
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 10.00g 2640 2560 0 free
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 10.00g 5200 709901 srv 0 linear
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.81t 0 2560 tmp 0 linear
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.81t 2560 474077 0 free
Agora você pode aumentar o sistema de arquivos (digamos que dobremos de tamanho) e informar ao LVM para distribuir os novos dados:
root@foo:~# lvresize -i 2 -l 5120 /dev/crypto/tmp
Using default stripesize 64.00 KiB
Extending logical volume tmp to 20.00 GiB
Logical volume tmp successfully resized
Agora, os novos dados de /tmp
estão divididos nos dois PVs:
root@foo:~# pvs --segments -o+lv_name,seg_start_pe,segtype
PV VG Fmt Attr PSize PFree Start SSize LV Start Type
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 0 2384 root 0 linear
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 2384 256 swap 0 linear
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 2640 1280 tmp 2560 striped
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 3920 1280 0 free
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 5200 709901 srv 0 linear
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.80t 0 2560 tmp 0 linear
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.80t 2560 1280 tmp 2560 striped
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.80t 3840 472797 0 free
Mas os dados originais ainda estão no modo linear
. Pode ser possível mover o sistema de arquivos para as extensões listradas, mas considere que um exercício para o leitor neste momento. :)
Veja também Crescimento de um volume LVM com striping e Redhat LVM mudando listras? .
Observe também que o inverso (convertendo striped
para linear
) é possível, no entanto: É possível converter o volume lógico distribuído em volume lógico linear? .