ceph 원시 공간 사용량을 이해할 수 없습니다.
7 서버에 14 개의 HDD (14 개의 OSD)가 있으며 각 HDD 당 3TB ~ 총 42TB의 원시 공간이 있습니다.
ceph -s
osdmap e4055: 14 osds: 14 up, 14 in
pgmap v8073416: 1920 pgs, 6 pools, 16777 GB data, 4196 kobjects
33702 GB used, 5371 GB / 39074 GB avail
4 개의 블록 장치 (각각 5TB)를 만들었습니다.
df -h
/dev/rbd1 5.0T 2.7T 2.4T 54% /mnt/part1
/dev/rbd2 5.0T 2.7T 2.4T 53% /mnt/part2
/dev/rbd3 5.0T 2.6T 2.5T 52% /mnt/part3
/dev/rbd4 5.0T 2.9T 2.2T 57% /mnt/part4
df는 총 10,9TB가 사용되고 ceph는 33702GB가 사용됨을 보여줍니다. 사본이 2 개인 경우 ~ 22TB 여야하지만 이제는 33,7TB를 사용했습니다. 11TB가 누락되었습니다.
ceph osd pool get archyvas size
size: 2
ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
39074G 5326G 33747G 86.37
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
data 0 0 0 1840G 0
metadata 1 0 0 1840G 0
archyvas 3 4158G 10.64 1840G 1065104
archyvas2 4 4205G 10.76 1840G 1077119
archyvas3 5 3931G 10.06 1840G 1006920
archyvas4 6 4483G 11.47 1840G 1148291
장치 및 OSD FS 차단-XFS
답변
혼동의 원인 중 하나는 GB vs. GiB / TB vs. TiB (base 10 / base 2)이지만, 여기서 차이점을 모두 설명 할 수는 없습니다.
Ceph / RBD는 볼륨을위한 공간을 “지연 적으로”할당하려고합니다. 이것이 4 개의 5TB 볼륨을 생성했지만 20TB가 아니라 16TB가 사용되었다고보고하는 이유입니다. 그러나 16TB는 RBD 지원 파일 시스템의 “활성”내용의 합보다 많으며 이는 11TB에 불과합니다. 몇 가지 참고할 사항 :
RBD 지원 파일 시스템에서 파일을 삭제하면 파일 시스템은 내부적으로 블록을 사용 가능한 것으로 표시하지만 일반적으로 기본 블록 장치 (RBD)로 “복귀”하려고하지는 않습니다. 커널 RBD 버전이 최신 버전 (3.18 이상)이면 fstrim
해제 된 블록을 RBD에 반환하는 데 사용할 수 있어야합니다 . 이 파일 시스템에서 다른 파일을 작성하고 삭제 한 것 같습니다.
로 표시된 순 데이터 사용량을 넘어서는 파일 시스템 오버 헤드도 있습니다 df
. “슈퍼 블록”및 기타 파일 시스템 내부 데이터 구조 외에도 RBD가 데이터를 할당하는 세분성으로 인해 약간의 오버 헤드가 예상됩니다. RBD는 그 중 일부만 사용하더라도 항상 4MB 청크를 할당한다고 생각합니다.
답변
나는 ceph 전문가는 아니지만 조금 추측 해 보도록하겠습니다.
블록 장치는 discard
옵션 없이 장착되지 않습니다 . 따라서 작성 및 삭제 한 데이터는 파일 시스템 ( /mnt/part1
) 에 표시되지 않지만 한 번 작성되고 트리밍되지 않은 경우 기본 파일 시스템에 유지됩니다.
USED
풀 을 살펴보고 풀을 추가하면 16777GB가 ceph -s
표시됩니다. 그리고 2 배 (2 부)를 곱하면 33554GB가 사용됩니다. 이는 거의 사용 된 공간입니다.