12.8. Ceph BlueStore BlueFS
BlueStore 블록 데이터베이스는 메타데이터를 RocksDB 데이터베이스에 키-값 쌍으로 저장합니다. 블록 데이터베이스는 스토리지 장치의 작은 BlueFS 파티션에 있습니다. BlueFS는 RocksDB 파일을 보관하도록 설계된 최소 파일 시스템입니다.
BlueFS 파일
다음은 RocksDB에서 생성하는 세 가지 유형의 파일입니다.
-
제어 파일(예:
CURRENT
,IDENTITY
,MANIFEST-000011
) -
DB 테이블 파일(예:
004112.sst
) -
앞에 로그를 작성합니다(예:
000038.log
).
또한 디렉터리 구조, 파일 매핑 및 작업 로그로 작동하는 BlueFS 재생 로그( o 1
) 역할을 하는 내부 숨겨진 파일이 있습니다.
대체 계층
BlueFS를 사용하면 모든 장치에 모든 파일을 배치할 수 있습니다. 파일의 일부는 WAL, DB 및 SLOW의 다른 장치에도 존재할 수 있습니다. BlueFS가 파일을 배치하는 곳에는 순서가 있습니다. 파일은 기본 스토리지가 소진된 경우에만 보조 스토리지에 배치되고 보조 스토리지가 소진된 경우에만 3차가 사용됩니다.
특정 파일의 순서는 다음과 같습니다.
- 앞의 로그 쓰기: WAL, DB, SLOW
-
Replay log
ino 1
: DB, SLOW 제어 및 DB 파일: DB, SLOW
공간이 부족할 때 제어 및 DB 파일 순서: SLOW
중요제어 및 DB 파일 순서가 예외가 있습니다. RocksDB가 DB 파일에서 공간이 부족함을 감지하면 파일을 SLOW 장치에 저장하도록 직접 알립니다.
12.8.1. bluefs_buffered_io
설정 보기
스토리지 관리자는 bluefs_buffered_io
매개변수의 현재 설정을 볼 수 있습니다.
Red Hat Ceph Storage에 대해 bluefs_buffered_io
옵션은 기본적으로 True
로 설정됩니다. 이 옵션을 사용하면 BlueFS에서 일부 경우에 버퍼링된 읽기를 수행하고 커널 페이지 캐시가 RocksDB 블록 읽기와 같은 읽기에 대한 보조 캐시 역할을 할 수 있습니다.
bluefs_buffered_io
값을 변경하는 것은 권장되지 않습니다. bluefs_buffered_io
매개변수를 변경하기 전에 Red Hat 지원 계정 팀에 문의하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 노드에 대한 루트 수준 액세스.
프로세스
Cephadm 쉘에 로그인합니다.
예
[root@host01 ~]# cephadm shell
-
bluefs_buffered_io
매개변수의 현재 값은 다음 세 가지 방법으로 볼 수 있습니다.
방법 1
구성 데이터베이스에 저장된 값을 확인합니다.
예
[ceph: root@host01 /]# ceph config get osd bluefs_buffered_io
방법 2
특정 OSD의 구성 데이터베이스에 저장된 값을 확인합니다.
구문
ceph config get OSD_ID bluefs_buffered_io
예
[ceph: root@host01 /]# ceph config get osd.2 bluefs_buffered_io
방법 3
실행 중인 값이 구성 데이터베이스에 저장된 값과 다른 OSD의 실행 값을 확인합니다.
구문
ceph config show OSD_ID bluefs_buffered_io
예
[ceph: root@host01 /]# ceph config show osd.3 bluefs_buffered_io
12.8.2. Ceph OSD의 Ceph BlueFS 통계 보기
bluefs stats
명령을 사용하여 배치 및 공동 배치되지 않은 Ceph OSD에 대한 BluesFS 관련 정보를 확인합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- BlueStore로 구성된 오브젝트 저장소입니다.
- OSD 노드에 대한 루트 수준 액세스.
프로세스
Cephadm 쉘에 로그인합니다.
예
[root@host01 ~]# cephadm shell
BlueStore OSD 통계를 확인합니다.
구문
ceph daemon osd.OSD_ID bluefs stats
배치된 OSD의 예
[ceph: root@host01 /]# ceph daemon osd.1 bluefs stats 1 : device size 0x3bfc00000 : using 0x1a428000(420 MiB) wal_total:0, db_total:15296836403, slow_total:0
배치되지 않은 OSD의 예
[ceph: root@host01 /]# ceph daemon osd.1 bluefs stats 0 : 1 : device size 0x1dfbfe000 : using 0x1100000(17 MiB) 2 : device size 0x27fc00000 : using 0x248000(2.3 MiB) RocksDBBlueFSVolumeSelector: wal_total:0, db_total:7646425907, slow_total:10196562739, db_avail:935539507 Usage matrix: DEV/LEV WAL DB SLOW * * REAL FILES LOG 0 B 4 MiB 0 B 0 B 0 B 756 KiB 1 WAL 0 B 4 MiB 0 B 0 B 0 B 3.3 MiB 1 DB 0 B 9 MiB 0 B 0 B 0 B 76 KiB 10 SLOW 0 B 0 B 0 B 0 B 0 B 0 B 0 TOTALS 0 B 17 MiB 0 B 0 B 0 B 0 B 12 MAXIMUMS: LOG 0 B 4 MiB 0 B 0 B 0 B 756 KiB WAL 0 B 4 MiB 0 B 0 B 0 B 3.3 MiB DB 0 B 11 MiB 0 B 0 B 0 B 112 KiB SLOW 0 B 0 B 0 B 0 B 0 B 0 B TOTALS 0 B 17 MiB 0 B 0 B 0 B 0 B
다음과 같습니다.
0
: 이것은 전용 WAL 장치, 즉block.wal
을 나타냅니다.1
: 이것은 전용 DB 장치, 즉block.db
를 나타냅니다.2
: 이것은 블록 또는느린
주요블록
장치를 나타냅니다.장치 크기
: 장치의 실제 크기를 나타냅니다.Use
: 전체 사용량을 나타냅니다. BlueFS로 제한되지 않습니다.참고DB 및 WAL 장치는 BlueFS에서만 사용됩니다. 주요 장치의 경우 저장된 BlueStore 데이터의 사용량도 포함됩니다. 위의 예에서
2.3MiB
는 BlueStore의 데이터입니다.wal_total
,db_total
,slow_total
: 이러한 값은 위의 장치 값을 다시 작성합니다.db_avail
: 이 값은 필요한 경우 SLOW 장치에서 가져올 수 있는 바이트 수를 나타냅니다.사용량 매트릭스
-
WAL
,DB
,SLOW
: 특정 파일을 배치하려는 위치를 설명합니다. -
행
LOG
: BlueFS 재생 로그 인o 1에
대해 설명합니다. -
WAL
,DB
,SLOW
: 데이터가 실제로 배치되는 위치를 설명합니다. 값은 할당 단위에 있습니다. WAL 및 DB에는 성능상의 이유로 더 큰 할당 단위가 있습니다. -
열
* / *
:ceph-bluestore-tool
에 사용되는 가상 장치new-db
및new-wal
에 해당합니다. 항상0B
를 표시해야합니다. -
real
: 실제 사용량을 바이트 단위로 표시합니다. -
열
FILES
: 파일 수를 표시합니다.
-
MAXIMUMS
:이 표는 사용 매트릭스에서 각 항목의 최대 값을 캡처합니다.
추가 리소스
- BlueFS 파일에 대한 자세한 내용은 Ceph BlueStore BlueFS 를 참조하십시오.
- BlueStore 장치에 대한 자세한 내용은 Ceph BlueStore 장치를 참조하십시오.