As vezes o diretório /var cresce demasiadamente devido a logs de programas. Por isso surge a necessidade de separá-lo em outro disco. Mas como fazer isso se nosso servidor já está em produção há algum tempo?
Nesse exemplo, estamos utilizando máquinas virtuais VMware esxi, porém a ideia pode ser usada para máquinas físicas também.
-------------------------------------------------------
[Passo 1: adicionando disco]
- Ao adicionar o novo disco, o servidor deve ser reiniciado para que o mesmo seja reconhecido, infelizmente o servidor terá algum tempo de indisponibilidade.
- Após a reinicialização, digite o comando "fdisk -l" para ver qual device corresponde ao novo disco. A saída é semelhante a seguir:
...
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
..
Nota: adicionei um disco de 34GB, logo, sei que /dev/sdb só pode ser ele.
-------------------------------------------------------
[Passo 2: particionando e formatando disco]
- O novo disco deve ser particionado, utilize o comando "fdisk":
# fdisk /dev/sdb
- No menu do comando fdisk, digite "n" para criar uma nova partição, e digite "w" para gravar as alterações.
- Após particionado, o device "/dev/sdb1" será criado, o mesmo deve ser formatado. Utilizo o sistema de arquivos "ext3" para formatar discos linux:
# mkfs.ext3 /dev/sdb1
-------------------------------------------------------
[Passo 3: preparando novo disco para receber arquivos /var]
- Após formatarmos o novo disco, devemos monta-lo para certificar que o mesmo esteja vazio. Utilize o comando "mount":
# mount /dev/sdb1 /mnt
- Abra a pasta /mnt com o comando "cd":
# cd /mnt
- Perceba que geralmente a pasta "lost+found" é criada após formatar o disco, apague tudo com o comando "rm":
# rm -r /mnt/*
-------------------------------------------------------
[Passo 4: copiando arquivos de /var para /dev/sdb1]
- Como o novo disco "/dev/sdb1" está montado em "/mnt", basta copiarmos o conteúdo de "/var" para "/mnt" com o comando "cp":
# cp -rdp --preserve=context /var/* /mnt
Nota: por quê "-rdp --preserve=context"? R.: "r" faz cópia de diretórios; "d" mantém links; "p" mantém permissões; "--preserve=context" mantém o contexto do selinux caso a distribuição possua ele habilitado.
-------------------------------------------------------
[Passo 5: elegendo /dev/sdb1 como novo /var]
- Após a cópia, os arquivos de "/var" podem ser apagados. Em nosso caso, somente renomearemos para manter backup. Utilize o comando "mv":
# mv /var /var.original
- Crie uma nova pasta "/var" para servir como ponto de montagem do dispositivo "/dev/sdb1". Utilize o comando "mkdir":
# mkdir /var
- Edite o arquivo "/etc/fstab" para que o dispositivo "/dev/sdb1" seja montado automaticamente em "/var". Utilize um editor de sua preferência e adicione a seguinte linha (sem ...):
...
/dev/sdb1 /var ext3 defaults 0 0
...
- Desmonte "/mnt" com o comando "umount":
# umount /mnt
- Teste o novo ponto de montagem com o comando "mount":
# mount /var
-------------------------------------------------------
[Passo 6: SOMENTE PARA SISTEMAS COM SELINUX]
- Em sistemas com selinux, no passo 5 quando criamos a nova pasta "/var", essa não possui permissões relativas ao /var original. Veja essa diferença com o comando "ls":
# ls -Z
- Para que as permissões selinux sejam restauradas no novo "/var", execute o comando "restorecon":
# restorecon /var
- A partir desse passo, tudo deve funcionar corretamente. Se quiser, reinicie o servidor para testar.
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário