1、硬件优化

2、操作系统优化

3、网络优化

4、Ceph自身优化

 

 

一、硬件优化

1、OSD节点的CPU应当依照一个osd一个cpu核心匹配。

2、Mon节点对cpu要求不高,内存>2G

3、mds节点cpu要求较高,可以适当配置。

4、BIOS设置启用HT(超线程)、VT(虚拟化)

5、BIOS关闭节能选项

6、BIOS关闭NUMA

7、建议使用SAS盘替代HDD,SAS比HDD拥有更好的URE,更低的PG修复。

 

 

二、操作系统优化

1、修改Linux默认的IO调度:

 

SSDecho noop > /sys/block/sdX/queue/scheduler   //SSD优化

 

HDDecho deadline > /sys/block/sdX/queue/scheduler //机械硬盘优化

 

2、Linux默认的预读不适合RADOS,建议设置更大值。

修改如下:

echo 1892 > /sys/block/sdX/queue/read_ahead_kb

 

3、进程数量

OSD进程需要消耗大量进程,关于内核PID,如果单服务器OSD数量过多,建议设置更大值。

Echo 4194303 > /proc/sys/kernel/pid_max

 

4、调整CPU频率,使其运行在高性能之下。

echo performance | tee /sys/devices/system/cpu/cpu*/cpufreg/scaling_governor >/dev/null

 

5、SWAP交换分区

修改 vi /etc/sysctl.conf ,将vm.swappiness=0加入进去,降低SWAP使用率,减少磁盘IO,提升性能。

 

 

三、网络优化

建议双网卡,万兆网卡,提升带宽。

 

四、Ceph自身优化

1、OSD节点密度

单个节点的容量应当小于集群容量的10%,按照大量的小容量节点部署。


2、配置文件

参考如下/etc/ceph.conf的配置:

 

[global]

fsid = 059f27e8-a23f-4587-9033-3e3679d03b31

mon_host = 10.10.20.102, 10.10.20.101, 10.10.20.100

auth cluster required = cephx

auth service required = cephx

auth client required = cephx

osd pool default size = 3

osd pool default min size = 1

public network = 10.10.20.0/24

cluster network = 10.10.20.0/24

max open files = 131072

[mon]

mon data = /var/lib/ceph/mon/ceph-$id

[osd]

osd data = /var/lib/ceph/osd/ceph-$id

osd journal size = 20000

osd mkfs type = xfs

osd mkfs options xfs = -f

filestore xattr use omap = true

filestore min sync interval = 10

filestore max sync interval = 15

filestore queue max ops = 25000

filestore queue max bytes = 10485760

filestore queue committing max ops = 5000

filestore queue committing max bytes = 10485760000

journal max write bytes = 1073714824

journal max write entries = 10000

journal queue max ops = 50000

journal queue max bytes = 10485760000

osd max write size = 512

osd client message size cap = 2147483648

osd deep scrub stride = 131072

osd op threads = 8

osd disk threads = 4

osd map cache size = 1024

osd map cache bl size = 128

osd mount options xfs = "rw,noexec,nodev,noatime,nodiratime,nobarrier"

osd recovery op priority = 4

osd recovery max active = 10

osd max backfills = 4

[client]

rbd cache = true

rbd cache size = 268435456

rbd cache max dirty = 134217728

rbd cache max dirty age = 5

 

 

参考:https://blog.csdn.net/fuzhongfaya/article/details/80932766