Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 1114 minIntermédiaire

Superviser et maintenir un NAS : scrub, SMART, alertes et Zabbix

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • distinguer scrub, resilver et test SMART ;
  • configurer les alertes de TrueNAS ;
  • remplacer un disque en panne sans perdre le pool ;
  • superviser TrueNAS en SNMPv3 depuis Zabbix ;
  • choisir les indicateurs et les seuils d'un NAS.

4 exercices corrigés

Superviser un NAS, c'est vérifier en permanence que ses disques sont sains, que ses pools sont redondants, qu'il reste de la place et que ses tâches de protection (snapshots, réplication, scrubs) réussissent, pour intervenir avant la perte de données. Ce chapitre explique les vérifications que fait ZFS lui-même, la surveillance SMART des disques, les alertes de TrueNAS, le remplacement d'un disque en panne, puis l'intégration de srv-nas à la supervision Zabbix de Sorbier et le choix des indicateurs. La supervision en général (SNMP, Zabbix, Grafana) est traitée dans le cours Supervision.

Scrub, resilver et test SMART

Trois opérations de maintenance se ressemblent et se confondent souvent.

OpérationCe qu'elle faitQui la lanceFréquence
ScrubLit tous les blocs occupés du pool, vérifie leurs sommes de contrôle et répare ceux qui sont corrompus grâce à la redondanceUne tâche planifiée de TrueNASTous les mois au moins ; par défaut, chaque dimanche avec un seuil de 35 jours
ResilverReconstruit le contenu d'un disque remplacé à partir des autres disques du vdevZFS, automatiquement, quand un disque est remplacé ou revientÀ chaque remplacement
Test SMARTLe disque se teste lui-même : test court (quelques minutes), test long (lecture de toute la surface, plusieurs heures)Le disque, à la demande du systèmeTest long tous les mois, décalé du scrub

Le scrub est la seule façon de découvrir la corruption silencieuse des données qu'on ne lit jamais : une archive de 2019 abîmée par un secteur défaillant ne serait détectée qu'au jour où quelqu'un l'ouvre, peut-être après la mort d'un second disque. Le scrub la trouve et la répare tant que la redondance existe. Data Protection > Scrub Tasks liste les tâches : pour chaque pool, le seuil en jours (Threshold Days) empêche un nouveau scrub tant que le précédent date de moins de ce nombre de jours, et la planification dit quand vérifier. Un multiple de sept garde le scrub sur le même jour de la semaine.

La surveillance SMART des disques

SMART (Self-Monitoring, Analysis and Reporting Technology) est le système d'autodiagnostic des disques : chaque disque tient des compteurs sur sa santé. TrueNAS surveille SMART sur tous les disques et lève une alerte quand un disque échoue à un test ou franchit un seuil. Pour lire les compteurs d'un disque (System > Shell) :

bash
smartctl -A /dev/sda
text
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       21874
194 Temperature_Celsius     0x0002   185   185   000    Old_age   Always       -       35 (Min/Max 22/41)
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0

Lis surtout la dernière colonne, la valeur brute (RAW_VALUE) :

AttributCe qu'il compteQue faire si la valeur monte
5 Reallocated_Sector_CtSecteurs défaillants remplacés par des secteurs de réserveQuelques-uns stables : surveiller. Une hausse continue : commander le remplacement
197 Current_Pending_SectorSecteurs illisibles en attente de réallocationToute valeur non nulle mérite un test long et une surveillance rapprochée
198 Offline_UncorrectableSecteurs illisibles découverts pendant un testIdem : signe d'usure de la surface
199 UDMA_CRC_Error_CountErreurs de transmission entre le disque et le contrôleurEn général un câble ou un fond de panier, pas le disque : vérifier la connexion
194 Temperature_CelsiusTempérature du disqueAu-delà de 45 à 50 °C en permanence, vérifier la ventilation de la baie
9 Power_On_HoursHeures de fonctionnement21 874 h, c'est 2 ans et demi de fonctionnement continu : utile pour planifier le renouvellement

