Opção 1 realmente não é muito uma opção, depois de incluir os novos discos em md0, você ainda terá que expandir o sistema de arquivos ext3, o mesmo que a opção 2 se você usar o dd . Exceto que leva mais tempo e muitas chances de dar errado.
Se você tiver que percorrer esse caminho, faça o seguinte:
Crie uma partição raid (0xDA ou 0xFD) com fdisk
fdisk /dev/sdc
fdisk /dev/sdd
Adicione o novo disco ao array
mdadm --fail /dev/md0 /dev/sda1
mdadm --remove /dev/md0 /dev/sda1
mdadm --add /dev/md0 /dev/sdc1
Aguarde que a ressincronização termine e adicione outra
mdadm --fail /dev/md0 /dev/sdb1
mdadm --remove /dev/md0 /dev/sdb1
mdadm --add /dev/md0 /dev/sdd1
Aguarde que a ressincronização termine e aumente md0. Lembre-se de que você está vulnerável a falhas de disco durante a ressincronização, o que acontece com mais frequência do que a maioria das pessoas pensa, porque os discos estão sob estresse máximo.
mdadm --grow /dev/md0 --size=max --backup-file=/root/mnt/grow_md0.bak
mdadm --detail --scan >> /etc/mdadm.conf
Você não precisa da opção de arquivo de backup, mas protege contra falhas inesperadas, como corte de energia durante a operação. Ele precisa estar em um disco físico diferente (reformatar + remontar um dos discos antigos ou em uma unidade flash) ou ele acaba com o objetivo.
Dê ao md0 uma boa checagem primeiro, então você pode aumentar o ext3 fs
umount /mount/point-md0
fsck /dev/md0
resize2fs /dev/md0
mount -t ext3 /dev/md0 /mount/point-md0
A única vantagem potencial dessa abordagem é que, se você estiver disposto a assumir alguns riscos, poderá fazer isso sem que o md0 fique off-line. O resize2fs pode realmente aumentar o seu fs online (mas não encolher), e nesse caso você simplesmente faz sem a sequência umount-fsck-mount.
Para reativar o antigo array, você tem que usar --assemble, --create provavelmente irá corromper / destruir os dados existentes.
mdadm --assemble --force /dev/md1 /dev/sda1 /dev/sdb1
A opção 2 é definitivamente a solução "mais limpa". Muito menos chances de dar errado, porque você sempre tem pelo menos um array totalmente redundante.
Crie uma partição raid (0xDA ou 0xFD) com fdisk
fdisk /dev/sdc
fdisk /dev/sdd
faça md1
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1
Crie um sistema de arquivos e monte-o
mkfs.ext3 -L some-label /dev/md1
mount -t ext3 /dev/md1 /mount/point-md1
Torne o md0 read-only, e o rsync deve garantir a integridade do arquivo, com a vantagem adicional de limpar toda a fragmentação no caminho.
mount -o remount,r /dev/md0 /mount/point-md0
rsync -axHAXS --delete --progress /mount/point-md0 /mount/point-md1
Atualize o mdadm.conf
mdadm --detail --scan > /etc/mdadm.conf
E não se esqueça de atualizar o fstab!
Tangente para este assunto:
-
O rsync só copiará os arquivos, onde o resync do mdadm copiará os espaços indefinidos 'vazios' também.
-
Existem algumas razões para usar o RAID1, a menos que você esteja inicializando (nesse caso, você precisa atualizar o gerenciador de inicialização também), o RAID10 lhe dará a mesma proteção, mas melhor desempenho se você tiver mais do que dois discos na matriz.
-
O LVM ajuda você com a migração e o backup. Por exemplo, na Opção 2, em vez de montá-lo somente leitura antes de copiar os arquivos, que é semi-off-line por um tempo muito longo, você pode fazer um instantâneo LVM, dois passos rsync e concluir a migração apenas com alguns segundos de inatividade.
-
Se eu puder manter todos os quatro discos físicos na caixa, eu faria três partições RAID em cada um. Um pequeno RAID1 para / boot, tamanho decente LVM + RAID10 para peças de alto desempenho, como banco de dados, e LVM + RAID5 / 6 para armazenamento.