Eu tenho uma máquina virtual que recentemente teve sua imagem de disco aumentada de 20 GB para 50 GB e fdisk -l
verifica se a VM pode ver esse novo tamanho. Agora, preciso redimensionar minha partição LVM raiz para preencher os 30 GB extras.
Encontrei vários artigos sobre o redimensionamento do LVM, mas os poucos que cobrem o redimensionamento da partição raiz afirmam que você precisa inicializar a partir de um LiveCD. Existe alguma maneira de fazer isso sem derrubar o servidor? O servidor é crítico, então eu gostaria de minimizar o tempo de inatividade.
Edit: Saída de fdisk -l
:
[root@fedora-host ~]# sudo fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097c90
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 83886079 41430016 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table
Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table
Edit: Como redimensionar a partição física? O fdisk pode ver o espaço livre, mas não sei como redimensionar a partição LVM principal para usá-la. Tentei inicializar em um LiveCD e usar o resize
comando parted'd , mas tudo o que me dá é o erro "Não foi possível detectar o sistema de arquivos". Encontrei este guia , que diz que preciso excluir a partição e criar uma nova com o tamanho correto, mas isso parece muito perigoso.
Edição final: o resize
comando Parted é estranhamente incapaz de redimensionar partições LVM. Vai saber. Em vez disso, simplesmente excluí a partição antiga e criei uma nova com o novo intervalo, conforme descrito no link acima, e que redimensionou corretamente a partição LVM. Segui o conselho abaixo para redimensionar os volumes e sistemas de arquivos dentro da partição LVM.
Respostas:
Você pode aumentar um volume lógico online. Você precisaria desmontá-lo para reduzi-lo (o que requer um LiveCD / Rescue Mode).
pvresize /dev/sda2
(supondo que sua partição LVM sejasda2
. Substitua conforme necessário.)lvextend /dev/mapper/root -l+100%FREE
(ou, seja qual for o nome do seu volume lógico raiz.)resize2fs /dev/mapper/root
(assumindo ext2 / 3/4)fonte
lvextend -L [size][unit] /dev/group/volume
, mesmo porque eu posso estender um volume de 10 gigabytes, especificando-L +10G
Now I need to resize my root LVM partition to fill the extra 30GB.
(Que é crescer o volume lógico pelo espaço livre disponível.)-r
opçãolvextend
, ele irá engatarfsadm
para redimensionar o FS. Isso tornaria o terceiro passo redundante.pvresize /dev/sda2
comando não faz nada até que a partição / dev / sda2 tenha sido redimensionada com parted ou fdisk. Eu tive que redimensionar o meu com o fdisk, pois as partes no meu sistema não seriam exibidas ou não possuem um comando de redimensionamento. O redimensionamento do Fdisk envolve excluir e recriar a partição.Seu sistema realmente mudou de 20 para 50 GB? Isso parece realmente estranho, já que seu dispositivo sda2 tem ~ 40 GB, lv_root mostra 36 GB e swap mostra 6 GB.
Sua saída de
fdisk -l
mostra o total de setores de/dev/sda
é104857600
. O último setor usado por/dev/sda2
é83886079
. Isso me diz que você não ajustou o tamanho da partição para usar todo o espaço disponível na unidade. O comando pvresize não altera a tabela de partição. Você precisa alterar a tabela de partição primeiro.fonte
Instale o gparted. Execute como root (use ssh -X ou x2go se remoto). Selecione a partição. Ele deve mostrar espaço livre após o final (à direita). Caso contrário, você precisará reiniciar sua máquina virtual para ver o novo tamanho do dispositivo virtual. Esse deve ser o tempo de inatividade mínimo com o systemd.
Clique com o botão direito e selecione redimensionar. Arraste o final para o final do disco. Certifique-se de não tocar no começo. O gparted é capaz de mover uma partição durante o redimensionamento, mas isso naturalmente destruirá um sistema em execução. Mas mover o final é bom. Revise a operação pendente que o gparted executará para garantir que você esteja estendendo e não movendo a partição. Clique em aplicar. O gparted mudará a partição no disco e emitirá o kernel ioctl para reler a tabela de partições, alterando também o tamanho do dispositivo de bloco ativo. Então, como ele é um PV LVM, ele executa pvresize para você. Saia do gparted e o vgs agora mostra seu novo espaço.
Ouvi rumores de que se separaram podem fazer tudo isso sem a sobrecarga de uma GUI, mas nunca consegui descobrir o vodu. Parted deve ser uma das piores interfaces CLI que eu já tentei usar.
Não use o fdisk, você deve excluir e realocar a partição para redimensionar e, por padrão, ela limpará a assinatura do LVM2 na gravação. Acho que vi uma opção "avançada" para desativar esse comportamento destrutivo, mas nunca o testei.
Você também pode tentar o cfdisk (amaldiçoa o fdisk). Pode ter um redimensionamento de partição utilizável. É bastante fácil executar o pvresize manualmente, e há um comando para informar ao kernel que releia a tabela de partição. Mas eu teria que testar para garantir que ela não limpe a assinatura LVM como o fdisk.
fonte
Se o volume físico do LVM estiver em uma partição, não será possível redimensioná-lo sem a reinicialização.
Você pode editar a tabela de partição na unidade, mas o Linux se recusará a usá-la até a reinicialização.
Se você estiver usando o XFS, mude
resize2fs
paraxfs_growfs
.Você pode exibir os PVs usados e os LVs no grupo de volumes usando
pvs
elvs
.PV no disco bruto
PV em uma partição
Primeiro você tem que redimensionar a partição, utilização
parted
,fdisk
ou uma ferramenta similar para isso. Lembre-se de que essas ferramentas editam apenas a descrição da localização das partições, elas não movem os dados. Em outras palavras, você pode estender facilmente apenas a última partição do disco. Em seguida, reinicie sua máquina e depois disso, você poderá informar ao LVM que ele possui espaço adicional disponível:fonte
sudo pvresize /dev/sda2
relatórios "1 volume físico foram redimensionados", massudo lvextend /dev/mapper/VolGroup-lv_root -L +10G
falham com o erro "espaço livre insuficiente: 320 extensões necessárias, mas apenas 0 disponíveis".sudo fdisk -l
relatórios que tenho 54G disponíveis, enquantosudo pvdisplay
relatórios apenas 40G estão em uso. Por que o lvextend está falhando?resize
comando parted para aumentar o tamanho da partição principal, mas ele me deu o erro "Não foi possível detectar o sistema de arquivos". Como você redimensiona a partição usando o parted ou o fdisk?Eu consideraria verificar o ssm (system-storage-manager) se ele estiver disponível na sua distribuição.
Confira isso para um pouco mais de informação: /unix//a/293173
O ssm parece facilitar o redimensionamento de volumes lógicos sem ter que fazer tudo sozinho.
Eu era capaz de estender minha partição pessoal depois de reiniciar o sistema operacional e fazer o login primeiro como root. (Tinha que reiniciar duas vezes no total, mas funcionou no final e agora tenho 50G extras disponíveis na minha partição / home.)
fonte
Depois de combinar 25 instruções, finalmente tenho esta solução. Não requer cd ao vivo, está completamente em movimento.
Etapa 1. Formate a partição com parted (no gui). Neste exemplo, o tamanho máximo do disco aumentou de 8BG para 32 GB na caixa virtual.
Etapa 2. Crie um volume físico com base na nova partição
Etapa 3. Adicione o volume físico ao grupo de volumes. Em uma instalação simples do servidor fedora 28, o grupo de volumes é chamado fedora.
Etapa 4. Adicione o espaço disponível no grupo de volumes ao volume lógico. Em uma instalação simples do servidor fedora 28, o volume lógico é chamado de raiz.
Etapa 5. Diga ao sistema de arquivos no volume lógico para usar o espaço extra. No fedora, o sistema de arquivos é xfs.
Atenção! xfs_growfs usa o ponto de montagem para identificar o sistema de arquivos, não o nome do sistema de arquivos encontrado na saída df !!!!!!!
O comando 'xfs_growfs / dev / mapper / fedora-root' dirá que / dev / mapper / fedora-root não é um sistema de arquivos XFS montado. Se você estiver usando um sistema de arquivos diferente, consulte https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html
Etapa 6. Aproveite
fonte
Tente testdisk
sudo dnf instalar testdisk
sudo testdisk
Basta definir criar um arquivo de log. Em seguida, listará as partições, - selecione a mídia / partição -, digite - e analise - pesquisa rápida - selecione e escreva
fonte