3.3. Ceph 클라이언트 Mandatory Exclusive Locks
필수 Exclusive Locks는 여러 마운트가 있는 경우 RBD를 단일 클라이언트에 잠그는 기능입니다. 이렇게 하면 여러 개의 마운트된 클라이언트가 동일한 오브젝트에 쓰기를 시도할 때 쓰기 충돌 상황을 해결할 수 있습니다. 이 기능은 이전 섹션에서 설명한 object-watch-notify
를 기반으로 합니다. 따라서 한 클라이언트가 먼저 개체에 배타적 잠금을 설정하는 경우 다른 마운트된 클라이언트는 먼저 피어가 쓰기 전에 개체에 잠금을 배치했는지 확인합니다.
이 기능이 활성화되면 특히 스냅샷 생성/삭제
와 같은 작업 중에 내부 RBD 구조를 변경할 때 한 번에 하나의 클라이언트만 RBD 장치를 수정할 수 있습니다. 또한 실패한 고객을 위한 몇 가지 보호 기능을 제공합니다. 예를 들어 가상 시스템이 응답하지 않고 다른 위치에서 동일한 디스크로 복사본을 시작하는 경우 첫 번째 머신은 Ceph에서 블랙리스트로 표시되어 새 시스템을 손상시킬 수 없습니다.
필수 예외 잠금은 기본적으로 활성화되어 있지 않습니다. 이미지를 생성할 때 --image-feature
매개변수를 사용하여 명시적으로 활성화해야 합니다.
예
[root@mon ~]# rbd create --size 102400 mypool/myimage --image-feature 5
여기서 숫자 5
는 1
과 4
의 요약으로, 1
은 계층 지정 지원을 활성화하고 4
는 배타적 잠금 지원을 가능하게 합니다. 따라서 위의 명령은 100GB rbd 이미지를 생성하여 계층화 및 독점 잠금을 활성화합니다.
필수 Exclusive Locks는 오브젝트 맵
의 전제 조건이기도 합니다. 독점 잠금 지원을 활성화하지 않으면 오브젝트 맵 지원을 활성화할 수 없습니다.
또한 필수 Exclusive Locks는 미러링을 위해 몇 가지 근거가 작동합니다.