Some checks failed
API CI / API Lint (push) Successful in 47s
API CI / API Type Check (push) Failing after 47s
API CI / API Test (push) Successful in 1m0s
API CI / API Build (push) Failing after 50s
API CI / Build Docker Image (push) Has been skipped
Build Crossplane Provider / build (push) Failing after 5m51s
CD Pipeline / Deploy to Staging (push) Failing after 29s
CI Pipeline / Lint and Type Check (push) Failing after 36s
CI Pipeline / Build (push) Has been skipped
CI Pipeline / Test Backend (push) Failing after 1m33s
CI Pipeline / Test Frontend (push) Failing after 30s
CI Pipeline / Security Scan (push) Failing after 1m16s
Crossplane Provider CI / Go Test (push) Failing after 3m23s
Crossplane Provider CI / Go Lint (push) Failing after 7m27s
Crossplane Provider CI / Go Build (push) Failing after 3m27s
Deploy to Staging / Deploy to Staging (push) Failing after 30s
Portal CI / Portal Lint (push) Failing after 21s
Portal CI / Portal Type Check (push) Failing after 21s
Portal CI / Portal Test (push) Failing after 21s
Portal CI / Portal Build (push) Failing after 22s
Test Suite / frontend-tests (push) Failing after 30s
Test Suite / api-tests (push) Failing after 49s
Test Suite / blockchain-tests (push) Failing after 30s
Type Check / type-check (map[directory:. name:root]) (push) Failing after 23s
Type Check / type-check (map[directory:api name:api]) (push) Failing after 21s
Type Check / type-check (map[directory:portal name:portal]) (push) Failing after 19s
Validate Configuration Files / validate (push) Failing after 1m52s
CD Pipeline / Deploy to Production (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
3.7 KiB
3.7 KiB
Ceph MON Recovery - Success
Date: 2025-12-13
Status: ✅ RECOVERED
Recovery Summary
Successfully recovered Ceph cluster by recreating the corrupted MON on r630-01.
What Was Done
1. Identified Root Cause
- Hardware Failure:
/dev/sdaon r630-01 has critical medium errors - Symptom: Corrupted RocksDB database in
/var/lib/ceph/mon/ceph-r630-01/store.db/ - Impact: MON could not start, cluster lost quorum, OSDs could not start
2. Recovery Steps Executed
-
Stopped and disabled failed MON service
systemctl stop ceph-mon@r630-01 systemctl disable ceph-mon@r630-01 -
Backed up corrupted MON directory
- Created backup:
/root/ceph-mon-r630-01-corrupted-*.tar.gz - Note: Backup showed file corruption (file shrank during tar)
- Created backup:
-
Removed corrupted MON directory
rm -rf /var/lib/ceph/mon/ceph-r630-01 -
Created new monmap from configuration
monmaptool --create --fsid 5fb968ae-12ab-405f-b05f-0df29a168328 \ --add ml110-01 192.168.11.10 \ --add r630-01 192.168.11.11 \ /tmp/monmap -
Copied keyring from ml110-01
- Source:
/var/lib/ceph/mon/ceph-ml110-01/keyring - Destination:
/tmp/mon-keyringon r630-01
- Source:
-
Created new MON filesystem
mkdir -p /var/lib/ceph/mon/ceph-r630-01 chown ceph:ceph /var/lib/ceph/mon/ceph-r630-01 ceph-mon --mkfs -i r630-01 --monmap /tmp/monmap --keyring /tmp/mon-keyring -
Fixed ownership and started MON
chown -R ceph:ceph /var/lib/ceph/mon/ceph-r630-01 systemctl enable ceph-mon@r630-01 systemctl start ceph-mon@r630-01 -
Restarted OSDs
ceph-osd@1on r630-01: ✅ Runningceph-osd@0on ml110-01: ✅ Running
Current Status
Services
- ✅
ceph-mon@r630-01.service: active (running) - ✅
ceph-mon@ml110-01.service: active (running) (was already running) - ✅
ceph-osd@1.service: active (running) - ✅
ceph-osd@0.service: active (running)
Cluster
- Quorum: Restored (2/2 MONs)
- OSDs: 2/2 running
- Cluster Access: Restored (commands no longer timeout)
Remaining Issues
1. Hardware Failure (CRITICAL)
- Disk:
/dev/sdaon r630-01 still has critical medium errors - Risk: MON database may corrupt again if disk continues to fail
- Action Required:
- Monitor disk health:
smartctl -a /dev/sda - Plan disk replacement
- Consider moving MON to different disk if available
- Monitor disk health:
2. Ceph Health Issues (Still Present)
- OSD Count: 2 OSDs < required 3 (osd_pool_default_size = 3)
- Undersized PGs: PG 3.7f stuck undersized for 32h+
- PG Over-allocation: 288 PGs per OSD (max 250), RBD pool has 64 PGs (should be 32)
3. Password Security
- Root password was exposed in command history
- Action Required: Rotate root password immediately
Next Steps
- Monitor cluster health:
ceph -sandceph health detail - Address disk failure: Check SMART status, plan replacement
- Add third OSD: Use the 6x 250GB drives on r630-01 (once disk issue is resolved)
- Fix PG allocation: Reduce RBD pool PGs from 64 to 32
- Rotate passwords: Change root password on all nodes
Lessons Learned
- Hardware monitoring is critical: Disk failures can cascade to application layer
- MON quorum requires redundancy: With only 2 MONs, losing one breaks the cluster
- Ownership matters: MON directory must be owned by
ceph:ceph - Recovery is possible: Even with corrupted database, MON can be recreated from peer
Recovery Time
- Start: 19:10 PST
- MON Running: 19:24 PST
- OSDs Running: 19:25 PST
- Total: ~15 minutes