做过存储业务的同学都知道,有些数据块存取频率高("热"区块),有些数据存取频率低("冷区块")。如果不分冷热地一律使用高速的SSD存储是很不划算的。
小编也遇到了同样的问题。于是想到了ceph的自动分层存储的功能,既能保证"冷区块"可以访问,又能保证"热区块"可以应对并发必然是很好的。
分层存储的方式也分为write back、read forward、read proxy、write proxy、read only五种,具体采用哪中,接下来就要动手验证了。
1. 测试组网
设备信息
2. 测试方法及思路
基本思路:将设置缓存前和设置缓存后的测试结果进行比较
使用的工具:rados命令、dd命令
注:rados是ceph自带的压力测试工具;dd是linux自带的简单的读写测试工具;(由于小编常用cephfs,所以测试也用到此工具)
注意事项:
为了避免操作系统缓存对dd命令的影响,测试文件最好超过内存大小;
当读文件测试时,应先将内存sync到磁盘后再进行读操作;
为节省时间,应先用rados确定选型,然后用dd命令验证.
3. 测试前准备
3.1 osd分布结构
[root@ceph01 crush]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-7 0.18999 rack vrack
3 0.18999 osd.3 up 1.00000 1.00000
-6 0.23799 rack r1
-5 0.23799 host ceph04
4 0.11899 osd.4 up 1.00000 1.00000
5 0.11899 osd.5 up 1.00000 1.00000
3.2 副本分布规则
#cephfs_data使用此规则
rule sata_ruleset {
ruleset 1
type replicated
min_size 1
max_size 10
step take r1
step take ceph04
step chooseleaf firstn 0 type osd
step emit
}
#cache_data使用此规则
rule ssd_ruleset {
ruleset 2
type replicated
min_size 1
max_size 10
step take vrack
step choose firstn 1 type osd
step emit
}
#cephfs_matadata使用此规则
rule meta_ruleset {
ruleset 3
type replicated
min_size 1
max_size 10
step take vrack
step chooseleaf firstn 1 type osd
step emit
step take r1
step take ceph04
step chooseleaf firstn -1 type osd
step emit
}
4. 测试场景及结果
1) 单盘不挂载云存的读写测试:
测试场景:
以4MB的块大小顺序写10240次;
以4MB的块大小顺序读10240次;
测试结果: