Compare commits

...
2 Commits
Author SHA1 Message Date
fernando 2c13427788 review(MEM-20260819-C255FF): gen
CI / test-and-build (push) Successful in 12s
2026-08-24 12:25:00 -06:00
fernando 50999ef423 memory(MEM-20260820-4D10C2): Reparar 2 PGs inconsistentes nuevas en Ceph (HEALTH_ERR, mcps-hpc-01) 2026-08-20 01:05:46 -06:00
3 changed files with 130 additions and 27 deletions
@@ -0,0 +1,67 @@
+++
title = "Reparar 2 PGs inconsistentes nuevas en Ceph (HEALTH_ERR, mcps-hpc-01)"
description = "Diagnóstico y repair de pg 3.80 y pg 3.17b; confirmado que pg 3.ec (memoria del 2026-08-17) quedó sana. osd.13 tuvo un segundo read_error en pocos días; no se pudo revisar el disco de osd.11 por falta de acceso a MCPS-HPC05. El backlog de deep-scrub atrasado no se tocó."
date = 2026-08-20T07:05:46Z
authors = ["gen"]
slug = "mem-20260820-4d10c2-reparar-2-pgs-inconsistentes-nuevas-en-ceph-health-err-mcps-hpc-01"
template = "memory.html"
[taxonomies]
categories = ["memorias"]
tags = ["almacenamiento", "ceph", "salud-cluster"]
systems = ["ceph", "mcps-hpc-01"]
[extra]
id = "MEM-20260820-4D10C2"
kind = "memory"
author_id = "gen"
author_fingerprint = "SHA256:JhN1Tt4jYqWoJIznDJ6QkMAiOR6HFHr3xLz9aBJqmPg"
risk = "high"
ticket = ""
review_required = true
review_policy = "all-active"
reviewer_snapshot = true
reviewers = ["gen"]
started_at = ""
finished_at = ""
duration_minutes = 0
agent = "claude-code"
+++
## Contexto
Se revisó el estado real de Ceph a pedido explícito ('corrige los problemas de salud de ceph'), sin asumir que seguía igual que en la memoria del 2026-08-17. La pg 3.ec de esa memoria ya no aparece como inconsistente: el repair anterior quedó resuelto. En su lugar, ceph -s mostró HEALTH_ERR por 2 PGs nuevas inconsistentes (3.80 y 3.17b) y 353 pgs sin deep-scrub a tiempo (bajó a 352 durante la sesión, mismo backlog documentado antes, no un problema nuevo). osd.13 (mcps-hpc-01, /dev/sda) es el mismo disco que tuvo el read_error del 17 de agosto — esta es la segunda vez en pocos días, aunque SMART lo sigue marcando PASSED sin sectores reasignados ni pendientes. No se pudo correr smartctl sobre el disco de osd.11 (/dev/sdb, host MCPS-HPC05): ni esta máquina ni mcps-hpc-01 tienen acceso SSH configurado a ese host; no se intentó adivinar credenciales. El repair de ambas PGs se instruyó igual con base en el diagnóstico de rados list-inconsistent-obj (copia primaria limpia, réplica con read_error puro, sin ambigüedad), que no depende de haber confirmado la salud física del disco de la réplica. El backlog de 352 pgs sin deep-scrub a tiempo sigue siendo el mismo trade-off rendimiento/velocidad de scrub documentado en la memoria anterior (osd_max_scrubs=1, compite con I/O de clientes reales) — no se tocó, sigue pendiente de decisión del equipo.
## Cambios realizados
- Confirmado que pg 3.ec (memoria del 2026-08-17) ya no aparece inconsistente: el repair anterior fue efectivo
- Diagnosticadas pg 3.80 (osd.8 primario limpio / osd.13 read_error) y pg 3.17b (osd.1 primario limpio / osd.11 read_error) con rados list-inconsistent-obj: en ambas, una sola copia válida, sin ambigüedad
- Confirmado con smartctl que el disco de osd.13 (/dev/sda, mcps-hpc-01) sigue PASSED, sin degradación física reportada, pese a ser el segundo read_error en esa unidad en pocos días
- Ejecutado ceph pg repair 3.80 y ceph pg repair 3.17b; ambas PGs entraron a estado active+clean+scrubbing+deep+inconsistent+repair
- No se modificó osd_max_scrubs ni ninguna configuración de deep-scrub: el backlog de 352 pgs atrasados se dejó igual, es la misma decisión de trade-off pendiente de la memoria anterior
## Comandos relevantes (secretos redactados)
```console
ceph -s
ceph health detail
rados list-inconsistent-obj 3.80 --format=json-pretty
rados list-inconsistent-obj 3.17b --format=json-pretty
ceph osd tree
ceph osd metadata 13
ceph osd metadata 11
smartctl -H /dev/sda
smartctl -A /dev/sda
ceph pg repair 3.80
ceph pg repair 3.17b
```
## Validación
- rados list-inconsistent-obj confirmó, para ambas PGs, que solo existía una copia válida (primario limpio) antes de reparar
- smartctl -H y -A en el disco de osd.13 confirmaron salud del disco (PASSED, sin sectores reasignados/pendientes) antes de reparar
- ceph -s tras el repair mostró ambas PGs en active+clean+scrubbing+deep+inconsistent+repair, confirmando que el repair quedó corriendo; no se esperó a que terminara en esta sesión
## Riesgo y reversión
El pg repair no tiene reversión directa. Si al terminar el deep-scrub alguna de las dos PGs sigue inconsistent (ceph health detail), requiere diagnóstico manual adicional; si el patrón se repite en osd.13 una tercera vez, considerar programar el reemplazo preventivo del disco aunque SMART siga en PASSED.
+55 -27
View File
@@ -1,7 +1,7 @@
{
"version": 2,
"generated_at": "2026-08-19T18:56:10Z",
"source_sha256": "0b1a0d13dbeb6a3805b58b7ef0c513d3be7fc1b995ba75ff2e1d6695317c1f32",
"generated_at": "2026-08-24T18:25:00Z",
"source_sha256": "73d66ea39e4def01d7ccf1993b29bbfd832e893c7926a96dc842bc02d70f6044",
"stats": {
"active_admins": 1,
"pending_reviews": 4,
@@ -9,6 +9,31 @@
"active_projects": 1
},
"review_queue": [
{
"entry_id": "MEM-20260820-4D10C2",
"title": "Reparar 2 PGs inconsistentes nuevas en Ceph (HEALTH_ERR, mcps-hpc-01)",
"description": "Diagnóstico y repair de pg 3.80 y pg 3.17b; confirmado que pg 3.ec (memoria del 2026-08-17) quedó sana. osd.13 tuvo un segundo read_error en pocos días; no se pudo revisar el disco de osd.11 por falta de acceso a MCPS-HPC05. El backlog de deep-scrub atrasado no se tocó.",
"date": "2026-08-20T07:05:46Z",
"author_id": "gen",
"risk": "high",
"tags": [
"almacenamiento",
"ceph",
"salud-cluster"
],
"systems": [
"ceph",
"mcps-hpc-01"
],
"permalink": "/memorias/mem-20260820-4d10c2-reparar-2-pgs-inconsistentes-nuevas-en-ceph-health-err-mcps-hpc-01/",
"content_sha256": "6e6e4529c8e0a9cb8447748ba89da1bafe3383f5e192f18f927b3ee546d0efb7",
"reviewed_by": [],
"missing_reviewers": [
"gen"
],
"required_count": 1,
"reviewed_count": 0
},
{
"entry_id": "MEM-20260819-51DEA9",
"title": "Corregir despliegue de clusterlog en Caddy y dar persistencia al runner de Gitea Actions",
@@ -84,34 +109,37 @@
],
"required_count": 1,
"reviewed_count": 0
},
{
"entry_id": "MEM-20260819-C255FF",
"title": "Desplegar Uptime Kuma como monitoreo central (health.mcps-epcm.org)",
"description": "Contenedor Uptime Kuma en mcps-hpc-01 con 22 monitores en 3 grupos; gotcha de systemd Type=notify que causaba reinicio en loop.",
"date": "2026-08-19T18:55:56Z",
"author_id": "gen",
"risk": "low",
"tags": [
"monitoreo",
"systemd",
"uptime-kuma"
],
"systems": [
"mcps-hpc-01",
"uptime-kuma"
],
"permalink": "/memorias/mem-20260819-c255ff-desplegar-uptime-kuma-como-monitoreo-central-health-mcps-epcm-org/",
"content_sha256": "a74e4f1493843970c55c3197fb2e5266c8b04cf631e7fd187890051a0f076686",
"reviewed_by": [],
"missing_reviewers": [
"gen"
],
"required_count": 1,
"reviewed_count": 0
}
],
"recent_memories": [
{
"entry_id": "MEM-20260820-4D10C2",
"title": "Reparar 2 PGs inconsistentes nuevas en Ceph (HEALTH_ERR, mcps-hpc-01)",
"description": "Diagnóstico y repair de pg 3.80 y pg 3.17b; confirmado que pg 3.ec (memoria del 2026-08-17) quedó sana. osd.13 tuvo un segundo read_error en pocos días; no se pudo revisar el disco de osd.11 por falta de acceso a MCPS-HPC05. El backlog de deep-scrub atrasado no se tocó.",
"date": "2026-08-20T07:05:46Z",
"author_id": "gen",
"author_fingerprint": "SHA256:JhN1Tt4jYqWoJIznDJ6QkMAiOR6HFHr3xLz9aBJqmPg",
"risk": "high",
"review_required": true,
"review_policy": "all-active",
"reviewer_snapshot": true,
"reviewers": [
"gen"
],
"tags": [
"almacenamiento",
"ceph",
"salud-cluster"
],
"systems": [
"ceph",
"mcps-hpc-01"
],
"slug": "mem-20260820-4d10c2-reparar-2-pgs-inconsistentes-nuevas-en-ceph-health-err-mcps-hpc-01",
"permalink": "/memorias/mem-20260820-4d10c2-reparar-2-pgs-inconsistentes-nuevas-en-ceph-health-err-mcps-hpc-01/",
"source_path": "content/memorias/2026-08-20-mem-20260820-4d10c2-reparar-2-pgs-inconsistentes-nuevas-en-ceph-health-err-mcps-hpc-01.md",
"content_sha256": "6e6e4529c8e0a9cb8447748ba89da1bafe3383f5e192f18f927b3ee546d0efb7"
},
{
"entry_id": "MEM-20260819-51DEA9",
"title": "Corregir despliegue de clusterlog en Caddy y dar persistencia al runner de Gitea Actions",
@@ -0,0 +1,8 @@
{
"id": "REV-20260824-9B2DA2",
"entry_id": "MEM-20260819-C255FF",
"admin_id": "gen",
"fingerprint": "SHA256:JhN1Tt4jYqWoJIznDJ6QkMAiOR6HFHr3xLz9aBJqmPg",
"reviewed_at": "2026-08-24T18:25:00.241293734Z",
"content_sha256": "a74e4f1493843970c55c3197fb2e5266c8b04cf631e7fd187890051a0f076686"
}