mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 19:34:42 +02:00
docs(incidents): 2026-05-29 — migration /srv/data RAID5 → NVMe (sdb ATA bus errors)
- Incident : sdb ATA bus errors sous charge I/O bloquaient le rsync en état D - Résolution : sdb marqué (F) dans mdadm, rsync relancé (205 MB/s, 35s) - Fix : version.info corrompu dans segment Qdrant RocksDB (0.D\0 → 0.6.0) - Architecture : /srv/data bind-monté depuis /home/data (NVMe XFS, 801 GB libres) - fstab mis à jour, tous les services opérationnels - CLAUDE.md : venv bootstrap, make --tags invalide, incidents.md dans admin/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
940234806d
commit
3cd374630d
3 changed files with 207 additions and 3 deletions
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
| Date | Composant | Résumé | Sévérité |
|
||||
|---|---|---|---|
|
||||
| 2026-05-29 | RAID5 / sdb + storage-01 | sdb ATA bus errors sous I/O — migration /srv/data du RAID vers NVMe | Important |
|
||||
| 2026-05-27 | RAID5 / sdd | Disque sdd défaillant (44 secteurs morts) — corruptions multiples en cascade | Critique |
|
||||
| 2026-05-14 | Grafana | OOMKilled — limite 256Mi trop serrée pour Grafana 13 | Warning |
|
||||
| 2026-05-13 | AlertManager | Receiver "null" non défini — ReconciliationFailed | Warning |
|
||||
|
|
@ -14,6 +15,105 @@
|
|||
|
||||
---
|
||||
|
||||
## 2026-05-29 — Migration /srv/data : RAID5 → NVMe (sdb ATA bus errors)
|
||||
|
||||
### Contexte
|
||||
|
||||
Suite à l'incident du 2026-05-27 (sdd retiré), le RAID5 tournait déjà en dégradé `[4/3] [UUU_]`. Décision prise de migrer `/srv/data` du RAID vers le LV NVMe (`almalinux-home`, 845 GB XFS) pour sortir les données d'un RAID en mauvais état.
|
||||
|
||||
### Symptômes déclencheurs
|
||||
|
||||
Lors du lancement du rsync de migration, le processus se bloque en état `D` (uninterruptible sleep) :
|
||||
|
||||
```
|
||||
dmesg:
|
||||
[ 1341.231068] sd 1:0:0:0: [sdb] FAILED Result: hostbyte=DID_OK
|
||||
[ 1341.231082] I/O error, dev sdb, sector 582656 op 0x0:(READ)
|
||||
[ 1358.639065] ata2.00: res 40/00:ff:ff:00:00/... Emask 0x50 (ATA bus error)
|
||||
[ 1451.541751] md/raid:md0: Disk failure on sdb2, disabling device.
|
||||
```
|
||||
|
||||
`sdb` génère des ATA bus errors sous charge I/O soutenue (câble SATA ou port instable). SMART passe (`PASSED`, aucun secteur défaillant) mais `Raw_Read_Error_Rate = 124014439` — problème d'interface, pas de plateau.
|
||||
|
||||
### Résolution — migration complète
|
||||
|
||||
**Étape 1 — Stopper les services**
|
||||
```bash
|
||||
sudo systemctl stop hermes-agent hermes-dashboard litellm qdrant postgresql-16 alertmanager-webhook
|
||||
```
|
||||
|
||||
**Étape 2 — Préparer la destination NVMe**
|
||||
```bash
|
||||
sudo mkdir -p /home/data
|
||||
sudo mount --bind /home/data /srv/data-new # vérification préalable
|
||||
```
|
||||
|
||||
**Étape 3 — Gérer sdb (blocage rsync)**
|
||||
|
||||
Le premier rsync (avec sdb actif) se bloque en état `D`. Solution : marquer sdb comme défaillant pour que le RAID lise depuis sda/sdc/sdd uniquement.
|
||||
|
||||
```bash
|
||||
sudo kill <pid_rsync_bloqué>
|
||||
sudo mdadm --manage /dev/md0 --fail /dev/sdb2
|
||||
# → [4/3] [U_UU] — sdb hors circuit
|
||||
```
|
||||
|
||||
**Étape 4 — Rsync (RAID → NVMe)**
|
||||
```bash
|
||||
sudo nohup rsync -aHX --info=progress2 /srv/data/ /home/data/ > /tmp/rsync-migration.log 2>&1 &
|
||||
# Durée : ~35s — 205 MB/s — 5106 fichiers — exit code 23 (xattr SELinux non critiques)
|
||||
```
|
||||
|
||||
**Étape 5 — Corriger la corruption Qdrant**
|
||||
|
||||
Un `version.info` de segment RocksDB copié depuis le RAID avec sdb défaillant était corrompu :
|
||||
```bash
|
||||
sudo cat /srv/data/qdrant/storage/collections/funk-docs/0/segments/784eab54-.../version.info
|
||||
# → 0.D\0 (corrompu — devrait être 0.6.0)
|
||||
printf '0.6.0' | sudo tee /srv/data/qdrant/storage/collections/funk-docs/0/segments/784eab54-.../version.info
|
||||
```
|
||||
|
||||
**Étape 6 — Basculer /srv/data vers NVMe**
|
||||
```bash
|
||||
sudo umount /srv/data # démonte le RAID
|
||||
sudo umount /srv/data-new # démonte le mount intermédiaire
|
||||
sudo mount --bind /home/data /srv/data
|
||||
```
|
||||
|
||||
**Étape 7 — Mettre à jour fstab**
|
||||
```bash
|
||||
# Remplacer l'entrée RAID par le bind mount
|
||||
# Avant : UUID=3add8360-... /srv/data ext4 defaults,noatime,nodiratime 0 0
|
||||
# Après :
|
||||
echo '/home/data /srv/data none bind 0 0' | sudo tee -a /etc/fstab
|
||||
# (commenter l'ancienne ligne UUID=3add8360)
|
||||
```
|
||||
|
||||
**Étape 8 — Redémarrer les services**
|
||||
```bash
|
||||
sudo systemctl start postgresql-16 qdrant litellm hermes-agent hermes-dashboard alertmanager-webhook
|
||||
```
|
||||
|
||||
### État post-migration
|
||||
|
||||
| Composant | Avant | Après |
|
||||
|---|---|---|
|
||||
| `/srv/data` | RAID5 ext4 `/dev/md0` (dégradé) | NVMe XFS bind-mount `/home/data` |
|
||||
| Espace disponible | 2.6 TB RAID (dégradé, risqué) | 801 GB NVMe (sûr) |
|
||||
| RAID5 md0 | `[4/3] [UUU_]` actif | `[4/3] [U_UU]` — sdb `(F)`, **plus monté** |
|
||||
| Tous les services | Stoppés | ✅ Actifs |
|
||||
|
||||
### Actions restantes
|
||||
|
||||
- **Retirer sdb physiquement** (ou le supprimer du RAID) :
|
||||
```bash
|
||||
sudo mdadm --manage /dev/md0 --remove /dev/sdb2
|
||||
```
|
||||
- **Décider du sort du RAID** : les données sont sur NVMe. Le RAID peut être démonté définitivement ou conservé pour une future migration vers un NAS.
|
||||
- Vérifier câble SATA de sdb (ATA bus errors = câble ou port, pas plateau).
|
||||
|
||||
---
|
||||
|
||||
## 2026-05-27 — RAID5 : défaillance sdd — corruptions multiples en cascade
|
||||
|
||||
### Symptômes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue