From 5dbf21c9326c6fb4e89b39c3b7f0aa390525c31e Mon Sep 17 00:00:00 2001 From: Fernando Rivas Date: Wed, 19 Aug 2026 12:56:05 -0600 Subject: [PATCH] =?UTF-8?q?memory(MEM-20260819-6EA868):=20Reparar=20PG=20d?= =?UTF-8?q?a=C3=B1ado=20(HEALTH=5FERR)=20en=20el=20cl=C3=BAster=20Ceph=20d?= =?UTF-8?q?e=20mcps-hpc-01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...h-err-en-el-cluster-ceph-de-mcps-hpc-01.md | 60 +++++++++++++++++++ data/generated/site_state.json | 59 +++++++++++++++++- 2 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 content/memorias/2026-08-19-mem-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01.md diff --git a/content/memorias/2026-08-19-mem-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01.md b/content/memorias/2026-08-19-mem-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01.md new file mode 100644 index 0000000..cceb1ff --- /dev/null +++ b/content/memorias/2026-08-19-mem-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01.md @@ -0,0 +1,60 @@ ++++ +title = "Reparar PG dañado (HEALTH_ERR) en el clúster Ceph de mcps-hpc-01" +description = "Diagnóstico y reparación de un PG_DAMAGED real (pg 3.ec) en el clúster cephadm de producción; 407 pgs sin deep-scrub a tiempo se documentan como trade-off, no como bug, y no se tocaron." +date = 2026-08-19T18:56:05Z +authors = ["gen"] +slug = "mem-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01" +template = "memory.html" + +[taxonomies] +categories = ["memorias"] +tags = ["almacenamiento", "ceph", "salud-cluster"] +systems = ["ceph", "mcps-hpc-01"] + +[extra] +id = "MEM-20260819-6EA868" +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 + +El clúster Ceph de mcps-hpc-01 (cephadm, fsid 9dd39ee8-b987-11f0-9c83-3497f632acb0: 5 mons, mgr activo+standby, 2 MDS, 20 OSDs, 4 pools, 1089 pgs, ~45 TiB usados de 232 TiB) respalda cephfs_hpc, del que dependen Caddy #2, Zammad y en general /mnt/cephfs. Al revisar `ceph -s` salió HEALTH_ERR por dos causas distintas: 1 scrub error/PG_DAMAGED en pg 3.ec, y 407 pgs sin deep-scrub a tiempo (warning, no error). El repair de 3.ec (`ceph pg repair 3.ec`) quedó corriendo en segundo plano al cierre de la sesión — es un deep-scrub completo del PG (~42 GiB), tarda varios minutos; falta reconfirmar con `ceph -s` / `ceph health detail` que OSD_SCRUB_ERRORS y PG_DAMAGED ya no aparecen. + +## Cambios realizados + +- Diagnosticado pg 3.ec con rados list-inconsistent-obj: el shard primario (osd.10) está limpio (digest correcto) y el shard de la réplica (osd.13) tiene read_error puro, sin ambigüedad entre copias +- Confirmado con smartctl que el disco de osd.13 no tenía degradación física antes de reparar (PASSED, Reallocated_Sector_Ct=0, Current_Pending_Sector=0, Offline_Uncorrectable=0) +- Ejecutado ceph pg repair 3.ec para reescribir la copia buena sobre la réplica dañada +- No se modificó osd_max_scrubs ni ninguna configuración de deep-scrub: los 407 pgs atrasados (la config ya tiene osd_scrub_load_threshold=8.0 y osd_deep_scrub_interval=15 días, ambos más permisivos que el default) son un trade-off de rendimiento vs. velocidad de scrub que compite con I/O de clientes reales de cephfs en horario laboral, no un bug — no se cambió sin consultar al equipo + +## Comandos relevantes (secretos redactados) + +```console +ceph -s +rados list-inconsistent-obj 3.ec +smartctl -H /dev/sda +smartctl -A /dev/sda +ceph pg repair 3.ec +ceph osd dump | grep flag +``` + +## Validación + +- smartctl -H y -A en el disco de osd.13 confirmaron salud del disco antes de reparar (sin sectores reasignados ni pendientes) +- rados list-inconsistent-obj 3.ec confirmó que sólo existía una copia válida (osd.10), sin ambigüedad entre réplicas, antes de ejecutar el repair + +## Riesgo y reversión + +El pg repair no tiene una reversión directa una vez completado; si el repair fallara o el objeto siguiera inconsistent, requeriría intervención manual adicional (revisar de nuevo con rados list-inconsistent-obj y, si aplica, restaurar desde otra réplica sana). diff --git a/data/generated/site_state.json b/data/generated/site_state.json index af69619..3e2817b 100644 --- a/data/generated/site_state.json +++ b/data/generated/site_state.json @@ -1,14 +1,39 @@ { "version": 2, - "generated_at": "2026-08-19T18:56:01Z", - "source_sha256": "7f92489a25541119573a7546d76f5992aba1ab478dc06b9c0fb1b17272d80c2e", + "generated_at": "2026-08-19T18:56:05Z", + "source_sha256": "a47d49554218a067b4f67028cf1243ed8c3627a6685522bc638717e4578096ce", "stats": { "active_admins": 1, - "pending_reviews": 2, + "pending_reviews": 3, "open_tasks": 1, "active_projects": 1 }, "review_queue": [ + { + "entry_id": "MEM-20260819-6EA868", + "title": "Reparar PG dañado (HEALTH_ERR) en el clúster Ceph de mcps-hpc-01", + "description": "Diagnóstico y reparación de un PG_DAMAGED real (pg 3.ec) en el clúster cephadm de producción; 407 pgs sin deep-scrub a tiempo se documentan como trade-off, no como bug, y no se tocaron.", + "date": "2026-08-19T18:56:05Z", + "author_id": "gen", + "risk": "high", + "tags": [ + "almacenamiento", + "ceph", + "salud-cluster" + ], + "systems": [ + "ceph", + "mcps-hpc-01" + ], + "permalink": "/memorias/mem-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01/", + "content_sha256": "ec3bf36fe97a386b876ecd332b26ce55dae983e7e0989a8ff154d1e82243b5d5", + "reviewed_by": [], + "missing_reviewers": [ + "gen" + ], + "required_count": 1, + "reviewed_count": 0 + }, { "entry_id": "MEM-20260819-727073", "title": "Limpiar backlog de ruido en tickets 'new' de Zammad", @@ -60,6 +85,34 @@ } ], "recent_memories": [ + { + "entry_id": "MEM-20260819-6EA868", + "title": "Reparar PG dañado (HEALTH_ERR) en el clúster Ceph de mcps-hpc-01", + "description": "Diagnóstico y reparación de un PG_DAMAGED real (pg 3.ec) en el clúster cephadm de producción; 407 pgs sin deep-scrub a tiempo se documentan como trade-off, no como bug, y no se tocaron.", + "date": "2026-08-19T18:56:05Z", + "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-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01", + "permalink": "/memorias/mem-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01/", + "source_path": "content/memorias/2026-08-19-mem-20260819-6ea868-reparar-pg-danado-health-err-en-el-cluster-ceph-de-mcps-hpc-01.md", + "content_sha256": "ec3bf36fe97a386b876ecd332b26ce55dae983e7e0989a8ff154d1e82243b5d5" + }, { "entry_id": "MEM-20260819-727073", "title": "Limpiar backlog de ruido en tickets 'new' de Zammad",