我在虚拟机上建立了一个cephfs集群,然后想用这个集群来存储一批图像数据(总共1.4G,每个图像大约8KB(。集群存储两个副本,总共有12G的可用空间。但当我在里面存储数据时,系统会提示可用空间不足。如何解决这个问题?集群的详细信息如下:
集群信息:
集群:
id: 891fb1a7-df35-48a1-9b5c-c21d768d129b
health: HEALTH_ERR
1 MDSs report slow metadata IOs
1 MDSs report slow requests
1 full osd(s)
1 nearfull osd(s)
2 pool(s) full
Degraded data redundancy: 46744/127654 objects degraded (36.618%), 204 pgs degraded
Degraded data redundancy (low space): 204 pgs recovery_toofull
too many PGs per OSD (256 > max 250)
clock skew detected on mon.node2, mon.node3
服务:
mon: 3 daemons, quorum node1,node2,node3
mgr: node2(active), standbys: node1, node3
mds: cephfs-1/1/1 up {0=node1=up:active}, 2 up:standby
osd: 3 osds: 2 up, 2 in
数据:
pools: 2 pools, 256 pgs
objects: 63.83k objects, 543MiB
usage: 10.6GiB used, 1.40GiB / 12GiB avail
pgs: 46744/127654 objects degraded (36.618%)
204 active+recovery_toofull+degraded
52 active+clean
Ceffs空间使用情况:
[root@node10]#df-hT文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/nlas root xfs 36G 22G 14G 62%/
devtmpfs devtmpfs 2.3G 0 2.3G 0%/dev
tmpfs tmpfs 2.3G 0 2.3G 0%
/dev/shm
tmpfs tmpfs 2.3G 8.7M 2.3G 1%/运行
tmpfs tmpfs 2.3G 0 2.3G 0%
/sys/fs/cgroup
/dev/sda1 xfs 1014M 178M 837M 18%/启动
tmpfs tmpfs 2.3G 28K 2.3G 1%
/var/lib/ceph/osd/ceph-0
tmpfs tmpfs 471M 0 471M 0%
/运行/用户/0
192.168.152.3:6789192.168.152.4:6789192.168.15.25:6789:/ceph 12G 11G 1.5G 89%/mnt/测试
Ceph OSD:
[root@node1mnt]#ceph osd池ls
cephfs_data
cephfs_metadata
[root@node1mnt]#ceph-osd池获取cephfs_data大小
尺寸:2
[root@node1mnt]#ceph-osd池获取cephfs_metadata大小
尺寸:2
ceph.dir.布局:
[root@node1mnt]#getfattr-n ceph.dir.layout/mnt/test
getfattr:从绝对路径名中删除前导"/">
#文件:mnt/test
ceph.dir.layout=";stripe_ unit=65536 stripe_ count=1 object_ size=4194304 pool=cephfs_;
存储小文件时,需要注意最小分配大小。在Nautilus发布之前,SSD默认为16k,HDD默认为64k,但对于新的CephPacific,两者的默认最小分配都已调整为4k。
我建议你使用Pacific,或者手动将八达通调到相同的号码,如果那是你安装的版本的话。
如果您的文件大小是最小分配大小的倍数,您还希望使用复制(而不是擦除编码(,因为EC的块将使用相同的最小分配,否则将浪费空闲空间。您已经通过使用复制做出了正确的选择,我只是在这里提到它,因为您可能会被EC吹嘘的节省空间的特性所吸引——不幸的是,这些特性不适用于小文件。
您需要将bluestore_min_alloc_size
默认设置为4096,其值为64kb
[osd]
bluestore_min_alloc_size = 4096
bluestore_min_alloc_size_hdd = 4096
bluestore_min_alloc_size_ssd = 4096