This commit is contained in:
Gilles Soulier
2026-01-05 16:08:01 +01:00
parent dcba044cd6
commit c67befc549
2215 changed files with 26743 additions and 329 deletions

247
docs/SMART_GUIDE.md Executable file
View File

@@ -0,0 +1,247 @@
# Guide des Données SMART - Santé et Vieillissement des Disques
## Introduction
Le script [script_test.sh](script_test.sh) collecte automatiquement les données SMART (Self-Monitoring, Analysis and Reporting Technology) pour tous les disques physiques détectés. Ces données permettent de surveiller l'état de santé et le vieillissement des disques durs (HDD) et SSD.
## Données Collectées
### Indicateurs Communs (HDD et SSD)
#### 1. État de Santé Global
```json
"health_status": "PASSED" // ou "FAILED" ou null
```
- **PASSED** : Le disque passe tous les auto-tests SMART ✅
- **FAILED** : Le disque a échoué aux tests SMART 🔴 (remplacer immédiatement)
- **null** : SMART non supporté ou données non disponibles
#### 2. Heures de Fonctionnement
```json
"power_on_hours": 12543
```
- Nombre total d'heures pendant lesquelles le disque a été alimenté
- **Interprétation** :
- < 10,000h : Jeune
- 10,000-30,000h : Utilisé normalement
- \> 30,000h : Vieillissant (> 3.4 ans de fonctionnement continu)
- \> 50,000h : Très vieux (> 5.7 ans)
#### 3. Cycles d'Alimentation
```json
"power_cycle_count": 1876
```
- Nombre de fois où le disque a été allumé/éteint
- Les arrêts/démarrages fréquents peuvent réduire la durée de vie
#### 4. Température
```json
"temperature_celsius": 42
```
- Température actuelle du disque en degrés Celsius
- **Plages recommandées** :
- HDD : 25-45°C optimal, < 50°C acceptable
- SSD : 30-50°C optimal, < 70°C acceptable
- ⚠️ > 60°C (HDD) ou > 80°C (SSD) : Surchauffe dangereuse
### Indicateurs Critiques de Défaillance
#### 5. Secteurs Réalloués
```json
"reallocated_sectors": 0
```
- Nombre de secteurs défectueux qui ont été remplacés par des secteurs de réserve
- **CRITIQUE** : Ce compteur ne devrait JAMAIS augmenter sur un disque sain
- **Interprétation** :
- **0** : Disque sain ✅
- **1-10** : Début de défaillance ⚠️ (surveiller de près)
- **> 10** : Défaillance avancée 🔴 (planifier le remplacement)
- **> 100** : Défaillance critique 🔴 (remplacer immédiatement)
#### 6. Secteurs en Attente de Réallocation
```json
"pending_sectors": 0
```
- Secteurs instables en attente de réallocation
- **TRÈS CRITIQUE** : Indique une défaillance imminente
- **Interprétation** :
- **0** : Normal ✅
- **> 0** : Défaillance imminente 🔴 (sauvegarder et remplacer MAINTENANT)
#### 7. Erreurs CRC UDMA
```json
"udma_crc_errors": 0
```
- Erreurs de transmission de données (câble SATA/USB ou interface défectueux)
- **Interprétation** :
- **0** : Connexion saine ✅
- **1-5** : Problème de câble/connexion ⚠️ (vérifier le câble)
- **> 10** : Câble défectueux ou problème d'interface 🔴
### Indicateurs Spécifiques aux SSD
#### 8. Wear Leveling Count
```json
"wear_leveling_count": 97
```
- Représente le pourcentage de durée de vie restante des cellules NAND
- Généralement affiché comme une valeur de 0 à 100
- **Interprétation** :
- **100-80** : SSD neuf/très bon état ✅
- **79-50** : Usure normale ✅
- **49-20** : Usure avancée ⚠️
- **< 20** : Fin de vie proche 🔴 (planifier remplacement)
#### 9. Total LBAs Written
```json
"total_lbas_written": 45678901234
```
- Volume total de données écrites sur le SSD (en blocs logiques)
- Permet de calculer l'usure totale du SSD
- **Calcul approximatif de données écrites** :
- `Total_GB_Written = (total_lbas_written × 512) / 1,073,741,824`
- Exemple : 45,678,901,234 LBAs ≈ 21.8 TB écrits
## Exemple de Sortie Complète
### Disque SSD Sain
```json
{
"device": "nvme0n1",
"model": "Samsung SSD 970 EVO Plus 500GB",
"size_gb": "465.8",
"type": "ssd",
"interface": "nvme",
"serial": "S4EWNX0R123456",
"smart": {
"health_status": "PASSED",
"power_on_hours": 8543,
"power_cycle_count": 1234,
"temperature_celsius": 38,
"reallocated_sectors": 0,
"pending_sectors": 0,
"udma_crc_errors": 0,
"wear_leveling_count": 95,
"total_lbas_written": 12345678901
}
}
```
**Diagnostic** : Disque en excellent état ✅
### Disque HDD avec Début de Défaillance
```json
{
"device": "sda",
"model": "WD Blue 1TB",
"size_gb": "931.5",
"type": "hdd",
"interface": "sata",
"serial": "WD-WCC1234567890",
"smart": {
"health_status": "PASSED",
"power_on_hours": 42567,
"power_cycle_count": 3456,
"temperature_celsius": 41,
"reallocated_sectors": 8,
"pending_sectors": 0,
"udma_crc_errors": 1,
"wear_leveling_count": null,
"total_lbas_written": null
}
}
```
**Diagnostic** :
- ⚠️ 8 secteurs réalloués : Début de défaillance
- ⚠️ 42,567 heures (4.8 ans) : Disque vieillissant
- **Action** : Surveiller de près, planifier un remplacement préventif
### Disque Défaillant (À Remplacer)
```json
{
"device": "sdb",
"model": "Seagate Barracuda 2TB",
"size_gb": "1863.0",
"type": "hdd",
"interface": "sata",
"serial": "ST2000DM001-XXXXXXX",
"smart": {
"health_status": "FAILED",
"power_on_hours": 67890,
"power_cycle_count": 5678,
"temperature_celsius": 52,
"reallocated_sectors": 156,
"pending_sectors": 3,
"udma_crc_errors": 45,
"wear_leveling_count": null,
"total_lbas_written": null
}
}
```
**Diagnostic** :
- 🔴 `health_status: "FAILED"` : Test SMART échoué
- 🔴 156 secteurs réalloués : Défaillance massive
- 🔴 3 secteurs en attente : Défaillance active en cours
- 🔴 52°C : Surchauffe
- **Action** : SAUVEGARDER IMMÉDIATEMENT et remplacer le disque
## Commandes de Diagnostic Manuel
### Voir les données SMART brutes
```bash
sudo smartctl -A /dev/sda
```
### Tester la santé d'un disque
```bash
sudo smartctl -H /dev/sda
```
### Voir toutes les informations SMART
```bash
sudo smartctl -a /dev/sda
```
### Lancer un test court (5 minutes)
```bash
sudo smartctl -t short /dev/sda
# Attendre 5 minutes, puis vérifier les résultats
sudo smartctl -l selftest /dev/sda
```
### Lancer un test long (plusieurs heures)
```bash
sudo smartctl -t long /dev/sda
# Attendre la fin du test (peut prendre 2-12h selon le disque)
sudo smartctl -l selftest /dev/sda
```
## Recommandations
### Surveillance Régulière
- Exécuter le script de benchmark **mensuellement** pour suivre l'évolution
- Comparer les valeurs SMART d'un mois à l'autre
- Toute augmentation de `reallocated_sectors` ou `pending_sectors` est un signal d'alarme
### Planification de Remplacement
- **Remplacer immédiatement** si :
- `health_status: "FAILED"`
- `pending_sectors > 0`
- `reallocated_sectors > 100`
- **Planifier un remplacement** si :
- `reallocated_sectors` augmente régulièrement
- `power_on_hours > 50,000` sur un HDD
- `wear_leveling_count < 20` sur un SSD
- Température constamment > 55°C (HDD) ou > 75°C (SSD)
### Sauvegardes
- **Sauvegarde 3-2-1** :
- **3** copies de vos données
- **2** supports différents
- **1** copie hors site
## Références
- [Wikipedia SMART](https://en.wikipedia.org/wiki/S.M.A.R.T.)
- [Backblaze Hard Drive Stats](https://www.backblaze.com/blog/backblaze-drive-stats-for-2024/) - Statistiques de défaillance réelles
- [smartmontools Documentation](https://www.smartmontools.org/)