[mdadm] mismatches found (EN COURS...)

Applications, problèmes de configuration réseau
Répondre
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 387
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

[mdadm] mismatches found (EN COURS...)

Message par L_Indien »

Bonsoir à toutes à tous,

Je possède un NAS sur lequel le RAID est contrôlé avec mdadm.

Il y a un script qui envoie des courriels afin de me tenir informé de l'avancement et, au cas où, de soucis.

Une fois la reconstruction terminée, voici l'objet du message d'erreur reçu : RebuildFinished - /dev/md/12 ( mismatches found: 512 (on raid level 1))
Ce qui est surprenant, c'est que le corps ne comporte pas d'erreur : REBUILD of /dev/md/12 is COMPLETE or ABORTED.

Et le raid en question n'a pas l'air d'avoir de défaut.
Un petit # mdadm --detail --verbose /dev/md12 renvoie :

Code : Tout sélectionner

/dev/md12:
           Version : 1.2
     Creation Time : Sat Apr  4 15:12:59 2020
        Raid Level : raid1
        Array Size : 11718752192 (11175.87 GiB 12000.00 GB)
     Used Dev Size : 11718752192 (11175.87 GiB 12000.00 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Mon Feb  8 20:58:29 2021
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : pierrafeu:12
              UUID : a40a01a7:91cdb810:0b4ff90f:a0695fa1
            Events : 45012

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
Est-ce un soucis, ou est-ce moi qui me fait du mouron pour rien ?

Je vous remercie pour vos retour.

Bonne soirée.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [mdadm] mismatches found (EN COURS...)

Message par benjarobin »

Bonjour,
Ce n'est pas surprenant d'avoir des "mismatches found" suite à une reconstruction.
La question c'est pourquoi il y a eu une reconstruction ? Tu as enlevé un disque ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 387
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [mdadm] mismatches found (EN COURS...)

Message par L_Indien »

Bonjour Benjarobin,

Je te remercie pour ta réponse.

C'est automatique. C'est les 1er dimanche de chaque mois.
Sur l'ancien système, c'était pareil. Tous les mois, une reconstruction.
Avant il y avait 2 disques plus 1 spare. Là c'est 3 disques en RAID1.

À quoi correspond des « mismatches found » ?
C'est au niveau matériel, des fichiers sur lesquels il y a des erreurs ?

Bonne journée.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [mdadm] mismatches found (EN COURS...)

Message par benjarobin »

Qu'est ce qui est lancé tous les mois, qu'est ce que tu as configuré ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 387
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [mdadm] mismatches found (EN COURS...)

Message par L_Indien »

Bonsoir Benjarobin,

Je te remercie pour ton retour.

À vu de nez, la reconstruction est effectuée tous les mois.

Plus plus de clarté, voici le fichier de config /etc/mdadm/mdadm.conf :

Code : Tout sélectionner

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR mdadm_md12@gmx.fr,mdadm@f-s-w.fr,le.manchot.et.le.marteau@gmail.com

# definitions of existing MD arrays

# Appel d'un script extérieur
PROGRAM /etc/mdadm/global.sh

# This configuration was auto-generated on Sun, 08 Sep 2019 18:24:01 +0200 by mkconf
ARRAY /dev/md/12 level=raid1 num-devices=3 metadata=1.2 name=pierrafeu:12 UUID=a40a01a7:91cdb810:0b4ff90f:a0695fa1
   devices=/dev/sda1,/dev/sdc1,/dev/sdd1
et le programme /etc/mdadm/global.sh

Code : Tout sélectionner

#!/bin/bash

CONFIG="/etc/mdadm/mdadm.conf"

## Prgm n°1
# Copyright Douglas J Hunley 2013

event=$1
md_device=$2
device=$3
title=""

# Based on the event, construct our notify message
case $event in
    DegradedArray)
        msg="$md_device is running in DEGRADED MODE"
        ;;
    DeviceDisappeared)
        msg="$md_device has DISAPPEARED"
        ;;
    Fail)
        msg="$md_device had an ACTIVE component FAIL ($device)"
        title="!! FAIL -- ERROR !!"
        ;;
    FailSpare)
        msg="$md_device had a SPARE component FAIL during rebuild ($device)"
        ;;
    MoveSpare)
        msg="SPARE device $device has been MOVED to a new array ($md_device)"
        ;;
    NewArray)
        msg="$md_device has APPEARED"
        ;;
    Rebuild20)
        msg="$md_device REBUILD is now Rebuild20% complete"
        ;;
    Rebuild40)
        msg="$md_device REBUILD is now Rebuild40% complete"
        ;;
    Rebuild60)
        msg="$md_device REBUILD is now Rebuild60% complete"
        ;;
    Rebuild80)
        msg="$md_device REBUILD is now Rebuild80% complete"
        ;;
    RebuildFinished)
        msg="REBUILD of $md_device is COMPLETE or ABORTED"
        ;;
    RebuildStarted)
        msg="RECONSTRUCTION of $md_device has STARTED"
        ;;
    SpareActive)
        msg="$device has become an ACTIVE COMPONENT of $md_device"
        ;;
    SparesMissing)
        msg="$md_device is MISSING one or more SPARE devices"
        ;;
    TestMessage)
        msg="TEST MESSAGE generated for $md_device"
        ;;
