
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:
- Se eu precisar aumentar
/
para 257.398 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? - Se eu quiser adicionar uma
/var
partiçã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
/home
sistema 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
fsck
o 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, /var
dificultando 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/fstab
para montar o novo LV/var
adicionando 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
/var
e/var.old
crie 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