grupo de volumes sem espaço. Como faço para recuperá-lo?

3

Até lá, há uma SVN VM (servidor vmware) que ficou sem espaço. Eu não posso me comprometer porque diz que está sem espaço. A VM tem uma unidade virtual de 80 GB anexada (hda), uma partição / boot e um grande VG (VolGroup00) para /

Estou arquivando e excluindo repositórios SVN antigos do disco, mas não recebo espaço livre de volta. O que preciso fazer para obter esse espaço de volta disponível para uso? Eu uso o Linux para quase tudo, mas nunca toquei o LVM o suficiente para saber o que está acontecendo.

saída do 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, uma vez que diz 959M avail, e ainda 67G usado com um tamanho de 72G ...

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

    
por Daniel Huckstep 17.07.2009 / 01:09

4 respostas

8

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 como partições, mas que são muito mais fáceis de trabalhar (redimensionar, criar, excluir) do que as partições comuns.

Como Kamil diz, se você está recebendo erros de "falta de espaço" quando está trabalhando, não é o LVM que está diretamente errado - isso é um erro simples no sistema de arquivos, e você pode determinar qual sistema de arquivos está sem espaço com df -h e deletar coisas suficientes nesse sistema de arquivos irá eventualmente lhe dar mais espaço. No entanto, com o LVM, se você tiver um sistema de arquivos com montes de 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 o seu disco alocado com mais eficiência.

O processo de encolher e expandir sistemas de arquivos é um pouco arriscado (portanto, backups), e o estágio de encolhimento deve ser feito em sistemas de arquivos desmontados (então, o modo de usuário único é bom e não é possível reduzir o sistema de arquivos raiz; Se os seus sistemas de arquivos suportarem (XFS, reiser, recent ext2 / 3) você pode fazer uma 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 desejado (com algo como resize2fs /dev/mapper/VolGroup00-largeLV xG ). A razão pela qual você reduz a um pouco menor é porque, se você errar a matemática e diminuir o LV menor do que o sistema de arquivos, vai preencher tudo.
  2. Reduza o LV do qual você 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. Cresça o LV que é muito pequeno para o novo tamanho maior: lvresize -L+nG VolGroup00/smallLV
  5. Aumente o sistema de arquivos no LV pequeno demais para o novo tamanho maior: resize2fs /dev/mapper/VolGroup00-smallLV

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

Algumas dicas:

  • lvs listará todos os seus LVs, juntamente com seus tamanhos
  • vgs lhe dará uma exibição rápida de todos os tamanhos e espaços livres do seu VG
  • Se a sua troca estiver no LVM, geralmente é um bom lugar para obter um pouco de espaço livre temporário se a máquina não estiver funcionando muito bem.

Boa sorte!

    
por 17.07.2009 / 01:53
2

É / dev / sda local ou na SAN? Se está no SAN, então há esperança. Se for local e estiver usando todo o espaço disponível, você precisará liberar algum espaço em disco removendo arquivos.

Atualize a pergunta e nos informe qual é o status.

Editar

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

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 para a VM.

Verifique se a VM a vê (use o dmesg para ver se ela aparece). Assumindo isso, faça o fdisk e crie uma partição.

Problema

 pvcreate /dev/whatever1  

Onde "o que for" é obviamente o dispositivo. Provavelmente sdb. 1 é a partição que você acabou de criar. Não deveria ter um problema ao fazer este volume físico.

Agora, corra

 vgextend VolumeGroupName /dev/whatever1 

Você pode usar o 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ê deve ser capaz de redimensionar ao vivo, em tempo real:

 resize2fs /dev/volgroup/logicalvolume 

(onde volgroup e logicalvolume são o caminho real para o que está montado em /)

Ele dirá que está fazendo um redimensionamento ao vivo desde que o volume está montado, e voila, rodando df -h, deve mostrar que você tem espaço livre.

    
por 17.07.2009 / 05:14
1

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 em 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 de df -h em sua VM e ver quanto espaço livre há no volume onde o repositório reside.

    
por 17.07.2009 / 01:30
0

Tente reiniciar seu servidor SVN. Se a exclusão de arquivos não estiver liberando espaço, eles ainda devem estar em uso de alguma forma. Isso acontece com os logs ativos também. Certa vez eu tive um log que cresceu 10 mb por hora, então logo tive que deletar o log, mas ele não liberou espaço até que eu reiniciei o daemon que estava sendo liberado no log.

EDITAR: Eu olhei porque isso acontece. Parece que a referência linux / unix conta os arquivos, então eles podem ser deletados até que sejam liberados por todos os processos que os abriram.

    
por 17.07.2009 / 10:01

Tags