Para redimensionar a partição LVM2, é necessário executar os 2 comandos a seguir:
# lvextend -L+1G /dev/myvg/homevol
# resize2fs /dev/myvg/homevol
No entanto, quando executo lvextend
, vejo que as alterações já estão aplicadas à partição (conforme mostrado em Gnome Disks). Então, por que eu ainda preciso fazer resize2fs
?
O
lvextend
comando (sem a--resizefs
opção) apenas faz os arranjos do lado LVM para ampliar o dispositivo de bloco que é o volume lógico. Não importa qual seja o tipo de sistema de arquivos (ou mesmo se existe ou não um sistema de arquivos) no LV, essas operações são sempre semelhantes.Se o LV contiver um sistema de arquivos ext2/3/4, a próxima etapa é atualizar os metadados do sistema de arquivos para torná-lo ciente de que possui mais espaço disponível e para criar/estender as estruturas de metadados necessárias para gerenciar o espaço adicionado. No caso de sistemas de arquivos ext2/3/4, isso envolve pelo menos:
Esta parte é específica para o tipo de sistema de arquivos, embora os tipos de sistema de arquivos ext2/3/4 sejam semelhantes o suficiente para que todos possam ser redimensionados com uma única
resize2fs
ferramenta. Para XFS, sistemas de arquivos, você usaria umaxfs_growfs
ferramenta. Outros sistemas de arquivos podem ter suas próprias ferramentas de extensão. E se o volume lógico não contiver um sistema de arquivos, mas algo como um banco de dados "bruto" ou um volume Oracle ASM, outro procedimento ainda precisaria ser aplicado.Cada sistema de arquivos tem funcionamento interno diferente e, portanto, as condições para estender um sistema de arquivos serão diferentes para cada um. Demorou um pouco até que uma API comum fosse projetada para extensão do sistema de arquivos; isso possibilitou a implementação do
fsadm resize
comando, que fornece uma sintaxe unificada para estender vários tipos de sistema de arquivos. A--resizefs
opção delvextend
apenas usa ofsadm resize
comando.Resumindo: depois
lvextend
de , ferramentas de nível LVM comolvs
,vgs
,lvdisplay
evgdisplay
verão o tamanho atualizado, mas o sistema de arquivos e quaisquer ferramentas operando nele, comodf
, ainda não o verão.A camada LVM é apenas um contêiner para o sistema de arquivos interno. Você pode dizer
lvextend
para redimensionar o sistema de arquivos dentro do volume lógico sem ter que executar umaresize2fs
adição separada da opção-r
(ou--resizefs
):Porque sistemas de arquivos e volumes lógicos são abstrações diferentes. Um volume é um pedaço de disco (como uma partição) — ou pelo menos, o equivalente "virtual". É apenas um dispositivo de bloco. Um sistema de arquivos é uma estrutura que fica dentro dele (ou, acima dele, se você preferir) e que é usada para fornecer um mapeamento entre arquivos (e diretórios e assim por diante) para aquele dispositivo. Sem
resize2fs
, a partição é maior, mas o sistema de arquivos não está aproveitando o espaço disponível.Você pode realmente criar inicialmente um sistema de arquivos que não ocupe toda a partição. Na
mke2fs
página de manual:Como você pode ver, o padrão é preencher a partição e geralmente não há motivo para fazer o contrário - mas você pode, se quiser.
Observe que quando
lvextend
tem uma opção--resizefs
(ou apenas-r
) que cuida do crescimento do sistema de arquivos após a extensão do volume sem a necessidade de executar um comando separado.O
resize2fs
força ofs
sistema de arquivos , a expandir ou encolher para ocupar o novo espaço produzido pelolvextend
comando. Os processos: