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