Ceph의 rados 설계 원리 및 구현 4장: 스토리지의 초석인 OSD

OSD는 본질적으로 운영체제를 오버라이드하는 프로세스로, CPU, 메모리, 네트워크 대역폭 등의 자원을 갖고 있으며, 객체 스토리지를 구현하는 데 사용되며 다양한 유형의 파일 시스템과 호환됩니다.

OSD는 클러스터 네트워크를 사용하여 서로를 감독하고 적시에 모니터에 오류를 보고합니다. 모니터가 OSDMap을 수정한 후 OSD는 최신 OSDMap을 지점 간으로 서로 전파합니다.

1. 클러스터 관리

OSD는 모니터와 정기적으로 통신하고 자체 상황을 보고하며 최신 OSDMap을 업데이트하고 자체 용량 사용량, 키 등을 모니터에 보고해야 합니다. 따라서 OSD 프로세스는 모니터 클라이언트 구성 요소를 내부적으로 캡슐화하고 다음 작업에 사용됩니다. 모니터와 통신합니다.

2. 네트워크 통신

네트워크 통신 구성 요소 메신저에는 공용 네트워크와 클러스터 네트워크가 포함됩니다.

3.OSD 전원 켜짐

Objectstore의 부팅 데이터는 디스크에 저장되며, 이를 먼저 읽어서 인증한 후 Objectstore의 슈퍼 블록을 메모리에서 읽어와서 Objectstore를 마운트합니다. 모든 것이 정상입니다(OSD에는 충분한 권한이 있으며, 클러스터 UUID를 충족하고 버전 번호가 올바른지 등) 통과 후) OSDMap을 모니터와 동기화해야 합니다. OSD의 전원이 꺼진 상태에서도 OSDMap이 계속 업데이트되므로 OSD가 켜져 있는 상태는 최신 버전의 모니터와 일부 다를 수 있으므로 OSD 외에 모니터 자체의 상태도 OSDMap에 알려야 합니다. 동시에 모니터는 OSD 전원을 끄는 동안 누락된 여러 OSDMap 버전의 증분(최대 40개)을 OSD로 보내 OSD의 로컬 OSDMap을 업데이트해야 합니다.

4.OSD 오류 감지

4가지 상태: Up, Down, In, Out
3가지 감지 방법: 자동 보고, 하트비트 감지, 감시(활성 상태를 유지하기 위해 모니터에 정기적으로 메시지 보내기)
OSD가 Down인 것을 감지한 후 600S 이후 Out으로 설정됩니다. 영향을 받은 PG가 마이그레이션되기 시작했습니다.

5.OSD 공간 통계

4가지 레벨: NearFull, BackFull(PG 마이그레이션이 OSD에 기록되는 것을 방지), Full(OSD에 기록하는 것을 방지), Failsafefull(전체 표시 지연으로 인해 OSD가 가득 차는 최종 장벽을 피하기 위해 쓰기를 방지)

총 스토리지 풀 공간 = 스토리지 풀 사용 공간 + 스토리지 풀 최대 사용 가능 공간

스토리지 풀의 사용 가능한 최대 공간에 대한 계산 공식은 다음과 같습니다. min{ [OSD 용량 - 예약된 공간(5%)] / 스토리지 풀의 총 용량에서 OSD가 차지하는 비율 / 스토리지 풀 복사본 수}
여기서 OSD 용량 / OSD 비율 = 스토리지 풀에 있는 모든 OSD 용량의 합

스토리지 풀의 사용된 공간을 계산하는 공식은 다음과 같습니다. 스토리지 풀에 있는 모든 OSD의 사용된 공간 합계 / 복사본 수

실제로 위의 스토리지 풀 최대 가용 공간 계산 공식은 균형 잡힌 데이터 분포를 전제로 한 것으로, 최소이므로 동일한 용량의 디스크 2개를 OSD 2개로 사용하면 기록된 데이터가 균등하지 않게 된다. distribution.min은 항상 가장 큰 점유 공간이 있는 값을 사용하여 최대 사용 가능한 공간을 계산하므로 계산된 최대 사용 가능한 공간이 너무 작습니다.

추천

출처blog.csdn.net/mxy990811/article/details/135368901