Files
serv_benchmark/SMART_GUIDE.md
2025-12-20 03:47:10 +01:00

248 lines
7.1 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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/)