
Ceph-Version: 16.2.13 (Pacific) (Ich weiß, dass Pacific veraltet ist, aber die gesamte Umgebung ist veraltet (wie CentOS 7.3). Ich bin auch nicht berechtigt, ein Upgrade durchzuführen.) Der Cluster hat 6 Server (22 OSDs, 97 PGS). Es gibt ein CephFS, das über NFS exportiert wird. Die Clients greifen über NFSv4.1 (NFS-Ganesha) auf den Cluster zu. Der folgende Befehl wird im Client zum Mounten verwendet:
# mount -t nfs -o nfsvers=4.1,noauto,soft,sync,proto=tcp 172.20.0.31:/exports /cephmnt
Ich habe einen Ordner (ca. 5,2 GB) nach /cephmnt kopiert.
# cp sysdir /cephmnt
Der Speicherplatz wurde also wie erwartet erweitert (nachdem ich die Ausgabe von df -Th
und überprüft hatte 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
Wenn ich den Ordner lösche, wird der Speicherplatz jedoch nicht wieder kleiner.
# 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
Ich kann die Liste der Objekte im Datenpool anzeigen mit:
# rados -p cephfs.new_storage.data ls
Ich bin ziemlich neu bei Ceph, daher weiß ich nicht, ob dies ein normales Verhalten bei Ceph ist oder nicht, obwohl ich Letzteres vermute, also habe ich versucht, ein wenig nachzuforschen.
Snapshots sind deaktiviert und es gibt keine vorhandenen Snapshots für beide Pools:
# 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
Ich hatte irgendwo gelesen, dass Bluestore in OSDs unbrauchbare Daten automatisch entfernt, wenn bdev_async_discard
und bdev_enable_discard
auf true gesetzt sind, also hatte ich sie gesetzt
# ceph config get osd bdev_async_discard
true
# ceph config get osd bdev_enable_discard
true
Aber das hat keine Wirkung. Ich habe die NFS-Freigabe mehrmals ausgehängt und wieder eingehängt (einmal habe ich sie sogar über Nacht ausgehängt gelassen), aber jedes Mal, wenn ich sie wieder einhänge, wird df -Th
immer ceph df
noch der gleiche belegte Speicherplatz angezeigt. Ich cd
bin in das Verzeichnis /cephmnt gegangen und habe den Synchronisierungsbefehl eingegeben. Immer noch keine Wirkung.
Wie kann ich Speicherplatz für gelöschte Dateien freigeben?
Ich habe gelesenHierdass CephFS eine verzögerte Löschung hat, aber ich weiß nicht, ob dies in meinem Fall der Fall ist oder ob ein anderes Problem vorliegt. Wenn es sich um eine verzögerte Löschung handelt, wie kann ich das dann bestätigen und wie kann ich die tatsächliche Löschung auslösen? Wenn es keine verzögerte Löschung ist, was ist dann das eigentliche Problem?
Bitte fragen Sie, ob weitere Daten zur Fehlerbehebung erforderlich sind. Ich arbeite jetzt seit fast 3 Tagen daran und habe überhaupt keine Ideen mehr, daher bin ich für jede Hilfe sehr dankbar.
Bearbeitung 1: weitere Details hinzugefügt
[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
Bearbeitung 2:Ich habe vergessen, einen wichtigen Punkt zu erwähnen. Der gesamte Speichercluster befindet sich in einer Air-Gap-Umgebung.
Bearbeitung 3:Ich habe versucht, die OSDs online zu komprimieren, wie in den Kommentaren von eblock vorgeschlagen, und es hat teilweise funktioniert. Dies wurde ceph df
vor dem Komprimieren angezeigt:
[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
Nach der Komprimierung wurden die 33 GiB auf 23 GiB reduziert, wie unten gezeigt
[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
Die Daten in den Pools sind jedoch nicht gesunken. Weitere Vorschläge sind daher herzlich willkommen.
Bearbeitung 4:Ich habe CephFS nativ (also ohne NFS dazwischen mit Kernel-Befehl) mit dem folgenden Befehl gemountet:
# mount -t ceph 172.30.0.31:6789,172.30.0.32:6789,172.30.0.33:6789:/ /cephmnt -o name=user1
Nach dem Mounten tue ich das ls -a /cephmnt
, aber ich sehe die alten Daten nicht. Wenn ich das jedoch df -Th
auf dem Client mache, auf dem CephFS gemountet ist, sehe ich immer noch den von den alten Daten belegten Speicherplatz (5,2 GB). Ich vermute also, dass das Problem nicht bei NFS liegt.