Usando arquivos esparsos em vez de discos
Se você quiser brincar com o LVM sem fazer alterações nas partições dos seus discos, sim, isso pode ser feito. Crie alguns arquivos esparsos que podem servir como seus "discos virtuais". Em seguida, crie as partições nesses arquivos e configure os dispositivos de loop usando suas imagens de disco. A partir daí, você pode brincar com o LVM nos dispositivos de loop que apontam para as imagens de disco.
Faça seus arquivos esparsos
Execute o seguinte em um terminal para criar dois arquivos esparsos. Arquivos esparsos sempre relatam que eles são um tamanho fixo predeterminado, mas, na realidade, eles usam inicialmente 0 bytes de espaço em disco. Como eles são escritos, eles podem crescer até que eles alcancem seu tamanho predeterminado ou o disco que os contém não tenha mais espaço.
-
truncate -s 1T /tmp/disk1.img
-
truncate -s 1T /tmp/disk2.img
Crie partições nas imagens de disco
Agora você tem dois arquivos que você pode tratar como discos. Use o fdisk para particionar essas imagens. Se você não sabe como usar o fdisk para criar partições, você pode conferir este tutorial ou execute os comandos abaixo que criarão duas partições de 512G cada nas duas imagens de disco.
sudo sfdisk /tmp/disk1.img <<< "$(base64 -d <<< "bGFiZWw6IGRvcwpsYWJlbC1pZDogMHhkODdlMWQ1MwpkZXZpY2U6IC90bXAvZGlzazEuaW1nCnVuaXQ6IHNlY3RvcnMKCi90bXAvZGlzazEuaW1nMSA6IHN0YXJ0PSAgICAgICAgMjA0OCwgc2l6ZT0gIDEwNzM3NDE4MjQsIHR5cGU9ODMKL3RtcC9kaXNrMS5pbWcyIDogc3RhcnQ9ICAxMDczNzQzODcyLCBzaXplPSAgMTA3MzczOTc3NiwgdHlwZT04Mwo=")"
sudo sfdisk /tmp/disk2.img <<< "$(base64 -d <<< "bGFiZWw6IGRvcwpsYWJlbC1pZDogMHg4ZWMwYWYyZgpkZXZpY2U6IC90bXAvZGlzazIuaW1nCnVuaXQ6IHNlY3RvcnMKCi90bXAvZGlzazIuaW1nMSA6IHN0YXJ0PSAgICAgICAgMjA0OCwgc2l6ZT0gIDEwNzM3NDE4MjQsIHR5cGU9ODMKL3RtcC9kaXNrMi5pbWcyIDogc3RhcnQ9ICAxMDczNzQzODcyLCBzaXplPSAgMTA3MzczOTc3NiwgdHlwZT04Mwo=")"
Configurar imagens em dispositivos de loop
Em seguida, vamos colocar nossas imagens de disco conectadas a alguns dispositivos de loop para que possamos trabalhar com as partições. Em um terminal, execute os seguintes comandos ( losetup -f
retorna o próximo dispositivo de loop disponível)
-
sudo losetup -P $(losetup -f) /tmp/disk1.img
-
sudo losetup -P $(losetup -f) /tmp/disk2.img
Determine quais dispositivos nossas partições estão conectadas a
Agora precisamos descobrir quais dispositivos de loop apontam para nossas partições. Execute o seguinte em um terminal:
-
sudo losetup -a | grep -P "disk[12].img | cut -f1 -d:"
Saída/dev/loop3 /dev/loop4
Estes são os dispositivos de loop de interesse que procuraremos na saída do próximo comando -
sudo blkid
Saída que corresponde aos meus dispositivos de loop/dev/loop3: PTUUID="d87e1d53" PTTYPE="dos" /dev/loop3p1: PARTUUID="d87e1d53-01" /dev/loop3p2: PARTUUID="d87e1d53-02" /dev/loop4: PTUUID="8ec0af2f" PTTYPE="dos" /dev/loop4p1: PARTUUID="8ec0af2f-01" /dev/loop4p2: PARTUUID="8ec0af2f-02"
Portanto, minhas partições disk1 estão em/dev/loop3p1
e/dev/loop3p2
e minhas partições disk2 estão em/dev/loop4p1
e/dev/loop4p2
. Você provavelmente é bom para ir a partir daqui, mas vou continuar com um exemplo de configuração do LVM.
Exemplo de configuração do LVM
Eu só usarei o disk1, a partição 1 e o disco2 da partição 2 em minha configuração do LVM. Do terminal execute o seguinte, substituindo os caminhos para os dispositivos de loop, conforme necessário:
- Configurar volumes físicos:
sudo pvcreate /dev/loop3p1 /dev/loop4p2
- Grupo de volumes de configuração:
vgcreate my_volume_group /dev/loop3p1 /dev/loop4p2
- Configure algumas partições:
- Partição1:
sudo lvcreate --name root --size 30G my_volume_group
- Partição2:
sudo lvcreate --name swap --size 4G my_volume_group
- Partição3:
sudo lvcreate --name home --extents +100%free my_volume_group
- Partição1:
Agora eu tenho um único grupo de volumes com 1 TB de espaço que é tirado de 512G em disk1.img e 512G em disk2.img. Isso pode ser verificado executando:
-
sudo pvs
quais saídasPV VG Fmt Attr PSize PFree /dev/loop3p1 my_volume_group lvm2 a-- 512.00g 0 /dev/loop4p2 my_volume_group lvm2 a-- 512.00g 0
-
sudo vgs
quais saídasVG #PV #LV #SN Attr VSize VFree my_volume_group 2 3 0 wz--n- 1023.99g 0
-
sudo lvs
quais saídasLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home my_volume_group -wi-a----- 989.99g root my_volume_group -wi-a----- 30.00g swap my_volume_group -wi-a----- 4.00g