osd는 기본적으로 disk error또는 corrupted data와 같은 failure는 self-report함
OSD가 네트워크에서 unreachable되는 경우를 감지하기 위해, 기본적으론 기존 replication traffic을 활용해 Peer OSD의 상태를 확인하고(Passive Monitoring), 일정 시간 동안 Peer OSD로부터 응답이 없으면, ping을 전송함(Active Monitoring)을 결합하여 상태를 확인.
장애가 감지되면, RADOS는 PG를 다른 OSD로 이동하거나 복제본을 생성하여 데이터 안정성을 보장.
osd의 liveness
실패한 OSD와의 작업이 대기 중인 클라이언트는 새로운 Primary OSD에 요청을 다시 보냅니다.
Ceph MON 클러스터는 OSD 연결 문제로 인한 장애 보고를 수집하고, 일시적 또는 시스템적 문제(예: 네트워크 분할)를 중앙에서 필터링 함.
각 OSD가 peer OSD의 상태를 감시 하는 방식으로 장애를 분산 감지(distributed detection)합니다.
분산된 감지 과정에서 불일치(inconsistency)가 발생할 가능성이 있습니다.
MON이 중앙에서 이를 중재(arbitration)하여, 일관된 클러스터 맵을 제공합니다.
시스템적인 문제(예: 전력 장애)로 많은 OSD가 동시에 비활성화되었을 때, 이를 "장애(failure)"로 간주하지 않고 단지 "일시적인 문제"로 처리. 불필요한 대규모 데이터 재복제를 방지
참고
(1) 네트워크 이상에 대한 처리
다양한 네트워크 이상(network anomalies)으로 인해 발생할 수 있는 OSD 연결 문제를 MON이 관리.
MON은 장애 보고를 수집하고, 일시적(transient) 또는 시스템적(systemic) 문제를 필터링하여 네트워크 문제를 효과적으로 처리.
(2) 클러스터 맵의 중앙 집중식 관리
MON은 장애나 복구 상태를 반영해 클러스터 맵을 업데이트.
업데이트된 맵은 증분 업데이트(incremental updates) 방식으로 일부 OSD에만 전송되며, OSD 간의 통신을 통해 효율적으로 확산.
(3) 분산 장애 감지와 중앙 집중식 중재
OSD 간 분산 감지를 통해 장애를 빠르게 탐지.
감지 과정에서 발생하는 불일치를 MON이 중재하여 일관된 클러스터 맵을 제공.