3.3. Ceph 클라이언트 Mandatory 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 이미지를 생성하여 계층화 및 전용 잠금을 활성화합니다.
필수 제외 잠금은 오브젝트 맵
의 전제 조건이기도 합니다. 독점 잠금 지원을 활성화하지 않으면 오브젝트 맵 지원을 활성화할 수 없습니다.
필수 제외 잠금도 미러링에 대한 몇 가지 기본적인 작업을 수행합니다.