Configurar /dev/sda e GRUB para RAID1 no CentOS 5.3
Siga estes passos para marcar as partições de /dev/sda como “Linux raid autodetect”, adicioná‑las aos arrays RAID existentes, aguardar a sincronização via /proc/mdstat e atualizar o GRUB e o initrd para garantir boot redundante. Inclui checklist, comandos úteis e resolução de problemas.
Preparando /dev/sda
Se tudo correu bem, você deve ver /dev/md0 e /dev/md2 na saída de df -h. Isso confirma que os arrays já estão montados.
Execute:
df -h
[root@server1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 9.2G 1.1G 7.7G 12% /
/dev/md0 190M 14M 167M 8% /boot
tmpfs 252M 0 252M 0% /dev/shm
[root@server1 ~]#
Verifique também o estado dos arrays com:
cat /proc/mdstat
Você deverá ver algo semelhante a:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1]
200704 blocks [2/1] [_U]
md1 : active raid1 sdb2[1]
522048 blocks [2/1] [_U]
md2 : active raid1 sdb3[1]
9759360 blocks [2/1] [_U]
unused devices:
[root@server1 ~]#
Agora precisamos alterar o tipo das três partições em /dev/sda para “Linux raid autodetect”. Use fdisk para isso:
fdisk /dev/sda
Exemplo da sessão interativa (preserve como referência):
[root@server1 ~]# fdisk /dev/sda
The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): <-- t
Partition number (1-4): <-- 1
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): <-- t
Partition number (1-4): <-- 2
Hex code (type L to list codes): <-- fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): <-- t
Partition number (1-4): <-- 3
Hex code (type L to list codes): <-- fd
Changed system type of partition 3 to fd (Linux raid autodetect)
Command (m for help): <-- w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@server1 ~]#
Importante: a mensagem de WARNING acima é normal quando discos estão em uso. O kernel continuará a usar a tabela antiga até o próximo reboot, mas o tipo das partições foi alterado no disco e o mdadm aceitará as novas partições quando adicionadas.
Agora acrescentamos as partições ao array apropriado:
mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2
mdadm --add /dev/md2 /dev/sda3
Verifique o progresso da sincronização com:
cat /proc/mdstat
Você verá a sincronização em andamento, por exemplo:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0] sdb1[1]
200704 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
522048 blocks [2/2] [UU]
md2 : active raid1 sda3[2] sdb3[1]
9759360 blocks [2/1] [_U]
[====>................] recovery = 22.8% (2232576/9759360) finish=2.4min speed=50816K/sec
unused devices:
[root@server1 ~]#
Dica rápida: execute watch cat /proc/mdstat para atualização contínua; pressione CTRL+C para sair.
Aguarde até que a sincronização conclua; a saída ficará assim quando terminar:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0] sdb1[1]
200704 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
522048 blocks [2/2] [UU]
md2 : active raid1 sda3[0] sdb3[1]
9759360 blocks [2/2] [UU]
unused devices:
[root@server1 ~]#
Depois atualize /etc/mdadm.conf com a configuração atual dos arrays:
mdadm --examine --scan > /etc/mdadm.conf
Verifique o conteúdo do arquivo:
cat /etc/mdadm.conf
Ele deverá conter entradas do tipo:
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=78d582f0:940fabb5:f1c1092a:04a55452
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=8db8f7e1:f2a64674:d22afece:4a539aa7
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=1baf282d:17c58efd:a8de6947:b0af9792
Preparando GRUB
Falta apenas garantir que o GRUB possa inicializar a partir de qualquer disco. O arquivo de configuração atual aponta para /dev/sdb (hd1,0). Precisamos manter uma entrada que aponte explicitamente para hd0 também.
Edite /boot/grub/menu.lst (ou /boot/grub/grub.conf, conforme sua distro) e copie a primeira stanza do kernel, cole abaixo e altere hd1 para hd0. Comente todas as outras entradas não desejadas para simplificar o processo de boot.
Abra o editor:
vi /boot/grub/menu.lst
Exemplo do conteúdo desejado:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=0
fallback=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-128.el5)
root (hd1,0)
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2
initrd /initrd-2.6.18-128.el5.img
title CentOS (2.6.18-128.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2
initrd /initrd-2.6.18-128.el5.img
#title CentOS (2.6.18-128.el5)
# root (hd0,0)
# kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/
# initrd /initrd-2.6.18-128.el5.img
Em seguida, atualize o ramdisk do kernel atual para incluir módulos necessários ao boot por RAID:
mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig2
mkinitrd /boot/initrd-`uname -r`.img `uname -r`
Por fim, reinicie a máquina:
reboot
O sistema deve inicializar normalmente.
Checklist rápido (Admin)
- Confirmar /dev/md0 e /dev/md2 em df -h
- Verificar /proc/mdstat antes de alterar partições
- Alterar tipos em /dev/sda para fd com fdisk
- Adicionar /dev/sda1, /dev/sda2, /dev/sda3 aos arrays com mdadm –add
- Aguardar sincronização completa em /proc/mdstat
- Atualizar /etc/mdadm.conf com mdadm –examine –scan
- Atualizar menu.lst para entrada hd0 e hd1
- Regenerar initrd e reiniciar
Critérios de aceitação
- /proc/mdstat mostra todos os arrays com estado [UU]
- /etc/mdadm.conf contém entradas ARRAY para todos os md devices
- Sistema inicializa corretamente a partir de qualquer disco (avaliar após teste de falha)
Comandos úteis (resumo)
- Verificar uso de disco: df -h
- Ver estado RAID: cat /proc/mdstat
- Adicionar disco ao RAID: mdadm –add /dev/mdX /dev/sdY
- Regenerar mdadm.conf: mdadm –examine –scan > /etc/mdadm.conf
- Atualizar initrd: mkinitrd /boot/initrd-
uname -r
.imguname -r
- Monitor contínuo: watch cat /proc/mdstat
Solução de problemas comum
- Sincronização não inicia: verifique se as partições foram corretamente marcadas com tipo fd. Use fdisk -l /dev/sda para confirmar.
- Erro ao reler tabela de partição: mensagem “Device or resource busy” é esperada se o disco estiver em uso; reinício aplica a nova tabela.
- GRUB não inicia: confirme que existe uma entrada com root (hd0,0) e que /boot contém vmlinuz e initrd correspondentes. Se necessário, reinstale o GRUB no disco secundário com grub-install.
Importante: ao modificar partições e o GRUB, tenha backups e console de recuperação (KVM/IPMI, live CD) prontos caso o sistema não inicialize.
Mini runbook de incidente (perda de um disco)
- Identifique disco com falha: cat /proc/mdstat
- Marque o dispositivo como removido: mdadm –fail /dev/mdX /dev/sdY
- Remova o dispositivo: mdadm –remove /dev/mdX /dev/sdY
- Substitua o disco fisicamente e crie partições compatíveis (fd)
- Adicione as partições: mdadm –add /dev/mdX /dev/sdZ
- Monitorize sincronização: watch cat /proc/mdstat
- Após sincronização, atualize /etc/mdadm.conf
Notas de segurança e recomendações
- Mantenha backups regulares. RAID é redundância, não substitui backup.
- Use checksums (md5/sha) para validar arquivos críticos antes/ depois de manutenção.
- Teste o procedimento em ambiente de staging antes de aplicar em produção.
Resumo
Você alterou os tipos de partição em /dev/sda para “Linux raid autodetect”, adicionou as partições aos arrays md existentes, aguardou a sincronização e atualizou mdadm.conf e GRUB para garantir que o sistema continue inicializando mesmo se um disco falhar. Mantenha o checklist e o runbook por perto para operações futuras.
Materiais semelhantes

NisSrv.exe: validar e gerir o serviço de inspeção de rede

Corrigir Snipping Tool quebrado no Windows 11

Apagar fotos do iPhone sem remover do iCloud

Integrar SFTP ao Explorador do Windows

Migrar fotos do Facebook para Google+ e Picasa