Les noms et le sens exact des attributs varient un peu d'un fabricant à l'autre, et les SSD ont leurs propres indicateurs d'usure (pourcentage d'endurance consommée). La version 25.10 de TrueNAS a retiré de l'interface la planification des tests SMART : les tests programmés avant la mise à jour continuent de s'exécuter, et sur une nouvelle installation on programme un test long mensuel par une tâche Cron Job (System > Advanced Settings), qui lance par exemple smartctl -t long /dev/sda pour chaque disque de données.

Les alertes de TrueNAS

La cloche en haut à droite de l'interface affiche les alertes en cours : pool dégradé, disque en échec, espace presque plein, tâche de réplication ou de snapshots en échec, certificat qui expire, mise à jour disponible. Une alerte que personne ne lit ne sert à rien : il faut la faire sortir du NAS.

  1. System > General Settings, widget Email : le serveur SMTP de Sorbier, l'adresse d'expédition, puis l'adresse de destination du compte d'administration.
  2. System > Alert Settings : les Alert Services (courriel, interruption SNMP, messageries d'équipe, outils d'astreinte) et, pour chaque catégorie d'alerte, le niveau de gravité qui déclenche l'envoi.
  3. Envoie une alerte de test pour vérifier que le courriel arrive, puis documente qui la reçoit et sous quel délai il doit réagir.

Remplacer un disque en panne

Mercredi, l'alerte tombe : le disque n° 3 de tank est en panne. Le pool continue de fonctionner, mais sans plus qu'une parité de marge.

text
  pool: tank
 state: DEGRADED
status: One or more devices are faulted in response to persistent errors.
	Sufficient replicas exist for the pool to continue functioning in a
	degraded state.
action: Replace the faulted device, or use 'zpool clear' to mark the device
	repaired.
config:

	NAME                                      STATE     READ WRITE CKSUM
	tank                                      DEGRADED     0     0     0
	  raidz2-0                                DEGRADED     0     0     0
	    6f1c2a7e-3b4d-4e8f-9a0b-1c2d3e4f5a61  ONLINE       0     0     0
	    0b9e4d21-77c3-4a5e-8f10-2e3d4c5b6a72  ONLINE       0     0     0
	    c4d5e6f7-1a2b-4c3d-9e8f-3a4b5c6d7e83  FAULTED     38     0     0  too many errors
	    5e6f7a8b-2c3d-4e5f-8a9b-4c5d6e7f8a94  ONLINE       0     0     0
	    a1b2c3d4-3e4f-4a5b-9c8d-5e6f7a8b9ca5  ONLINE       0     0     0
	    d7e8f9a0-4f5a-4b6c-8d9e-6f7a8b9cadb6  ONLINE       0     0     0

errors: No known data errors
  1. Identifier le disque. Storage, widget du pool, Manage Devices : déplier le vdev, sélectionner le disque en échec et relever son numéro de série. Compare-le avec l'étiquette du tiroir avant d'en retirer un : retirer le mauvais disque d'un RAIDZ2 déjà dégradé laisse le pool sans aucune redondance.
  2. Mettre le disque hors ligne : bouton Offline dans le détail du disque (s'il n'est pas déjà retiré par ZFS).
  3. Échanger physiquement le disque. Les baies du serveur sont échangeables à chaud : on retire le tiroir, on visse le disque de rechange, on le remet.
  4. Remplacer : dans le détail de l'ancien disque, bouton Replace, choisir le nouveau disque dans la liste, valider. ZFS lance le resilver.
  5. Suivre la reconstruction dans le widget du pool ou par zpool status tank (pourcentage effectué, temps restant estimé). Le pool redevient ONLINE à la fin.
  6. Renvoyer l'ancien disque sous garantie, après effacement si possible, et racheter un disque de rechange.

Superviser srv-nas depuis Zabbix

TrueNAS est un système fermé : on n'y installe pas l'agent Zabbix. On l'interroge en SNMP, dans sa version 3 qui authentifie et chiffre les échanges.

