Interface d’extension : blkid, blockdev, smartctl, etc.
Côté matériel, il est impératif de tenir compte également des contrôleurs d’entrées/sorties, des disques et autres équipements de stockage.
A cet égard, on peut utiliser le résultat des commandes suivantes :
- megacli
- storcli
Cette dernière commande est en fait le successeur de megacli. Il n’est pas nécessaire de l’exécuter en tant que root et on peut en outre récupérer une quantité importante d’informations.
Pour lister les données du contrôleur et sa configuration, on devra exécuter :
$ sudo storcli /cx show all
Si l’on souhaite plutôt disposer des informations concernant les périphériques et les unités de stockage on exécutera alors :
$ sudo storcli /cx /eall /sall show
A ce niveau, on peut aussi utiliser les commandes classiques, permettant respectivement de fournir les indications de performance des périphériques, l’équivalent de la commande top dédiée aux disques ainsi que les traces du trafic d’entrées/sorties des différentes unités de type bloc, à savoir les commandes :
- iostat (issu du package sysstat)
- iotop
- blktrace
Exemple : indications des performances des différents périphériques d’une machine avec iostat :
REMARQUE : ces commandes permettent aussi bien de fournir des indications au niveau du contrôleur qu’au niveau des disques et/ou des périphériques eux-mêmes.
Afin d’afficher les informations concernant le contrôleur SCSI, il est également possible d’utiliser la commande lsscsi dont le résultat est de la forme suivante :
En ce qui concerne les disques, on peut bien évidemment utiliser la commande lsblk permettant de visualiser sous forme d’arbre les différents niveaux d’attachement des périphériques physiques au volumes logiques (dans le cas de l’utilisation du LVM). En fait, cette commande permet d’afficher les périphériques de type bloc, en les liant les uns aux autres :
# lsblk
On peut compléter le résultat de cette première commande avec sa petite sœur blkid permettant d’obtenir les indications d’entrées/sorties d’un périphérique physique :
# blkid -i /dev/sda1
REMARQUE : sans option, en ne mentionnant que le nom du périphérique, on peut aussi récupérer le n°UUID (identifiant unique) de ce dernier :
# blkid /dev/sda1 /dev/sda1 : UUID ="2760a9e-fbe4-4592-90d0-68a98b2cb25b" TYPE="ext4"
Par ailleurs, il est également possible d’exécuter la commande blockdev, issu du package util-linux, permettant d’appeler les ioctls des différents périphériques de type bloc, depuis la ligne de commande.
Exemple : récupérer la capacité d’un périphérique de type bloc :
# blockdev --getbss /dev/sda
RAPPEL : les ioctls ne sont rien d’autre que des appels système propres aux opérations d’entrées/sorties spécifiques à un périphérique de type bloc.
Il existe une catégorie de disque appelée SMART, pilotée par la commande smartctl et permettant le contrôle et le monitoring de ce genre de périphérique. En premier lieu, il faut toujours vérifier que le composant interrogé bénéficie de ce protocole SMART :
# smartctl -i /dev/sda
Lorsque c’est le cas, on devrait alors voir s’afficher le résultat suivant :
ATTENTION : pour pouvoir afficher les différentes métriques concernant les périphériques, il faut au préalable activer la fonction via la commande suivante :
# smartctl --smart=on --offlibne=auto --saveauto=on /dev/sda
Il est également possible d’avoir recours à la commande traditionnelle fdisk, en exécutant l’instruction ci-dessous permettant de récupérer la liste des différents périphériques utilisés sur les partitions du système :
# fdisk -l
Pour clore cette section concernant le stockage, il ne faut pas négliger l’espace d’échange (aussi appelé swap). Pour pouvoir récupérer les informations le concernant, on put regarder le contenu du fichier /proc/swaps ou utiliser la commande swapon permettant d’obtenir la taille de cet espace et le nombre d’octets alloués :
# swapon -s