Reequilibrar a atribuição LVM do CentOS / RHEL Ext4

3

Nosso padrão corporativo é o CentOS (que parece preferir o LVM), e eu venho principalmente de uma base não-LVM, então estou pisando em um novo patamar nessa questão.

Eu herdei uma máquina mais antiga como um servidor de log e tive que reinstalar o CentOS. Devido a problemas com o EHCI na placa-mãe (seja através do DVD de instalação normal ou através da instalação da LiveCD GUI), a única coisa que eu poderia encontrar que instalaria o CentOS 6.3 era uma instalação de texto do LiveCD. A instalação de texto do LiveCD não permitiria que eu fizesse minhas próprias configurações de partição no disco; ele só instala o LVM e me deu alocação de espaço ruim para um servidor de log ...

[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m

[mpenning@someHost ~]$ df -m
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
                         50397      2167     47719   5% /
tmpfs                     1850         0      1850   0% /dev/shm
/dev/md127p1               485        65       395  15% /boot
/dev/mapper/vg_livecd-lv_home
                        227001       188    215283   1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
  --- Volume group ---
  VG Name               vg_livecd
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               278.96 GiB
  PE Size               4.00 MiB
  Total PE              71415
  Alloc PE / Size       71415 / 278.96 GiB
  Free  PE / Size       0 / 0
  VG UUID               8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU

[mpenning@someHost ~]$

Duas perguntas:

  1. Se eu precisar aumentar / para ter 257398 blocos 1-M e diminuir /home para 20000 blocos 1-M, posso fazer isso sem reinicializar e, em caso afirmativo, qual é a seqüência de comandos específica para fazer isso?
  2. Se eu quiser adicionar uma partição /var dedicada, como devo fazer isso sem uma reinstalação completa?
por Mike Pennington 24.08.2012 / 00:24

2 respostas

5

If I need to increase / to have 257398 1-M blocks and decrease /home to 20000 1-M blocks, can I do this without rebooting and if so, what is the specific command sequence to do this?

Você tem aproximadamente 280 GB de espaço disponível, dos quais 50 GB foram alocados para '/' e 230 GB foram alocados para /home . Porque isso representa todo o seu espaço disponível, você terá que liberar algo primeiro. Aqui estão algumas opções:

Se você não colocou nenhum dado em /home , é mais fácil descartar o sistema de arquivos existente e recriá-lo com o tamanho apropriado:

  • Desmontar /home :

    # umount /home
    
  • Reduza o tamanho do volume lógico (LV) para 20 GB:

    # lvreduce -L 20G /dev/vg_livecd/lv_home
    
  • Recrie o sistema de arquivos /home :

    # mke2fs -j -m0 /dev/vg_livecd/lv_home
    
  • E remontar /home :

    # mount /home
    

É possível reduzir /home , em vez de descartá-lo, mas isso pode ser um pouco mais complicado:

  • Desmontar /home :

    # umount /home
    
  • fsck do sistema de arquivos. Isso provavelmente é necessário na próxima etapa:

    # fsck /dev/vg_livecd/lv_home
    
  • Redimensione o sistema de arquivos:

    # resize2fs /dev/vg_livecd/lv_home 19G
    
  • Reduza o LV:

    # lvreduce -L 20G /dev/vg_livecd/lv_home
    

Você notará que eu reduzi o sistema de arquivos um pouco mais do que o LV; isso é porque eu nunca consigo me lembrar se eles contam as coisas da mesma maneira, então eu tento deixar um pouco de espaço de manobra.

Em ambos os casos, agora você tem aproximadamente 210 GB de espaço livre no seu grupo de volumes. Agora você pode aumentar o tamanho do seu sistema de arquivos raiz:

  • Aumentar o tamanho da raiz LV:

    # lvresize -L260G /dev/vg_livecd/lv_root
    
  • Aumentar o tamanho do sistema de arquivos:

    # resize2fs /dev/vg_livecd/lv_root
    

Observe que você pode precisar usar um número um pouco menor que 260 G devido ao arredondamento que estou usando nesta resposta. Além disso, versões recentes dos utilitários LVM incluem a capacidade de redimensionar o sistema de arquivos para você, mas eu venho fazendo isso desde antes de essas opções estarem disponíveis ... então não posso afirmar que elas sabem exatamente como elas operam.

If I want to add a dedicated /var partition, how should I do it without a complete reinstall?

Primeiro, você provavelmente desejará fazer isso no modo de usuário único, caso contrário, os processos em execução provavelmente terão arquivos abertos em /var , dificultando sua substituição. Tendo dito isso ...

Mais uma vez, você precisará de espaço livre. Se, em vez de usar todo o seu espaço livre no passo anterior, você deixar alguns GB livres, você pode fazer isso:

  • Crie um novo volume lógico:

    # lvcreate -n lv_var -L 10G /dev/vg0
    
  • Crie um novo sistema de arquivos:

    # mke2fs -j -m0 /dev/vg_livecd/lv_var
    
  • Edite /etc/fstab para montar o novo LV em /var adicionando a seguinte linha:

    /dev/vg_livcde/lv_var /var ext4 defaults 1 2
    

    Mas não o monte ainda!

  • Monte o novo sistema de arquivos em algum lugar conveniente:

    # mount /dev/vg_livecd/lv_var /mnt
    
  • Copie o conteúdo de /var :

    # rsync -a /var/ /mnt/
    
  • Renomeie /var para /var.old e crie um novo diretório:

    # mv /var /var.old
    # mkdir /var
    
  • Monte seu novo LV em /var :

    # umount / mnt    # mount / var

  • E continue a inicialização. Quando estiver satisfeito, tudo está funcionando corretamente, você pode excluir /var.old .

por 24.08.2012 / 04:17
1

Considerando:

  • o nome feio do VG
  • a alocação de espaço ruim para seu caso de uso e o ônus do procedimento detalhado por larsks
  • o fato de que você teria que fazer tudo isso novamente caso precisasse reinstalar

AFAIC, eu tentaria netinstall / kickstart para obter a configuração desejada de uma só vez e de forma reproduzível.

Meus 2cts

    
por 28.08.2012 / 09:48