簡介:
Ceph 是統一分布式存儲系統,具有優異的性能、可靠性、可擴展性。Ceph 的底層是 RADOS(可靠、自動、分布式對象存儲),可以通過 LIBRADOS 直接訪問到 RADOS 的對象存儲系統。RBD(塊設備接口)、RADOS Gateway(對象存儲接口)、Ceph File System(POSIX 接口)都是基於 RADOS 的。
一:安裝配置環境介紹
1:系統版本:
more /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
2:內核版本:
uname –a
Linux nc3 3.10.0-229.11.1.el7.x86_64 #1 SMP Thu Aug 6 01:06:18 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
3:ceph 版本:
ceph -v
ceph version 0.94.3
網絡拓撲圖
設備位置圖
4:ceph-deploy 版本:
[root@nc1 ~]# ceph-deploy --version 1.5.28
業務系統核心交換9303
Storage-public VLAN102 172.16.6.1
Storage-Cluster VLAN103
Config
IPMI VLAN15
S-manager01 172.16.15.251
OS安裝配置10.20.0.200
IPMI管理主機172.16.15.25
5 服務器配置信息及運行服務統計
二:系統軟件基礎包初始化:
1:安裝 EPEL 軟件源:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm yum -y update
yum -y upgrade
2:常用軟件包、常用工具等(非必須、推薦安裝)
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \ zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs \ e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap- clients \
openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz
\
kernel-devel kernel-headers pam-devel Tcl/Tk cmake ncurses-devel bison setuptool popt-devel net-snmp screen perl- devel \
pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo idconfig git system-config-network-tui bind-utils update \
arpscan tmux elinks numactl iftop bwm-ng net-tools
三:集群主機系統初始化准備
所有 Ceph 集群節點采用 CentOS 7.1 版本(CentOS-7-x86_64-Minimal-1503-01.iso),所有文件系統采用 Ceph
官方推薦的 xfs,所有節點的操作系統都裝在 RAID1 上Ptm,ind C其eph 他Clust的er 安硬裝配盤置文檔單獨--康建用華 ,不做任何 RAID。安裝完 CentOS 后我們需要在每個節點上(包括 ceph-deploy)做以下配置:
1:規范系統主機名;
centos 使用以下命令:
hostnamectl set-hostname 主機名
2:添加 hosts 文件實現集群主機名與主機名之間相互能夠解析
(host 文件添加主機名不要使用 fqdn 方式)
[root@nc1 ~]# vim /etc/hosts
172.16.6.154 cs
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.6.151 nc1 ceph-deploy
172.16.6.152nc2
172.16.6.153nc3
172.16.6.154cs1
172.16.6.155cs2
172.16.6.156cs3
172.16.6.157cs4
172.16.6.158cs5
172.16.6.159cs6
172.16.6.160cs7
172.16.6.161cs8
172.16.6.162cs9
3:每台 ssh-copy-id 完成這些服務器之間免 ssh 密碼登錄;
ssh-copy-id node###
4:關閉防火牆或者開放 6789/6800~6900 端口、關閉 SELINUX;
關閉 SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
打開 Ceph 需要的端口
firewall-cmd --zone=public --add-port=6789/tcp --permanent firewall-cmd --zone=public --add-port=6800-7100/tcp --permanent firewall-cmd --reload
5:關閉防火牆及開機啟動
systemctl stop firewalld.service systemctl disable firewalld.service
5:配置 ntp 服務,保證集群服務器時間統一;
安裝 ntp 同步時間
yum -y install ntp ntpdate ntp-doc systemctl enable ntpd.service systemctl start ntpd.service
或者添加 crontab ,執行自動時間同步;
cat >>/etc/crontab<<EOF
20 */1 * * * root ntpdate 172.16.5.100 && --systohc EOF
6:系統優化類
#set max user processes
sed -i 's/4096/102400/' /etc/security/limits.d/20-nproc.conf
#set ulimit
cat /etc/rc.local | grep "ulimit -SHn 102400" || echo "ulimit -SHn 102400" >> /etc/rc.local
修改最大打開文件句柄數
cat /etc/security/limits.conf | grep "^* - sigpending 256612" || cat >>/etc/security/limits.conf<<EOF
- soft nofile 102400
- hard nofile 102400
- soft nproc 102400
- hard nproc 102400
- - sigpending 256612 EOF
四:集群優化配置
1:優化前提
Processor
ceph-osd 進程在運行過程中會消耗 CPU 資源,所以一般會為每一個 ceph-osd 進程綁定一個 CPU 核上。當然如
果你使用 EC 方式,可能需要更多的 CPU 資源。
ceph-mon 進程並不十分消耗 CPU 資源,所以不必為 ceph-mon 進程預留過多的 CPU 資源。
ceph-msd 也是非常消耗 CPU 資源的,所以需要提供更多的 CPU 資源。內存
ceph-mon 和 ceph-mds 需要 2G 內存,每個 ceph-osd 進程需要 1G 內存,當然 2G 更好。
2: 開啟 VT 和 HT
Hyper-Threading(HT)
基本做雲平台的,VT 和 HT 打開都是必須的,超線程技術(HT)就是利用特殊的硬件指令,把兩個邏輯內核模擬成兩個物理芯片,讓單個處理器都能使用線程級並行計算,進而兼容多線程操作系統和軟件,減少了 CPU 的閑置時間,提高的 CPU 的運行效率。
3:關閉 CPU 節能
關閉節能后,對性能還是有所提升的,所以堅決調整成性能型(Performance)。當然也可以在操作系統級別進行 調整,詳細的調整過程請自行谷歌。Dellr720xd bios 配置截圖如下:
也可以在系統層面進行設置,配置方法如下:
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done
4:關閉 NUMA
簡單來說,NUMA 思路就是將內存和 CPU 分割為多Pt個mind 區Ceph域Clus,ter每安裝個配置文區檔 域--康叫建華做 NODE,然后將 NODE 高速互聯。 node
內 cpu 與內存訪問速度快於訪問其他 node 的內存, NUMA 可能會在某些情況下影響 ceph-osd 。解決的方案,一種是通過 BIOS 關閉 NUMA,配置(dellr720xd)截圖如下:
“Node Interleaving(節點交錯)”這項設置是針對 CPU 內部集成的內存控制器,筆者對它開始有所了解大約是在 AMD 當年推出第一代 K8 架構的 Opteron 處理器。由於整合內存控制器的 DP/MP 系統中每個 CPU 都可以直接控制一部分內存,因此訪問模式分為 NUMA(非一致性內存訪問)和 Node Interleaving 兩種。根據我們以往的理解, 前者具有更好的 OS/應用兼容性,而后者在單一處理器訪問內存時可以提供更高的性能(跨 CPU 節點並發訪問)。
另外一種就是通過 cgroup 將 ceph-osd 進程與某一個 CPU Core 以及同一 NODE 下的內存進行綁定。但是第二種看起來更麻煩,所以一般部署的時候可以在系統層面關閉 NUMA。CentOS 系統下,通過修改/etc/grub.conf 文件,添加 numa=off 來關閉 NUMA。
Centos 6 版本系統配置方法:
kernel /vmlinuz-2.6.32-504.12.2.el6.x86_64 ro root=UUID=870d47f8-0357-4a32-909f-74173a9f0633 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM biosdevname=0 numa=off
Centos7 版本系統配置方法:
修改 kernel(centos7)
運行命令 grub2-mkconfig -o /boot/grub2/grub.cfg 來重新生成 GRUB 配置並更新內核參數。
重啟服務器
5:網絡優化
萬兆網絡現在基本上是跑 Ceph 必備的,網絡規划上,也盡量考慮分離 cilent 和 cluster 網絡。
修改網絡 MTU 值,需要交換機端需要支持該 Jumbo frames 特性,另外科普一下萬兆交換機端口默認的設置的 mtu 是 9216 不需要設置,千兆交換機的 mtu 值默認是 1600。我們使用的是華為的 6700 萬兆交換,查看端口詳細信息如下圖:
服務器需要設置一下服務器 ceph 集群使用的網卡,臨時修改使用 ifconfig eth0 mtu 9000,持久生效修改方法如下:
nc 節點
echo "MTU=9000" | tee -a /etc/sysconfig/network-scripts/ifcfg-p3p*
/etc/init.d/networking restart
cs 節點
echo "MTU=9000" | tee -a /etc/sysconfig/network-scripts/ifcfg-p4p*
/etc/init.d/networking restart
6:修改 read_ahead
read_ahead, 通過數據預讀並且記載到隨機訪問內存方式提高磁盤讀操作,查看默認值
cat /sys/block/sda/queue/read_ahead_kb 128
根據一些 Ceph 的公開分享,8192 是比較理想的值。
echo "8192" > /sys/block/sda/queue/read_ahead_kb
批量修改(注意 a b c d e f g h i j 是 osd 分區):
for i in a b c d e f g h i j; do echo ---sd$i----; echo "8192" > /sys/block/sd$i/queue/read_ahead_kb;done
查看驗證
for i in a b c d e f g h i j; do echo ---sd$i----; cat /sys/block/sd$i/queue/read_ahead_kb;done
這個參數服務器重啟后會自動重置回默認,推薦加入開機啟動腳本
chmod +x /etc/rc.d/rc.local #centos7 默認 rc.local 沒有執行權限,開機無法執行腳本;
echo 'for i in a b c d e f g h i j; do echo ---sd$i----; echo "8192" >
/sys/block/sd$i/queue/read_ahead_kb;done' >>/etc/rc.d/rc.local
驗證
more /etc/rc.d/rc.local
7:關閉 swap
swappiness, 主要控制系統對 swap 的使用,這個參數的調整最先見於 UnitedStack 公開的文檔中,猜測調整的原因主要是使用 swap 會影響系統的性能。
echo "vm.swappiness = 0" | tee -a /etc/sysctl.conf
8:調整 Kernel pid max
允許更多的 PIDs (減少滾動翻轉問題);
默認是 more /proc/sys/kernel/pid_max
49152
調整為:
echo 4194303 > /proc/sys/kernel/pid_max
永久生效
echo "kernel.pid_max= 4194303" | tee -a /etc/sysctl.conf
9:修改 I/O Scheduler
I/O Scheduler,關於 I/O Scheculder 的調整網上已經有很多資料,這里不再贅述,簡單說 SSD 要用 noop,SATA/SAS
使用 deadline。默認:
[root@cs1 ceph]# more /sys/block/sdb/queue/scheduler noop [deadline] cfq
修改:
echo "deadline" > /sys/block/sd[x]/queue/scheduler echo "noop" > /sys/block/sd[x]/queue/scheduler
我們的集群情況
每台存儲服務器有 2 塊 SSD 盤,盤符為 SSDS=/dev/k| l"用做 journal 的 SSD;10 塊 sata 機械盤為 DISKS=/dev/
a| b| c| d| e| f| g| h| i| j
Sata 盤修改方式如下:
for i in a b c d e f g h i j; do echo "deadline" > /sys/block/sd$i/queue/scheduler;done
驗證
for i in a b c d e f g h i j; do cat /sys/block/sd$i/queue/schePdtmuindleCerp;hdClousntere安裝配置文檔
ssd 盤修改方式如下:
for i in k l; do echo "noop" > /sys/block/sd$i/queue/scheduler;done
驗證
for i in k l; do cat /sys/block/sd$i/queue/scheduler;done
五:安裝部署主機(ceph-deploy)安裝環境准備
1:建立主機列表
mkdir -p /workspace/ceph
cat >/workspace/ceph/cephlist.txt <<EOF nc1
nc2 nc3 cs1 cs2 cs3 cs4 cs5 cs6 cs7 cs8 cs9 EOF
2:為所有集群主機創建一個 ceph 工作目錄
以后的操作都在這個目錄下面進行:
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip mkdir -p /etc/ceph ;done
3:同步 hosts 文件
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;rsync -avp --delete /etc/hosts $ip:/etc/;done
4:測試主機名解析
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh $ip ping -c3 ceph-deploy;done
5:ceph-deploy 安裝
cephdeploy 節點執行,在/etc/ceph/目錄下面進行
1:安裝 ceph-deploy
cd /etc/ceph/
yum install ceph-deploy -y
注:以下操作除特殊說明之外,均在 ceph-deploy\nc1 節點上操作。
六:創建 mon 節點
1:安裝部署集群軟件包:
在所有節點安裝 ceph 軟件包 ceph-deploy install{ceph-node}[{ceph-node}...]
(注:如果已經用 yum 在每台機器上安裝了 ceph,這步可省略)
ceph-deploy install nc{1..3} cs{1..9}
2:在安裝部署節使用 ceph-deploy 創建,生成 MON 信息:
命令格式:
2:初始化集群,告訴 ceph-deploy 哪些節點是監控節點,命令成功執行后會在 ceps-cluster 目錄下生成 ceph.conf, ceph.log, ceph.mon.keyring 等相關文件:
cd /etc/ceph/
ceph-deploy new nc1 nc2 nc3
執行成功后該目錄下會增加三個文件
[root@nc1 ceph]# ll total 12
-rw-r--r-- 1 root root 261 Sep 16 16:07 ceph.conf
-rw-r--r-- 1 root root 3430 Sep 16 16:07 ceph.log
-rw------- 1 root root 73 Sep 16 16:07 ceph.mon.keyring
3:添加初始 monitor 節點和收集秘鑰
ceph-deploy mon create-initial
在本地目錄下可看到如下密鑰環文件:
1.{cluster-name}.client.admin.keyring
2.{cluster-name}.bootstrap-osd.keyring
3.{cluster-name}.bootstrap-mds.keyring
4:驗證集群 mon 節點安裝成功
[root@nc1 ceph]# ceph -s
cluster 973482fb-acf2-4a39-a691-3f810120b013 health HEALTH_ERR
64 pgs stuck inactive 64 pgs stuck unclean no osds
monmap e1: 3 mons at {nc1=172.16.6.151:6789/0,nc2=172.16.6.152:6789/0,nc3=172.16.6.153:6789/0}
election epoch 4, quorum 0,1,2 nc1,nc2,nc3
osdmap e1: 0 osds: 0 up, 0 in
pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects
0 kB used, 0 kB / 0 kB avail
64 creating
[root@nc1 ceph]# ceph mon_status
{"name":"nc1","rank":0,"state":"leader","election_epoch":6,"quorum":[0,1,2],"outside_quorum":[],"extra_probe_peers":[
"172.16.6.152:6789\/0","172.16.6.153:6789\/0"],"sync_provider":[],"monmap":{"epoch":1,"fsid":"179b040c-d2a2-448e- 813c-
111e0fb17e91","modified":"0.000000","created":"0.000000","mons":[{"rank":0,"name":"nc1","addr":"172.16.6.151:6789
\/0"},{"rank":1,"name":"nc2","addr":"172.16.6.152:6789\/0"},{"rank":2,"name":"nc3","addr":"172.16.6.153:6789\/0"}]}}
[root@nc1 ceph]# ll
七:安裝集群 osd 服務
1:查看一下 Ceph 存儲節點的硬盤情況:
ceph-deploy disk list cs{1..9}
返回信息如下:
[cs9][DEBUG ] /dev/sda : [cs9][DEBUG ] /dev/sda1 other, xfs [cs9][DEBUG ] /dev/sdb : [cs9][DEBUG ] /dev/sdb1 other, xfs [cs9][DEBUG ] /dev/sdc : [cs9][DEBUG ] /dev/sdc1 other, xfs
[cs9][DEBUG ] /dev/sdd : [cs9][DEBUG ] /dev/sdd1 other, xfs [cs9][DEBUG ] /dev/sde : [cs9][DEBUG ] /dev/sde1 other, xfs [cs9][DEBUG ] /dev/sdf : [cs9][DEBUG ] /dev/sdf1 other, xfs [cs9][DEBUG ] /dev/sdg : [cs9][DEBUG ] /dev/sdg1 other, xfs [cs9][DEBUG ] /dev/sdh : [cs9][DEBUG ] /dev/sdh1 other, xfs [cs9][DEBUG ] /dev/sdi : [cs9][DEBUG ] /dev/sdi1 other, xfs [cs9][DEBUG ] /dev/sdj : [cs9][DEBUG ] /dev/sdj1 other, xfs [cs9][DEBUG ] /dev/sdk : [cs9][DEBUG ] /dev/sdk1 other [cs9][DEBUG ] /dev/sdk2 other [cs9][DEBUG ] /dev/sdk3 other [cs9][DEBUG ] /dev/sdk4 other [cs9][DEBUG ] /dev/sdk5 other [cs9][DEBUG ] /dev/sdl : [cs9][DEBUG ] /dev/sdl1 other [cs9][DEBUG ] /dev/sdl2 other [cs9][DEBUG ] /dev/sdl3 other [cs9][DEBUG ] /dev/sdl4 other [cs9][DEBUG ] /dev/sdl5 other [cs9][DEBUG ] /dev/sdm :
[cs9][DEBUG ] /dev/sdm1 other, xfs, mounted on /boot [cs9][DEBUG ] /dev/sdm2 swap, swap
[cs9][DEBUG ] /dev/sdm3 other, xfs, mounted on /
2:批量格式化磁盤
每台存儲服務器有 2 塊 SSD 盤,盤符為 SSDS=/dev/k| l"用做 journal 的 SSD;10 塊 sata 機械盤為 DISKS=/dev/ a| b| c| d| e| f| g| h| i| j
如果集群服務器磁盤是舊盤有分區,推薦對又有磁盤進行格式化,都是新磁盤可以忽略此步驟。服務器磁盤較多推薦使用該腳本格式化,批量格式化硬盤腳本內容如下:(按需使用)
vi parted.sh
#!/bin/bash
set -e
if [ ! -x "/sbin/parted" ]; then
echo "This script requires /sbin/parted to run!" >&2 exit 1
fi
DISKS="a b c d e f g h i j " for i in ${DISKS}; do
echo "Creating partitions on /dev/sd${i} ..."
parted -a optimal --script /dev/sd${i} -- mktable gpt
parted -a optimal --script /dev/sd${i} -- mkpart primary xfs 0% 100% sleep 1
#echo "Formatting /dev/sd${i}1 ..." mkfs.xfs -f /dev/sd${i}1 &
done
SSDS="k l"
for i in ${SSDS}; do
parted -s /dev/sd${i} mklabel gpt
parted -s /dev/sd${i} mkpart primary 0% 20% parted -s /dev/sd${i} mkpart primary 21% 40% parted -s /dev/sd${i} mkpart primary 41% 60% parted -s /dev/sd${i} mkpart primary 61% 80% parted -s /dev/sd${i} mkpart primary 81% 100%
done
將腳本傳輸到集群 osd 節點服務器,執行腳本批量初始化磁盤。
傳輸
for ip in $(cat /workspace/ceph/cephlist.txt);do echo ----$ip-----------;rsync -avp /workspace root@$ip:/ ;done
#執行(osd 節點服務器)
[root@nc1 ceph]# pwd
/workspace/ceph
[root@nc1 ceph]# more cephosd.txt cs1
cs2 cs3 cs4 cs5 cs6 cs7 cs8 cs9
for ip in $(cat /workspace/ceph/cephosd.txt);do echo ----$Pitpmi-n-d -C-ep-h--Cl-u-s-te-r;安s裝sh配置r文o檔ot-@-康ip sh /workspace/parted.sh;done
3:執行 osd 初始化命令
初始化 Ceph 硬盤,然后創建 osd 存儲節點,存儲節點:單個硬盤:對應的 journal 分區,一一對應:
for ip in $(cat /workspace/ceph/cephosd.txt);do echo ----$ip-----------; ceph-deploy --overwrite-conf osd prepare
$ip:sda1:/dev/sdk1 $ip:sdb1:/dev/sdk2 $ip:sdc1:/dev/sdk3 $ip:sdd1:/dev/sdk4 $ip:sde1:/dev/sdk5 $ip:sdf1:/dev/sdl1
$ip:sdg1:/dev/sdl2 $ip:sdh1:/dev/sdl3 $ip:sdi1:/dev/sdl4 $ip:sdj1:/dev/sdl5;done
激活 OSD
for ip in $(cat /workspace/ceph/cephosd.txt);do echo ----$ip-----------;ceph-deploy osd activate $ip:sda1:/dev/sdk1
$ip:sdb1:/dev/sdk2 $ip:sdc1:/dev/sdk3 $ip:sdd1:/dev/sdk4 $ip:sde1:/dev/sdk5 $ip:sdf1:/dev/sdl1 $ip:sdg1:/dev/sdl2
$ip:sdh1:/dev/sdl3 $ip:sdi1:/dev/sdl4 $ip:sdj1:/dev/sdl5;done
或者執行
Activate all tagged OSD partitions ceph-disk activate-all
4:驗證日志寫入位置在 ssd 硬盤分區成功
[root@cs1 ~]# cd /var/lib/ceph/osd/ceph-0/ [root@cs1 ceph-0]# ll
。。。。。。。。。。。。。。。。。。。。。。。
-rw-r--r-- 1 root root 37 Sep 16 18:42 fsid
-rw------- 1 root root 56 Sep 16 18:46 keyring
。。。。。。。。。。。。。。
5:驗證 osd 啟動狀態
確保各個服務器存儲磁盤都加入集群,狀態為 UP。
[root@nc1 ~]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 159.02930 root default
-2 16.60992 host cs1
0 1.81999 osd.0 up 1.00000 1.00000
1 1.81999 osd.1 up 1.00000 1.00000
2 1.81999 osd.2 up 1.00000 1.00000
3 1.81999 osd.3 up 1.00000 1.00000
4 1.81999 osd.4 up 1.00000 1.00000
5 1.81999 osd.5 up 1.00000 1.00000
6 1.81999 osd.6 up 1.00000 1.00000
host cs2 ~~~~~ cs9 省略
或者登陸一台存儲服務器執行命令如下,查看 osd 磁盤掛在情況
[root@cs1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1.8T 0 part /var/lib/ceph/osd/ceph-0
sdb 8:16 0 1.8T 0 disk
└─sdb1 8:17 0 1.8T 0 part /var/lib/ceph/osd/ceph-1
sdc 8:32 0 1.8T 0 disk
└─sdc1 8:33 0 1.8T 0 part /var/lib/ceph/osd/ceph-2
sdd 8:48 0 1.8T 0 disk
└─sdd1 8:49 0 1.8T 0 part /var/lib/ceph/osd/ceph-3
sde 8:64 0 1.8T 0 disk
└─sde1 8:65 0 1.8T 0 part /var/lib/ceph/osd/ceph-4
sdf 8:80 0 1.8T 0 disk
└─sdf1 8:81 0 1.8T 0 part /var/lib/ceph/osd/ceph-5
sdg 8:96 0 1.8T 0 disk
└─sdg1 8:97 0 1.8T 0 part /var/lib/ceph/osd/ceph-6
sdh 8:112 0 1.8T 0 disk
└─sdh1 8:113 0 1.8T 0 part /var/lib/ceph/osd/ceph-7
sdi 8:128 0 1.8T 0 disk
└─sdi1 8:129 0 1.8T 0 part /var/lib/ceph/osd/ceph-8
sdj 8:144 0 232.9G 0 disk
└─sdj1 8:145 0 232.9G 0 part /var/lib/ceph/osd/ceph-9
6:PGs per OSD (2 < min 30)報錯解決:
Osd 添加完成后執行 ceph health 報錯如下:
ceph health
HEALTH_WARN too few PGs per OSD (2 < min 30)
解決辦法:
增加 PG 數目,根據 Total PGs = (#OSDs * 100) / pool size 公式來決定 pg_num(pgp_num 應該設成和 pg_num
一樣),所以我們集群的設置多少合適那? 注意 pgp_num 、pg_num 值設置應一樣 ,公式如下:
910(osd 數量) * 100/3 (副本數)=90100/3 =3000(最大可設置)
3000 是 2 的倍數,可以直接使用。
Ceph 官方推薦取最接近 2 的指數倍,不能整除的可以稍微加點。如果順利的話,就應該可以看到 HEALTH_OK
了:
另外 pgp_num 、pg_num 不能一次設置的較大,過大會報錯。
[root@nc1 ~]# ceph osd pool set rbd pg_num 3000
Error E2BIG: specified pg_num 3000 is too large (creating 2936 new PGs on ~64 OSDs exceeds per-OSD max of 32)
本次集群設置為 1024 ,具體設置多少比較合適,需要根據性能測試慢慢調試。修改前查看數量
[root@nc1 ~]# ceph osd dump|grep rbd
pool 0 'rbd' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 flags hashpspool stripe_width 0
修改配置:
ceph osd pool set rbd pg_num 2048 ceph osd pool set rbd pgp_num 2048
驗證:
[root@nc1 ~]# ceph osd dump |grep rbd
pool 0 'rbd' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 1024 pgp_num 1024 last_change 382 flags hashpspool stripe_width 0
7:官方推薦 pg 計算公式
詳細信息:http://ceph.com/pgcalc/#userconsent#
八:添加元數據服務器
1:添加元數據服務器
cd /etc/ceph
ceph-deploy --overwrite-conf mds create nc{1..3}
2:驗證 mds 服務
[root@nc1 ceph]# ceph mds stat e1: 0/0/0 up
1:狀態查看。還沒有創建時候的狀態。
對於一個剛創建的 MDS 服務,雖然服務是運行的,但是它的狀態直到創建 pools 以及文件系統的時候才會變為
Active.
[root@nc1 ~]# ceph mds dump dumped mdsmap epoch 1
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
modified 2015-09-16 17:50:47.819163
tableserver 0
root 0
session_timeout 0
session_autoclose 0
max_file_size 0
last_failure 0
last_failure_osd_epoch 0
compat compat={},rocompat={},incompat={} max_mds 0
。。。。。。。。。。。。。。。。。。。。。。
metadata_pool 0 inline_data disabled
2:通過下面的操作創建 Filesystem
[root@nc1 ~]# ceph osd pool create cephfs_data 3048 pool 'cephfs_data' created
[root@nc1 ~]# ceph osd pool create cephfs_metadata 3048 pool 'cephfs_metadata' created
[root@nc1 ~]# ceph fs new leadorfs cephfs_metadata cephfs_data new fs with metadata pool 3 and data pool 2
3:成功創建后,mds stat 的狀態如下
[root@nc1 ~]# ceph mds stat
e6: 1/1/1 up {0=nc3=up:active}, 2 up:standby
4:ceph mds dump 狀態如下
[root@nc1 ~]# ceph mds dump dumped mdsmap epoch 6 epoch 6
flags 0
created 2015-09-17 12:42:58.682991
modified 2015-09-17 12:43:01.863274
tableserver 0
root 0
session_timeout 60
session_autoclose 300
max_file_size 1099511627776
last_failure 0
last_failure_osd_epoch 0
compat compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table}
max_mds 1
in 0
up {0=4598}
failed stopped
data_pools 2
metadata_pool 3
inline_data disabled
3:刪除 mds 節點
如果你不需要 cephfs,MDS 就成了多余的,或者配置過多的 mds 服務,為了提高性能,可以把 MDS 卸載掉。關閉 mds 服務
/etc/init.d/ceph stop mds.cs7
刪除 mds 節點
ceph mds rm 1 mds.cs7
卸載
Yum remove ceph-fuse ceph-mds libcephfs1 -y
4:同步集群配置文件
把生成的配置文件從 ceph-deploy 同步部署到其他幾個節點,使得每個節點的 ceph 配置一致:
usage: ceph-deploy
admin Push configuration and client.admin key to a remote host.
config Copy ceph.conf to/from remote host(s)
同步配置文件和 client.admin key
ceph-deploy --overwrite-conf admin nc{1..3} cs{1..9}
單獨同步配置文件
ceph-deploy --overwrite-conf config push nc{1..3} cs{1..9}
九:crush 規則配置
1:ceph crush 規則介紹
Crush 規則支持類型如下; # types
type 0 osd
type 1 host
type 2 chassis
type 3 rack
type 4 row
type 5 pdu
type 6 pod
type 7 room
type 8 datacenter
type 9 region
type 10 root
配置細節參照官網文章, 參考鏈接:
http://docs.openfans.org/ceph/ceph4e2d658765876863/ceph-1/ceph-storage-
cluster3010ceph5b5850a896c67fa43011/operations301064cd4f5c3011/crush-maps3010crush66205c043011
2:集群 crush 規則配置
根據業務集群服務器所在位置計划設置規則如下:3 個 rack,然后 rack1(cs1\cs2\cs3)、rack2(cs4\cs5\cs6)、rack3
(cs7\cs8\cs9)
1:創建 rack
[root@nc1 ~]# ceph osd crush add-bucket RACKA01 rack #返回結果、后面省略
[root@nc1 ~]# ceph osd crush add-bucket RACKA02 rack [root@nc1 ~]# ceph osd crush add-bucket RACKA03 rack
2:將 host 加入到 rack
[root@nc1 ~]# ceph osd crush move cs1 rack=RACKA01
moved item id -2 name 'cs1' to location {rack=RACKA01} in crush map #返回結果、后面省略[root@nc1 ~]# ceph osd crush move cs2 rack=RACKA01
[root@nc1 ~]# ceph osd crush move cs3 rack=RACKA01
[root@nc1 ~]# ceph osd crush move cs4 rack=RACKA02 [root@nc1 ~]# ceph osd crush move cs5 rack=RACKA02 [root@nc1 ~]# ceph osd crush move cs6 rack=RACKA02
[root@nc1 ~]# ceph osd crush move cs7 rack=RACKA03 [root@nc1 ~]# ceph osd crush move cs8 rack=RACKA03 [root@nc1 ~]# ceph osd crush move cs9 rack=RACKA03
驗 證 host 加 入 rack: [root@nc1 ~]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-13 54.59976 rack RACKA03
-8 18.19992 host cs7
60 1.81999 osd.60 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
69 1.81999 osd.69 up 1.00000 1.00000
-9 18.19992 host cs8
70 1.81999 osd.70 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
79 1.81999 osd.79 up 1.00000 1.00000
-10 18.19992 host cs9
Ptmind Ceph Cluster 安裝配置文檔 --康建華
80 1.81999 osd.80 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
89 1.81999 osd.89 up 1.00000 1.00000
-12 54.59976 rack RACKA02
-5 18.19992 host cs4
30 1.81999 osd.30 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
39 1.81999 osd.39 up 1.00000 1.00000
-6 18.19992 host cs5
40 1.81999 osd.40 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
49 1.81999 osd.49 up 1.00000 1.00000
-7 18.19992 host cs6
50 1.81999 osd.50 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
59 1.81999 osd.59 up 1.00000 1.00000
-11 49.82977 rack
-2 16.60992 host cs1
0 1.81999 osd.0 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
9 0.23000 osd.9 up 1.00000 1.00000
-3 16.60992 host cs2
10 1.81999 osd.10 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
19 0.23000 osd.19 up 1.00000 1.00000
-4 16.60992 host cs3
20 1.81999 osd.20 up 1.00000 1.00000
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
29 0.23000 osd.29 up 1.00000 1.00000
-1 0 root default
注意:手動安裝的集群 osd 可能都在 host1 里面,需要先創建 host 然后,把 osd 加入到個 host,然后在加入吧 host
加入 rack。
創建 host 操作如下:
ceph osd crush add-bucket host
added bucket host01 type host to crush map #返回結果
將 osd 加入 host
ceph osd crush add osd.0 1.0 host=host01
add item id 0 name 'osd.0' weight 1 at location {host=host01} to crush map #返回結果
加入前是否需要關閉 osd,然后初始化需要驗證一下。
touch /var/lib/ceph/osd/ceph-0/sysvinit
/etc/init.d/ceph start osd.0
3:修改 crushmap 信息
對於比較熟的 crush 配置比較熟悉的老手推薦使用,在線業務集群慎用。
1:把 ceph 的 crush map 導出並轉換為文本格式, 先把 crush map 以二進制的形式導入到 test 文本。
ceph osd getcrushmap -o test
2:轉換為可讀格式:
用 crushtool 工具把 test 里的二進制數據轉換成文本形式保存到 test1 文檔里。
crushtool -d test -o test1
3:把重新寫的 ceph crush 導入 ceph 集群把 test1 轉換成二進制形式
crushtool -c test1 -o test2
把 test2 導入集群、
ceph osd setcrushmap -i test2
十:集群配置清理
##################以下操作在 ceph-deploy 節點操作:###########
部署過程中如果出現任何奇怪的問題無法解決,可以簡單的刪除一切從頭再來:
sudo stop ceph-all 停止所有 ceph 進程
ceph-deploy uninstall [{ceph-node}] 卸載所有 ceph 程序
ceph-deploy purge [[ceph-node} [{ceph-node}] 刪除 ceph 相關的包
ceph-deploy purgedata {ceph-node} [{ceph-node}] 刪除 ceph 集群所有數據
ceph-deploy forgetkeys 刪除 key
詳細如下:
1:清理軟件包
remove Ceph packages from remote hosts and purge all data. ceph-deploy purge nc{1..3} cs{1..9}
2:卸載之前掛載的 osd 磁盤
非系統使用的會被卸載(生產環境慎用)
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip /usr/bin/umount -a;done
3:將寫入分區表的分區掛載
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip /usr/bin/mount -a;done
4:查看一下狀態,僅剩余系統盤
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip df -h;done
5:清理殘余 key 文件和殘余目錄
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip rm -rf /var/lib/ceph;done
6:新建安裝目錄
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip mkdir -p /etc/ceph;done
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip mkdir -p /var/lib/ceph/;done
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip mkdir -p mkdir -p /var/lib/ceph/bootstrap- mds bootstrap-osd bootstrap-rgw mds mon osd tmp;done
7:重新部署集群
在所有節點安裝 ceph 軟件包 ceph-deploy install{ceph-node}[{ceph-node}...]
(注:如果已經用 yum 在每台機器上安裝了 ceph,這步可省略)
ceph-deploy install nc{1..3} cs{1..9}
或者
for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip yum -y install ceph ceph-radosgw ;done yum -y install ceph ceph-radosgw
十一:集群配置參數優化
1:配置參數優化
fsid = 973482fb-acf2-4a39-a691-3f810120b013 mon_initial_members = nc1, nc2, nc3
mon_host = 172.16.6.151,172.16.6.152,172.16.6.153
auth_cluster_required = cephx auth_service_required = cephx
auth_client_required = cephx
數據副本數,手動設置等同於 ceph osd pool set {pool-name} size {size}。osd pool default size = 3
數據最小副本數,以向客戶端確認寫操作。如果未達到最小值, Ceph 就不會向客戶端回復已寫確認。
osd pool default min size = 1
當 Ceph 存儲集群開始時,Ceph 在 OS 等級(比如, 文件描述符最大的)設置 max open fds 。它幫助阻止 Ceph OSD 守護進程在文件描述符之外運行。
max open files= 131072
集群公共網絡
public network = 172.16.6.0/24
集群私有網絡
cluster network = 10.10.1.0/24
OSD filestore
擴展屬性(XATTRs),為 XATTRS 使用 object map,EXT4 文件系統時使用,XFS 或者 btrfs 也可以使用默認:false
為 XATTR 使用對象圖,使用 ext4 文件系統的時候要設置。
filestore xattr use omap = true
在一個 CRUSH 規則內用於 chooseleaf 的桶類型。用序列號而不是名字
osd crush chooseleaf type = 1
[mon]
時鍾偏移
mon clock drift allowed = .50
十一:OSD 宕機后數據開始恢復時間
mon osd down out interval = 900
MON-OSD 滿比,在被 OSD 進程使用之前一個硬盤可用空間大於%20,認為狀態良好。
mon osd full ratio = .80
MON-OSD nearfull 率,在被 OSD 進程使用之前一個硬盤的剩余空間大於%30,認為狀態良好,另集群總空間使用率大於%70,系統會告警。
mon osd nearfull ratio = .70
[osd]
osd 格式化磁盤的分區格式 xfs osd mkfs type = xfs
強制格式化
osd mkfs options xfs = -f
每個存儲池默認 pg 數
osd pool default pg num = 3000
每個存儲池默認 pgp 數
osd pool default pgp num = 3000
同步間隔
從日志到數據盤最大同步間隔間隔秒數,默認:5
filestore max sync interval = 15
從日志到數據盤最小同步間隔秒數,默認 0.1 filestore min sync interval = 10
隊列
數據盤最大接受的操作數,超過此設置的請求會被拒絕。默認:500
filestore queue max ops = 25000
數據盤一次操作最大字節數(bytes)默認:100 << 20 filestore queue max bytes = 10485760
數據盤能夠 commit 的最大操作數默認:500
filestore queue committing max ops = 5000
數據盤能夠 commit 的最大字節數(bytes)100 << 20 filestore queue committing max bytes = 10485760000
最大並行文件系統操作線程數,默認 2;
filestore op threads = 32
osd journal #注意,Ceph OSD 進程在往數據盤上刷數據的過程中,是停止寫操作的。
OSD 日志大小(MB)默認 5120,推薦 20000,使用 ssd 塊存儲日志,可以設置為 0,使用整個塊。
osd journal size = 10000 #從 v0.54 起,如果日志文件是塊設備,這個選項會被忽略,且使用整個塊設備。
一次性寫入的最大字節數(bytes)默認:10 << 20
journal max write bytes = 1073714824
journal 一次寫入日志的最大數量,默認:100 journal max write entries = 10000
journal 一次性最大在隊列中的操作數,默認 500
journal queue max ops = 50000
journal 一次性最大在隊列中的字節數(bytes),默認:10 << 20 journal queue max bytes = 10485760000
OSD 通訊
注意:增加 osd op threads 和 disk threads 會帶來額外的 CPU 開銷
OSD 一次可寫入的最大值(MB),默認:90
osd max write size = 512
客戶端允許在內存中的最大數據(bytes),默認:500MB 默認 500 * 1024L * 1024L =524288000 osd client message size cap = 2147483648
在 Deep Scrub 時候允許讀取的字節數(bytes),默認:524288
osd deep scrub stride = 131072
OSD 進程操作的線程數,設置為 0 來禁用它。增加的數量可能會增加請求的處理速率。默認:2 osd op threads = 8
OSD 密集型操作例如恢復和 Scrubbing 時的線程,默認:1
osd disk threads = 5
OSD 映射
保留 OSD Map 的緩存(MB),默認:500
osd map cache size = 1024
OSD 進程在內存中的 OSD Map 緩存(MB),默認:50 osd map cache bl size = 128
Ceph OSD xfs Mount 選項默認:rw,noatime,inode64
osd mount options xfs = rw,noexec,nodev,noatime,nodiratime,nobarrier
OSD recovery
osd 異常數據恢復啟動的恢復進程數量,默認:1
osd recovery threads = 2
恢復操作優先級,它是相對 OSD 客戶端 運算 優先級。取值 1-63,值越高占用資源越高,默認:10 。
osd recovery op priority = 4
同一時間內活躍的恢復請求數,更多的請求將加速復蘇,但請求放置一個增加的群集上的負載。默認:15 osd recovery max active = 10
一個 OSD 允許的最大 backfills 數,默認:10
osd max backfills = 4
[client]
啟用緩存 RADOS 塊設備,默認:false rbd cache = true
RBD 緩存大小(以字節為單位)默認:33554432
rbd cache size = 268435456
緩存為 write-back 時允許的最大 dirty 字節數(bytes),如果為 0,使用 write-through ,默認:25165824 #Write-through:向高速 Cache 寫入數據時同時也往后端慢速設備寫一份,兩者都寫完才返回。
Write-back:向高速 Cache 寫完數據后立即返回,數據不保證立即寫入后端設備。給調用者的感覺是速度快,但需要額外的機制來防止掉電帶來的數據不一致。
rbd cache max dirty = 134217728
在被刷新到存儲盤前 dirty 數據存在緩存的時間(seconds)默認:
1 rbd cache max dirty age = 5
[mon.nc1]
host = nc1
mon data = /var/lib/ceph/mon/ceph-nc1/ mon addr = 172.16.6.151:6789
[mon.nc2]
host = nc2
mon data = /var/lib/ceph/mon/ceph-nc2/ mon addr = 172.16.6.152:6789
[mon.nc3]
host = nc3
mon data = /var/lib/ceph/mon/ceph-nc3/ mon addr = 172.16.6.153:6789
[mds.nc1]
host = nc1
mon data = /var/lib/ceph/mds/ceph-nc1/ mon addr = 172.16.6.151:6800
[mds.nc2]
host = nc2
mon data = /var/lib/ceph/mds/ceph-nc2/ mon addr = 172.16.6.152:6800
[mds.nc3]
host = nc3
mon data = /var/lib/ceph/mds/ceph-nc3/ mon addr = 172.16.6.153:6800
[osd.0]
[osd.1]
[osd.2]
[osd.3]
[osd.4]
[osd.5]
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca22df6b022-part1 osd data = /var/lib/ceph/osd/ceph-0
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a10-part1 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca24ec1ee58-part1 osd data = /var/lib/ceph/osd/ceph-1
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a10-part2 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca24ec1bfa5-part1 osd data = /var/lib/ceph/osd/ceph-2
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a10-part3 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca24ec1df52-part1 osd data = /var/lib/ceph/osd/ceph-3
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a10-part4 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca248d3e494-part1 osd data = /var/lib/ceph/osd/ceph-4
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a10-part5 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca248d3c153-part1 osd data = /var/lib/ceph/osd/ceph-5
public addr = 172.16.6.154 cluster addr = 10.10.1.154
[osd.6]
[osd.7]
[osd.8]
[osd.9]
[osd.10]
osd journal = /dev/disk/by-id/wwn-0x5000cca248d44fd8-part1 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca24ec4a9cc-part1 osd data = /var/lib/ceph/osd/ceph-6
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5000cca248d44fd8-part2 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca22df5b22a-part1 osd data = /var/lib/ceph/osd/ceph-7
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5000cca248d44fd8-part3 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5000cca248d356cf-part1 osd data = /var/lib/ceph/osd/ceph-8
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5000cca248d44fd8-part4 osd journal size = 10000
host = cs1
devs = /dev/disk/by-id/wwn-0x5002538d400259ae-part1 osd data = /var/lib/ceph/osd/ceph-9
public addr = 172.16.6.154 cluster addr = 10.10.1.154
osd journal = /dev/disk/by-id/wwn-0x5000cca248d44fd8-part5 osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca22df6b03d-part1 osd data = /var/lib/ceph/osd/ceph-10
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5002538d40025963-part1
[osd.11]
osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca24ec526bd-part1 osd data = /var/lib/ceph/osd/ceph-11
public addr = 172.16.6.155
[osd.12]
[osd.13]
[osd.14]
[osd.15]
[osd.16]
[osd.17]
cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5002538d40025963-part2 osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca24ec14814-part1 osd data = /var/lib/ceph/osd/ceph-12
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5002538d40025963-part3 osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca24ec06d75-part1 osd data = /var/lib/ceph/osd/ceph-13
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5002538d40025963-part4 osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca24ec522ba-part1 osd data = /var/lib/ceph/osd/ceph-14
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5002538d40025963-part5 osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca24ec54b92-part1 osd data = /var/lib/ceph/osd/ceph-15
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5000cca22df5b4b9-part1 osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca248d2d970-part1 osd data = /var/lib/ceph/osd/ceph-16
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5000cca22Pdtmifn5d bCep4h bCl9ust-epr 安a裝r配t2置文檔
osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca24ec54b99-part1 osd data = /var/lib/ceph/osd/ceph-17
[osd.18]
[osd.19]
[osd.20]
[osd.21]
[osd.22]
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5000cca22df5b4b9-part3 osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5000cca24ec53d45-part1 osd data = /var/lib/ceph/osd/ceph-18
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5000cca22df5b4b9-part4 osd journal size = 10000
host = cs2
devs = /dev/disk/by-id/wwn-0x5002538d40025a1f-part1 osd data = /var/lib/ceph/osd/ceph-19
public addr = 172.16.6.155 cluster addr = 10.10.1.155
osd journal = /dev/disk/by-id/wwn-0x5000cca22df5b4b9-part5 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca22df6b04e-part1 osd data = /var/lib/ceph/osd/ceph-20
public addr = 172.16.6.156 cluster addr = 10.10.1.156
osd journal = /dev/disk/by-id/wwn-0x5002538d40025879-part1 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca24ec51566-part1 osd data = /var/lib/ceph/osd/ceph-21
public addr = 172.16.6.156 cluster addr = 10.10.1.156
osd journal = /dev/disk/by-id/wwn-0x5002538d40025879-part2 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca24ec55cdd-part1 osd data = /var/lib/ceph/osd/ceph-22
public addr = 172.16.6.156
cluster addr = 10.10.1.156
[osd.23]
osd journal = /dev/disk/by-id/wwn-0x5002538d40025879-part3 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca22df5e40e-part1
[osd.24]
[osd.25]
[osd.26]
[osd.27]
[osd.28]
osd data = /var/lib/ceph/osd/ceph-23 public addr = 172.16.6.156
cluster addr = 10.10.1.156
osd journal = /dev/disk/by-id/wwn-0x5002538d40025879-part4 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca24ec53f40-part1 osd data = /var/lib/ceph/osd/ceph-24
public addr = 172.16.6.156 cluster addr = 10.10.1.156
osd journal = /dev/disk/by-id/wwn-0x5002538d40025879-part5 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca24ec54887-part1 osd data = /var/lib/ceph/osd/ceph-25
public addr = 172.16.6.156 cluster addr = 10.10.1.156
osd journal = /dev/disk/by-id/wwn-0x5000cca24ec531e4-part1 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca248d3843c-part1 osd data = /var/lib/ceph/osd/ceph-26
public addr = 172.16.6.156 cluster addr = 10.10.1.156
osd journal = /dev/disk/by-id/wwn-0x5000cca24ec531e4-part2 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca24ec32c79-part1 osd data = /var/lib/ceph/osd/ceph-27
public addr = 172.16.6.156 cluster addr = 10.10.1.156
osd journal = /dev/disk/by-id/wwn-0x5000cca24ec531e4-part3 osd journal size = 10000
host = cs3
devs = /dev/disk/by-id/wwn-0x5000cca24ec55cd2-part1 osd data = /var/lib/ceph/osd/ceph-28
public addr = 172.16.6.156 cluster addr = 10.10.1.156
[osd.29]
osd journal = /dev/disk/by-id/wwn-0x5000cca24ec531e4-part4 osd journal size = 10000
host = cs3
[osd.30]
[osd.31]
[osd.32]
[osd.33]
[osd.34]
devs = /dev/disk/by-id/wwn-0x5002538d4002597d-part1 osd data = /var/lib/ceph/osd/ceph-29
public addr = 172.16.6.156 cluster addr = 10.10.1.156
osd journal = /dev/disk/by-id/wwn-0x5000cca24ec531e4-part5 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca22df60e46-part1 osd data = /var/lib/ceph/osd/ceph-30
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0c-part1 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca248d302da-part1 osd data = /var/lib/ceph/osd/ceph-31
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0c-part2 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca24ec52b3f-part1 osd data = /var/lib/ceph/osd/ceph-32
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0c-part3 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca22df5b51f-part1 osd data = /var/lib/ceph/osd/ceph-33
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0c-part4 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca24ec1e300-part1
osd data = /var/lib/ceph/osd/ceph-34 public addr = 172.16.6.157
cluster addr = 10.10.1.157
[osd.35]
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0c-part5 osd journal size = 10000
[osd.36]
[osd.37]
[osd.38]
[osd.39]
[osd.40]
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca248d44fb4-part1 osd data = /var/lib/ceph/osd/ceph-35
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1c-part1 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca24ec521fd-part1 osd data = /var/lib/ceph/osd/ceph-36
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1c-part2 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca22df5b539-part1 osd data = /var/lib/ceph/osd/ceph-37
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1c-part3 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca248d385eb-part1 osd data = /var/lib/ceph/osd/ceph-38
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1c-part4 osd journal size = 10000
host = cs4
devs = /dev/disk/by-id/wwn-0x5000cca24ec1ed9a-part1 osd data = /var/lib/ceph/osd/ceph-39
public addr = 172.16.6.157 cluster addr = 10.10.1.157
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1c-part5 osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca22df5e58Ptemi-ndpCaeprh tC1luster 安裝配置文檔
osd data = /var/lib/ceph/osd/ceph-40 public addr = 172.16.6.158
cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d400259ba-part1 osd journal size = 10000
[osd.41]
[osd.42]
[osd.43]
[osd.44]
[osd.45]
[osd.46]
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca22df5b53c-part1 osd data = /var/lib/ceph/osd/ceph-41
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d400259ba-part2 osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca24ec5485f-part1 osd data = /var/lib/ceph/osd/ceph-42
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d400259ba-part3 osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca24ec541a3-part1 osd data = /var/lib/ceph/osd/ceph-43
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d400259ba-part4 osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca24ec56029-part1 osd data = /var/lib/ceph/osd/ceph-44
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d400259ba-part5 osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca22df5e3f3-part1 osd data = /var/lib/ceph/osd/ceph-45
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0d-part1 osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca22df5b5cc-part1 osd data = /var/lib/ceph/osd/ceph-46
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0d-part2
[osd.47]
[osd.48]
[osd.49]
[osd.50]
[osd51]
[osd.52]
osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca24ec5483d-part1 osd data = /var/lib/ceph/osd/ceph-47
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0d-part3 osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca248d38106-part1 osd data = /var/lib/ceph/osd/ceph-48
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0d-part4 osd journal size = 10000
host = cs5
devs = /dev/disk/by-id/wwn-0x5000cca24ec5304f-part1 osd data = /var/lib/ceph/osd/ceph-49
public addr = 172.16.6.158 cluster addr = 10.10.1.158
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a0d-part5 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca24ec0c263-part1 osd data = /var/lib/ceph/osd/ceph-50
public addr = 172.16.6.159 cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d40025978-part1 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca22df5e3f2-part1 osd data = /var/lib/ceph/osd/ceph-51
public addr = 172.16.6.159 cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d40025978-part2 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca248d3a0c7-part1 osd data = /var/lib/ceph/osd/ceph-52
public addr = 172.16.6.159 cluster addr = 10.10.1.159
[osd.53]
[osd.54]
[osd.55]
[osd.56]
[osd.57]
osd journal = /dev/disk/by-id/wwn-0x5002538d40025978-part3 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca248d384fa-part1 osd data = /var/lib/ceph/osd/ceph-53
public addr = 172.16.6.159 cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d40025978-part4 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca22df5b494-part1 osd data = /var/lib/ceph/osd/ceph-54
public addr = 172.16.6.159 cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d40025978-part5 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca24ec547d0-part1 osd data = /var/lib/ceph/osd/ceph-55
public addr = 172.16.6.159 cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597e-part1 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca22df5362d-part1 osd data = /var/lib/ceph/osd/ceph-56
public addr = 172.16.6.159 cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597e-part2 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca24ec55daa-part1 osd data = /var/lib/ceph/osd/ceph-57
public addr = 172.16.6.159 cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597e-part3
[osd.58]
osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca24ec50cbe-part1 osd data = /var/lib/ceph/osd/ceph-58
public addr = 172.16.6.159
[osd.59]
[osd.60]
[osd.61]
[osd.62]
[osd.63]
[osd.64]
cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597e-part4 osd journal size = 10000
host = cs6
devs = /dev/disk/by-id/wwn-0x5000cca248d457a2-part1 osd data = /var/lib/ceph/osd/ceph-59
public addr = 172.16.6.159 cluster addr = 10.10.1.159
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597e-part5 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca24ec1dece-part1 osd data = /var/lib/ceph/osd/ceph-60
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1e-part1 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca24ec06226-part1 osd data = /var/lib/ceph/osd/ceph-61
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1e-part2 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca24ec0816f-part1 osd data = /var/lib/ceph/osd/ceph-62
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1e-part3 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca24ec546a4-part1 osd data = /var/lib/ceph/osd/ceph-63
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d4Pt0min0d 2Ce5phaCl1usete-rp安a裝r配t置4文檔
osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca24ec554c5-part1 osd data = /var/lib/ceph/osd/ceph-64
[osd.65]
[osd.66]
[osd.67]
[osd.68]
[osd.69]
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d40025a1e-part5 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca22df5e747-part1 osd data = /var/lib/ceph/osd/ceph-65
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597c-part1 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca248d3e5f1-part1 osd data = /var/lib/ceph/osd/ceph-66
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597c-part2 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca22df5e574-part1 osd data = /var/lib/ceph/osd/ceph-67
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597c-part3 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca24ec49ccd-part1 osd data = /var/lib/ceph/osd/ceph-68
public addr = 172.16.6.160 cluster addr = 10.10.1.160
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597c-part4 osd journal size = 10000
host = cs7
devs = /dev/disk/by-id/wwn-0x5000cca24ec5278f-part1 osd data = /var/lib/ceph/osd/ceph-69
public addr = 172.16.6.160
cluster addr = 10.10.1.160
[osd.70]
osd journal = /dev/disk/by-id/wwn-0x5002538d4002597c-part5 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca248d383b4-part1
[osd.71]
[osd.72]
[osd.73]
[osd.74]
[osd.75]
osd data = /var/lib/ceph/osd/ceph-70 public addr = 172.16.6.161
cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d4002595e-part1 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca24ec52fbb-part1 osd data = /var/lib/ceph/osd/ceph-71
public addr = 172.16.6.161 cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d4002595e-part2 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca24ec51614-part1 osd data = /var/lib/ceph/osd/ceph-72
public addr = 172.16.6.161 cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d4002595e-part3 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca248d41aa1-part1 osd data = /var/lib/ceph/osd/ceph-73
public addr = 172.16.6.161 cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d4002595e-part4 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca22df5e4ba-part1 osd data = /var/lib/ceph/osd/ceph-74
public addr = 172.16.6.161 cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d4002595e-part5 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca24ec4afbf-part1 osd data = /var/lib/ceph/osd/ceph-75
public addr = 172.16.6.161 cluster addr = 10.10.1.161
[osd.76]
osd journal = /dev/disk/by-id/wwn-0x5002538d40025977-part1 osd journal size = 10000
host = cs8
[osd.77]
[osd.78]
[osd.79]
[osd.80]
[osd.81]
devs = /dev/disk/by-id/wwn-0x5000cca24ec1df2e-part1 osd data = /var/lib/ceph/osd/ceph-76
public addr = 172.16.6.161 cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d40025977-part2 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca248d3123b-part1 osd data = /var/lib/ceph/osd/ceph-77
public addr = 172.16.6.161 cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d40025977-part3 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca24ec55ce5-part1 osd data = /var/lib/ceph/osd/ceph-78
public addr = 172.16.6.161 cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d40025977-part4 osd journal size = 10000
host = cs8
devs = /dev/disk/by-id/wwn-0x5000cca22df5b53f-part1 osd data = /var/lib/ceph/osd/ceph-79
public addr = 172.16.6.161 cluster addr = 10.10.1.161
osd journal = /dev/disk/by-id/wwn-0x5002538d40025977-part5 osd journal size = 10000
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca22df5b51c-part1 osd data = /var/lib/ceph/osd/ceph-80
public addr = 172.16.6.162 cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259cc-part1 osd journal size = 10000
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca24ec55cc9-part1
osd data = /var/lib/ceph/osd/ceph-81 public addr = 172.16.6.162
cluster addr = 10.10.1.162
[osd.82]
osd journal = /dev/disk/by-id/wwn-0x5002538d400259cc-part2 osd journal size = 10000
[osd.83]
[osd.84]
[osd.85]
[osd.86]
[osd.87]
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca248d3522c-part1 osd data = /var/lib/ceph/osd/ceph-82
public addr = 172.16.6.162 cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259cc-part3 osd journal size = 10000
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca24ec51fb3-part1 osd data = /var/lib/ceph/osd/ceph-83
public addr = 172.16.6.162 cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259cc-part4 osd journal size = 10000
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca248d3e241-part1 osd data = /var/lib/ceph/osd/ceph-84
public addr = 172.16.6.162 cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259cc-part5 osd journal size = 10000
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca24ec54b9d-part1 osd data = /var/lib/ceph/osd/ceph-85
public addr = 172.16.6.162 cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259c2-part1 osd journal size = 10000
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca22df5e6d5-part1 osd data = /var/lib/ceph/osd/ceph-86
public addr = 172.16.6.162 cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259c2-part2 osd journal size = 10000
host = cs9
osd data = /var/lib/ceph/osd/ceph-87 public addr = 172.16.6.162
cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259c2-part3 osd journal size = 10000
[osd.88]
[osd.89]
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca24ec546ae-part1 osd data = /var/lib/ceph/osd/ceph-88
public addr = 172.16.6.162 cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259c2-part4 osd journal size = 10000
host = cs9
devs = /dev/disk/by-id/wwn-0x5000cca24ec54883-part1 osd data = /var/lib/ceph/osd/ceph-89
public addr = 172.16.6.162 cluster addr = 10.10.1.162
osd journal = /dev/disk/by-id/wwn-0x5002538d400259c2-part5 osd journal size = 10000
2:同步集群配置文件
把生成的配置文件從 ceph-deploy 同步部署到其他幾個節點,使得每個節點的 ceph 配置一致:
usage: ceph-deploy
admin Push configuration and client.admin key to a remote host.
config Copy ceph.conf to/from remote host(s)
同步配置文件和 client.admin key
ceph-deploy --overwrite-conf admin nc{1..3} cs{1..9}
單獨同步配置文件
ceph-deploy --overwrite-conf config push nc{1..3} cs{1..9}
十二:ceph 集群啟動、重啟、停止
1:ceph 命令的選項
ceph 命令的選項如下: 選項 簡寫 描述
--verbose -v 詳細的日志。
--valgrind N/A (只適合開發者和質檢人員)用 Valgrind 調試。
--allhosts -a 在 ceph.conf 里配置的所有主機上執行,Ptm否ind Ce則ph Cl它uste只r 安裝在配置本文檔機--執行 。
--restart N/A 核心轉儲后自動重啟。
--norestart N/A 核心轉儲后不自動重啟。
--conf -c 使用另外一個配置文件。
Ceph 子命令包括:
命令 描述
start 啟動守護進程。
stop 停止守護進程。
forcestop 暴力停止守護進程,等價於 kill -9
killall 殺死某一類守護進程。
cleanlogs 清理掉日志目錄。
cleanalllogs 清理掉日志目錄內的所有文件。
2:啟動所有守護進程
要啟動、關閉、重啟 Ceph 集群,執行 ceph 時加上 相關命令,語法如下:
/etc/init.d/ceph [options] [start|restart|stop] [daemonType|daemonID]
下面是個典型啟動實例:
sudo /etc/init.d/ceph -a start
加 -a (即在所有節點上執行)執行完成后 Ceph 本節點所有進程啟動。
把 CEPH 當服務運行,按此語法:
service ceph [options] [start|restart] [daemonType|daemonID]
典型實例:
service ceph -a start
3:啟動單一實例
要啟動、關閉、重啟一類守護進程 本例以要啟動本節點上某一類的所有 Ceph 守護進程,
/etc/init.d/ceph [start|restart|stop] [daemonType|daemonID]
/etc/init.d/ceph start osd.0
把 ceph 當做服務運行,啟動一節點上某個 Ceph 守護進程, 按此語法:
service ceph sta
十三:維護常用命令
1:檢查集群健康狀況
1:檢查集群健康狀況
啟動集群后、讀寫數據前,先檢查下集群的健康狀態。你可以用下面的命令檢查:
ceph health 或者 ceph health detail (輸出信息更詳細)
要觀察集群內正發生的事件,打開一個新終端,然后輸入:
ceph -w
輸出信息里包含: 集群唯一標識符 集群健康狀況
監視器圖元版本和監視器法定人數狀態
OSD 版本和 OSD 狀態摘要
其內存儲的數據和對象數量的粗略統計,以及數據總量等。新版本新增選項如下:
-s, --status show cluster status
-w, --watch watch live cluster changes
--watch-debug watch debug events
--watch-info watch info events
--watch-sec watch security events
--watch-warn watch warn events
--watch-error watch error events
--version, -v display version
--verbose make verbose
--concise make less verbose
使用方法演示:
ceph -w --watch-info
2:檢查集群的使用情況
檢查集群的數據用量及其在存儲池內的分布情況,可以用 df 選項,它和 Linux 上的 df 相似。如下:
ceph df
輸出的 GLOBAL 段展示了數據所占用集群存儲空間的概要。
SIZE: 集群的總容量;
AVAIL: 集群的空閑空間總量;
RAW USED: 已用存儲空間總量;
% RAW USED: 已用存儲空間比率。用此值參照 full ratio 和 near full \ ratio 來確保不會用盡集群空間。詳情見存儲容量。
輸出的 POOLS 段展示了存儲池列表及各存儲池的大致使用率。沒有副本、克隆品和快照占用情況。例如,如果你把 1MB 的數據存儲為對象,理論使用率將是 1MB ,但考慮到副本數、克隆數、和快照數,實際使用率可能是 2MB 或更多。
NAME: 存儲池名字;
ID: 存儲池唯一標識符;
USED: 大概數據量,單位為 KB 、 MB 或 GB ;
%USED: 各存儲池的大概使用率;
Objects: 各存儲池內的大概對象數。
新版本新增 ceph osd df 命令,可以詳細列出集群每塊磁盤的使用情況,包括大小、權重、使用多少空間、使用率等等
3:檢查集群狀態
要檢查集群的狀態,執行下面的命令:
ceph status
4:檢查 MONITOR 狀態
查看監視器圖,執行下面的命令:
ceph mon stat
或者:
ceph mon dump
要檢查監視器的法定人數狀態,執行下面的命令:
ceph quorum_status
5:檢查 MDS 狀態:
元數據服務器為 Ceph 文件系統提供元數據服務,元數據服務器有兩種狀態: up | \ down 和 active | inactive , 執行下面的命令查看元數據服務器狀態為 up 且 active :
ceph mds stat
要展示元數據集群的詳細狀態,執行下面的命令:
ceph mds dump
刪除一個 mds 節點
ceph mds rm 0 mds.nc3
十四:集群命令詳解
1:mon 相關
1:查看 mon 的狀態信息
[mon@ptmind~]# ceph mon stat
2:查看 mon 的選舉狀態
[mon@ptmind~]# ceph quorum_status
3:查看 mon 的映射信息
[mon@ptmind~]# ceph mon dump
4:刪除一個 mon 節點
[mon@ptmind~]# ceph mon remove cs1
5:獲得一個正在運行的 mon map,並保存在 1.txt 文件中
[mon@ptmind~]# ceph mon getmap -o 1.txt
6: 讀 取 上 面 獲 得 的 map
[mon@ptmind~]# monmaptool --print 1.txt
7:把上面的 mon map 注入新加入的節點
[mon@ptmind~]# ceph-mon -i nc3 --inject-monmap 1.txt
8:查看 mon 的 amin socket
[mon@ptmind~]# ceph-conf --name mon.nc3 --show-config-value admin_socket
9:查看 ceph mon log 日志所在的目錄
[mon@ptmind~]# ceph-conf --name mon.nc1 --show-config-value log_file
/var/log/ceph/ceph-mon.nc1.log
10:查看一個集群 ceph-mon.nc3 參數的配置、輸出信息特別詳細,集群所有配置生效可以在此參數下確認
[mon@ptmind~]# ceph --admin-daemon /var/run/ceph/ceph-mon.nc3.asok config show | less
2: msd 相 關
1:查看 msd 狀態
[mon@ptmind~]# ceph mds stat
2:刪除一個 mds 節點
[mon@ptmind~]# ceph mds rm 0 mds.nc1
3:設置 mds 狀態為失敗
[mon@ptmind~]# ceph mds rmfailed <int[0-]>
4:新建 pool
[mon@ptmind~]# ceph mds add_data_pool <poolname>
5:關閉 mds 集群
[mon@ptmind~]# mds cluster_down
6:啟動 mds 集群
[mon@ptmind~]# mds cluster_up
7:設置 cephfs 文件系統存儲方式最大單個文件尺寸
[mon@ptmind~]# ceph mds set max_file_size 1024000000000
8:清除 cephfs 文件系統步驟
強 制 mds 狀 態 為 featrue
[mon@ptmind~]# ceph mds fail 0
刪除 mds 文件系統
[mon@ptmind~]# ceph fs rm leadorfs --yes-i-really-mean-it
刪除 fs 數據文件夾
[mon@ptmind~]# ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it #刪除元數據文件夾
[mon@ptmind~]# ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it
然后再刪除 mds key ,殘留文件等
拆除文件系統前推薦先刪除節點,待驗證
[mon@ptmind~]# ceph mds rm 0 mds.node242
4:ceph auth 相關
1:查看 ceph 集群中的認證用戶及相關的 key
[mon@ptmind~]# ceph auth list
2:為 ceph 創建一個 admin 用戶並為 admin 用戶創建一個密鑰,把密鑰保存到/etc/ceph 目錄下:
[mon@ptmind~]# ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' >
/etc/ceph/ceph.client.admin.keyring
或
[mon@ptmind~]# ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' -o
/etc/ceph/ceph.client.admin.keyring
3:為 osd.0 創建一個用戶並創建一個 key
[mon@ptmind~]# ceph auth get-or-create osd.0 mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-0/keyring
4:為 mds.nc3 創建一個用戶並創建一個 key
[mon@ptmind~]# ceph auth get-or-create mds.nc3 mon 'allow rwx' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mds/ceph- cs1/keyring
5:導入 key 信息
[mon@ptmind~]# ceph auth import /var/lib/ceph/mds/ceph-cs1/keyring
6:刪除集群中的一個認證用戶
[mon@ptmind~]# ceph auth del osd.0
5:osd 相關
1:查看 osd 列表
[mon@ptmind~]# ceph osd tree
2:查看數據延遲
[mon@ptmind~]# ceph osd perf
osd fs_commit_latency(ms) fs_apply_latency(ms)
0 3 4
1 333 871
2 33 49
3 1 2
。。。。。。。。。。。。
3:詳細列出集群每塊磁盤的使用情況,包括大小、權重、使用多少空間、使用率等等
[mon@ptmind~]# ceph osd df
4:down 掉一個 osd 硬盤
[mon@ptmind~]# ceph osd down 0 #down 掉 osd.0 節點
5:在集群中刪除一個 osd 硬盤
[mon@ptmind~]# ceph osd rm 0
6:在集群中刪除一個 osd 硬盤 crush map
[mon@ptmind~]# ceph osd crush rm osd.0
7:在集群中刪除一個 osd 的 host 節點
[mon@ptmind~]# ceph osd crush rm cs1
8:查看最大 osd 的個數
[mon@ptmind~]# ceph osd getmaxosd
max_osd = 90 in epoch 1202 #默認最大是 90 個 osd 節點
9:設置最大的 osd 的個數(當擴大 osd 節點的時候必須擴大這個值)
[mon@ptmind~]# ceph osd setmaxosd 2048
10:設置 osd crush 的權重為 1.0
ceph osd crush set {id} {weight} [{loc1} [{loc2} ...]]
例如:
[mon@ptmind~]# ceph osd crush set osd.1 0.5 host=node241
11:設置 osd 的權重
[mon@ptmind~]# ceph osd reweight 3 0.5
reweighted osd.3 to 0.5 (8327682)
或者用下面的方式
[mon@ptmind~]# ceph osd crush reweight osd.1 1.0
12:把一個 osd 節點逐出集群
[mon@ptmind~]# ceph osd out osd.3:
3 1 osd.3 up 0 # osd.3 的 rewPetmiingd hCetph 變Clus為ter 安0裝配了置文就檔不再分配數據,但是設備還是存活的
13:把逐出的 osd 加入集群
[mon@ptmind~]# ceph osd in osd.3 marked in osd.3.
14:暫停 osd (暫停后整個集群不再接收數據)
[mon@ptmind~]# ceph osd pause
15:再次開啟 osd (開啟后再次接收數據)
[mon@ptmind~]# ceph osd unpause
16:查看一個集群 osd.0 參數的配置、輸出信息特別詳細,集群所有配置生效可以在此參數下確認
[mon@ptmind~]# ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less
17:設置標志 flags ,不允許關閉 osd、解決網絡不穩定,osd 狀態不斷切換的問題
[mon@ptmind~]# ceph osd set nodown
取消設置
[mon@ptmind~]# ceph osd unset nodown
6:pool 相關
1:查看 ceph 集群中的 pool 數量
[mon@ptmind~]# ceph osd lspools 或者 ceph osd pool ls
2:在 ceph 集群中創建一個 pool
[mon@ptmind~]# ceph osd pool create rbdtest 100 #這里的 100 指的是 PG 組:
3:查看集群中所有 pool 的副本尺寸
[mon@ptmind~]# ceph osd dump | grep 'replicated size'
4:查看 pool 最大副本數量
[mon@ptmind~]# ceph osd pool get rbdpool size size: 3
5:查看 pool 最小副本數量
[root@node241 ~]# ceph osd pool get rbdpool min_size min_size: 2
6:設置一個 pool 的 pg 數量
[mon@ptmind~]# ceph osd pool set rbdtest pg_num 100
7:設置一個 pool 的 pgp 數量
[mon@ptmind~]# ceph osd pool set rbdtest pgp_num 100
8: 修改 ceph,數據最小副本數、和副本數
ceph osd pool set $pool_name min_size 1
ceph osd pool set $pool_name size 2
示例:
[mon@ptmind~]# ceph osd pool set rbdpool min_size 1 [mon@ptmind~]# ceph osd pool set rbdpool size 2
驗證:
[mon@ptmind~]# ceph osd dump
pool 3 'rbdpool' replicated size 2 min_size 1
9:設置 rbdtest 池的最大存儲空間為 100T(默認是 1T)
[mon@ptmind~]# ceph osd pool set rbdtest target_max_bytes 100000000000000
10: 為一個 ceph pool 配置配額、達到配額前集群會告警,達到上限后無法再寫入數據
[mon@ptmind~]# ceph osd pool set-quota rbdtest max_objects 10000
11: 在集群中刪除一個 pool,注意刪除 poolpool 映射的 image 會直接被刪除,線上操作要謹慎。
[mon@ptmind~]# ceph osd pool delete rbdtest rbdtest --yes-i-really-really-mean-it #集群名字需要重復兩次
12: 給一個 pool 創建一個快照
[mon@ptmind~]# ceph osd pool mksnap rbdtest rbdtest-snap20150924
13: 查看快照信息
[mon@ptmind~]# rados lssnap -p rbdtest
1 rbdtest-snap20150924 2015.09.24 19:58:55
2 rbdtest-snap2015092401 2015.09.24 20:31:21
2 snaps
14:刪除 pool 的快照
[mon@ptmind~]# ceph osd pool rmsnap rbdtest rbdtest-snap20150924
驗證,剩余一個 snap
[mon@ptmind~]# rados lssnap -p rbdtest
2 rbdtest-snap2015092401 2015.09.24 20:31:21
1 snaps
7:rados 命令相關
是和 的對象存儲集群( ), 的分布式文件系統的一部分進行交互是一種實用工具。
1: 查 看 ceph 集 群 中 有 多 少 個 pool ( 只 是 查 看 pool)
[mon@ptmind~]# rados lspools 同 ceph osd pool ls 輸出結果一致
2:顯示整個系統和被池毀掉的使用率統計,包括磁盤使用(字節)和對象計數
[mon@ptmind~]# rados df
3:創建一個 pool
[mon@ptmind~]# rados mkpool test
4:創建一個對象 object
[mon@ptmind~]# rados create test-object -p test
5:查看對象文件
[mon@ptmind~]# rados -p test ls
test-object
6:刪除一個對象
[mon@ptmind~]# rados rm test-object-1 -p test
7:刪除 foo 池 (和它所有的數據)
[mon@ptmind~]# rados rmpool test test –yes-i-really-really-mean-it
8:查看 ceph pool 中的 ceph object (這里的 object 是以塊形式存儲的)
[mon@ptmind~]# rados ls -p test | more
9:為 test pool 創建快照
[mon@ptmind~]# rados -p test mksnap testsnap created pool test snap testsnap
10:列出給定池的快照
[mon@ptmind~]# rados -p test lssnap
1 testsnap 2015.09.24 21:14:34
11:刪除快照
[mon@ptmind~]# rados -p test rmsnap testsnap removed pool test snap testsnap
12:上傳一個對象到 test pool
[mon@ptmind~]# rados -p test put myobject blah.txt
13:使用 rados 進行性能測試
測試用例如下:
rados bench 600 write rand -t 100 -b 4K -p datapool
選項解釋: 測試時間 :600
支持測試類型:write/read ,加 rand 就是隨機,不加就是順序
並發數( -t 選項):100
pool 的名字是:datapool
8:PG 相關
PG =“放置組”。當集群中的數據,對象映射到編程器,被映射到這些 PGS 的 OSD。
1:查看 pg 組的映射信息
[mon@ptmind~]# ceph pg dump 或 者 ceph pg ls
2: 查 看 一 個 PG 的 map
[mon@ptmind~]# ceph pg map 0.3f
osdmap e88 pg 0.3f (0.3f) -> up [0,2] acting [0,2] #其中的[0,2]代表存儲在 osd.0、osd.2 節點,osd.0 代表主副本的存儲位置
3:查看 PG 狀態
[mon@ptmind~]# ceph pg stat
4:查詢一個 pg 的詳細信息
[mon@ptmind~]# ceph pg 0.26 query
5:要洗刷一個 pg 組,執行命令:
[mon@ptmind~]# ceph pg scrub {pg-id}
6:查看 pg 中 stuck 的狀態
要獲取所有卡在某狀態的歸置組統計信息,執行命令:
ceph pg dump_stuck inactive|unclean|stale [--format <format>] [-t|--threshold <seconds>]
[mon@ptmind~]# ceph pg dump_stuck unclean [mon@ptmind~]# ceph pg dump_stuck inactive [mon@ptmind~]# ceph pg dump_stuck stale
Inactive (不活躍)歸置組不能處理讀寫,因為它們在等待一個有最新數據的 OSD 復活且進入集群。
Unclean (不干凈)歸置組含有復制數未達到期望數量的對象,它們應該在恢復中。
Stale (不新鮮)歸置組處於未知狀態:存儲它們的 OSD 有段時間沒向監視器報告了(由 mon_osd_report_timeout
配置)。
可用格式有 plain (默認)和 json 。閥值定義的是,歸置組被認為卡住前等待的最小時間(默認 300 秒)
7:顯示一個集群中的所有的 pg 統計
[mon@ptmind~]# ceph pg dump --format plain
8:恢復一個丟失的 pg
如果集群丟了一個或多個對象,而且必須放棄搜索這些數據,你就要把未找到的對象標記為丟失( lost )。
如果所有可能的位置都查詢過了,而仍找不到這些對象,你也許得放棄它們了。這可能是罕見的失敗組合導致的, 集群在寫入完成前,未能得知寫入是否已執行。
當前只支持 revert 選項,它使得回滾到對象的前一個版本(如果它是新對象)或完全忽略它。要把 unfound 對象標記為 lost ,執行命令:
ceph pg {pg-id} mark_unfound_lost revert|delete
9:查看某個 PG 內分布的數據狀態,具體狀態可以使用選項過濾輸出
ceph pg ls {<int>}
{active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovering|backfill_wait|i ncomplete|stale|remapped|deep_scrub|backfill|
backfill_toofull|recovery_wait|undersized [active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovering|backfill_wait|i ncomplete|stale|remapped|
deep_scrub|backfill|backfill_toofull|recovery_wait|undersized...]} : list pg with specific pool, osd, state
實例如下:
pg 號 過濾輸出的狀態
[mon@ptmind~]# ceph pg ls 1 clean
10:查詢 osd 包含 pg 的信息,過濾輸出 pg 的狀態信息
pg ls-by-osd <osdname (id|osd.id)> list pg on osd [osd]
{<int>} {active|clean|down|replay|splitting|scrubbing|scrubq|degraded| inconsistent|peering|repair|recovering|
backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized[active|clean|d own|replay|splitting|
scrubbing|scrubq|degraded|inconsistent| peering|repair|recovering|backfill_ wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized...]}
實例如下:
[mon@ptmind~]# ceph pg ls-by-osd osd.5
11:查詢 pool 包含 pg 的信息,過濾輸出 pg 的狀態信息
ceph pg ls-by-pool poolname 選項
ceph pg ls-by-pool
實例如下:
[mon@ptmind~]# ceph pg ls-by-pool test
12:查詢某個 osd 狀態為 primary pg ,可以根據需要過濾狀態
pg ls-by-primary <osdname (id|osd.id)> {
{active|clean|down|replay|splitting|scrubbing|scrubq|dePtgmirndaCdepeh dClu|stienr 安co裝配n置s文is檔ten--t|peering|repair|recovering|backfill_wait|i ncomplete|stale|remapped|deep_scrub|backfill|
backfill_toofull|recovery_wait|undersized [active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovering|backfill_wait|i ncomplete|stale|remapped|deep_scrub|backfill|
backfill_toofull|recovery_wait|undersized...]} : list pg with primary = [osd]
實例如下:
osd 號 過濾輸出的狀態
[mon@ptmind~]# ceph pg ls-by-primary osd.3 clean
9: rbd 命令相關
1:在 test 池中創建一個命名為 kjh 的 10000M 的鏡像
[mon@ptmind~]# rbd create -p test --size 10000 kjh
2:查看 ceph 中一個 pool 里的所有鏡像
[mon@ptmind~]# rbd ls test kjh
3:查看新建的鏡像的信息
[mon@ptmind~]# rbd -p test info kjh
4:查看 ceph pool 中一個鏡像的信息
[mon@ptmind~]# rbd info -p test --image kjh rbd image 'kjh':
size 1000 MB in 250 objects
order 22 (4096 kB objects) block_name_prefix: rb.0.92bd.74b0dc51 format: 1
5:刪除一個鏡像
[mon@ptmind~]# rbd rm -p test kjh
6:調整一個鏡像的尺寸
[mon@ptmind~]# rbd resize -p test --size 20000 kjh
[mon@ptmind~]# rbd -p test info kjh #調整后的鏡像大小rbd image 'kjh':
size 2000 MB in 500 objects
order 22 (4096 kB objects) block_name_prefix: rb.0.92c1.74b0dc51 format: 1
7 :快照測試
1:新建個 pool 叫’ptmindpool’同時在下面創建一個’kjhimage’
[mon@ptmind~]# ceph osd pool create ptmindpool 256 256 pool 'ptmindpool' created
2:創建鏡像
[mon@ptmind~]# rbd create kjhimage --size 1024 --pool ptmindpool
3:查看鏡像
[mon@ptmind~]# rbd --pool ptmindpool ls kjhimage
4:創建 snap,快照名字叫’snapkjhimage’
[mon@ptmind~]# rbd snap create ptmindpool/kjhimage@snapkjhimage
5:查看 kjhimage 的 snap
[mon@ptmind~]# rbd snap ls ptmindpool/kjhimage SNAPID NAME SIZE
2 snapkjhimage 1024 MB
6:回滾快照,
[mon@ptmind~]# rbd snap rollback ptmindpool/kjhimage@snapkjhimage
7:刪除 snap 刪除 snap 報(rbd: snapshot 'snapshot-xxxx' is protected from removal.)寫保護 ,使用 rbd snap unprotect volumes/snapshot-xxx' 解鎖,然后再刪除
[mon@ptmind~]# rbd snap rm ptmindpool/kjhimage@snapkjhimage
8:刪除 kjhimage 的全部 snapshot
[mon@ptmind~]# rbd snap purge ptmindpool/kjhimage
9: 把 ceph pool 中的一個鏡像導出導出鏡像
[mon@ptmind~]# rbd export -p ptmindpool --image kjhimage /tmp/kjhimage.img Exporting image: 100% complete...done.
驗證查看導出文件
l /tmp/kjhimage.img
-rw-r--r-- 1 root root 1073741824 Sep 24 23:15 /tmp/kjhimage.img
10:把一個鏡像導入 ceph 中
[mon@ptmind~]# rbd import /tmp/kjhimage.img -p ptmindpool --image importmyimage1
Importing image: 100% complete...done.
驗證查看導入鏡像文件
rbd -pptmindpool ls
importmyimage1
十五:ceph 日志和調試設置
啟動集群出現問題時,可以通過添加調試日志(默認在/var/log/ceph)選項到 Ceph 設置文件中來排錯。開啟或增加日志內容級別前,請確保系統磁盤上有足夠的空余空間。如果系統運行良好,最好去除不必要的調試日志,想做性能優化可以將內存中的日志關掉以優化集群。在集群運行過程中輸出debug 信息會拖慢系統,也浪費系統資源。
Ceph 的日志級別從 1 到 20,1 最精簡,20 最詳細,日志可分為系統設置日志文件輸出級別和內存日志輸出級別{log- level}/{memory-level},配置要參數先設定日志文件級別,再設定內存級別,兩個數值必須用斜杠(/)分隔。
1:配置文件修改
要想在啟動時激活 Ceph 的調試輸出(即 dout()),就必須在 Ceph 配置文件中添加相應設置項。配置文件中
[global]組內的設置影響所有所有子系統守護進程,針對特定子系統守護進程的配置可以單獨設置(即在[mon], [osd],
[mds]組內),比如:
[global]
debug ms = 1/5
[mon]
debug mon = 20 debug paxos = 1/5 debug auth = 2
[osd]
debug osd = 1/5 debug filestore = 1/5 debug journal = 1 debug monc = 5/20
[mds]
debug mds = 1
debug mds balancer = 1 debug mds log = 1 debug mds migrator = 1
2:在線修改日志輸出級別
如果在運行時查看設置內容,你必須登錄到運行守護進程的主機上,並按以下步驟操作:
ceph daemon {/path/to/admin/socket} config show | less
ceph daemon /run/ceph/ceph-mon.node241.asok config show|grep debug
要在運行時激活 Ceph 的調試輸出(即 dout()),請使用 ceph tell 命令將相關參數注入到配置文件中:
ceph tell {daemon-type}.{daemon id or *} injectargs --{name} {value} [--{name} {value}]
{daemon-type}選項有 osd, mon 或者 mds。通過使用通配符*,你可以把設置應用到所有守護進程中去,或者通過 ID
號(即相應數字或字母)來應用到指定守護進程上去。
例如,增加名為 0,類型為 osd 的守護進程的日志級別,可使用下面的命令行: 查看默認值:
[root@node241 ~]# ceph daemon /run/ceph/ceph-osd.1.asok config show|grep debug_osd "debug_osd": "0/5",
[root@node241 ~]# ceph tell osd.1 injectargs --debug_osd 1/5 debug_osd=1/5
你也可以通過 ceph --admin-daemon 命令,登錄到你要修改配置的守護進程主機上。比如:
[root@node241 ~]# ceph daemon osd.1 config set debug_osd 1/5
{
"success": ""
}
驗證修改結果:
[root@node241 ~]# ceph daemon /run/ceph/ceph-osd.1.asok config show|grep debug_osd "debug_osd": "1/5
3:修改集群子系統,日志和調試設置
在多數情況下,你需要通過子系統開啟調試日志輸出功能。每一個子系統輸出到磁盤上的日志文件和內存中的日志數據,都有一個日志級別。所以,你可以給這些子系統設置日志文件輸出級別和內存日志輸出級別。 Ceph 的日志級別從 1 到 20,1 最精簡,20 最詳細。
Ptmind Ceph Cluster 安裝配置文檔 --康建華
你可以通過只設定一個值,來使調試輸出日志的文件級別和內存級別相同。比如,設定 debug ms = 5,Ceph 會
把日志的文件級別和內存級別都設為 5.也可以分別設置日志組織。先設定日志文件級別,再設定內存級別,兩個數值必須用斜杠(/)分隔。
比如,你准備為名為 ms 的子系統設定日志文件級別為 1,日志內存級別為 5,應該寫成 debug ms = 1/5.舉例:
debug {subsystem} = {log-level}/{memory-level} #for example
debug mds log = 1/20
4:日志輸出級別默認值
參考文章:
http://xiaoquqi.github.io/blog/2015/06/28/ceph-performance-optimization-summary/?utm_source=tuicool http://cloud.51cto.com/art/201501/464162_2.htm http://docs.openfans.org/ceph/ceph4e2d658765876863 http://docs.ceph.com/docs/master/rados/configuration/ceph-conf/?highlight=osd journal size
http://mirrors.myccdn.info/ceph/doc/docs_zh/output/html/search/?q=filestore+queue+max+ops&check_keywords=yes& area=default
http://mp.weixin.qq.com/s? biz=MzA3NjkwNjM4Nw==&mid=210896948&idx=1&sn=19d9449e24a1e6155add01a675b9 bc2d&scene=1&srcid=0916ZendiZMRgMVji22676A0#rd
http://baike.baidu.com/link?url=2NVF_-7rznBadF XddOIm5VfJKma6g9Tk2MYDYfa4wbd-4e6kUnbA6oUTAT7JMnK6- 808AiM- m3LI6tXcWVf_&ADUIN=3312909837&ADSESSION=1442382049&ADTAG=CLIENT.QQ.5385_.0&ADPUBNO=26450#usercons
ent# http://shuechaolau.iteye.com/blog/1558046#userconsent#