esac

# Now that we have our message, send it to the sys admin.
# (in this example, we send it as an SMS to a Verizon phone)
echo "$msg" | mailx -s "$title $event - $md_device ($device) $title" mdadm@f-s-w.fr
echo "$msg" | mailx -s "$title $event - $md_device ($device) $title" mdadm_md12@gmx.fr
echo "$msg" | mailx -s "$title $event - $md_device ($device) $title" le.manchot.et.le.marteau@gmail.com

## Prgm n°2
# Copyright Douglas J Hunley 2013

MAILADDR=mdadm@f-s-w.fr,mdadm_md12@gmx.fr,le.manchot.et.le.marteau@gmail.com # support@systea.net" #espace entre les mails

parse_event()
{
  echo "Hôte            : $HOSTNAME"
  if [ -z "RebuildFinished" ]; then
    echo "Événement        : Test message"
  else
    echo "MD Device       : $2"
    echo "Événement           : $1"
    if [ -n "$3" ]; then
      echo "Élément en cause: $3"
    fi
  fi

  echo ""
  echo "/proc/mdstat dump:"
  FAIL=0
  DEGRADED=0
  while read LINE; do
    echo -n "$LINE"
    if [ -n "$(echo "$LINE" |grep 'active raid')" ]; then
      if [ -n "$(echo "$LINE" |grep '\(F\)')" ]; then
        FAIL=$(($FAIL + 1))
        echo -n " (ATTENTION: DISQUE(S) DÉFÉCTUEUX!)"
      fi

      if [ -n "$(echo "$LINE" |grep '\(S\)')" ]; then
        echo -n " (Hotspare(s) disponibles)"
      else
        echo -n " (NOTE: Pas de hotspare?!)"
     fi
    fi

    if [ -n "$(echo "$LINE" |grep 'blocks')" ]; then
      if [ -n "$(echo "$LINE" |grep '_')" ]; then
        DEGRADED=$(($DEGRADED + 1))
        echo -n " (DEGRADED!!!)"
      fi
    fi

    echo ""
  done < /proc/mdstat

  if [ $FAIL -gt 0 ]; then
    echo ""
    echo "** ATTENTION: Un ou plusieurs RAID ont un ou plusieurs disques déféctueux! **"
  fi

  if [ $DEGRADED -gt 0 ]; then
    echo ""
    echo "** ATTENTION: Un ou plusieurs RAID fonctionnent en mode dégradé! **"
  fi
}

# main line:

