본문 바로가기
Life with AI/Research with AI

[Ceph Storage] Failover의 종류와 방법

by 타임-세이버 2023. 2. 22.
반응형

[Ceph Storage] Failover의 종류와 방법

Ceph는 대규모 분산 스토리지 클러스터를 지원하는 오픈소스 분산 스토리지 시스템이다. Ceph는 다중 디스크 및 다중 서버 구성을 통해 내결함성(fault-tolerance)을 제공한다. 그러나 시스템 장애로 인한 서비스 중단을 방지하기 위해 Failover 기술이 필요하다.

 

Failover는 시스템의 일부분이 동작하지 않는 상황에서 다른 시스템으로 작업을 전환하는 과정을 의미한다. Ceph에서는 주로 3가지 종류의 Failover를 지원한다.

1. OSD Failover

OSD(Object Storage Device) Failover는 OSD 데몬이 죽거나 OSD 호스트가 다운되는 경우 수행된다. 이 때 Failover는 PG(Placement Group)가 담당하는 OSD 데몬을 찾아 대체한다. OSD Failover는 Ceph의 다른 데몬들과 달리 모니터링되는 OSD 데몬과 함께 작동한다. OSD Failover 방법은 크게 두 가지이다.

Automatic Failover

Automatic Failover는 OSD가 정상적으로 작동하지 않는 경우 자동으로 수행된다. 이를 위해 Ceph는 OSD 상태를 모니터링하고 OSD가 이중화된 경우 OSD에 문제가 발생한 경우 자동으로 대체한다.

Manual Failover

Manual Failover는 OSD가 정상적으로 작동하지 않는 경우 수동으로 수행된다. 이 방법은 Ceph 관리자에게 다음과 같은 절차를 따르도록 요구한다.

a. OSD 상태 확인

OSD의 상태를 확인한다. 이때, OSD가 이중화 되었는지 여부와 OSD 상태를 모니터링한다.

b. PG를 대체

PG를 대체할 OSD 데몬을 선택한다. Ceph는 OSD 데몬의 우선순위에 따라 PG를 대체할 OSD를 선택한다.

c. OSD 재구동

대체된 OSD 데몬을 새로운 OSD 데몬으로 재구동한다. 이후, PG들은 이중화된 OSD에 분산된다.

2. Monitor Failover

Monitor Failover는 Monitor 데몬이 죽거나 Monitor 호스트가 다운되는 경우 수행된다. 이때 Failover는 Monitor 상태를 모니터링하고 새로운 Monitor 데몬을 선출하여 대체한다. Monitor Failover 방법은 다음과 같다.

Automatic Failover

Automatic Failover는 Monitor가 정상적으로 작동하지 않는 경우 자동으로 수행된다. 이를 위해 Ceph는 Monitor 상태를 모니터링하고 Monitor가 이중화된 경우 Monitor에 문제가 발생한 경우 자동으로 대체한다.

Manual Failover

Manual Failover는 Monitor가 정상적으로 작동하지 않는 경우 수동으로 수행된다. 이 방법은 Ceph 관리자에게 다음과 같은 절차를 따르도록 요구한다.

a. Monitor 상태 확인

Monitor의 상태를 확인한다. 이때, Monitor가 이중화 되었는지 여부와 Monitor 상태를 모니터링한다.

b. Monitor 선출

새로운 Monitor 데몬을 선출하여 Monitor를 대체한다. Monitor 선출은 Monitor링을 수행하는 데몬에서 수행된다.

c. Monitor 재구동

대체된 Monitor 데몬을 새로운 Monitor 데몬으로 재구동한다. 이후, 모든 OSD와 Client는 새로운 Monitor를 사용하여 Metadata를 업데이트한다.

3. MDS Failover

MDS(Metadata Server) Failover는 Metadata 서버가 죽거나 Metadata 호스트가 다운되는 경우 수행된다. 이때 Failover는 Metadata Pool에 대한 엑세스를 잃지 않도록 MDS 상태를 모니터링하고 다른 MDS 데몬으로 전환한다. MDS Failover 방법은 크게 두 가지이다.

Automatic Failover

Automatic Failover는 MDS가 정상적으로 작동하지 않는 경우 자동으로 수행된다. 이를 위해 Ceph는 MDS 상태를 모니터링하고 MDS가 이중화된 경우 MDS에 문제가 발생한 경우 자동으로 대체한다.

Manual Failover

Manual Failover는 MDS가 정상적으로 작동하지 않는 경우 수동으로 수행된다. 이 방법은 Ceph 관리자에게 다음과 같은 절차를 따르도록 요구한다.

a. MDS 상태 확인

