硬件
CPU
建议使用高主频的处理器
磁盘
- 磁盘IO
Linux 内核支持多种I/O调度算法,包括CFQ,Noop,Deadline 等调度算法,应该根据不同的存储介质和IO场景选择不同的调度算法,对于固态硬盘,不推荐使用CFQ调度算法。
-
磁盘数量
某种程度上,增加OSD数量对 Ceph 写操作性能提升有帮助。 -
磁盘转速
如果使用传统机械磁盘作存储,选择使用 7200RPM 以上的SATA磁盘。 -
Non-RAID 配置
网络
使用万兆网卡
多网卡聚合负载均衡
内核参数
-
net.ipv4.tcp_wmem
设置操作系统的接收缓冲区值 -
net.ipv4.tcp_rmem
设置操作系统的发送缓冲区值 -
net.core_wmem_max
操作系统接收的所有类型的连接的最大接收缓冲区大小 -
net.core_rmem_max
操作系统接收的所有类型的连接的最大发送缓冲区大小
内存
Scrub
Scrub 是 ceph 验证存储在RADOS中的对象是否一致并防止数据损坏的方法,Scrub 有两种模式:普通和深度模式。在普通模式下,Scrub 操作会读取某个放置组的所有对象,并比较副本,以确保它们的大小和属性值一致。在深度模式下,Scrub 操作将会更进一步,比较对象的实际数据内容。所以深度模式下会比普通模式产生更多的IO。
Ceph 两个参数:osd_scrub_begin_hour
和 osd_scrub_end_hour
决定了 Scrub 操作的始末时间,可以调整这两个参数,规避对其业务的影响。
ceph 配置参数
调整rocksdb 和 wal
调整Allocation Size
参考资料:
1、《Ceph 企业级分布式存储原理与工程实践》
网友评论