Sur TrueNAS : System > Services, ligne SNMP, bouton de modification.

ChampValeur
Location, ContactLyon, baie serveurs, informatique@sorbier.example
SNMP v3 SupportCoché
Usernamezabbix
Authentication TypeSHA
PasswordUne phrase de passe longue
Privacy ProtocolAES
Privacy PassphraseUne autre phrase de passe longue
CommunityLaisser vide : pas de SNMP v1 ou v2c, dont la communauté circule en clair

Coche Start Automatically et démarre le service. srv-journaux (192.168.10.180), qui porte Zabbix, est dans le même VLAN 20 que srv-nas : la requête ne traverse pas pfSense, et aucune règle de pare-feu ne la filtre. C'est SNMPv3 en authPriv (compte, authentification SHA, chiffrement AES) qui protège l'accès. Si le serveur Zabbix était dans un autre VLAN, il faudrait en plus une règle pfSense UDP 161 de ce serveur vers 192.168.10.183. Teste depuis srv-journaux :

bash
snmpget -v3 -l authPriv -u zabbix -a SHA -A 'phrase-auth' -x AES -X 'phrase-priv' \
  192.168.10.183 SNMPv2-MIB::sysName.0
text
SNMPv2-MIB::sysName.0 = STRING: srv-nas

Dans Zabbix 7.0 LTS : Data collection > Hosts > Create host, nom srv-nas, groupe Stockage, une interface SNMP sur 192.168.10.183, port 161, version SNMPv3, niveau authPriv, avec les mêmes identifiants. Comme modèles :

  • Linux by SNMP, livré avec Zabbix : processeur, mémoire, interfaces réseau, systèmes de fichiers ;
  • pour l'état des pools et des disques, pas de modèle officiel : le modèle TrueNAS CORE by SNMP de Zabbix vise l'ancienne édition CORE et ne s'applique pas à la Community Edition. On s'appuie sur les alertes de TrueNAS (courriel, interruptions SNMP), ou on construit et teste ses propres éléments sur la maquette. Le cours Supervision détaille la méthode.

Grafana, branché sur Zabbix par son greffon, affiche ensuite un tableau de bord du stockage : occupation des pools dans le temps, débit, ARC, températures. TrueNAS peut aussi exporter lui-même ses métriques vers un serveur Graphite (écran Reporting, bouton Exporters).

Les indicateurs et leurs seuils

IndicateurSeuil d'avertissementSeuil critiquePourquoi
État du pool—DEGRADED, FAULTED ou UNAVAILPlus de redondance, ou pool perdu
Occupation d'un pool de fichiers80 %90 %Au-delà, le copy-on-write fragmente et ralentit ; à 100 %, plus rien ne s'écrit
Occupation d'un pool en bloc (iSCSI)50 %80 %Le stockage en bloc souffre plus tôt du remplissage
Secteurs réalloués ou en attenteToute hausseHausse rapide, test SMART en échecDisque qui s'use
Température des disques45 °C50 °CDurée de vie et risque de panne
Âge du dernier scrub35 jours60 joursCorruption silencieuse non détectée
Dernière réplication réussie26 heures48 heuresLa copie de Marseille vieillit : le RPO réel dérive
Dernière tâche de snapshotsÉchecDeux échecs consécutifsPlus de versions récentes
Taux de succès de l'ARCSous 80 % durablement—Manque de RAM pour la charge
Espace écrit par heureLe double de l'habitude, la nuitLe décuplePossible chiffrement en cours (chapitre 10)

Exercices

Exercice 1 sur 4 Scrub, resilver ou SMART ? Réussi À revoir

Pour chaque phrase, nomme l'opération.

  1. « Le disque lit toute sa surface et note les secteurs qu'il n'arrive pas à lire. »
  2. « ZFS relit les 9 TiB du pool et répare trois blocs dont la somme de contrôle était fausse. »
  3. « Après l'échange du disque n° 3, ZFS reconstruit son contenu à partir des cinq autres. »
