RAID: Redundant Array of Indipendent Disks: differenze tra le versioni

m
mNessun oggetto della modifica
 
(16 versioni intermedie di uno stesso utente non sono mostrate)
Riga 41: Riga 41:


== Principali comandi ==
== Principali comandi ==
{{Warningbox|<code>mdadm</code> richiede che l'utente abbia già provveduto a creare le partizioni da mettere in raid. Strumenti come [[Guida alla formattazione dei dischi con fdisk | fdisk]], ''parted'', ecc. vanno tutti bene.}}
{{Cautionbox|È utile notare che attualmente (v.4.2-5) <code>mdadm</code> attribuisce come nome di default agli array <code>nome_host_pc:numero progressivo</code>, ottenendo quindi qualcosa di simile a <code>pippo:0</code> per quanto riguarda <code>md0</code>. Sfortunatamente il carattere <code>:</code> non è POSIX compatibile col risultato che il sistema stamperà a video anche un messaggio di avvertenza simile a <code>mdadm Value: "pippo:0" cannot be set as devname. Reason: not POSIX compatible. Value ignored.</code>. Un simile messaggio NON deve evidentemente essere aggiunto a <code>/etc/mdadm/mdadm.conf</code>. In concreto questo significa che nella directory <code>/dev/md/</code> non sarà presente un collegamento simbolico a <code>/dev/md0</code> di nome <code>/dev/md/pippo:0</code>, ma più semplicemente <code>/dev/md/0</code>.}}


{{Box|Nota|È possibile mettere in raid sia interi dischi che singole partizioni.}}
{{Box|Nota|È possibile mettere in raid sia interi dischi che singole partizioni.}}
{{Warningbox|<code>mdadm</code> richiede che l'utente abbia già provveduto a creare le partizioni da mettere in raid. Strumenti come ''fdisk'', ''parted'', ecc. vanno tutti bene.}}


=== Creare nuovi volumi ===
=== Creare nuovi volumi ===
Riga 127: Riga 129:
[===>...] resync = 16.2% (324736/2000000) finish=0.6min speed=46390K/sec
[===>...] resync = 16.2% (324736/2000000) finish=0.6min speed=46390K/sec
</pre>
</pre>
== /etc/mdadm/mdadm.conf ==
Questo file viene principalmente usato per assemblare in automatico ad ogni avvio i volumi raid creati in precedenza. Per esempio è possibile aggiungere tutti i volumi raid esistenti col seguente comando:
<pre># mdadm -Ds >> /etc/mdadm/mdadm.conf</pre>
{{Warningbox|Come scritto sopra il comando <code>mdadm -Ds</code> può generare anche messaggi di varia natura che '''NON''' devono essere inclusi in <code>/etc/mdadm/mdadm.conf</code>, pertanto è onere dell'utente eliminare i suddetti messaggi da <code>mdadm.conf</code>. In linea di principio devono essere incluse solo le righe che iniziano con <code>ARRAY ...</code>}}
Una volta apportate tutte le modifiche è necessario dare il seguente comando
<pre># update-initramfs -u</pre>


== Esempi ==
== Esempi ==
Riga 176: Riga 185:
<pre># mdadm --detail --scan</pre>
<pre># mdadm --detail --scan</pre>
Tutte le righe che iniziano con <code>ARRAY ...</code> possono essere aggiunte in coda al file <code>/etc/mdadm/mdadm.conf</code>.
Tutte le righe che iniziano con <code>ARRAY ...</code> possono essere aggiunte in coda al file <code>/etc/mdadm/mdadm.conf</code>.
È utile notare che attualmente (v.4.2-5) <code>mdadm</code> attribuisce come nome di default agli array <code>nome_host_pc:numero progressivo</code>, ottenendo quindi qualcosa di simile a <code>pippo:0</code> per quanto riguarda <code>md0</code>. Sfortunatamente il carattere <code>:</code> non è POSIX compatibile col risultato che il sistema stamperà a video anche un messaggio di avvertenza simile a <code>mdadm Value: "pippo:0" cannot be set as devname. Reason: not POSIX compatible. Value ignored.</code>. Un simile messaggio NON deve evidentemente essere aggiunto a <code>/etc/mdadm/mdadm.conf</code>. In concreto questo significa che nella directory <code>/dev/md/</code> non sarà presente un collegamento simbolico a <code>/dev/md0</code> di nome <code>/dev/md/pippo:0</code>, ma più semplicemente <code>/dev/md/0</code>.


La predetta procedura può anche essere ridotta ad un solo comando digitando:
La predetta procedura può anche essere ridotta ad un solo comando digitando:
Riga 203: Riga 210:
Dove UUID si ottiene digitando da terminale <code>blkid /dev/dispositivo</code>, ad esempio:
Dove UUID si ottiene digitando da terminale <code>blkid /dev/dispositivo</code>, ad esempio:
<pre>blkid /dev/md0</pre>
<pre>blkid /dev/md0</pre>
=== Mettere in RAID la partizione di root ===
{{Warningbox|
* Questa è un operazione ESTREMAMENTE delicata che potrebbe rendere non più avviabile il sistema e/o causare la perdita completa dei dati.
* Si ipotizza che la partizione di boot non sia separata, ovvero che la directory <code>/boot</code> risieda nella partizione di root.
}}
* Creare una partizione su un nuovo disco, della dimensione che si ritiene più opportuna (non deve necessariamente essere uguale a quella corrente di root). Non è necessario formattarla con un file system. Questo passaggio può anche essere eseguito anche dopo il punto 2.
* Riavviare il PC selezionando un'altra distro o usandone una live (es. Debian Live). Installare <code>mdadm</code> se già non disponibile.
{{Cautionbox|Il punto è che la partizione di root che si vuole copiare '''NON''' deve essere montata all'avvio del sistema.}}
* Supponendo che la partizione di root esistente sia <code>/dev/nvme0n1p2</code> e quella nuova invece <code>/dev/nvme1n1p2</code> creare un volume raid degradato che includa quest'ultima
<pre># mdadm -C /dev/md0 -l 1 -n 2 nvme1n1p2 missing</pre>
* Formattare il volume appena creato con il file system desiderato, per es. <code>ext4</code> (2,5% blocchi riservati, etichetta "radice"):
<pre># mkfs.ext4 -m 2.5 -L radice /dev/md0</pre>
* Creare due punti di montaggio temporanei per la partizione esistente e per quella nuova, ad esempio:
<pre>
# mkdir /mnt/dst
# mkdir /mnt/src
</pre>
* Montare la partizione di root esistente in <code>/mnt/src</code> e quella nuova in <code>/mnt/dst</code>, ad esempio:
<pre>
# mount /dev/nvme0n1p2 /mnt/src
# mount /dev/md0 /mnt/dst
</pre>
* Copiare tutti i dati della partizione esistente in quella nuova:
<pre># rsync -axcHAWXS --del --numeric-ids --info=progress2 /mnt/src /mnt/dst</pre>
* Terminata la copia modificare il file <code>/mnt/dst/etc/fstab</code> aggiornando l'UUID della vecchia partizione di root con quello del volume raid <code>md0</code>.
{{Suggerimento|Per trovare l'UUID di <code>md0</code> usare il comando <code>lsblk -f</code>}}
* Modificare il file <code>/mnt/dst/boot/grub/grub.cfg</code> aggiornando la sezione relativa al sistema operativo sostituendo l'UUID della vecchia partizione di root con il volume raid <code>md0</code>.
* Aggiungere i dati del volume raid <code>md0</code> al file <code>/mnt/dst/etc/mdadm/mdadm.conf</code> (si rilegga la sezione dedicata di questa guida).
* Smontare le partizioni
<pre>
# umount /mnt/src
# umount /mnt/dst
</pre>
{{Warningbox|
* Fino a questo punto la partizione originale di root non è stata in alcun modo modificata, ma con il prossimo comando tutti i dati in essa contenuti andranno persi.
* Aggiungere una nuova partizione ad un volume RAID ne comporta la risincronizzazione, pertanto il seguente comando deve essere lanciato solo se si ritiene di poter lasciare acceso il PC per tutto il tempo che serve a completare l'operazione. A seconda delle dimensioni dei dati e della velocità dei dischi l'operazione potrebbe anche richiedere giorni. A titolo indicativo 10 GiB di dati richiedono meno di un'ora per essere sincronizzati con dischi nvme.
}}
* Aggiungere ora la vecchia partizione di root al volume raid appena creato
<pre># mdadm /dev/md0 -a /dev/nvme0n1p2</pre>
* Riavviare il PC
{{Cautionbox|È probabile che al riavvio il sistema si blocchi proponendo il prompt di ''grub rescue''. Ciò è dovuto al fatto che l'UUID della partizione di root è cambiato e GRUB non riesce più a trovarla (nonostante la modifica al file <code>grub.cfg</code>). Vedere [[Guida a GRUB 2#"No such device" error|l'apposita sezione]] della guida dedicata a GRUB 2.}}


=== Eliminare un volume RAID ===
=== Eliminare un volume RAID ===
Riga 234: Riga 283:


=== Debianizzati ===
=== Debianizzati ===
[[Software Raid 1: configurazione e verifiche | Guida]] dettagliata per Debian Sarge dedicata a varie casistiche di RAID 1.
* [[Software Raid 1: configurazione e verifiche | Guida]] dettagliata per Debian Sarge dedicata a varie casistiche di RAID 1.


=== Manpages ===
=== Manpages ===


<code>man mdadm</code><br />
* <code>man mdadm</code>, [https://manpages.debian.org/bookworm/mdadm/mdadm.8.en.html HTML]
<code>man mdadm.conf</code><br />
* <code>man mdadm.conf</code>, [https://manpages.debian.org/bookworm/mdadm/mdadm.conf.5.en.html HTML]


=== Sitografia ===
=== Sitografia ===
* [http://en.wikipedia.org/wiki/RAID RAID], pagina inglese di wikipedia
* [http://en.wikipedia.org/wiki/RAID RAID], pagina inglese di wikipedia
* [https://askubuntu.com/questions/1299978/install-ubuntu-20-04-desktop-with-raid-1-and-lvm-on-machine-with-uefi-bios Install Ubuntu 20.04 desktop with RAID 1 and LVM on machine with UEFI BIOS]
* [https://askubuntu.com/questions/1403691/how-can-i-create-mdadm-raid1-without-losing-data Mettere in raid 1 una partizione di root]


{{Autori
{{Autori
Riga 251: Riga 302:
| Verificata_da =
| Verificata_da =
: [[Utente:Ferdybassi|Ferdybassi]]
: [[Utente:Ferdybassi|Ferdybassi]]
| Numero_revisori= 1
: [[Utente:Wtf|Wtf]]
| Numero_revisori= 2
}}
}}




[[Categoria:Filesystem]]
[[Categoria:Filesystem]]
3 113

contributi