2.9. Ceph BlueStore
BlueStore
는 Ceph의 현재 스토리지 구현입니다. k/v 데이터베이스에 대해 작은 파티션에서 매우 간단한 BlueFS
파일 시스템을 사용하고, 배치 그룹을 나타내는 디렉터리, 메타데이터를 나타내는 오브젝트 및 파일 XATTR을 나타내는 파일의 패러다임을 제거합니다.
Bluestore는 다음과 같이 데이터를 저장합니다
.
-
오브젝트 데이터:
BlueStore
에서 Ceph는 원시 블록 장치에 직접 오브젝트를 블록으로 저장합니다. 오브젝트 데이터를 저장하는 원시 블록 장치의 일부에는 파일 시스템이 포함되어 있지 않습니다. 파일 시스템을 비우는 것은 간접적인 계층을 제거하여 성능을 향상시킵니다. 그러나BlueStore
성능 개선의 대부분은 블록 데이터베이스 및 쓰기 로그에서 비롯됩니다. -
블록 데이터베이스:
BlueStore
에서 블록 데이터베이스는 일관성 을 보장하기 위해 오브젝트 의미 체계를 처리합니다. 오브젝트의 고유 식별자는 블록 데이터베이스의 키입니다. 블록 데이터베이스의 값은 저장된 오브젝트 데이터, 오브젝트의 배치 그룹 및 오브젝트 메타데이터를 참조하는 일련의 블록 주소로 구성됩니다. 블록 데이터베이스는 오브젝트 데이터를 저장하는 동일한 원시 블록 장치의BlueFS
파티션에 상주하거나 일반적으로 기본 블록 장치가 하드 디스크 드라이브이고 SSD 또는 NVMe가 성능을 향상시킬 때 별도의 블록 장치에 상주할 수 있습니다.BlueStore
의 주요/값 의미 체계는 파일 시스템 XATTR의 제한으로 인해 영향을 받지 않습니다.BlueStore
는 한 디렉토리에서 다른 디렉토리로 파일을 이동하는 오버헤드 없이 블록 데이터베이스 내의 다른 배치 그룹에 개체를 빠르게 할당할 수 있습니다. 블록 데이터베이스는 저장된 오브젝트 데이터 및 해당 메타데이터의 체크섬을 저장할 수 있으므로 각 읽기에 대한 전체 데이터 체크섬 작업을 수행할 수 있습니다. 이는 비트 로드를 감지하기 위해 주기적으로 스크럽하는 것보다 더 효율적입니다.BlueStore
는 오브젝트를 압축할 수 있으며 블록 데이터베이스는 개체를 압축하는 데 사용되는 알고리즘을 저장할 수 있으므로 읽기 작업이 압축 해제를 위한 적절한 알고리즘을 선택하도록 합니다. -
쓰기 로그:
BlueStore
에서 쓰기 로그는 Atomicity 를 확인하고 각 트랜잭션의 모든 측면을 기록합니다.BlueStore
쓰기 로그 또는 WAL은 이 기능을 동시에 수행할 수 있습니다. Bluestore는 오브젝트 데이터를 저장하기 위해 동일한 장치에 WAL을 배포하거나 기본 블록 장치가 하드 디스크 드라이브이고 SSD 또는 NVMe가 성능을 향상시킬 때 다른 장치에 WAL을 배포할 수 있습니다.
참고
별도의 장치가 주 저장 장치보다 빠른 경우에만 블록 데이터베이스 또는 미리 쓰기 로그를 별도의 블록 장치에 저장하는 데 유용합니다. 예를 들어, SSD 및 NVMe 장치는 일반적으로ECDHEs보다 빠릅니다. 블록 데이터베이스와 WAL을 별도의 장치에 배치하면 워크로드의 차이로 인해 성능 이점을 얻을 수 있습니다.