Rebalancear atribuição CentOS / RHEL Ext4 LVM

Rebalancear atribuição CentOS / RHEL Ext4 LVM

Nosso padrão corporativo é CentOS (que parece preferir LVM), e eu venho principalmente de uma experiência não-LVM, então estou trilhando novos caminhos com esse problema.

Herdei uma máquina mais antiga como servidor de log e tive que reinstalar o CentOS. Devido a problemas com EHCI na placa-mãe (por meio do DVD de instalação normal ou da instalação da GUI do LiveCD), a única coisa que encontrei que instalaria o CentOS 6.3 foi uma instalação de texto do LiveCD. A instalação de texto do LiveCD não me permitiu fazer minhas próprias configurações de partição no disco; ele apenas instala o LVM e me deu uma 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 questões:

  1. Se eu precisar aumentar /para 257.398 blocos de 1 M e diminuir /homepara 20.000 blocos de 1 M, posso fazer isso sem reinicializar e, em caso afirmativo, qual é a sequência de comandos específica para fazer isso?
  2. Se eu quiser adicionar uma /varpartição dedicada, como devo fazê-lo sem uma reinstalação completa?

Responder1

Se eu precisar aumentar / ter 257398 blocos de 1 M e diminuir /home para 20.000 blocos de 1 M, posso fazer isso sem reinicializar e, em caso afirmativo, qual é a sequência de comandos específica para fazer isso?

Você tem aproximadamente 280 GB de espaço disponível, dos quais 50 GB foram alocados para '/' e 230 GB foram alocados para /home. Como 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 no /home, é mais fácil simplesmente 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 /homesistema de arquivos:

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

    # mount /home
    

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

  • Desmontar /home:

    # umount /home
    
  • fscko sistema de arquivos. Isso provavelmente será exigido na próxima etapa:

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

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

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

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

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

  • Aumente o tamanho da raiz LV:

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

    # resize2fs /dev/vg_livecd/lv_root
    

Observe que pode ser necessário usar um número um pouco menor que 260G 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 tenho feito isso desde antes dessas opções estarem disponíveis... então não posso afirmar que sei exatamente como elas funcionam.

Se eu quiser adicionar uma partição /var dedicada, como devo fazê-lo sem uma reinstalação completa?

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, /vardificultando a substituição. Tendo dito isto...

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

  • 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/fstabpara montar o novo LV /varadicionando a seguinte linha:

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

    Mas nã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 /vare /var.oldcrie um novo diretório:

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

    #umount /mnt #montar /var

  • E continue inicializando. Quando estiver satisfeito com tudo funcionando corretamente, você pode excluir o arquivo /var.old.

Responder2

Considerando:

  • o feio nome VG
  • a má alocação de espaço para o seu caso de uso e a carga 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

informação relacionada