一 前期準備 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 1 ...
一 前期準備
1.1 配置規格
1.2 前置準備
- 所有節點NTP安裝及配置,具體操作略;
- 所有節點更新環境:
1 yum -y update
- deploy節點安裝pip環境:
1 [root@deploy ~]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 2 [root@deploy ~]# python get-pip.py
- 配置國內yum源:
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 [email protected] 9 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 10 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]提示:管理節點必須能夠通過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節點管理node1、node2、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/ http://docs.ceph.com/docs/master/start/quick-ceph-deploy/