Um exemplo de diagrama LVM:
A idéia do LVM é abstrair o volume lógico do volume físico, de tal forma que vários volumes físicos irão aparecer para o usuário um único volume lógico contínuo.
O sistema de arquivos raiz está em /dev/file-server-vg/root
e o swap está em /dev/file-server-vg/swap
. A idéia é que podemos ter vários discos rígidos reais na camada PV, e eles podem ser todos adicionados a um grupo de volume, o que permitirá que eles apareçam como um único sistema de arquivos contínuo no sistema em /dev/file-server-vg/root
.
Neste problema eu tenho usado /dev/file-server-vg/root
como um servidor de arquivos e está ficando sem espaço. Felizmente, este sistema está em uma máquina virtual e eu consegui expandir o volume físico /dev/sda
usando o gerenciador de máquinas virtuais. No entanto, o aumento no tamanho não é passado automaticamente para o sistema de arquivos /dev/file-server-vg/root
. Precisamos fazer um comando simples para que isso funcione.
Antes de começar, use pvdisplay
para ver quais volumes físicos estão presentes. Isso listará todos os volumes físicos e o grupo de volumes ao qual ele pertence. Nesse caso, temos apenas um volume físico que é /dev/sda3
.
--- Physical volume ---
PV Name /dev/sda3
VG Name file-server-vg
PV Size 155.26 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 65346
Free PE 0
Allocated PE 65346
PV UUID 0EXhc4-EoHZ-b79R-ncSe-SWXI-ztPe-Fsc7zk
A tabela de partição atual pode ser listada usando sudo parted
e, em seguida, print
.
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 167GB 166GB lvm
Neste exemplo, queremos expandir a capacidade de 155,56GiB para 255,56GiB. Usando o gerenciador de máquinas virtuais, normalmente podemos estender o espaço em disco e, nesse caso, vamos expandi-lo em 100GiB.
Após a expansão ser bem-sucedida, a tabela de partição resultante (use print free
) será semelhante à seguinte. Por favor, note o "espaço livre" mostra 108GB (~ 100GiB).
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 275GB 166GB lvm
167GB 275GB 108GB Free Space
Existem duas maneiras de expandir o volume lógico: Crie uma nova partição e adicione isso ao Grupo de volume ou Aumente a mesma partição.
Na minha opinião, sempre que possível, o segundo método é mais puro. É claro que se /dev/sda3
for um disco rígido físico e você comprou outro disco rígido para expandir o espaço, então será lógico usar o primeiro método.
No tipo parted resize 3 794MB 275GB
redimensionará a partição 3 para ocupar todo o espaço livre, bem quase:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 275GB 274GB lvm
275GB 275GB 1032kB Free Space
Isso é bom o suficiente, apenas 1 MB não está sendo usado.
Em seguida, vamos reiniciar a máquina. Isso é necessário para atualizar a tabela de partições.
O que você verá agora é que o volume físico aumentou em tamanho com pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name file-server-vg
PV Size 255.26 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 65346
Free PE 0
Allocated PE 65346
PV UUID 0EXhc4-EoHZ-b79R-ncSe-SWXI-ztPe-Fsc7zk
Esse aumento no tamanho será passado automaticamente para o grupo de volumes, usando vgdisplay
para você obter o seguinte. Observe que vgextend
não faz realmente o que você acha que faz. Ele não ocupa o espaço livre, mas é usado para adicionar novos volumes físicos a um determinado grupo de volumes.
--- Volume group ---
VG Name file-server-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 255.26 GiB
PE Size 4.00 MiB
Total PE 65346
Alloc PE / Size 65346 / 255.26 GiB
Free PE / Size 0 / 0
VG UUID NwwIgT-W0SH-aeTe-d078-hcxx-XZ6W-QfnSA0
O volume lógico não aumenta de tamanho automaticamente. Isso realmente faz sentido porque o computador não tem ideia de qual volume lógico você deseja aumentar em tamanho ou talvez você queira criar um novo volume lógico com o espaço extra no grupo de volumes. Assim, com lvdisplay
, você verá a tabela a seguir, mostrando que o /dev/file-server-vg/root
tem 153,26GiB, mas não se preocupe, pois estamos muito próximos.
--- Logical volume ---
LV Path /dev/file-server-vg/root
LV Name root
VG Name file-server-vg
LV UUID l6qvYZ-AmYw-tdgi-2jUu-XNB2-gecQ-6fDPt8
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 1
LV Size 153.26 GiB
Current LE 64834
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/file-server-vg/swap_1
LV Name swap_1
VG Name file-server-vg
LV UUID OohMkN-rGLa-fM4M-6he2-MbM9-BBc3-Ck2Hs5
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
A maneira de aumentar o volume lógico é usar lvextend -L +100GB /dev/file-server-vg/root
Depois disso, expanda o sistema de arquivos com resize2fs /dev/file-server-vg/root
E você está feito. Você pode fazer lvdisplay
para verificar se o volume /dev/file-server-vg/root
estendeu para 253.26GiB
--- Logical volume ---
LV Path /dev/file-server-vg/root
LV Name root
VG Name file-server-vg
LV UUID l6qvYZ-AmYw-tdgi-2jUu-XNB2-gecQ-6fDPt8
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 1
LV Size 253.26 GiB
Current LE 64834
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/file-server-vg/swap_1
LV Name swap_1
VG Name file-server-vg
LV UUID OohMkN-rGLa-fM4M-6he2-MbM9-BBc3-Ck2Hs5
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1