Con Linux softraid è possibile creare un array RAID 10 con solo due dischi.
Nomi dei dispositivi utilizzati di seguito:
md0
è il vecchio array di tipo / livello RAID1.
md1
è il nuovo array di tipo / livello RAID10.
sda1
e sdb2
sono nuove partizioni vuote (senza dati).
sda2
e sdc1
sono vecchie partizioni (con dati cruciali).
Sostituisci i nomi per adattarli al tuo caso d'uso. Utilizzare ad es. lsblk
Per visualizzare il layout corrente.
0) Backup, Backup, Backup, Backup oh e BACKUP
1) Crea il nuovo array (4 dispositivi: 2 esistenti, 2 mancanti):
mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda1 missing /dev/sdb2 missing
Si noti che in questo esempio il layout sda1
ha una controparte mancante e sdb2
un'altra controparte mancante. I tuoi dati su md1
non sono al sicuro a questo punto (effettivamente è RAID0 fino a quando non aggiungi membri mancanti).
Per visualizzare il layout e altri dettagli dell'array creato utilizzare:
mdadm -D /dev/md1
Nota! È necessario salvare il layout dell'array:
# View current mdadm config:
cat /etc/mdadm/mdadm.conf
# Add new layout (grep is to make sure you don't re-add md0):
mdadm --detail --scan | grep "/dev/md1" | tee -a /etc/mdadm/mdadm.conf
# Save config to initramfs (to be available after reboot)
update-initramfs -u
2) Formatta e monta. La /dev/md1
deve essere immediatamente utilizzabile, ma hanno bisogno di essere formattato e poi montato.
3) Copia i file. Usa ad esempio rsync per copiare i dati dal vecchio RAID 1 al nuovo RAID 10. (questo è solo un comando di esempio, leggi le pagine man di rsync)
rsync -arHx / /where/ever/you/mounted/the/RAID10
4) Fallire la prima parte del vecchio RAID1 (md0) e aggiungerlo al nuovo RAID10 (md1)
mdadm /dev/md0 --fail /dev/sda2 --remove /dev/sda2
mdadm /dev/md1 --add /dev/sda2
Nota! Questo cancellerà i dati da sda2
. Il md0
dovrebbe essere ancora utilizzabile, ma solo se l'altro membro del raid era pienamente operativo.
Si noti inoltre che questo inizierà i processi di sincronizzazione / recupero su md1
. Per verificare lo stato, utilizzare uno dei comandi seguenti:
# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1
Attendere il completamento del ripristino.
5) Installa GRUB sul nuovo array (supponendo che tu ti stia avviando da esso). Alcuni CD di ripristino / avvio di Linux funzionano meglio.
6) Avvio su un nuovo array. SE FUNZIONA CORRETTAMENTE Distruggi il vecchio array e aggiungi il disco rimanente al nuovo array.
PUNTO DI NON RITORNO
A questo punto distruggerai i dati sull'ultimo membro del vecchio array md0. Assicurati assolutamente che tutto funzioni.
mdadm --stop /dev/md0
mdadm /dev/md0 --remove /dev/sdc1
mdadm /dev/md1 --add /dev/sdc1
E ancora: attendi fino al termine del ripristino md1
.
# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1
7) Aggiorna mdadm config
Ricorda di aggiornare /etc/mdadm/mdadm.conf
(rimuovi md0).
E salva la configurazione in initramfs (che sarà disponibile dopo il riavvio)
update-initramfs -u