User Tools

Site Tools


doc:appunti:linux:sa:raid

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:raid [2015/09/16 17:56] – [RAID in auto-read-only mode] niccolodoc:appunti:linux:sa:raid [2024/04/17 12:44] (current) – [Gestione RAID con mdadm] niccolo
Line 5: Line 5:
 ==== Cambiare dimensione a una partizione ext3 ==== ==== Cambiare dimensione a una partizione ext3 ====
  
-<code> +Vedere la pagina **[[resize2fs]]**.
-resize2fs -p /dev/hda7 <newsize> +
-</code> +
- +
-Vedere ''**man resize2fs**'' per come si specifica la size, mi pare che il suffisso ''**s**'' che dovrebbe indicare settori da 512 byte non sia onorato per bene (confusione con i //blocchi// del filesystem?). +
- +
-Forse conviene che la partizione non sia montata? +
  
 ===== Parametri Boot (per GRUB o LILO) relativi al RAID ===== ===== Parametri Boot (per GRUB o LILO) relativi al RAID =====
Line 21: Line 15:
 </code> </code>
  
-===== Gestione volumi RAID =====+===== Gestione RAID con mdadm =====
  
-==== Utilizzo di mdadm ====+=== Creazione di un volume RAID1 ===
  
-Invece dei vecchi raidtools si usa il nuovo ''mdadm''.+Con il comando seguente viene creato e immediatamente attivato un volume **RAID1** in modalità **degradata**, cioè con un solo disco attivo: 
 + 
 +<code> 
 +mdadm --create /dev/md10 --run --level=1 --raid-devices=2 /dev/sdb3 missing 
 +</code>
  
 === Aggiungere una partizione ad un volume RAID === === Aggiungere una partizione ad un volume RAID ===
 +
 +Per aggiungere un componente ad un volume RAID, ad esempio per ripristinare un volume degradato:
  
 <code> <code>
Line 33: Line 33:
 </code> </code>
  
 +=== Avviare un volume in modalità degradata ===
  
 +Se non è possibile montare un volume RAID nella sua completezza (ad esempio perché un componente di un RAID1 è guasto), il volume non viene attivato automaticamente. Per forzare l'operazione è necessario passare il parametro **%%--run%%**.
  
 +**ATTENZIONE**! Senza il parametro ''%%--run%%'' il volume viene assemblato (con un nome di device assegnato automaticamente, in generale non con quello richiesto), ma non viene avviato. Il contenuto del volume non è quindi leggibile e il volume appare vuoto.
  
 +<code>
 +mdadm /dev/md17 --assemble /dev/sdc7 --run
 +</code>
  
 +=== Rimuovere un componente da un volume RAID ===
  
 +Per rimuovere un componente, ad esempio da un volume RAID1, è necessario prima marcarlo come guasto (fail), dopo sarà possibile rimuoverlo dal RAID, che continuerà a lavorare in modalità degradata:
 +
 +<code>
 +mdadm --manage /dev/md0 --fail /dev/sdb2
 +mdadm --manage /dev/md0 --remove /dev/sdb2
 +</code>
 +
 +=== Distruggere un volume RAID ===
 +
 +Per eliminare definitivamente un volume raid è necessario fermarlo, quindi è opportuno azzerare il sperblock di ogni componente, per evitare che l'auto-run dei volumi trovi la signature nelle partizioni e provveda a fare l'assemblaggio al successivo reboot:
 +
 +<code>
 +mdadm --stop /dev/md4
 +mdadm --zero-superblock /dev/sda7
 +mdadm --zero-superblock /dev/sdb7
 +</code>
  
  
Line 131: Line 154:
 ==== Mdadm problem with Debian Jessie and degraded raid1 ==== ==== Mdadm problem with Debian Jessie and degraded raid1 ====
  
-See Debian bug [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=784823|#784823]]. This is a workaround, as suggested by [[http://serverfault.com/questions/688207/how-to-auto-start-degraded-software-raid1-under-debian-8-0-0-on-boot|this post]]:+**Regression - mdadm in jessie will not boot degraded raid1 array**. See Debian bug [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=784823|#784823]]. This is a workaround, as suggested by [[http://serverfault.com/questions/688207/how-to-auto-start-degraded-software-raid1-under-debian-8-0-0-on-boot|this post]]:
  
 <file> <file>
Line 144: Line 167:
    else    else
 -    log_failure_msg "failed to assemble all arrays." -    log_failure_msg "failed to assemble all arrays."
-+    log_warning_msg "failed to assemble all arrays... attempting individual starts"++    log_warning_msg "failed to assemble all arraysattempting individual starts..."
 +    for dev in $(cat /proc/mdstat | grep '^md' | cut -d ' ' -f 1); do +    for dev in $(cat /proc/mdstat | grep '^md' | cut -d ' ' -f 1); do
 +      log_begin_msg "attempting mdadm --run $dev" +      log_begin_msg "attempting mdadm --run $dev"
Line 169: Line 192:
  
 which actually does not run the array if it is degraded (where the previous start was not). which actually does not run the array if it is degraded (where the previous start was not).
 +
 +==== Rename an MD device permanently ====
 +
 +To geneate the configuration file **/etc/mdadm/mdadm.conf** you can use the tool **/usr/share/mdadm/mkconf**, which gathers information from the existing RAID volumes. The information are read from the **superblock** of the MD arrays and contains the **name** and **homehost**, so the file created contains lines like this:
 +
 +<file>
 +ARRAY /dev/md/125  metadata=1.2 UUID=d92a8066:fc45b7d3:f916e674:3a695968 name=hostname:125
 +</file>
 +
 +Editing ''mdadm.conf'' to rename a device (e.g. changing from **/dev/md/125** to **/dev/md/5**) will work on the next reboot (remember to update initramfs), but eventually ''mkconf'' will restore the name ''/dev/md/125'' on the next run. To change the name permanently you have to stop the RAID device and update the superblock:
 +
 +<code>
 +mdadm --stop /dev/md/125
 +mdadm --assemble /dev/md/5 --name=5 --homehost=newhostname --update=name /dev/sda5 /dev/sdb5
 +</code>
  
 ===== Filesystem has unsupported feature(s) ===== ===== Filesystem has unsupported feature(s) =====
Line 214: Line 252:
 ===== Forzare fsck al reboot ===== ===== Forzare fsck al reboot =====
  
-Prima di forzare il ''fsck'' conviene controllare in **''/etc/default/rcS''** che il fix di eventuali errori avvenga in automatico, senza richiesta di intervento manuale:+Su un server remoto o privo di monitor/tastiera conviene **impostare il fix automatico di eventuali errori nel filesystem**, senza richiesta di intervento manuale. Questo soprattutto prima di forzare un ''fsck'' al reboot. 
 + 
 +Fino a **Debian 7 Wheezy** era sufficiente impostare in **''/etc/default/rcS''**:
  
 <file> <file>
 FSCKFIX=yes FSCKFIX=yes
 +</file>
 +
 +Da quando si usa il sistema di //init// **systemd** (cioè da **Debian 8 Jessie**) tale file non viene più preso in considerazione, esistono invece le //unit// chiamate **systemd-fsck@.service** e **systemd-fsck-root.service** (vedere **man 8 systemd-fsck**). Tale servizio riconosce alcuni parametri passati al kernel che si possono aggiungere - eventualmente separata da spazi - in **''/etc/default/grub''** (ricordarsi poi di eseguire **update-grub**):
 +
 +<file>
 +GRUB_CMDLINE_LINUX="fsck.repair=yes"
 </file> </file>
  
Line 250: Line 296:
 shutdown -rF now shutdown -rF now
 </code> </code>
 +
 +===== Filesystem Features =====
 +
 +Se ci sono differenze fra il sistema su cui si esegue il **mkfs.ext4** e il sistema su cui si esegue il **grub-install**, si potrebbe incorrere nel seguente errore:
 +
 +<code>
 +grub-install /dev/sda
 +Auto-detection of a filesystem of /dev/sda2 failed
 +</code>
 +
 +Il caso visto sopra è dovuto al fatto che il filesystem è stato creato sull'host avviato con S.O. **64bit**, mentre il grub-install è stato eseguito in un chroot di un sistema a **32bit**.
 +
 +Con **%%tune2fs -l%%** è possibile vedere le //Filesystem features//, quindi è possibile creare il filesystem con le opzioni opportune. Ad esempio il nostro problema è stato risolto eseguendo:
 +
 +<code>
 +mkfs.ext4 -O 'uninit_bg,^64bit,^metadata_csum' /dev/sda2
 +</code>
 +
 +
doc/appunti/linux/sa/raid.1442419006.txt.gz · Last modified: 2015/09/16 17:56 by niccolo