검색

4.9. Ceph File System 스냅샷 고려 사항

download PDF

스토리지 관리자는 Ceph File System(CephFS) 스냅샷을 관리하는 데이터 구조, 시스템 구성 요소 및 고려 사항을 이해할 수 있습니다.

스냅샷은 생성 시점의 파일 시스템의 변경 불가능한 뷰를 생성합니다. 디렉터리 내에 스냅샷을 생성할 수 있으며, 해당 디렉터리의 파일 시스템에 있는 모든 데이터를 다룹니다.

4.9.1. Ceph 파일 시스템의 스냅샷 메타데이터 저장

스냅샷 디렉터리 항목 및 해당 inode의 스토리지는 스냅샷 당시에 있는 디렉터리의 일부로 인라인으로 수행됩니다. 모든 디렉터리 항목에는 유효한 첫 번째 및 마지막 snapid 가 포함됩니다.

4.9.2. Ceph 파일 시스템 스냅샷 쓰기

Ceph 스냅샷은 클라이언트에 따라 스냅샷 및 플러시 스냅샷 데이터 및 메타데이터에 적용되는 작업을 OSD 및 MDS 클러스터로 결정하는 데 도움이 됩니다. 스냅샷 쓰기 처리는 스냅샷이 파일 계층 구조의 하위 트리에 적용되며 스냅샷 생성이 언제든지 발생할 수 있기 때문에 관련 프로세스입니다.

동일한 스냅샷 세트에 속하는 파일 계층 구조의 일부는 단일 SnapRealm 에 의해 참조됩니다. 각 스냅샷은 디렉토리 아래에 중첩된 하위 디렉터리에 적용되며, 영역에 포함된 모든 파일이 동일한 스냅샷 세트를 공유하는 여러 개의 "realms"로 파일 계층을 나눕니다.

Ceph Metadata Server(MDS)는 각 inode의 기능(caps)을 발행하여 inode 메타데이터 및 파일 데이터에 대한 클라이언트 액세스를 제어합니다. 스냅샷을 생성하는 동안 클라이언트는 해당 시점에서 파일 상태를 설명하는 기능을 사용하여 inode에서 더티 메타데이터를 확보합니다. 클라이언트가 ClientSnap 메시지를 수신하면 로컬 SnapRealm 과 해당 링크를 특정 inode에 업데이트하고 inode에 대한 capSnap 을 생성합니다. 기능 백백은 capSnap 을 플러시하고, 더티 데이터가 있는 경우 스냅 샷이 OSD에 플러시될 때까지 새 데이터 쓰기를 차단하는 데 사용됩니다.

MDS는 플러시를 위한 일상적인 프로세스의 일부로 스냅샷 관련 디렉터리 항목을 생성합니다. MDS는 쓰기 프로세스가 플러시될 때까지 메모리 및 저널에 고정되어 있는 미결제 데이터를 사용하여 디렉터리 항목을 유지합니다.

4.9.4. Ceph 파일 시스템의 스냅샷 업데이트

스냅샷 업데이트 프로세스는 스냅샷을 삭제하는 프로세스와 유사합니다.

상위 SnapRealm 에서 inode를 제거하면 SnapRealm 이 아직 존재하지 않는 경우 Ceph는 이름이 변경된 inode에 대한 새 SnapRealm 을 생성합니다. Ceph는 원래 상위 SnapRealm 에 적용되는 스냅샷 ID를 새 SnapRealmpast_parent_snaps 데이터 구조에 저장한 다음 스냅샷을 생성하는 것과 유사한 프로세스를 따릅니다.

추가 리소스

4.9.5. Ceph 파일 시스템 스냅샷 및 여러 파일 시스템

스냅샷은 여러 파일 시스템에서 제대로 작동하지 않는 것으로 알려져 있습니다.

네임스페이스와 단일 Ceph 풀을 공유하는 여러 파일 시스템이 있는 경우 스냅샷은 충돌하며 하나의 스냅샷을 삭제하면 동일한 Ceph 풀을 공유하는 다른 스냅샷에 필요한 파일 데이터가 누락됩니다.

4.9.6. Ceph File System 스냅샷 데이터 구조

Ceph 파일 시스템(CephFS)은 다음과 같은 스냅샷 데이터 구조를 사용하여 데이터를 효율적으로 저장합니다.

SnapRealm
SnapRealm 은 파일 계층 구조에서 새 시점에서 스냅샷을 만들 때마다 또는 스냅샷된 inode를 상위 스냅샷 외부에서 이동할 때마다 생성됩니다. 단일 SnapRealm 은 동일한 스냅샷 세트에 속하는 파일 계층 구조의 부분을 나타냅니다. SnapRealm 에는 스냅샷의 일부인 sr_t_srnodeinodes_with_caps 가 포함되어 있습니다.
sr_t
sr_t 는 디스크상의 스냅샷 메타데이터입니다. 여기에는 시퀀스 카운터, 타임 스탬프, 관련 스냅샷 ID 목록 및 past_parent_snaps 목록이 포함됩니다.
SnapServer
SnapServer 는 스냅샷 ID 할당, 스냅샷 삭제 및 파일 시스템에서 누적 스냅샷 목록을 유지 관리합니다. 파일 시스템에는 SnapServer 인스턴스 하나만 있습니다.
SnapContext

SnapContext 는 스냅샷 시퀀스 ID(snapid) 및 개체에 대해 현재 정의된 모든 스냅샷 ID로 구성됩니다. 쓰기 작업이 발생하면 Ceph 클라이언트에서 오브젝트에 존재하는 스냅샷 세트를 지정하는 SnapContext 를 제공합니다. Ceph는 SnapContext 목록을 생성하기 위해 SnapRealm 과 관련된 snapids와 past_parent_snaps 데이터 구조를 결합합니다.

파일 데이터는 RADOS 자체 관리 스냅샷을 사용하여 저장됩니다. 자체 관리 스냅샷에서 클라이언트는 각 쓰기에서 현재 SnapContext 를 제공해야 합니다. 클라이언트는 파일 데이터를 Ceph OSD에 작성할 때 올바른 SnapContext 를 사용해야 합니다.

SnapClient 의 유효 스냅샷은 오래된 snapid를 필터링합니다.

SnapClient
SnapClientSnapServer 및 캐시 누적 스냅샷과 로컬에서 통신하는 데 사용됩니다. 각 메타데이터 서버(MDS) 순위에는 SnapClient 인스턴스가 있습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.