logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 15-08-2023 14:27:59

mazkagaz
Membre
Distrib. : Debian stable
Inscription : 13-05-2018

avis commande smartcltl et question sur mise à jour données smart

Bonjour,

J'effectue mes mise à jour de façon semi-automatique (c'est moi qui lance le script) via un script qui :
étape 1 - réveille tous les PC/serveurs s'ils dormaient,
étape 2 - dès que tout le monde est débout, lance une mise à jour collective via ansible
étape 3 - éteint les dormeurs

Je me suis dis que je pourrais ajouter une étape entre 2 et 3 pour lancer via ssh des commandes smartctl/mdadm/zpool sur tout ce petit monde pour vérifier où en sont les disques.

Je cherche les killing commands qui me disent de façon TRÈS syntétique : le disque est OK, ou il est KO. Pour l'instant j'en suis par exemple à des commandes du type :

smartctl -q errorsonly -H /dev/nvme0


mdadm -D /dev/md1 |grep "State :"|grep -v clean


zpool status |grep state|grep -v ONLINE


qui ne renvoient rien si tout si va bien, ce qui a l'avantage de ne pas remplir ma console de message inutiles si tout va bien.

Mais :
1/ j'aimerais être certain que cette commande smartctl (la première des trois) ne manquera pas les erreurs : à votre avis ?
2/ j'aimerais être certain que les données smart des disques sont à jour : je me perds un peu dans la doc de smartctl, certain disent qu'il faut faire des tests offline réguliers, mais le man dit que c'est obsolète, et moi il me semble comprendre que les données smarts sont automatiquement mises à jour pendant l'utilisation des disques, rendant donc ces tests de facto inutiles, sauf si on vient tout juste d'activer smart sur le disque. J'ai bien compris ? En plus je n'ai pas envie de flinguer les E/S via des tests inutiles qui de plus useraient plus rapidement les disques.

Merci beaucoup ! smile

P.S. : Pour celles et ceux qui me parleraient d'envoies de mails automatiques, je réponds a priori "non" car : il y a quelques années, j'avais mis en place des alertes automatiques par mail, mais c'était l'époque ou j'autohébergeais mon serveur mail. Depuis quelque temps, par soucis d'économie de temps, je suis passé chez protonmail (et hop, un serveur de moins, et pas des moindres, à gérer). Mais du coup c'est le bordel pour les envoies de mails (il faut installer un protonbridge qu'il faut lancer en console sur ses serveurs et sur lequel il faut s'interfacer pour envoyer ses mails, c'est faisable mais c'est chiant, surtout multiplié par le nombres de PC/serveurs... flemme...). Alors à moins que vous ayez une solution qui prenne moins de 5 minutes (grand max, car multiplié par le nombre de PC/serveur, plus la maintenance, plus de 5, ça le fera pas... flemme...) à mettre en place via des mails, je ne suis pas intéressé par cette solution. En plus j'ai déjà tellement trop de mails à lire...

Hors ligne

#2 15-08-2023 14:48:13

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : avis commande smartcltl et question sur mise à jour données smart

Même si tu ne souhaites pas utiliser son système d’envoi d’alertes par e-mail, je pense que smartd pourrait te simplifier la vie.

Je vois en particulier cet exemple d’utilisation dans son manuel :

smartd -q onecheck


Registers devices, and checks the status of the devices exactly once. The exit status (the shell $? variable) will be zero if all went well, and nonzero if no devices were detected or some other problem was encountered.



---

mazkagaz a écrit :

Alors à moins que vous ayez une solution qui prenne moins de 5 minutes (grand max, car multiplié par le nombre de PC/serveur, plus la maintenance, plus de 5, ça le fera pas... flemme...) à mettre en place via des mails, je ne suis pas intéressé par cette solution.



J’ai, ça s’appelle nullmailer. Je l’utilise dans mes conteneurs pour lesquels je ne souhaite pas m’embêter avec la mise en place d’un véritable serveur mail.

Sa configuration est aussi simple que ça :

/etc/nullmailer/remotes a écrit :

smtp.example.com smtp --starttls --user=utilisateur --pass=mot-de-passe


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#3 15-08-2023 16:37:22

mazkagaz
Membre
Distrib. : Debian stable
Inscription : 13-05-2018

Re : avis commande smartcltl et question sur mise à jour données smart

Merci.

En fait il me semble que le "exit status" de la commande "smartd -q onecheck" signifie que la commande s'est bien déroulée, qu'il y avait des disques et qu'elle les a bien analysés. Mais pas forcément qu'il n'y avait pas d'erreurs sur les disques.

C'est ça qui est un peu déroutant avec smartctl aussi. Quand on a "SMART overall-health self-assessment test result: PASSED", je ne suis pas certain que cela signifie que le disque est sain. J'ai l'impression que ça signifie que le test s'est déroulé jusqu'au bout.

C'est pas facile d'avoir un indicateur clair et fiable avec ces données SMART.

Hors ligne

#4 15-08-2023 18:01:26

mazkagaz
Membre
Distrib. : Debian stable
Inscription : 13-05-2018

Re : avis commande smartcltl et question sur mise à jour données smart

Bon, j'ai fait un truc en présument que "SMART overall-health self-assessment test result: PASSED" signifie que le disque va bien...

#!/bin/bash

# nom d'hôte du server/PC
myhost=lutin
# liste des disques durs
disks="sda sdb sdc sdd sde sdf sdg"
# liste des pools zfs
pools="tank"
# liste des "raids"
raids="md1"

echo -e  "\e[1;34m$myhost DISK STATUS \e[0m"

for dev in $disks
do
  nb_l=`ssh $myhost smartctl -a /dev/$dev |grep "SMART overall-health self-assessment test result:" |grep PASSED | wc -l`
  if [ $nb_l -eq '1' ]; then
    echo -e "/dev/$dev --> \e[1;32mOK \e[0m"
  else
    echo -e "/dev/$dev --> \e[1;31mKO \e[0m"
  fi
done

for dev in $pools
do
  nb_l=`ssh $myhost zpool status $dev |grep state|grep ONLINE|wc -l`
  if [ $nb_l -eq '1' ]; then
    echo -e "zpool $dev --> \e[1;32mOK \e[0m"
  else
    echo -e "zpool $dev --> \e[1;31mKO \e[0m"
  fi
done

for dev in $raids
do
  nb_l=`ssh $myhost mdadm -D /dev/$dev |grep "State :"|grep clean|wc -l`
  if [ $nb_l -eq '1' ]; then
    echo -e "/dev/$dev --> \e[1;32mOK \e[0m"
  else
    echo -e "/dev/$dev --> \e[1;31mKO \e[0m"
  fi
done
 



En adaptant ce script pour chaque host et en les lançant juste après les mises à jour ansible, j'ai un indicateur de la santé de mes disques.

Maintenant, il faut que je m'assure que la commande smartctl telle que je l'utilise a du sens, et que les données smart sont à jour (i.e. dois-je lancer des tests régulièrement sur les disques ?).

Hors ligne

Pied de page des forums