2.6. Ceph 입력/출력 작업


Ceph 클라이언트는 Ceph 모니터에서 'Cluster Map'을 검색하고 풀에 바인딩한 다음 풀의 배치 그룹 내의 개체에서 I/O(입력/출력)를 수행합니다. 풀의 CRUSH 규칙 세트와 배치 그룹의 수는 Ceph가 데이터를 배치하는 방법을 결정하는 주요 요소입니다. 최신 버전의 클러스터 맵에서 클라이언트는 클러스터의 모든 모니터와 OSD와 현재 상태를 알고 있습니다. 그러나 클라이언트는 개체 위치에 대해 아무것도 알 수 없습니다.

클라이언트에 필요한 유일한 입력은 오브젝트 ID와 풀 이름입니다. 간단하게: Ceph에서 이름이 지정된 풀에 데이터를 저장합니다. 클라이언트가 풀에 명명된 오브젝트를 저장하려는 경우 개체 이름, 해시 코드, 풀의 PG 수 및 풀 이름을 입력으로 저장하려는 경우 CRUSH(Controlled Replication Under Scalable Hashing)는 배치 그룹의 ID와 배치 그룹의 기본 OSD를 계산합니다.

Ceph 클라이언트는 다음 단계를 사용하여 PG ID를 계산합니다.

  1. 클라이언트에서 풀 ID와 오브젝트 ID를 입력합니다. 예를 들어 pool = 간풀object-id = john 입니다.
  2. CRUSH는 개체 ID를 사용하고 이를 해시합니다.
  3. CRUSH는 PGs 수의 해시 모드를 계산하여 PG ID를 가져옵니다. 예를 들면 58
  4. CRUSH는 PG ID에 해당하는 기본 OSD를 계산합니다.
  5. 클라이언트는 풀 이름이 지정된 풀 ID를 가져옵니다. 예를 들어, pool 간pool4 번의 풀입니다.
  6. 클라이언트는 풀 ID를 PG ID에 추가합니다. 예를 들면 4.58 입니다.
  7. 클라이언트는 Sting Set에서 기본 OSD와 직접 통신하여 오브젝트 작업을 수행합니다.

Ceph 스토리지 클러스터의 토폴로지 및 상태는 세션 중에 상대적으로 안정적입니다. librados 를 통해 개체 위치를 계산하도록 Ceph 클라이언트에 권한을 부여하면 클라이언트가 각 읽기/쓰기 작업에 대해 chatty 세션을 통해 스토리지 클러스터에 쿼리해야 하는 것보다 훨씬 빠릅니다. CRUSH 알고리즘을 사용하면 클라이언트가 오브젝트 저장할 위치를 계산할 수 있으며 클라이언트는 개체에 직접 데이터를 저장하거나 검색하기 위해 작동 세트의 기본 OSD에 연결할 수 있습니다. 엑사바이트 규모의 클러스터에서 수천 개의 OSD가 있으므로 클라이언트와 Ceph OSD 간의 네트워크 초과 구독은 문제가 되지 않습니다. 클러스터 상태가 변경되면 클라이언트는 Ceph 모니터에서 클러스터 맵에 업데이트를 요청할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.