
Ceph 버전: 16.2.13(pacific)(pacific은 더 이상 사용되지 않지만 전체 환경은 레거시(centos 7.3과 같은)라는 것을 알고 있습니다. 업그레이드할 권한도 없습니다.) 클러스터에는 6개의 서버(22 osds, 97 pgs)가 있습니다. . NFS를 통해 내보내지는 CephFS가 있습니다. 클라이언트는 NFSv4.1(NFS-Ganesha)을 통해 클러스터에 액세스하고 있습니다. 다음 명령은 클라이언트에서 마운트하는 데 사용됩니다.
# mount -t nfs -o nfsvers=4.1,noauto,soft,sync,proto=tcp 172.20.0.31:/exports /cephmnt
폴더(약 5.2GB)를 /cephmnt에 복사했습니다.
# cp sysdir /cephmnt
그래서 예상대로 공간이 확장되었습니다( df -Th
및 의 출력을 확인한 후 ceph df detail
).
# df -Th | grep -i ceph
172.20.0.31:/exports nfs4 26T 5.2G 26T 1% /cephmnt
# ceph df | grep -i cephfs
cephfs.new_storage.meta 8 32 26 MiB 28 79 MiB 0 25 TiB
cephfs.new_storage.data 9 32 5.2 GiB 1.42k 15 GiB 0.02 25 TiB
그러나 폴더를 삭제해도 공간이 줄어들지 않았습니다.
# rm -rf sysdir
# df -Th | grep -i ceph
172.20.0.31:/exports nfs4 26T 5.2G 26T 1% /cephmnt
# ceph df | grep -i cephfs
cephfs.new_storage.meta 8 32 26 MiB 28 79 MiB 0 25 TiB
cephfs.new_storage.data 9 32 5.2 GiB 1.42k 15 GiB 0.02 25 TiB
다음을 사용하여 데이터 풀의 개체 목록을 볼 수 있습니다.
# rados -p cephfs.new_storage.data ls
나는 ceph를 처음 접했기 때문에 이것이 ceph의 정상적인 동작인지 아닌지는 알 수 없지만 후자가 의심되어 약간의 파기를 시도했습니다.
스냅샷이 비활성화되었으며 두 풀 모두에 대한 기존 스냅샷이 없습니다.
# ceph fs set new_storage allow_new_snaps false
# rados -p cephfs.new_storage.meta lssnap
0 snaps
# rados -p cephfs.new_storage.data lssnap
0 snaps
bdev_async_discard
OSD의 bluestore가 true로 설정된 경우 사용할 수 없는 데이터를 자동으로 제거한다는 내용을 읽었으므로 bdev_enable_discard
이를 설정했습니다.
# ceph config get osd bdev_async_discard
true
# ceph config get osd bdev_enable_discard
true
그러나 이것은 효과가 없습니다. nfs 공유를 여러 번 마운트 해제하고 마운트했지만(한 번은 밤새 마운트 해제한 상태로 두었음) 다시 마운트 df -Th
하고 ceph df
여전히 동일한 공간을 표시합니다. cd
/cephmnt 디렉토리로 이동하여 동기화 명령을 내렸습니다 . 여전히 효과가 없습니다.
삭제된 파일의 공간을 어떻게 확보할 수 있나요?
나는 읽었다여기그 cephfs에는 지연 삭제가 있지만 이것이 내 경우에 일어나는 일인지 아니면 다른 문제가 있는지는 알 수 없습니다. 게으른 삭제인 경우 이를 어떻게 확인하고 실제 삭제를 트리거할 수 있나요? 게으른 삭제가 아니라면 실제 문제는 무엇입니까?
문제 해결을 위해 다른 데이터가 필요한지 문의하세요. 나는 지금 거의 3일 동안 이 작업을 하고 있는데 아이디어가 전혀 없어서 어떤 도움이라도 진심으로 감사드립니다.
편집 1: 자세한 내용을 추가했습니다.
[root@cephserver1 ~]# ceph osd df
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
0 hdd 3.63869 1.00000 3.6 TiB 1.6 GiB 593 MiB 2 KiB 1.0 GiB 3.6 TiB 0.04 1.07 10 up
1 hdd 3.63869 1.00000 3.6 TiB 1.1 GiB 544 MiB 19 KiB 559 MiB 3.6 TiB 0.03 0.71 9 up
2 hdd 3.63869 1.00000 3.6 TiB 1.7 GiB 669 MiB 6 KiB 1.0 GiB 3.6 TiB 0.05 1.12 13 up
4 hdd 3.63869 1.00000 3.6 TiB 1.6 GiB 742 MiB 26 KiB 918 MiB 3.6 TiB 0.04 1.07 13 up
13 hdd 3.63869 1.00000 3.6 TiB 1.7 GiB 596 MiB 4 KiB 1.2 GiB 3.6 TiB 0.05 1.15 8 up
5 hdd 3.63869 1.00000 3.6 TiB 1.9 GiB 1.2 GiB 56 MiB 713 MiB 3.6 TiB 0.05 1.26 16 up
6 hdd 3.63869 1.00000 3.6 TiB 1.6 GiB 407 MiB 124 MiB 1.1 GiB 3.6 TiB 0.04 1.04 9 up
7 hdd 3.63869 1.00000 3.6 TiB 1.3 GiB 418 MiB 67 MiB 887 MiB 3.6 TiB 0.04 0.89 12 up
8 hdd 3.63869 1.00000 3.6 TiB 1.1 GiB 667 MiB 73 MiB 372 MiB 3.6 TiB 0.03 0.72 15 up
9 hdd 3.63869 1.00000 3.6 TiB 1.7 GiB 1.2 GiB 7 KiB 526 MiB 3.6 TiB 0.05 1.13 18 up
10 hdd 3.63869 1.00000 3.6 TiB 1.5 GiB 906 MiB 8 KiB 579 MiB 3.6 TiB 0.04 0.96 11 up
11 hdd 3.63869 1.00000 3.6 TiB 1.7 GiB 1.1 GiB 6 KiB 628 MiB 3.6 TiB 0.05 1.15 11 up
12 hdd 3.63869 1.00000 3.6 TiB 1.8 GiB 600 MiB 16 MiB 1.2 GiB 3.6 TiB 0.05 1.17 15 up
3 hdd 3.63869 1.00000 3.6 TiB 2.8 GiB 1.6 GiB 37 MiB 1.2 GiB 3.6 TiB 0.08 1.86 17 up
14 hdd 3.63869 1.00000 3.6 TiB 1.6 GiB 857 MiB 37 KiB 781 MiB 3.6 TiB 0.04 1.06 12 up
15 hdd 3.63869 1.00000 3.6 TiB 1.9 GiB 1.4 GiB 2 KiB 499 MiB 3.6 TiB 0.05 1.26 12 up
16 hdd 3.63869 1.00000 3.6 TiB 2.2 GiB 972 MiB 1 KiB 1.2 GiB 3.6 TiB 0.06 1.44 15 up
17 hdd 3.63869 1.00000 3.6 TiB 1002 MiB 981 MiB 8 KiB 20 MiB 3.6 TiB 0.03 0.65 17 up
18 hdd 3.63869 1.00000 3.6 TiB 935 MiB 915 MiB 3 KiB 20 MiB 3.6 TiB 0.02 0.60 17 up
19 hdd 3.63869 1.00000 3.6 TiB 1.0 GiB 1006 MiB 0 B 28 MiB 3.6 TiB 0.03 0.67 10 up
20 hdd 3.63869 1.00000 3.6 TiB 866 MiB 835 MiB 0 B 31 MiB 3.6 TiB 0.02 0.56 20 up
21 hdd 3.63869 1.00000 3.6 TiB 731 MiB 709 MiB 0 B 22 MiB 3.6 TiB 0.02 0.47 11 up
TOTAL 80 TiB 33 GiB 19 GiB 374 MiB 14 GiB 80 TiB 0.04
MIN/MAX VAR: 0.47/1.86 STDDEV: 0.01
[root@cephserver1 ~]# ceph fs status
new_storage - 4 clients
======================
RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS
0 active new_storage.cephserver2.gvflgv Reqs: 0 /s 161 163 52 154
POOL TYPE USED AVAIL
cephfs.new_storage.meta metadata 79.4M 25.3T
cephfs.new_storage.data data 18.2G 25.3T
STANDBY MDS
new_storage.cephserver3.wxrhxm
new_storage.cephserver4.xwpidi
new_storage.cephserver1.fwjpoi
MDS version: ceph version 16.2.13 (5378749ba6be3a0868b51803968ee9cde4833a3e) pacific (stable)
[root@cephserver1 ~]# ceph -s
cluster:
id: dcad37bc-1185-11ee-88c0-7cc2556f5050
health: HEALTH_WARN
1 failed cephadm daemon(s)
services:
mon: 5 daemons, quorum cephserver1,cephserver2,cephserver3,cephserver4,cephserver5 (age 8d)
mgr: cephserver2.sztiyq(active, since 2w), standbys: cephserver1.emjcaa
mds: 1/1 daemons up, 3 standby
osd: 22 osds: 22 up (since 3h), 22 in (since 8d)
data:
volumes: 1/1 healthy
pools: 4 pools, 97 pgs
objects: 1.81k objects, 6.2 GiB
usage: 33 GiB used, 80 TiB / 80 TiB avail
pgs: 97 active+clean
io:
client: 462 B/s rd, 0 op/s rd, 0 op/s wr
[root@cephserver1 ~]# ceph health detail
HEALTH_WARN 1 failed cephadm daemon(s)
[WRN] CEPHADM_FAILED_DAEMON: 1 failed cephadm daemon(s)
daemon grafana.cephserver1 on cephserver1 is in error state
편집 2:중요한 점을 언급하는 것을 잊었습니다. 전체 스토리지 클러스터는 에어 갭 환경에 있습니다.
편집 3:eblock의 의견에 따라 온라인으로 OSD를 압축하려고 시도했지만 부분적으로 작동했습니다. ceph df
압축하기 전에 표시된 내용은 다음과 같습니다 .
[root@cephserver1 ~]# ceph df
--- RAW STORAGE ---
CLASS SIZE AVAIL USED RAW USED %RAW USED
hdd 80 TiB 80 TiB **33 GiB** **33 GiB** 0.04
TOTAL 80 TiB 80 TiB **33 GiB** **33 GiB** 0.04
--- POOLS ---
POOL ID PGS STORED OBJECTS USED %USED MAX AVAIL
device_health_metrics 1 1 17 MiB 29 50 MiB 0 25 TiB
cephfs.new_storage.meta 8 32 26 MiB 28 79 MiB 0 25 TiB
cephfs.new_storage.data 9 32 5.2GiB 1.42k 15 GiB 0.02 25 TiB
.nfs 10 32 1.7 KiB 7 40 KiB 0 25 TiB
압축 후 아래와 같이 33GiB가 23GiB로 축소되었습니다.
[root@cephserver1 ~]# ceph df
--- RAW STORAGE ---
CLASS SIZE AVAIL USED RAW USED %RAW USED
hdd 80 TiB 80 TiB **23 GiB** **23 GiB** 0.03
TOTAL 80 TiB 80 TiB **23 GiB** **23 GiB** 0.03
--- POOLS ---
POOL ID PGS STORED OBJECTS USED %USED MAX AVAIL
device_health_metrics 1 1 18 MiB 29 54 MiB 0 25 TiB
cephfs.new_storage.meta 8 32 26 MiB 28 79 MiB 0 25 TiB
cephfs.new_storage.data 9 32 5.2GiB 1.42k 15 GiB 0.02 25 TiB
.nfs 10 32 32 KiB 7 131 KiB 0 25 TiB
그러나 풀의 데이터는 다운되지 않았습니다. 더 이상 제안을 진심으로 감사드립니다.
편집 4:다음 명령을 사용하여 CephFS를 기본적으로(즉, 커널 명령 사이에 NFS 없이) 마운트했습니다.
# mount -t ceph 172.30.0.31:6789,172.30.0.32:6789,172.30.0.33:6789:/ /cephmnt -o name=user1
마운트한 후에 ls -a /cephmnt
는 이전 데이터가 표시되지 않습니다. 그러나 df -Th
CephFS가 마운트된 클라이언트에서 작업을 수행하면 이전 데이터(5.2GB)가 차지하는 공간이 계속 표시됩니다. 그래서 내 의심은 문제가 NFS에 있지 않다는 것입니다.