如何使用ceph来存储大量的小数据



我在虚拟机上建立了一个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

相关内容

  • 没有找到相关文章

最新更新