Ir para conteúdo
  • Cadastre-se

Mover Partição Root de CentOS 6.x em Produção para RAID 1 via Software


Jaime Silva

Posts Recomendados

O presente tutorial ensina como converter a partição root de um servidor CentOS 6.x em produção para RAID 1 via software e já foi usado pelo autor em pelo menos 4 servidores, os quais também tem o cPanel instalado.

Importante: caso use o CloudLinux, será necessário desistalá-lo e em seguida reiniciar o servidor. Após o procedimento de conversão para RAID, você poderá reinstalá-lo.

Este tutorial baseia-se nas seguintes premissas:

1º O sistema operacional não tem uma partição separada para /boot
2º A partição root está em /dev/sda1 e a partição do disco secundário a ser usada para espelhamento é /dev/sdb1
3º Caso use um layout de particionamento diferente, você saberá adaptar este tutorial para as particularidades do seu caso

1. Particione o disco secundário de acordo com sua preferência, porém a partição que será usada como espelho - no nosso caso /dev/sdb1 - deverá ter exatamente o mesmo tamanho em bytes que a partição do sistema - no nosso caso /dev/sda1.
Se quiser copiar o layout do disco primário para o secundário, execute:
sfdisk -d /dev/sda | sfdisk --force /dev/sdb

2. Crie o dispositivo RAID. Certifique-se de usar o parâmetro “--metadata=0.9″ para garantir que o carregador de boot GRUB funcione:
mdadm --create --verbose /dev/md0 --metadata=0.9 --level=1 --raid-devices=2 missing /dev/sdb1

a - Execute cat /proc/mdstat e verifique se a saída do comando será algo como
Personalities : [raid1]
md0 : active raid1 sdb1[1]
      33554368 blocks [2/2] [UU]     
unused devices: <none>

b - Crie um arquivo mdadm.conf com a configuração do RAID atual:
mdadm --examine --scan >> /etc/mdadm.conf

3. Crie o sistema de arquivos no novo dispositivo RAID:
mkfs.ext4 -L 'root' /dev/md0

4. Edite o arquivo /etc/fstab e mude a partição root do sistema operacional (possivelmente a partição atual é /dev/sda1 ou UUID=abcd1234-ef56-ab78-cd12-abcdef123456) para algo como:
/dev/md0    /    ext4    usrjquota=quota.user,jqfmt=vfsv0    1    1

5. Atualize o initrd e reconstrua o initramfs (faremos uma cópia para o caso de termos algum problema):
cp -pf /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bkp
dracut --mdadmconf  --add-drivers "raid1 raid0" --filesystems "ext4 ext3 swap tmpfs devpts sysfs proc" --force /boot/initramfs-$(uname -r).img $(uname -r)

6. Edite o menu de boot do GRUB (/boot/grub/grub.conf ou /boot/grub/menu.lst) e atualize a informação sobre a nova partição root, que deve ficar algo como:

title CentOS (2.6.32-573.1.1.el6.x86_64)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.32-573.1.1.el6.x86_64 ro root=/dev/md0 nomodeset rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rhgb quiet
    initrd /boot/initramfs-2.6.32-573.1.1.el6.x86_64.img

a - Mude a partição root de root=/dev/sda1 ou root=UUID=abcd1234-ef56-ab78-cd12-abcdef123456 para root=/dev/md0
b - Apague qualquer um destes parâmetros de boot: rd_NO_DM  rd_NO_MD rn_NO_DM rn_NO_MD

Possivelmente deve ter mais de um sistema operacional na lista mas você deve editar apenas o primeiro.

7. Monte o nova partição do sistema em RAID e faça cópia dos arquivos do sistema:
mkdir /raid && mount /dev/md0 /raid
rsync -aAxXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/raid"} / /raid

O último comando acima exclui a cópia de arquivos dos diretórios /dev, /sys, /proc, /tmp e do próprio ponto de montagem da partição RAID e não copia arquivos de outras partições. Ele copia permissões, proprietários, links simbólicos, dispositivos, ACLs e atributos extendidos.

Recomendações:
a. Faça cópia de todos os bancos de dados MySQL: mysqldump -u root --all-databases > /backup/todos_bancos_dados.sql
b. Use o rsync no diretório MySQL quando o servidor SQL estiver parado para evitar (?) corrupção de tabelas do tipo InnoDB:
service mysql stop
rsync -av  /var/lib/mysql /raid/var/lib

8. Instale o GRUB na MBR (ou GPT) do disco secundário:
grub
grub> root (hd1,0)
grub> setup (hd1)
grub> quit

9. Reinicie o sistema operacional:
shutdown -r now

10. Se ocorreu tudo bem e o sistema iniciou, adicione a partição do disco primário ao RAID (a antiga partição do sistema):
mdadm --add /dev/md0 /dev/sda1

Antes, porém, recomendo que faça backup. Digamos que esta partição é /dev/sda1 e haja espaço numa outra partição montada em /backup:
mkdir /mnt/sda1 && mount /dev/sda1 /mnt/sda1
rsync -avAX /mnt/sda1
/backup

11. Acompanhe o processo de cópia do disco em RAID e somente siga para o passo final quando o espelhamento estiver completo:
cat /proc/mdstat

12. Recrie o carregador de boot no disco primário:
grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

Importante: Se o sistema operacional não reiniciar,
1. Entre no modo de recuperação (Rescue Mode na OVH e Hetzner)
2. Monte a partição do sistema: /mount /dev/sda1 /media
3. Edite o arquivo /media/etc/fstab e coloque a partição primária como sendo novamente /dev/sda1.
4. Edite também /media/boot/grub/grub.conf e mude:
a. root=/dev/md0 para root=/dev/sda1
b. restaure o arquivo initramfs: mv -vf /media/boot/initramfs-$(uname -r).bkp /media/boot/initramfs-$(uname -r).img
5. Saia do modo de recuperação e inicie o CentOS novamente.
 

Não há bem nem mal que dure para sempre. Um dia tudo acaba.

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?