MDS의 상태를 확인한다. 이때, MDS가 이중화 되었는지 여부와 MDS 상태를 모니터링한다.

b. MDS 전환

MDS 전환은 새로운 MDS 데몬을 실행하고, MDS를 대체하는 데몬에 메타데이터를 복사하도록 수행된다. MDS 전환은 이중화된 MDS 데몬 중 하나에서 수행된다.

c. MDS 재구동

대체된 MDS 데몬을 새로운 MDS 데몬으로 재구동한다. 이후, 클라이언트는 새로운 MDS를 사용하여 Metadata에 액세스한다.

주의사항

Failover를 수행하기 전에 주의해야 할 몇 가지 사항이 있다.

  • Ceph는 Failover를 수행하기 위해 정확한 구성이 필요하다. OSD, Monitor 및 MDS 데몬이 모두 이중화되어야 한다.
  • Failover를 수행하기 전에 Cluster의 이름이 모두 고유해야 한다. 이름 충돌이 발생하면 Cluster에서 오류가 발생할 수 있다.
  • Failover를 수행하기 전에 Cluster를 백업해야 한다. 이 백업은 Cluster의 구성 파일, 메타데이터 및 데이터 등을 포함해야 한다.
  • Cluster의 구성 변경 사항을 유심히 모니터링해야 한다. 예를 들어 OSD 및 Monitor 데몬의 추가 또는 제거, OSD Pool의 생성 또는 삭제 등의 변경 사항은 Cluster에서 오류가 발생할 수 있다.

예시

다음은 Ceph Failover의 예시이다.

OSD Failover

  • Automatic Failover

OSD 2번이 다운되면 Ceph는 OSD 2번이 다운되었음을 감지하고 OSD 2번의 복제본인 OSD 1번으로 자동 Failover를 수행한다. 이후, OSD 1번은 OSD 2번의 기능을 대체하고 Cluster에서 데이터 처리를 계속한다.

  • Manual Failover

OSD 2번이 다운되면 관리자는 OSD 2번의 상태를 모니터링한다. 이후, OSD 1번을 OSD 2번의 대체본으로 설정하고 OSD 2번을 다시 구동한다.

Monitor Failover

  • Automatic Failover

Monitor 2번이 다운되면 Ceph는 Monitor 2번이 다운되었음을 감지하고 Monitor 2번의 복제본인 Monitor 1번으로 자동 Failover를 수행한다. 이후, Monitor 1번은 Monitor 2번의 기능을 대체하고 Cluster에서 모니터링을 계속한다.

  • Manual Failover

Monitor 2번이 다운되면 관리자는 Monitor 2번의 상태를 모니터링한다. 이후, Monitor 1번을 Monitor 2번의 대체본으로 설정하고 Monitor 2번을 다시 구동한다.

MDS Failover

  • Automatic Failover

MDS 2번이 다운되면 Ceph는 MDS 2번이 다운되었음을 감지하고 MDS 2번의 복제본인 MDS 1번으로 자동 Failover를 수행한다. 이후, MDS 1번은 MDS 2번의 기능을 대체하고 Cluster에서 Metadata 서비스를 계속한다.

  • Manual Failover

MDS 2번이 다운되면 관리자는 MDS 2번의 상태를 모니터링한다. 이후, MDS 1번을 MDS 2번의 대체본으로 설정하고 MDS 2번을 다시 구동한다.

결론

Ceph Failover는 분산형 스토리지 시스템에서 데이터와 Metadata 서비스의 가용성과 지속성을 보장하는 중요한 기술이다.

 

Ceph Failover는 주로 세 가지 방식으로 구현되는데, Storage Failover, OSD Failover, Monitor Failover이 있다. 이 중에서도 Monitor Failover는 가장 중요한 역할을 하며, 수동 또는 자동으로 Failover 기능을 대체하여 Cluster의 가용성과 지속성을 보장한다. 

 

Ceph Failover를 구현할 때에는 Cluster 구성, Failover 방법, 주의사항 등을 고려해야 하며, 시스템 관리 기술과 Cluster 운영 노하우가 필요하다. 이를 통해 Failover 과정에서 발생하는 오류와 장애를 최소화하고 Cluster의 안정성을 높일 수 있다. 

 

마지막으로, Ceph 외에도 다양한 분산형 스토리지 시스템들이 존재하며, 각각의 시스템들은 서로 다른 구조와 특징을 가지고 있다. 이에 따라 Failover 기술 또한 서로 다른 방식으로 구현되며, 적용하는 방법도 다르다. 따라서 시스템 구성과 Failover 기술 선택에는 주의가 필요하다.

반응형

댓글