No meu servidor de intranet, eu tenho uma partição 100,00 GiB / dev / sda5, que eu uso como volume físico para lvm2.
- É o único volume físico no meu grupo de volumes vg01.
- Atualmente, a vg01 contém um volume lógico lv01, usando os 100,00 GiB completos - bem, na verdade 99,99 GiB devido a alguns arredondamentos (é aí que o problema começa).
- O lv01 contém um sistema de arquivos ext3, usando todo o espaço.
Quero reduzir o lv01 para aproximadamente 97 GiB, para que eu possa criar o lv02 com aprox. 3 GiB (eu preciso tirar instantâneos do lvm).
O que eu fiz até agora:
e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
Isso funcionou bem. Mas agora vou ter que correr
lvreduce --size ? /dev/mapper/vg01-lv01
E não tenho certeza, qual valor exato terei que especificar. A lvreduce
página de manual avisa explicitamente que o tamanho resultante não deve ser menor que o sistema de arquivos. Eu também não quero torná-lo maior do que tem que ser. Mas agora eu tenho números diferentes:
- Eu especifiquei
97G
em resize2fs. df -h
diz, é 96 G.df
diz, são 100115936 blocos de 1K.- lvdisplay (é claro) ainda reporta 99,99 GiB para o volume lógico.
O que terei que especificar lvreduce
?
Editar:
A resposta atualmente aceita fornece uma boa solução alternativa. No entanto, para integrar essas coisas em scripts sólidos etc., geralmente preferiria usar medidas precisas. Ou talvez já exista um script ou ferramenta confiável (!) Que execute todo o procedimento de redimensionamento em uma única etapa?
resize2fs
para reduzir o sistema de arquivos para cerca de 90 GiB e, em seguida, mexer com argumentos paralvreduce
(seguidos porresize2fs
) para ver o que funciona melhor.Respostas:
Na minha experiência, LVM e resize2fs têm as mesmas idéias sobre o que "97G" significa, portanto, especificar o mesmo tamanho nos dois lugares deve ser bom. No entanto, sou paranóico e, sempre que possível, sempre use a estratégia sugerida por larsks nos comentários da pergunta e redimensionada para ser um GB menor do que eu queria, fiz o lvresize para o tamanho que eu queria e execute novamente o redimensionamento2fs (sem um tamanho) para deixá-lo expandir novamente para preencher todo o VE.
fonte
Eu acho que isso é melhor feito usando a opção --resizefs para lvreduce / lvresize:
É certo que isso não ajuda você agora , mas pode no futuro.
fonte