10、osd的numa亲和
ceph14开始支持osd的自动numa亲和,这样就不用麻烦再写脚本做numa绑定了。osd会根据网卡和存储的numa位置实现自动numa亲和。因此,14提供了三个新的参数实现numa节点自动绑定和手动绑定,分别是:
osd_numa_auto_affinity自动实现numa亲和;
osd_numa_node指定osd的运行的numa节点;
osd_numa_prefer_iface使osd使用同一个numa节点上的网络接口;
这几个参数都需要重启osd进程,运行期修改是无效的。在osd启动时会检测存储后端的numa位置,存储内外网网卡的numa位置,如果这三者相等且大于等于0那么就执行绑定。如果这三者不等就放弃绑定。需要说明的是,按照现在的代码显示,如果网卡是做了绑定的,那么ceph代码是无法识别绑定后的网卡使用了那个numa节点,因此,要使用numa自动亲和就不能使用网卡绑定。机械盘也是不支持自动numa亲和的,只有使用了pci总线的存储后端才可以使用numa自动亲和,比如:nvme的ssd。
ceph14还提供了一个命令:ceph osd numa-status来显示osd的numa状态。
11、ceph集群的qos
在以往版本增加了recovery、scrub、snap_trim操作的sleep动作基础上又增加了osd_delete_sleep参数,这个参数可以限制删除动作的带宽,防止批量删除过度消耗io资源。
期待已久的基于mclock的qos现在还是处在试验状态,尝试了将osd_op_queue从wpq改为mclock_opclass或者mclock_opclass,然后设置osd_op_queue_mclock_client_op_lim为100,但是似乎没有作用。
12、rbd组件相关新功能
rbd的新功能里最让人激动的是rbd的qos,在这个版本里rbd已经可以实现对image的限速,而且限速相当精确。对rbd的image的限速分为三个层面:集群层面、pool层面和image层面。使用以下参数进行控制:
rbd_qos_bps_burst
rbd_qos_bps_limit
rbd_qos_iops_burst
rbd_qos_iops_limit
rbd_qos_read_bps_burst
rbd_qos_read_bps_limit
rbd_qos_read_iops_burst
rbd_qos_read_iops_limit
rbd_qos_schedule_tick_min
rbd_qos_write_bps_burst
rbd_qos_write_bps_limit
rbd_qos_write_iops_burst
rbd_qos_write_iops_limit
这些参数除了rbd_qos_schedule_tick_min默认参数为50外,其他都是0。0表示不限速,rbd_qos_schedule_tick_min=50表示qos的最小调度间隔是50毫秒。每个参数的意义都很明确就不做说明了。
在集群层面使用ceph config set global设置rbd_qos_*这组参数,如果设置了这组参数,全集群内的image都将受到这组参数的限制。
在pool层面使用rbd config pool set 设置rbd_qos_*这组参数,如果设置了这组参数,全poo的image将受到这组参数的限制。在这个pool内,全局层面的参数将被覆盖、失效。
在image层面使用 rbd config image set image设置rbd_qos_*这组参数,如果设置了这组参数,对全局和pool的参数设置都将被覆盖。
rbd 全局和pool的qos参数修改后不会即时生效,必须等待下次rbd客户端重新被初始化,但是在image层面的参数修改是即时生效的,rbd客户端无需重新初始化。
以下展示一个image限速为例子:
rbd -p rbd-ssd config image set test000 rbd_qos_iops_limit 1000
rbd -p rbd-ssd config image ls test000列出所有与test000相关的参数
下图显示对rbd-ssd池的test000限速,对rbd-hdd池的test002不限速的对比。
需要说明的是image的qos并没有使用mclock算法实现,而是使用了ceph原生的节流阀机制,是无法实现对io资源的预留的,还得耐心等待基于mclock的qos可用。
在rbd命令也同时提供了两个新的命令rbd perf image iostat和rbd perf image iotop,可以监控pool内各个image的iops、吞吐和延时,实时控用户的io使用率,实现对用户的区别服务有很大帮助。
rbd perf image iostat结果如下:
rbd perf image iotop结果如下:
rbd工具提供了跨pool迁移的工具,比较遗憾的是只能冷迁移,不能热迁移。
rbd migration abort 中断一个迁移动作
rbd migration commit 提交一个image迁移
rbd migration execute 执行一个image迁移
rbd migration prepare 准备一个image迁移
例如:
rbd migration prepare rbd-hdd/test000 rbd-ssd/test000
rbd migration execute rbd-hdd/test000
rbd migration commit rbd-hdd/test000
完成rbd-hdd/test000的跨池迁移
rbd sparsify使image稀疏化。就是清理没有使用的块,减少存储实际占用。
13、cephfs相对13增加了子卷、mds自动均衡等功能,但都处在试验状态,不可用,所以没有深入了解。
当前ceph14无论是集群还是客户端都不算稳定,还得等14.2.x放出后再做测试。
网友评论