web-dev-qa-db-fra.com

Comment activer un démarrage RAID1 dégradé dans 16.04LTS?

Dans les versions précédentes d'ubuntu, l'ajout de BOOT_DEGRADED=true à /etc/initramfs-tools/conf.d/mdadm permettait au système de démarrer automatiquement lorsque le système de fichiers racine se trouvait sur un tableau dégradé. Cela ne semble plus fonctionner dans 16.04 LTS.

La documentation ( https://help.ubuntu.com/lts/serverguide/advanced-installation.html ) semble être obsolète; Sudo dpkg-reconfigure mdadm ne demande plus d'autoriser les bottes dégradées et l'argument du noyau bootdegraded=true semble également ne plus fonctionner. Le système démarre toujours dans initramfs lorsque le tableau du système de fichiers racine est dégradé. À partir de là, mdadm -IRs permet au système de démarrer.

Comment activer le démarrage automatique lorsque le système de fichiers racine se trouve sur une matrice RAID1 dégradée dans 16.04LTS?

14
vdyvp

Le bogue mentionné apparaît dans mdadm 3.3-2ubuntu7 et a été corrigé dans 3.4-2.

La dernière version de mdadm pour yakkety (16.10) 3.4-4 contient déjà le correctif et est disponible pour 16.10 mais pas (encore?) Pour 16.04LTS.

Ainsi, j'ai mis à jour mdadm de mes 16.04LTS à la main:

wget http://launchpadlibrarian.net/275652884/mdadm_3.4-4_AMD64.deb
Sudo dpkg -i mdadm_3.4-4_AMD64.deb

Pour vérifier je

  • éteindre l'ordinateur
  • débranché l'un des disques/ssd
  • Allumer l'ordinateur

Observer la console: Le démarrage à partir d'un tableau RAID dégradé fonctionne !

Bug: https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1635049https://bugs.debian.org/cgi-bin/bugreport. cgi? bug = 78407

9
Jan Dev

Il semble que la cause première soit l'absence de script /usr/share/initramfs-tools/scripts/local-top/mdadm - sous Debian-8, elle est incluse dans le paquet mdadm, mais a été perdue dans le même paquet que Ubuntu-16.04 ;-(

Ainsi, après avoir créé sa version "dirty-hack" et recréé initramfs - mon serveur de test Ubuntu-16.04 LTS a été en mesure de démarrer complètement à l’aide du seul deuxième disque dur de la matrice RAID1.

#!/bin/sh
# 2016-07-13 [email protected] - missed mdadm script for Ubuntu-16.04
# see debian8_Host:/usr/share/initramfs-tools/scripts/local-top/mdadm for full version

MDADM=/sbin/mdadm 
. /scripts/functions

echo "===>"
cat /proc/mdstat
echo "===>"
log_begin_msg "Assembling all MD arrays"
if $MDADM --assemble --scan --run --auto=yes
then
  log_success_msg "assembled all arrays."
else
  log_warning_msg "failed to assemble all arrays, attempting individual starts"
  for dev in $(cat /proc/mdstat | grep md | cut -d ' ' -f 1)
  do
    log_begin_msg "attempting mdadm --run $dev"
    if $MDADM --run $dev; then
      log_success_msg "started $dev"
    else
      log_failure_msg "failed to start $dev"
    fi
  done
fi
log_end_msg
echo "===>"
cat /proc/mdstat
echo "===>"

sleep 5

# TODO: run mdadm --readwrite /dev/mdN
# if array is in 'auto-read-only' mode
1
Andrey Kopeyko

J'ai eu le même problème avec 16.04, le raid array simple a refusé de devenir actif dans son mode dégradé.

voici une solution de contournement facile:

  1. créer un nouveau fichier: / etc/initramfs-tools/scripts/init-premount/delay_mounting (n'oubliez pas de définir le + x)

ajouter

sommeil 2 (ou quelle que soit votre préférence)

  1. créer un nouveau fichier: / etc/initramfs-tools/scripts/local-top/mdadm (n'oubliez pas de définir le + x)

ajoutez ce qui suit (forcez le tableau de démarrage, si vous avez/dev/md0,/dev/md1 et/dev/md2)

mdadm --run/dev/md0
mdadm --run/dev/md1
mdadm --run/dev/md2

puis

pdate-initramfs -k all -, alors vous êtes tous ensemble.

Veuillez noter que seulement 1) est requis pour 14.04, mais cela ne fait pas de mal de faire les deux. autre que vous pouvez voir un message d'avertissement tel que:

mdadm: échec de l'exécution du tableau/dev/md0: périphérique ou ressource occupé

ce qui est inoffensif, car il dit seulement que parce que/dev/md0 est actif, vous pouvez vraiment écrire un script plus intelligent, exécutez seulement --run en cas de besoin.

0
Ying-Hung Chen

Les autres réponses ici ont des solutions de contournement pour résoudre le problème, mais c'est un bogue avec Ubuntu et devrait être corrigé. Voici le bogue: https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1635049

Il avait été corrigé précédemment: https://wiki.ubuntu.com/ReliableRaid

0
Grant Slater