# Get MAILADDR from mdadm.conf config file, if not set already
if [ -z "$MAILADDR" ] && [ -f "$CONFIG" ]; then
  MAILADDR=`grep MAILADDR "$CONFIG" |cut -d' ' -f2`
  if [ -z "$MAILADDR" ]; then
    MAILADDR="root"
  fi
fi

# Call the parser and send it to the configured address
parse_event $* |mail -s"Événement RAID(MD) sur  $HOSTNAME" "$MAILADDR"

exit 0
Par contre, impossible de savoir si c'est une fonction de base ou si j'ai programmé le délais entre chaque reconstruction.

Je te remercie pour ta réponse.

Bonne soirée.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [mdadm] mismatches found (EN COURS...)

Message par benjarobin »

C'est bien plus clair ainsi. Et non ce n'est pas comme cela que cela fonctionne (ce n'est pas normal que je sache).

Je ne vois pas trop l’intérêt de la ligne PROGRAM et l'utilisation du script global.sh qui n'est pas du tout standard. Car en effet cela ne fait qu'envoyer un email, mais par défaut sans ce programme tu dois recevoir tous les événements par email. Ceci peut être testé via "mdadm --monitor --scan --test".

Bref, tu as un service qui lance "mdadm --monitor --scan" et cela surveille en permanence ton RAID. Donc non ce n'est pas normal d'avoir de temps en temps des événements, tu ne devrais jamais en avoir. La question maintenant c'est pourquoi tu en as de temps en temps...
Après dans ton cas il répare très rapidement c'est l'avantage d'un raid avec autant de disque, c'est très robuste.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 387
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [mdadm] mismatches found (EN COURS...)

Message par L_Indien »

Bonjour Benjarobin,

Je te remercie pour ton retour.

Lors de la mise en place du RAID, j'ai pris le temps de naviguer un peu pour voir comment envoyer des courriels dans le cas d'événements (pour envoyer sur une boîte mail)
J'en ai profité pour mettre ça dans un script. Il y a sur le net, des personnes qui ont la gentillesse de partager les scripts en question.

Comme tu le mentionnes, c'est pourquoi de temps en temps.
Qu'est-ce que c'est des « mismatches found » ? C'est un défaut matériel ou logiciel ?

Je te remercie pour ta réponse.

Bonne journée.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Thomasb
yeomen
Messages : 275
Inscription : dim. 28 avr. 2019, 14:49

Re: [mdadm] mismatches found (EN COURS...)

Message par Thomasb »

Si tu tapes :!: (ATTENTION, cette commande détruit un disque) dd if=/dev/urandom of=/dev/sda :!:, tu peux forcer une reconstruction. À vérifier avec quelqu'un du métier
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 387
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [mdadm] mismatches found (EN COURS...)

Message par L_Indien »

Bonsoir Thomasb,

Je te remercie pour ta réponse.

Je suis pas très chaud pour cette manip... J'utiliserai en dernier recours

En navigant un peu, j'ai eu quelques explications concernant les mismathces :
On a truly clean RAID5 or RAID6 array, any mismatches should indicate a hardware problem at some level - software issues should never cause such a mismatch. However on RAID1 and RAID10 it is possible for software issues to cause a mismatch to be reported. This does not necessarily mean that the data on the array is corrupted. It could simply be that the system does not care what is stored on that part of the array - it is unused space. The most likely cause for an unexpected mismatch on RAID1 or RAID10 occurs if a swap partition or swap file is stored on the array.
Étant bilingue de base, je passe par translate de google :
Sur une matrice RAID5 ou RAID6 vraiment propre, toute incohérence devrait indiquer un problème matériel à un certain niveau - les problèmes logiciels ne devraient jamais provoquer une telle discordance. Cependant, sur RAID1 et RAID10, il est possible que des problèmes logiciels provoquent un rapport d'incohérence. Cela ne signifie pas nécessairement que les données du tableau sont corrompues. Il se peut simplement que le système ne se soucie pas de ce qui est stocké sur cette partie du tableau - c'est de l'espace inutilisé. La cause la plus probable d'une incompatibilité inattendue sur RAID1 ou RAID10 se produit si une partition d'échange ou un fichier d'échange est stocké sur la matrice.
De fils en aiguille, je me suis apperçu que ce type de soucis étant - en général - présent sur des RAID 5 et RAID 6.

Je continue à chercher des infos.

Bonne soirée.

PS Les principales sources sont les suivantes :
THE FOSS NOMAD : « RAID6 Mismatch Count Issue »
Blog Summercat : « Mismatches reported by Linux Software RAID »
Wiki du site Thomas-krenn : « Mdadm checkarray function »
Forum mondedie : « MDADM : mismatch sector in range (mismatch counter) »
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Thomasb
yeomen
Messages : 275
Inscription : dim. 28 avr. 2019, 14:49

Re: [mdadm] mismatches found (EN COURS...)

Message par Thomasb »

Si tu es en RAID 1, ça vient de la swap. No souci (vérifie avec Benjarobin mais ça n'a pas l'air important)
Nophke
Daikyu
Messages : 82
Inscription : lun. 03 juin 2019, 01:14

Re: [mdadm] mismatches found (EN COURS...)

Message par Nophke »

Salut, juste quelques remarques en vrac, à prendre à la légère car ce n'est pas mon domaine de prédilection...
Thomasb a écrit : jeu. 04 mars 2021, 09:53 Si tu tapes :!: (ATTENTION, cette commande détruit un disque) dd if=/dev/urandom of=/dev/sda :!:, tu peux forcer une reconstruction. À vérifier avec quelqu'un du métier
Je crois que of=/dev/sdaX est plus adapté ( faudrait pas détruire des partitions qui n'ont rien demandé... ) et tant qu'à faire if=/dev/zero est probablement plus rapide....

Autre chose, pour fonctionner correctement il faut que la taille des disques soient exactement les mêmes!

Code : Tout sélectionner

df /dev/sd{a,c,d}1 --output=size |uniq
Enfin, (cf. page RAID du wiki anglophone):
Sachant que les écritures sur RAID1 et RAID10 ne sont pas temporisés, un disque peut avoir un nombre de mismatch différent de zéro, bien qu'il soit sain. Aussi, il n'est pas possible de savoir si ces mismatchs sont des symptômes d'un véritable problème, ou non, ce qui est une source de faux positifs.

Il est toujours possible de lancer une réparation et voir si le nombre se mismatch a changé en vérifiant

Code : Tout sélectionner

/sys/block/md0/md/mismatch_cnt
.

Enfin la plus perverse de toutes.... :twisted: Il est possible de lire une partition en RAID1 comme si c'était un disque "classique", (ce qui est utile notamment pour les bootloaders), cela signifie aussi que des outils de bas niveau peuvent n'écrire que sur un seul disque et foirer la parité...
$(X=$(cat /dev/random))
zsh: fatal error: out of heap memory
Thomasb
yeomen
Messages : 275
Inscription : dim. 28 avr. 2019, 14:49

Re: [mdadm] mismatches found (EN COURS...)

Message par Thomasb »

Nophke a écrit : mar. 09 mars 2021, 11:28
Thomasb a écrit : jeu. 04 mars 2021, 09:53 Si tu tapes :!: (ATTENTION, cette commande détruit un disque) dd if=/dev/urandom of=/dev/sda :!:, tu peux forcer une reconstruction. À vérifier avec quelqu'un du métier
Je crois que of=/dev/sdaX est plus adapté ( faudrait pas détruire des partitions qui n'ont rien demandé... ) et tant qu'à faire if=/dev/zero est probablement plus rapide....
Justement, quand un disque flambe, tout est détruit
Nophke a écrit : mar. 09 mars 2021, 11:28Autre chose, pour fonctionner correctement il faut que la taille des disques soient exactement les mêmes!
C'est peut-être bien le problème
Répondre