Je commence à avoir une collection d’ordinateurs à la maison et à les prendre en charge, j’ai ma boîte Linux «serveur» exécutant une matrice RAID.
Son actuellement mdadm
RAID-1
, aller à RAID-5
une fois que j'ai plus de disques (et puis RAID-6
j'espère). Cependant, j'ai entendu diverses histoires sur des données corrompues sur un disque et vous ne le remarquerez jamais car l'autre disque est utilisé, jusqu'à ce que le premier disque tombe en panne, et vous trouvez que votre deuxième disque est également vissé (et les troisième et quatrième , 5ème lecteur).
De toute évidence, les sauvegardes sont importantes et je m'occupe de cela aussi, cependant, je sais que j'ai déjà vu des scripts qui prétendent aider à résoudre ce problème et vous permettent de vérifier votre RAID pendant son exécution. Cependant, à la recherche de ces scripts maintenant, j'ai du mal à trouver quelque chose qui semble similaire à ce que j'avais auparavant et je me sens démodé et je ne comprends pas ce qui a changé.
Comment vérifier un RAID en cours d’exécution pour s’assurer que tous les disques continuent à se préparer normalement?
Je surveille SMART sur tous les lecteurs et je suis également mdadm
configuré pour m'envoyer un e-mail en cas de panne, mais j'aimerais connaître mes lecteurs de temps en temps.
Réponses:
L’intérêt du RAID avec la redondance est qu’il va continuer aussi longtemps que possible, mais il détectera évidemment les erreurs qui le placeraient en mode dégradé, tel qu’un disque défaillant. Vous pouvez afficher le statut actuel d'un tableau avec
mdadm -D
:De plus, l'état de retour
mdadm -D
est différent de zéro en cas de problème, tel qu'un composant défaillant (1 indique une erreur que le mode RAID compense et 2 indique un échec complet).Vous pouvez également obtenir un résumé rapide de l'état de tous les périphériques RAID en consultant
/proc/mdstat
. Vous pouvez également obtenir des informations sur un périphérique RAID/sys/class/block/md*/md/*
; voirDocumentation/md.txt
dans la documentation du noyau. Certaines/sys
entrées sont également inscriptibles; par exemple, vous pouvez déclencher une vérification complète demd0
avececho check >/sys/class/block/md0/md/sync_action
.En plus de ces vérifications ponctuelles, mdadm peut vous avertir dès que quelque chose de grave se produit. Assurez-vous que vous avez
MAILADDR root
dans/etc/mdadm.conf
(certaines distributions (Debian par exemple) à passer automatiquement). Ensuite, vous recevrez une notification par e-mail dès qu'une erreur (un tableau dégradé) se produira .Assurez-vous de recevoir le courrier envoyé à root sur la machine locale. (certaines distributions modernes l'omettent, car elles considèrent que tous les courriels passent par des fournisseurs externes - mais la réception d'un courrier local est nécessaire pour tout administrateur système sérieux). Testez en envoyant un courrier racine:
echo hello | mail -s test root@localhost
. Habituellement, une configuration correcte de la messagerie nécessite deux choses:Redirige le courrier destiné aux comptes système (au moins
root
) vers une adresse que vous lisez régulièrement. Cela peut être votre compte sur la machine locale ou une adresse électronique externe. Avec la plupart des MTA, l'adresse peut être configurée dans/etc/aliases
; vous devriez avoir une ligne commepour livraison locale, ou
pour la livraison à distance. Si vous choisissez la remise à distance, assurez-vous que votre MTA est configuré pour cela. Selon votre MTA, vous devrez peut-être exécuter la
newaliases
commande après l’édition/etc/aliases
.la source
Vous pouvez forcer une vérification de l'ensemble du tableau lorsqu'il est en ligne. Par exemple, pour vérifier le tableau
/dev/md0
, exécutez en tant que root:J'ai également un travail cron qui exécute la commande suivante une fois par mois:
Ce n'est pas une vérification approfondie du lecteur lui-même, mais cela oblige le système à vérifier périodiquement que (presque) tous les fichiers peuvent être lus avec succès sur le disque. Oui, certains fichiers vont être lus dans la mémoire cache à la place du disque. Mais je suppose que si le fichier est dans la mémoire cache, alors il a été lu avec succès sur le disque récemment ou est sur le point de l’être sur le disque, et l’une de ces opérations va également révéler des erreurs de lecteur. Quoi qu’il en soit, l’exécution de cette tâche teste le critère le plus important d’une matrice RAID («Puis-je lire mes données avec succès?») Et au cours des trois années d’exploitation de ma matrice, la cette commande qui l'a découvert.
Un petit avertissement est que si votre système de fichiers est gros, cette commande prendra beaucoup de temps; mon système prend environ 6 heures / TiB. Je l'exécute en utilisant
ionice
pour que le reste du système ne reste pas immobile pendant la vérification du lecteur:la source
ionice
cela ne fonctionnera que si vous utilisez le planificateur d'E / S CFQ (par défaut).le paquet 'mdadm' de Debian et Ubuntu contient le fichier
qui à son tour le premier dimanche de chaque mois exécutera la commande
cela vérifiera la cohérence de tous vos tableaux (sauf si vous définissez AUTOCHECK sur false dans / etc / default / mdadm ). Un rapport sera envoyé à l'utilisateur 'root' (assurez-vous de recevoir de tels emails).
la source
J'utilise cette fonction simple pour vérifier
/proc/mdstat
:la source