Caso alguém pesquise isso, eis a minha experiência com a migração de unidades de 2x150Gb para 2x1Tb no mdadm RAID1 + LVM.
Assumindo, temos 2 unidades - small1, small2 no mdadm mirror (md0), e as novas são big1 e big2. Sobre eles está o LVM com o grupo de volumes VG1 e o volume lógico LV1
garanta tudo OK com o md atual:
cat /proc/mdadm
Diga ao mdadm para falhar em uma unidade e removê-lo da matriz md:
mdadm /dev/md0 --set-faulty /dev/small1 && mdadm /dev/md0 --remove /dev/small1
Substitua small1 por um grande (ou hotswapping ou desligue o sistema).
Crie uma nova partição no HDD grande do tipo FD (autodetectação RAID do Linux). Faça o tamanho que você deseja que seu novo RAID seja. Eu prefiro cfdisk, mas isso pode variar:
cfdisk /dev/big1
Adicione o novo disco (ou, para ser correto, sua partição recém-criada, por exemplo, / dev / sda1):
mdadm /dev/md0 --add /dev/big1
Espere até que a matriz seja sincronizada:
watch cat /proc/mdstat
Repita isso com o outro par de unidades. No final, você terá dois grandes discos no array.
Aumente a matriz para o tamanho máximo permitido pelos dispositivos de componentes, aguarde até sincronizar:
mdadm /dev/md0 --grow --size=max
watch cat /proc/mdstat
Agora é hora de redimensionar o LVM. Observe a opção --test, ela simulará a ação, mas não alterará os metadados (é útil ver se há algum erro de configuração antes de redimensionar).
Redimensionamento de volume físico:
pvresize --verbose --test /dev/md0
Redimensionando o volume lógico:
lvresize --verbose -L <SIZE> --test /dev/VG1/LV1
E finalmente redimensionando o ext3 FS:
resize2fs /dev/VG1/LV1
Com dois HDs de 1Tb, demorei cerca de 20 horas (removi um disco de um array antes de mexer com o LVM e o FS, então eram 3 syncs + array crescendo).
Tudo foi feito em um servidor de produção, sem interrupções para os serviços em execução.
Mas não se esqueça de BACKUP YOUR DATA antes de fazer qualquer alteração.