grupo de volume fora do espaço. Como faço para recuperá-lo?

grupo de volume fora do espaço. Como faço para recuperá-lo?

É uma longa história que existe uma VM SVN (servidor VMware) que ficou sem espaço. Não posso confirmar porque diz que está sem espaço. A VM tem uma unidade virtual de 80 GB conectada (hda), uma partição /boot e um grande VG (VolGroup00) para /

Estou arquivando e excluindo repositórios SVN antigos do disco, mas não estou recuperando espaço livre. O que preciso fazer para que esse espaço volte a ficar disponível para uso? Eu uso Linux para quase tudo, mas nunca brinquei com LVM o suficiente para saber o que está acontecendo.

Saída vgdisplay:

--- Volume group ---
VG Name               VolGroup00
System ID             
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
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               74.41 GB
PE Size               32.00 MB
Total PE              2381
Alloc PE / Size       2380 / 74.38 GB
Free  PE / Size       1 / 32.00 MB
VG UUID               dPSZpL-kFBn-HpkH-ChfO-dw9q-YGg2-qHOiQF

Desde ontem o espaço foi liberado...

Saída de df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       72G   67G  959M  99% /
/dev/hda1              99M   15M   80M  16% /boot
tmpfs                  62M     0   62M   0% /dev/shm

Saída de lvs

LV       VG         Attr   LSize  Origin Snap%  Move Log Copy% 
LogVol00 VolGroup00 -wi-ao 73.38G                              
LogVol01 VolGroup00 -wi-ao  1.00G

Algo ainda parece estranho, já que diz disponibilidade de 959M, e ainda assim 67G usado com tamanho de 72G...

Então estou recuperando espaço agora, ao excluir repositórios... e ainda assim, o equilíbrio ainda não foi restaurado no universo...

Responder1

A exclusão de arquivos não altera o tamanho de um volume lógico (e, por extensão, não afeta o espaço livre no grupo de volumes).

Você pode pensar em um grupo de volumes como um "disco virtual" e os volumes lógicos nele contidos como partições, mas muito mais fáceis de trabalhar (redimensionar, criar, excluir) do que partições normais.

Como Kamil diz, se você está recebendo erros de "falta de espaço" ao trabalhar, não é o LVM o culpado direto - é um erro simples do sistema de arquivos, e você pode determinar qual sistema de arquivos está sem espaço df -he excluir coisas suficientes em esse sistema de arquivos eventualmente lhe dará mais espaço. No entanto, com o LVM, se você tiver um sistema de arquivos com muito espaço livre e outro sem nenhum, você pode reduzir o LV com muito espaço livre e então alocar esse espaço para o LV que está sem espaço e, portanto, usar seu disco alocado com mais eficiência.

O processo de redução e expansão de sistemas de arquivos é um pouco arriscado (assim como os backups), e o estágio de redução deve ser feito em sistemas de arquivos desmontados (portanto, mudar para o modo de usuário único é bom e você não pode reduzir o sistema de arquivos raiz; se seus sistemas de arquivos apoiá-lo (XFS, reiser, ext2/3 recente) você pode fazer expansão online). Em geral, o processo é:

  1. Reduza o sistema de arquivos do qual você deseja remover espaço para um tamanho um pouco menor do que o que você deseja (com algo como resize2fs /dev/mapper/VolGroup00-largeLV xG). A razão pela qual você o reduz para um pouco menor é porque se você errar na matemática e reduzir o LV para um tamanho menor que o sistema de arquivos, você o encherá.
  2. Reduza o LV do qual deseja remover espaço para o tamanho desejado ( lvresize -L xG VolGroup00/largeLV)
  3. Aumente o sistema de arquivos nesse LV para o novo tamanho do LV:resize2fs /dev/mapper/VolGroup00-largeLV
  4. Aumente o LV que é muito pequeno para o tamanho novo e maior:lvresize -L+nG VolGroup00/smallLV
  5. Aumente o sistema de arquivos no LV muito pequeno para seu tamanho novo e maior:resize2fs /dev/mapper/VolGroup00-smallLV

E agora você deve ter bastante espaço em todos os lugares.

Algumas dicas:

  • lvslistará todos os seus LVs, juntamente com seus tamanhos
  • vgslhe dará uma exibição rápida de todos os tamanhos e espaço livre do seu VG
  • Se o seu swap estiver no LVM, geralmente é um bom lugar para obter um pouco de espaço livre temporário se a máquina não estiver trabalhando muito.

Boa sorte!

Responder2

/dev/sda é local ou na SAN? Se estiver na SAN, há esperança. Se for local e estiver usando todo o espaço disponível, você terá que liberar espaço em disco removendo arquivos.

Atualize a pergunta e informe-nos qual é o status.

Editar

Ah, é uma VM! Você está com sorte (pelo menos se houver espaço livre na máquina host).

Crie outro disco virtual no gerenciador de VM que seja tão grande quanto você deseja que o espaço livre seja. Em seguida, apresente essa imagem de disco à VM.

Certifique-se de que a VM veja (use dmesg para ver se aparece). Supondo que sim, faça um fdisk e crie uma partição.

Emitir

 pvcreate /dev/whatever1  

Onde "tanto faz" é obviamente o dispositivo. Provavelmente SDB. 1 é a partição que você acabou de criar. Não deve haver problemas para criar esse volume físico.

Agora, corra

 vgextend VolumeGroupName /dev/whatever1 

Você pode usar vgdisplay para verificar se o volumegroup tem espaço livre agora. Agora, aumente o volume lógico:

 lvextend -l +100%FREE 

Isso deve expandir o volume lógico para preencher o grupo de volumes.

Agora a parte complicada. Supondo que você tenha um sistema de arquivos ext3, você poderá redimensionar ao vivo, em tempo real:

 resize2fs /dev/volgroup/logicalvolume 

(onde volgroup e volume lógico é o caminho real para tudo o que está montado em /)

Ele dirá que está redimensionando ao vivo, já que o volume está montado e pronto, executar df -h deve mostrar que você tem espaço livre.

Responder3

A quantidade de espaço livre no seu grupo de volumes não será alterada. Tudo é alocado pelo sistema de arquivos com o qual você o formatou. A exclusão de arquivos removerá apenas suas entradas de inode do sistema de arquivos, mas o sistema de arquivos ainda reivindicará o espaço.

A única maneira de recuperar espaço no seu grupo de volumes é redimensionar ou excluir volumes lógicos.

Mas o que você está descrevendo parece simplesmente que você está sem espaço em disco. Você deve verificar a saída da df -hsua VM e ver quanto espaço livre existe no volume onde o repositório reside.

Responder4

Tente reiniciar seu servidor SVN. Se a exclusão de arquivos não estiver liberando espaço, eles ainda deverão estar em uso de alguma forma. Isso também acontece com logs ativos. Certa vez, tive um log que crescia 10 MB por hora, então logo tive que excluí-lo, mas isso não liberou espaço até que eu reiniciei o daemon que estava vomitando naquele log.

EDIT: Pesquisei por que isso acontece. Parece que a referência linux/unix conta arquivos, para que eles possam ser excluídos até que sejam liberados por todos os processos que os abriram.

informação relacionada