Voir la réponseMasquer la réponse de l'exercice 1
  1. Test SMART long : c'est le disque qui se teste lui-même.
  2. Scrub : vérification complète des sommes de contrôle, avec réparation par la redondance.
  3. Resilver : reconstruction du disque remplacé.

Tu avais trouvé ?

Exercice 2 sur 4 Lire les compteurs SMART Réussi À revoir

Voici les valeurs brutes de deux disques de tank, relevées à un mois d'intervalle. Que conclus-tu pour chacun, et que fais-tu ?

DisqueAttribut1er octobre1er novembre
AReallocated_Sector_Ct88
AUDMA_CRC_Error_Count0412
BReallocated_Sector_Ct096
BCurrent_Pending_Sector024
Voir la réponseMasquer la réponse de l'exercice 2

Disque A : ses 8 secteurs réalloués sont stables depuis un mois, ce qui n'est pas inquiétant. En revanche, 412 erreurs CRC sont apparues : ce sont des erreurs de transmission, presque toujours dues au câble, au connecteur ou au fond de panier, pas à la surface du disque. Vérifier ou changer le câble (ou le tiroir), puis surveiller que le compteur cesse d'augmenter.

Disque B : 96 secteurs réalloués et 24 en attente en un mois, partant de zéro : la surface se dégrade rapidement. Lancer un test SMART long, préparer le disque de rechange et remplacer le disque B sans attendre sa panne complète, de préférence pendant que le pool est encore entièrement redondant.

Tu avais trouvé ?

Exercice 3 sur 4 Remplacer le bon disque Réussi À revoir

Le pool tank est DEGRADED, disque c4d5e6f7-… en FAULTED. Un technicien propose de retirer « le troisième tiroir en partant de la gauche », puisque c'est le troisième disque de la liste. Qu'en penses-tu ? Décris la bonne méthode.

Voir la réponseMasquer la réponse de l'exercice 3

L'ordre de la liste de zpool status ne correspond pas forcément à l'ordre physique des tiroirs. Retirer un disque sain d'un RAIDZ2 déjà dégradé laisserait le pool sans aucune redondance, et une erreur de lecture pendant la reconstruction ferait perdre des données.

La bonne méthode : relever le numéro de série du disque en échec dans Storage > Manage Devices, le comparer à l'étiquette du tiroir (ou allumer le voyant de l'emplacement si le serveur le permet), mettre le disque Offline, l'échanger, puis Replace avec le nouveau disque et suivre le resilver jusqu'au retour à ONLINE.

Tu avais trouvé ?

Exercice 4 sur 4 Superviser en SNMPv3 Réussi À revoir

  1. Pourquoi laisser le champ Community vide sur TrueNAS ?
  2. Faut-il une règle de pare-feu pour que Zabbix interroge srv-nas ? Pourquoi ?
  3. Quelle commande lancer depuis le serveur Zabbix pour vérifier la configuration avant de créer l'hôte ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. La communauté sert à SNMP v1 et v2c, qui la transmettent en clair et ne chiffrent rien : n'importe qui sur le chemin peut la lire et interroger le NAS. SNMPv3 en authPriv authentifie par un compte et chiffre les échanges (SHA et AES).
  2. Aucune : 192.168.10.180 et 192.168.10.183 sont dans le même réseau 192.168.10.176/28, le flux ne passe pas par pfSense. La protection vient de SNMPv3 authPriv. Si Zabbix était dans un autre VLAN : règle sur l'interface de ce VLAN, source le serveur Zabbix, destination 192.168.10.183, UDP 161, autoriser (et UDP 162 vers Zabbix pour les interruptions SNMP).
  3. Un snmpget (ou snmpwalk) en v3 avec les mêmes identifiants, par exemple snmpget -v3 -l authPriv -u zabbix -a SHA -A '…' -x AES -X '…' 192.168.10.183 SNMPv2-MIB::sysName.0, qui doit renvoyer srv-nas.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Dimensionner un stockage : calculs de capacité et cas type E6Revoir le sommaire du cours