② Ceph版本选择与安装

一、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)
  • 集群的总体可扩展性有所提高。已经成功测试了多达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安装,其他安装方法逐步淘汰

  1. 安装要求
  • 最少三台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
  1. 环境准备(在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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354