文章目錄
- 一、Ceph版本選擇
-
- Ceph版本來源介紹
- Luminous新版本特性
- 二、安裝前準備 nautilus版
- 三、安裝ceph的yum源
- 四、安裝Ceph叢集
- 五、ceph.conf
一、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安裝,其他安裝方法逐漸淘汰
- 安裝要求
-
最少三台Centos7系統虛拟機用于部署Ceph叢集。硬體配置:2C4G,另外每台機器最少挂載三塊硬碟(每塊盤50G)
cephnode01 192.168.0.6
cephnode02 192.168.0.7
cephnode03 192.168.0.8
[[email protected] 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 [email protected]$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源檔案
[[email protected] ~]# 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 [email protected]$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
#測試一下發現報錯的話處理方法:
[[email protected] ~]# 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可以幫做這些
8、配置mgr,用于管理叢集
9、部署rgw
# yum install -y ceph-radosgw
# ceph-deploy rgw create cephnode01
10、部署MDS(CephFS)
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開始排列
[[email protected] 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叢集概況
[[email protected] 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、檢查叢集健康狀況的指令,後期用來查找故障
[[email protected] my-cluster]# ceph health detail
HEALTH_OK
15、檢視每塊盤所使用的空間
[[email protected] ~]# 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
[[email protected] ~]# ceph osd lspools
1 .rgw.root
2 default.rgw.control
3 default.rgw.meta
4 default.rgw.log
17、檢視每個PG狀态
五、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