一 前期準備
1.1 配置規格
節點
|
類型
|
IP
|
CPU
|
內存
|
ceph-deploy
|
部署管理平臺
|
172.24.8.71
|
2 C
|
4 G
|
node1
|
Monitor OSD
|
172.24.8.72
|
2 C
|
8 G
|
node2
|
OSD
|
172.24.8.73
|
2 C
|
8 G
|
node3
|
OSD
|
172.24.8.74
|
2 C
|
8 G
|
Ceph版本:mimic
OS:CentOS 7.5
kernel:4.20.2
關閉防火牆和SELinux;
提示:
Ceph Monitors之間默認使用6789端口通訊,OSD之間默認用6800:7300範圍內的端口通訊。Ceph OSD能利用多個網絡鏈接進行與客戶端、monitors、其餘OSD間的複製和心跳的通訊。若須要開啓防火牆則必須同時放通相應規則,具體操做見:http://docs.ceph.org.cn/rados/configuration/network-config-ref/
1.2 前置準備
- 全部節點NTP安裝及配置,具體操做略;
- 全部節點更新環境:
1 [root@deploy ~]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2 [root@deploy ~]# python get-pip.py
1 [root@node1 ~]# rm /etc/yum.repos.d/* -rf
2 [root@node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3 [root@node1 ~]# yum -y install epel-release
4 [root@node1 ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
5 [root@node1 ~]# mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
6 [root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
提示:以上操做須要在全部節點操做,工具會默認安裝(採用)國外官方源,國內環境建議EPEL和CEPH都替換爲國內源。
1 [root@deploy ~]# vi /etc/hosts
2 172.24.8.71 deploy
3 172.24.8.72 node1
4 172.24.8.73 node2
5 172.24.8.74 node3
提示:主機名應該能正確解析主機名,若管理節點同時也是一個Ceph節點,也要確認能正確解析本身的主機名和IP地址。
- 配置deploy節點到全部OSD node節點的免祕鑰登陸:
1 [root@deploy ~]# useradd manager
2 [root@deploy ~]# echo manager | passwd --stdin manager #建立非root的管理用戶
3 [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'useradd -d /home/cephuser -m cephuser; echo "cephuser" | passwd --stdin cephuser'; done #全部OSD node節點建立cephuser用戶
4 [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'echo "cephuser ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/cephuser'; done
5 [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'chmod 0440 /etc/sudoers.d/cephuser'; done
6 [root@deploy ~]# su - manager
7 [manager@deploy ~]$ ssh-keygen -f ~/.ssh/id_rsa -N ''
8 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.72
9 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.73
10 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.74
提示:管理節點必須可以經過SSH無密碼地訪問各Ceph節點,建議使用非root用戶;
用戶名 「ceph」 保留給了Ceph守護進程。若Ceph節點上已經存在「ceph」用戶,升級前必須先刪掉這個用戶。
1 [manager@deploy ~]$ vi ~/.ssh/config #修改ceph-deploy管理節點上~/.ssh/config文件
2 Host node1
3 Hostname node1
4 User cephuser
5 Host node2
6 Hostname node2
7 User cephuser
8 Host node3
9 Hostname node3
10 User cephuser
11 [manager@deploy ~]$ chmod 600 .ssh/config
12 [manager@deploy ~]$ ssh node1 #測試
13 [cephuser@node1 ~]$ exit
提示:修改config後deploy節點所建的用戶名登陸Ceph節點無需每次指定 --username cephuser ,簡化了ssh和scp的用法。
1.3 部署需求
首先建立一個Ceph存儲集羣,它有一個Monitor和三個OSD守護進程,Monitor節點也做爲OSD節點。
二 正式部署
2.1 部署deploy節點
1 [root@deploy ~]# cat << EOM > /etc/yum.repos.d/ceph.repo
2 [ceph-noarch]
3 name=Ceph noarch packages
4 baseurl=https://download.ceph.com/rpm-mimic/el7/noarch
5 enabled=1
6 gpgcheck=1
7 type=rpm-md
8 gpgkey=https://download.ceph.com/keys/release.asc
9 EOM
提示:國內也可採用阿里源,參考以下:
1 [root@deploy ~]# vi /etc/yum.repos.d/ceph.repo
2 [ceph-noarch]
3 name=Ceph noarch packages
4 baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
5 enabled=1
6 gpgcheck=1
7 type=rpm-md
8 gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
1 [root@deploy ~]# yum install -y ceph-deploy
2.2 建立集羣
1 [root@deploy ~]# su - manager
2 [manager@deploy ~]$ mkdir my-cluster
3 [manager@deploy ~]$ cd my-cluster/
4 [manager@deploy my-cluster]$ ceph-deploy new node1
5 [manager@deploy my-cluster]$ ll
提示:該目錄存在一個 Ceph 配置文件、一個 monitor 密鑰環和一個日誌文件。
2.3 安裝Ceph
1 [manager@deploy my-cluster]$ ceph-deploy install node1 node2 node3
提示:ceph-deploy將在各節點安裝Ceph,若部署過程出現異常,可經過如下命令清除相應配置,從而從新部署:
ceph-deploy purgedata node1 node2 node3
ceph-deploy forgetkeys
rm ceph.*
或用如下命令將安裝包也一併清除:
ceph-deploy purge node1 node2 node3
注意:若是你執行過 ceph-deploy purge ,你必須從新執行這一步來安裝Ceph;
若出現如下報錯,多是版本不兼容,可經過yum -y remove ceph-release卸載後從新執行install。
注意:若使用ceph-deploy部署的時候出現安裝包沒法下載,可在部署時候指定ceph.repo爲國內源:
1 ceph-deploy install node1 node2 node3 --repo-url=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc
2.4 初始化monitor
1 [manager@deploy my-cluster]$ ceph-deploy mon create-initial #初始monitor、並收集全部密鑰
2 [manager@deploy my-cluster]$ ll
2.5 部署MGR
1 [manager@deploy my-cluster]$ ceph-deploy mgr create node1 node2 node3
提示:ceph12版本以後,就須要爲集羣部署mgr服務,Ceph-Mgr將做爲Ceph集羣的管理進程,負責整個集羣的管理操做和監控。
2.6 複製key
1 [manager@deploy my-cluster]$ ceph-deploy admin node1 node2 node3
提示:爲方便後期deploy節點管理node一、node二、node3,在CLI中使用命令中簡化相關key的輸出,可將key複製至相應節點。
2.7 添加OSD
1 [manager@deploy my-cluster]$ ceph-deploy disk list node1 node2 node3 #列出磁盤
2 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node1
3 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node2
4 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
提示:生產環境強烈強烈不建議在單分區單硬盤上運行多個OSD;
強烈不建議在運行OSD的單分區硬盤上同時運行監視器或元數據服務器,即OSD建議採用獨立的硬盤,且OSD及其日誌使用獨立硬盤或分區。
當前官方彷佛已經不支持指定不一樣目錄弄多個OSD節點的形式。
2.8 檢測健康狀態
1 [manager@deploy my-cluster]$ ssh node1 sudo ceph health
2 [manager@deploy my-cluster]$ ssh node1 sudo ceph -s
提示:若出現以下mgr沒有active的warn提示,是由於沒有添加mgr,集羣處於WARN狀態。可參考2.5步驟部署MGR。
2.9 開啓dashboard
1 [root@node1 ~]# ceph mgr module enable dashboard #開啓dashboard模塊
2 [root@node1 ~]# ceph dashboard create-self-signed-cert
提示:默認狀況下,dashboard的全部HTTP鏈接均使用SSL/TLS進行保護。以上內置命令可快速生成並安裝自簽名證書。
1 [root@node1 ~]# ceph dashboard set-login-credentials admin admin #建立管理員
2 [root@node1 ~]# ceph mgr services #確認驗證
提示:以上操做在node1節點操做便可。
瀏覽器訪問:https://172.24.8.72:8443
參考官方文檔:http://docs.ceph.org.cn/start/quick-start-preflight/