一、Ceph版本选择
Ceph版本来源介绍
Ceph 社区最新版本是 14,而 Ceph 12 是市面用的最广的稳定版本。
第一个 Ceph 版本是 0.1 ,要回溯到 2008 年 1 月。多年来,版本号方案一直没变,直到 2015 年 4 月 0.94.1 ( Hammer 的第一个修正版)发布后,为了避免 0.99 (以及 0.100 或 1.00 ?),制定了新策略。
x.0.z - 开发版(给早期测试者和勇士们)
x.1.z - 候选版(用于测试集群、高手们)
x.2.z - 稳定、修正版(给用户们)
x 将从 9 算起,它代表 Infernalis ( I 是第九个字母),这样第九个发布周期的第一个开发版就是 9.0.0 ;后续的开发版依次是 9.0.1 、 9.0.2 等等。
版本名称 | 版本号 | 发布时间 |
---|---|---|
Argonaut | 0.48版本(LTS) | 2012年6月3日 |
Bobtail | 0.56版本(LTS) | 2013年5月7日 |
Cuttlefish | 0.61版本 | 2013年1月1日 |
Dumpling | 0.67版本(LTS) | 2013年8月14日 |
Emperor | 0.72版本 | 2013年11月9 |
Firefly | 0.80版本(LTS) | 2014年5月 |
Giant | Giant | October 2014 - April 2015 |
Hammer | Hammer | April 2015 - November 2016 |
Infernalis | Infernalis | November 2015 - June 2016 |
Jewel | 10.2.9 | 2016年4月 |
Kraken | 11.2.1 | 2017年10月 |
Luminous | 12.2.12 | 2017年10月 |
mimic | 13.2.7 | 2018年5月 |
nautilus | 14.2.5 | 2019年2月 |
octopus | 15.2.1 | 2020年4月 |
Luminous新版本特性
- Bluestore
- ceph-osd的新后端存储BlueStore已经稳定,是新创建的OSD的默认设置。
BlueStore通过直接管理物理HDD或SSD而不使用诸如XFS的中间文件系统,来管理每个OSD存储的数据,这提供了更大的性能和功能。 - BlueStore支持Ceph存储的所有的完整的数据和元数据校验。
- BlueStore内嵌支持使用zlib,snappy或LZ4进行压缩。(Ceph还支持zstd进行RGW压缩,但由于性能原因,不为BlueStore推荐使用zstd)
- ceph-osd的新后端存储BlueStore已经稳定,是新创建的OSD的默认设置。
- 集群的总体可扩展性有所提高。已经成功测试了多达10,000个OSD的集群。
- ceph-mgr
- ceph-mgr是一个新的后台进程,这是任何Ceph部署的必须部分。虽然当ceph-mgr停止时,IO可以继续,但是度量不会刷新,并且某些与度量相关的请求(例如,ceph df)可能会被阻止。我们建议您多部署ceph-mgr的几个实例来实现可靠性。
- ceph-mgr守护进程daemon包括基于REST的API管理。注:API仍然是实验性质的,目前有一些限制,但未来会成为API管理的基础。
- ceph-mgr还包括一个Prometheus插件。
- ceph-mgr现在有一个Zabbix插件。使用zabbix_sender,它可以将集群故障事件发送到Zabbix Server主机。这样可以方便地监视Ceph群集的状态,并在发生故障时发送通知。
二、安装前准备 nautilus版
ceph官网安装方法-未来支持docker容器与Kubernetes安装,其他安装方法逐步淘汰
- 安装要求
- 最少三台Centos7系统虚拟机用于部署Ceph集群。硬件配置:2C4G,另外每台机器最少挂载三块硬盘(每块盘50G)
cephnode01 192.168.0.6
cephnode02 192.168.0.7
cephnode03 192.168.0.8
[root@cephnode01 my-cluster]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 1G 0 part [SWAP]
└─sda3 8:3 0 18.8G 0 part /
sdb 8:16 0 50G 0 disk
sdc 8:32 0 50G 0 disk
sr0 11:0 1 1024M 0 rom
- 内网yum源服务器,因资源状况,部署到node01节点上
cephnode01 192.168.0.6
- 环境准备(在Ceph三台机器上操作)
#(1)关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
#(2)关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
#(3)关闭NetworkManager
systemctl disable NetworkManager
systemctl stop NetworkManager
#(4)在cephnode01上配置免密登录到cephnode02、cephnode03
yum install sshpass -y
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
for ip in 6 7 8 ;do sshpass -p123456 ssh-copy-id -o StrictHostKeyChecking=no 192.168.0.$ip ;done
#(5)设置主机名:
hostnamectl set-hostname cephnode01
hostnamectl set-hostname cephnode02
hostnamectl set-hostname cephnode03
#(6)在cephnode01上添加主机名与IP对应关系:发送到其他俩台节点
cat >>/etc/hosts <<EOF
192.168.0.6 cephnode01
192.168.0.7 cephnode02
192.168.0.8 cephnode03
EOF
for ip in 7 8 ;do scp -rp /etc/hosts root@192.168.0.$ip:/etc/hosts ;done
#(7)设置文件描述符
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF
#(8)内核参数优化
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
echo 'kernel.pid_max = 4194303' >>/etc/sysctl.conf
echo "vm.swappiness = 0" >>/etc/sysctl.conf
sysctl -p
#(9)同步网络时间和修改时区
yum install chrony -y
vim /etc/chrony.conf
server ntp1.aliyun.com iburst
allow 192.168.0.6/24
---
systemctl restart chronyd.service
systemctl enable chronyd.service
chronyc sources
其他节点上也安装chrony时间同步 同步cephnode01节点
yum install chrony -y
vim /etc/chrony.conf
server cephnode01 iburst
---
systemctl restart chronyd.service
systemctl enable chronyd.service
chronyc sources
#(10)read_ahead,通过数据预读并且记载到随机访问内存方式提高磁盘读操作
echo "8192" > /sys/block/sda/queue/read_ahead_kb
#(11) I/O Scheduler,SSD要用noop(电梯式调度程序),SATA/SAS使用deadline(截止时间调度程序)
#https://blog.csdn.net/shipeng1022/article/details/78604910
echo "deadline" >/sys/block/sda/queue/scheduler
echo "deadline" >/sys/block/sdb/queue/scheduler
echo "deadline" >/sys/block/sdc/queue/scheduler
#echo "noop" >/sys/block/sd[x]/queue/scheduler
三、安装ceph的yum源
1、安装httpd、createrepo和epel源
yum install httpd createrepo epel-release -y
2、编辑yum源文件
[root@cephyumresource01 ~]# more /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
3、下载Ceph安装包
yum --downloadonly --downloaddir=/var/www/html/ceph/rpm-nautilus/el7/x86_64/ install ceph ceph-radosgw
4、下载Ceph依赖文件
mkdir -p /var/www/html/ceph/rpm-nautilus/el7/{SRPMS,noarch}/repodata/
#cd /var/www/html/ceph/rpm-nautilus/el7/SRPMS/
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/ceph-14.2.9-0.el7.src.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/ceph-deploy-2.0.1-0.src.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/ceph-release-1-1.el7.src.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/ceph-medic-1.0.4-16.g60cf7e9.el7.src.rpm
#cd /var/www/html/ceph/rpm-nautilus/el7/SRPMS/repodata/
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/repodata/repomd.xml
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/repodata/52bf459e39c76b2ea2cff2c5340ac1d7b5e17a105270f5f01b454d5a058adbd2-filelists.sqlite.bz2
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/repodata/4f3141aec1132a9187ff5d1b4a017685e2f83a761880884d451a288fcedb154e-primary.sqlite.bz2
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/repodata/0c554884aa5600b1311cd8f616aa40d036c1dfc0922e36bcce7fd84e297c5357-other.sqlite.bz2
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/repodata/7174d8e7c9213ec978593c4e606cdd7df7f61c5f834df614a1d226be1b82e3c7-filelists.xml.gz
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/repodata/7f7da846d631f70c8ecb4ff0fcead7f3de259bc49bd12ef0d54c53515322cdac-other.xml.gz
wget mirrors.163.com/ceph/rpm-nautilus/el7/SRPMS/repodata/539ba78d94452b66f01bd9548a9731c59494f658eb397f7a70a24dd3ac39e3f5-primary.xml.gz
#cd /var/www/html/ceph/rpm-nautilus/el7/noarch/
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/ceph-deploy-2.0.1-0.noarch.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/ceph-grafana-dashboards-14.2.9-0.el7.noarch.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/ceph-mgr-dashboard-14.2.9-0.el7.noarch.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/ceph-mgr-diskprediction-cloud-14.2.9-0.el7.noarch.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/ceph-mgr-diskprediction-local-14.2.9-0.el7.noarch.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/ceph-mgr-rook-14.2.9-0.el7.noarch.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/ceph-mgr-ssh-14.2.9-0.el7.noarch.rpm
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm
#cd /var/www/html/ceph/rpm-nautilus/el7/noarch/repodata/
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/repodata/repomd.xml
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/repodata/a4bf0ee38cd4e64fae2d2c493e5b5eeeab6cf758beb7af4eec0bc4046b595faf-filelists.sqlite.bz2
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/repodata/183278bb826f5b8853656a306258643384a1547c497dd8b601ed6af73907bb22-other.sqlite.bz2
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/repodata/597468b64cddfc386937869f88c2930c8e5fda3dd54977c052bab068d7438fcb-primary.sqlite.bz2
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/repodata/a2ecd63e244886acec55d11a97488f815ae01a1bb9cae6a446a3abdc1bbdf2e6-other.xml.gz
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/repodata/1b4ca22bc8aa1494c97e3fe745ba8d65aac748159795fb7227fb59d159002f6e-filelists.xml.gz
wget mirrors.163.com/ceph/rpm-nautilus/el7/noarch/repodata/41126be82950cb067507876723d4a9a89e9a9da346e10a525c2a11729aab2050-primary.xml.gz
#cd /var/www/html/ceph/rpm-nautilus/el7/x86_64/repodata/
wget mirrors.163.com/ceph/rpm-nautilus/el7/x86_64/repodata/repomd.xml
wget mirrors.163.com/ceph/rpm-nautilus/el7/x86_64/repodata/27b6cf391fccef30fb8d8ffaf0d9647d2547c26592ec7b0336734bd45c7a856a-filelists.xml.gz
wget mirrors.163.com/ceph/rpm-nautilus/el7/x86_64/repodata/3a8c6c7f1e8922e215b5d3b207e1d336a8f32c2a90931ebf8ec69993487476d5-other.xml.gz
wget mirrors.163.com/ceph/rpm-nautilus/el7/x86_64/repodata/2a42f9b94204f9784d2e239962323409dbbab38162c8f155bf9da8dd5c163389-primary.xml.gz
#cd /var/www/html/ceph/rpm-nautilus/el7/x86_64/
wget mirrors.163.com/ceph/rpm-nautilus/el7/x86_64/ceph-fuse-14.2.9-0.el7.x86_64.rpm
5、启动httpd
systemctl restart httpd
systemctl enable httpd
6、更新yum源
createrepo --update /var/www/html/ceph/rpm-nautilus
四、安装Ceph集群
1、编辑内网yum源,将yum源同步到其它节点并提前做好yum makecache
,可以使用官方源避免繁琐
# vim /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://192.168.0.6/ceph/rpm-nautilus/el7/$basearch
gpgcheck=0
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://192.168.0.6/ceph/rpm-nautilus/el7/noarch
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://192.168.0.6/ceph/rpm-nautilus/el7/SRPMS
gpgcheck=0
priority=1
#将yum源传输到其他节点
for ip in 7 8 ;do scp -rp /etc/yum.repos.d/ceph.repo root@192.168.0.$ip:/etc/yum.repos.d/ceph.repo ;done
#在每台node上执行 yum makecache
2、在cephnode01上安装 ceph-deploy
yum install -y ceph-deploy
rpm -qa|grep ceph-deploy
ceph-deploy-2.0.1-0.noarch
#测试一下发现报错的话处理方法:
[root@cephnode01 ~]# ceph-deploy --version
Traceback (most recent call last):
File "/usr/bin/ceph-deploy", line 18, in <module>
from ceph_deploy.cli import main
File "/usr/lib/python2.7/site-packages/ceph_deploy/cli.py", line 1, in <module>
import pkg_resources
ImportError: No module named pkg_resources
#原因是缺python-setuptools,安装它即可
yum install python-setuptools -y
ceph-deploy --version
2.0.1
3、创建一个my-cluster目录,所有命令在此目录下进行(文件位置和名字可以随意)
mkdir /my-cluster
cd /my-cluster
4、安装Ceph软件(每个节点执行)
yum -y install epel-release
yum install -y ceph
#或者在管理节点上执行
ceph-deploy install cephnode01 cephnode02 cephnode03
ceph -v
ceph version 14.2.9 (581f22da52345dba46ee232b73b990f06029a2a0) nautilus (stable)
5、创建一个Ceph集群(建议是奇数)
ceph-deploy new cephnode01 cephnode02 cephnode03
6、生成monitor检测集群所使用的的秘钥(激活监控节点)
ceph-deploy mon create-initial
7、安装Ceph CLI,方便执行一些管理命令
如前所示,我们执行admin的命令,要提供admin的key(–keyring ceph.client.admin.keyring)以及配置文件(-c ceph.conf)。在后续的运维中,我们经常需要在某个node上执行admin命令。每次都提供这些参数比较麻烦。实际上,ceph会默认地从/etc/ceph/中找keyring和ceph.conf。因此,我们可以把ceph.client.admin.keyring和ceph.conf放到每个node的/etc/ceph/。ceph-deploy可以帮做这些
# ceph-deploy admin cephnode01 cephnode02 cephnode03
8、配置mgr,用于管理集群
# ceph-deploy mgr create cephnode01 cephnode02 cephnode03
9、部署rgw
# yum install -y ceph-radosgw
# ceph-deploy rgw create cephnode01
10、部署MDS(CephFS)
# ceph-deploy mds create cephnode01 cephnode02 cephnode03
11、添加osd(添加的磁盘必须是没有被处理过的裸盘)
ceph-deploy osd create --data /dev/sdb cephnode01
ceph-deploy osd create --data /dev/sdc cephnode01
ceph-deploy osd create --data /dev/sdb cephnode02
ceph-deploy osd create --data /dev/sdc cephnode02
ceph-deploy osd create --data /dev/sdb cephnode03
ceph-deploy osd create --data /dev/sdc cephnode03
#ID从0开始排列
[root@cephnode01 my-cluster]# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.29279 root default
-3 0.09760 host cephnode01
0 hdd 0.04880 osd.0 up 1.00000 1.00000
1 hdd 0.04880 osd.1 up 1.00000 1.00000
-5 0.09760 host cephnode02
2 hdd 0.04880 osd.2 up 1.00000 1.00000
3 hdd 0.04880 osd.3 up 1.00000 1.00000
-7 0.09760 host cephnode03
4 hdd 0.04880 osd.4 up 1.00000 1.00000
5 hdd 0.04880 osd.5 up 1.00000 1.00000
12、快速查看Ceph集群概况
[root@cephnode01 my-cluster]# ceph -s
cluster:
id: a4c42290-00ac-4647-9856-a707d5f8f2fd
health: HEALTH_OK
services:
mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 18m)
mgr: cephnode01(active, since 34m), standbys: cephnode03, cephnode02
mds: 3 up:standby
osd: 6 osds: 6 up (since 27m), 6 in (since 27m)
rgw: 1 daemon active (cephnode01)
data:
pools: 4 pools, 128 pgs
objects: 187 objects, 1.2 KiB
usage: 6.0 GiB used, 294 GiB / 300 GiB avail
pgs: 128 active+clean
13、ceph报守护程序最近崩溃了的解决方法
health: HEALTH_WARN
1 daemons have recently crashed
#新的崩溃可以通过以下方式列出
ceph crash ls-new
#有关特定崩溃的信息可以通过以下方法检查
ceph crash info <crash-id>
#可以通过“存档”崩溃(可能是在管理员检查之后)来消除此警告,从而不会生成此警告
ceph crash archive <crash-id>
#所有新的崩溃都可以通过以下方式存档
ceph crash archive-all
#通过ceph crash ls仍然可以看到已存档的崩溃,但是ceph crash ls-new则看不到
#可以通过以下方式完全禁用这些警告
ceph config set mgr/crash/warn_recent_interval 0
14、检查集群健康状况的命令,后期用来查找故障
[root@cephnode01 my-cluster]# ceph health detail
HEALTH_OK
15、查看每块盘所使用的空间
[root@cephnode01 ~]# ceph osd df
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
0 hdd 0.04880 1.00000 50 GiB 1.0 GiB 8.3 MiB 20 KiB 1024 MiB 49 GiB 2.02 1.00 55 up
1 hdd 0.04880 1.00000 50 GiB 1.0 GiB 8.4 MiB 20 KiB 1024 MiB 49 GiB 2.02 1.00 73 up
2 hdd 0.04880 1.00000 50 GiB 1.0 GiB 8.3 MiB 20 KiB 1024 MiB 49 GiB 2.02 1.00 62 up
3 hdd 0.04880 1.00000 50 GiB 1.0 GiB 8.4 MiB 20 KiB 1024 MiB 49 GiB 2.02 1.00 66 up
4 hdd 0.04880 1.00000 50 GiB 1.0 GiB 8.4 MiB 20 KiB 1024 MiB 49 GiB 2.02 1.00 60 up
5 hdd 0.04880 1.00000 50 GiB 1.0 GiB 8.3 MiB 20 KiB 1024 MiB 49 GiB 2.02 1.00 68 up
TOTAL 300 GiB 6.0 GiB 50 MiB 121 KiB 6.0 GiB 294 GiB 2.02
MIN/MAX VAR: 1.00/1.00 STDDEV: 0
16、查看pool
[root@cephnode01 ~]# ceph osd lspools
1 .rgw.root
2 default.rgw.control
3 default.rgw.meta
4 default.rgw.log
17、查看每个PG状态
[root@cephnode01 ~]# ceph pg dump
五、ceph.conf
1、该配置文件采用init文件语法,#
和;
为注释,ceph集群在启动的时候会按照顺序加载所有的conf配置文件。 配置文件分为以下几大块配置。
global:全局配置。
osd:osd专用配置,可以使用osd.N,来表示某一个OSD专用配置,N为osd的编号,如0、2、1等。
mon:mon专用配置,也可以使用mon.A来为某一个monitor节点做专用配置,其中A为该节点的名称,ceph-monitor-2、ceph-monitor-1等。使用命令 ceph mon dump可以获取节点的名称。
client:客户端专用配置。
2、配置文件可以从多个地方进行顺序加载,如果冲突将使用最新加载的配置,其加载顺序为。
$CEPH_CONF环境变量
-c 指定的位置
/etc/ceph/ceph.conf
~/.ceph/ceph.conf
./ceph.conf
3、配置文件还可以使用一些元变量应用到配置文件,如。
$cluster:当前集群名。
$type:当前服务类型。
$id:进程的标识符。
$host:守护进程所在的主机名。
$name:值为$type.$id。
4、ceph.conf详细参数
[global]#全局设置
fsid = xxxxxxxxxxxxxxx #集群标识ID
mon host = 10.0.1.1,10.0.1.2,10.0.1.3 #monitor IP 地址
auth cluster required = cephx #集群认证
auth service required = cephx #服务认证
auth client required = cephx #客户端认证
osd pool default size = 3 #最小副本数 默认是3
osd pool default min size = 1 #PG 处于 degraded 状态不影响其 IO 能力,min_size是一个PG能接受IO的最小副本数
public network = 10.0.1.0/24 #公共网络(monitorIP段)
cluster network = 10.0.2.0/24 #集群网络
max open files = 131072 #默认0#如果设置了该选项,Ceph会设置系统的max open fds
mon initial members = node1, node2, node3 #初始monitor (由创建monitor命令而定)
##############################################################
[mon]
mon data = /var/lib/ceph/mon/ceph-$id
mon clock drift allowed = 1 #默认值0.05#monitor间的clock drift
mon osd min down reporters = 13 #默认值1#向monitor报告down的最小OSD数
mon osd down out interval = 600 #默认值300 #标记一个OSD状态为down和out之前ceph等待的秒数
##############################################################
[osd]
osd data = /var/lib/ceph/osd/ceph-$id
osd mkfs type = xfs #格式化系统类型
osd max write size = 512 #默认值90 #OSD一次可写入的最大值(MB)
osd client message size cap = 2147483648 #默认值100 #客户端允许在内存中的最大数据(bytes)
osd deep scrub stride = 131072 #默认值524288 #在Deep Scrub时候允许读取的字节数(bytes)
osd op threads = 16 #默认值2 #并发文件系统操作数
osd disk threads = 4 #默认值1 #OSD密集型操作例如恢复和Scrubbing时的线程
osd map cache size = 1024 #默认值500 #保留OSD Map的缓存(MB)
osd map cache bl size = 128 #默认值50 #OSD进程在内存中的OSD Map缓存(MB)
osd mount options xfs = "rw,noexec,nodev,noatime,nodiratime,nobarrier" #默认值rw,noatime,inode64 #Ceph OSD xfs Mount选项
osd recovery op priority = 2 #默认值10 #恢复操作优先级,取值1-63,值越高占用资源越高
osd recovery max active = 10 #默认值15 #同一时间内活跃的恢复请求数
osd max backfills = 4 #默认值10 #一个OSD允许的最大backfills数
osd min pg log entries = 30000 #默认值3000 #修建PGLog是保留的最大PGLog数
osd max pg log entries = 100000 #默认值10000 #修建PGLog是保留的最大PGLog数
osd mon heartbeat interval = 40 #默认值30 #OSD ping一个monitor的时间间隔(默认30s)
ms dispatch throttle bytes = 1048576000 #默认值 104857600 #等待派遣的最大消息数
objecter inflight ops = 819200 #默认值1024 #客户端流控,允许的最大未发送io请求数,超过阀值会堵塞应用io,为0表示不受限
osd op log threshold = 50 #默认值5 #一次显示多少操作的log
osd crush chooseleaf type = 0 #默认值为1 #CRUSH规则用到chooseleaf时的bucket的类型
##############################################################
[client]
rbd cache = true #默认值 true #RBD缓存
rbd cache size = 335544320 #默认值33554432 #RBD缓存大小(bytes)
rbd cache max dirty = 134217728 #默认值25165824 #缓存为write-back时允许的最大dirty字节数(bytes),如果为0,使用write-through
rbd cache max dirty age = 30 #默认值1 #在被刷新到存储盘前dirty数据存在缓存的时间(seconds)
rbd cache writethrough until flush = false #默认值true #该选项是为了兼容linux-2.6.32之前的virtio驱动,避免因为不发送flush请求,数据不回写
#设置该参数后,librbd会以writethrough的方式执行io,直到收到第一个flush请求,才切换为writeback方式。
rbd cache max dirty object = 2 #默认值0 #最大的Object对象数,默认为0,表示通过rbd cache size计算得到,librbd默认以4MB为单位对磁盘Image进行逻辑切分
#每个chunk对象抽象为一个Object;librbd中以Object为单位来管理缓存,增大该值可以提升性能
rbd cache target dirty = 235544320 #默认值16777216 #开始执行回写过程的脏数据大小,不能超过 rbd_cache_max_dirty
网友评论