目標
部署Ceph集群服務器,實作以下目標:
安裝部署工具ceph-deploy
創建ceph集群
準備日志磁盤磁區
創建OSD存盤空間
查看ceph狀態,驗證
步驟
步驟一:安裝部署軟體ceph-deploy
1)在node1安裝部署工具,學習工具的語法格式,
[root@node1 ~]# yum -y install ceph-deploy
[root@node1 ~]# ceph-deploy --help
[root@node1 ~]# ceph-deploy mon --help
2)創建目錄(目錄名稱可以任意,推薦與案例一致)
[root@node1 ~]# mkdir ceph-cluster
[root@node1 ~]# cd ceph-cluster/
步驟二:部署Ceph集群
1)創建Ceph集群配置,在ceph-cluster目錄下生成Ceph組態檔(ceph.conf),
在ceph.conf組態檔中定義monitor主機是誰,
[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3
2)初始化所有節點的mon服務,也就是啟動mon服務,
拷貝當前目錄的組態檔到所有節點的/etc/ceph/目錄并啟動mon服務,
[root@node1 ceph-cluster]# ceph-deploy mon create-initial
#組態檔ceph.conf中有三個mon的IP,ceph-deploy腳本知道自己應該遠程誰
-
在每個node主機查看自己的服務(注意每臺主機服務名稱不同)
[root@node1 ceph-cluster]# systemctl status ceph-mon@node1 [root@node2 ~]# systemctl status ceph-mon@node2 [root@node3 ~]# systemctl status ceph-mon@node3 #備注:管理員可以自己啟動(start)、重啟(restart)、關閉(stop),查看狀態(status). #提醒:這些服務在30分鐘只能啟動3次,超過就報錯. #StartLimitInterval=30min #StartLimitBurst=3 #在這個檔案中有定義/usr/lib/systemd/system/ceph-mon@.service #如果修改該檔案,需要執行命令# systemctl daemon-reload重新加載配置
4)查看ceph集群狀態(現在狀態應該是health HEALTH_ERR)
[root@node1 ceph-cluster]# ceph -s
常見錯誤及解決方法(非必要操作,有錯誤可以參考):
如果提示如下錯誤資訊:(如何無法修復說明環境準備有問題,需要重置所有虛擬機)
[node1][ERROR ] admin_socket: exception getting command descriptions: [Error 2] No such file or directory
解決方案如下(僅在node1操作):
1)先檢查自己的命令是否是在ceph-cluster目錄下執行的!!!!如果確認是在該目錄下執行的create-initial命令,依然報錯,可以使用如下方式修復,
[root@node1 ceph-cluster]# vim ceph.conf #檔案最后追加以下內容
public_network = 192.168.4.0/24
2)修改后重新推送組態檔:
[root@node1 ceph-cluster]# ceph-deploy --overwrite-conf config push node1 node2 node3
[root@node1 ceph-cluster]# ceph-deploy --overwrite-conf mon create-initial
3)如果還出錯,可能是準備實驗環境時配置的域名決議和主機名不一致!!!
步驟三:創建OSD
- 初始化清空磁盤資料(僅node1操作即可),
初始化磁盤,將所有磁盤磁區格式設定為GPT格式(根據實際情況填寫磁盤名稱),
[root@node1 ceph-cluster]# ceph-deploy disk zap node1:sdb node1:sdc
[root@node1 ceph-cluster]# ceph-deploy disk zap node2:sdb node2:sdc
[root@node1 ceph-cluster]# ceph-deploy disk zap node3:sdb node3:sdc
#相當于ssh 遠程node1,在node1執行parted /dev/sdb mktable gpt
#其他主機都是一樣的操作
#ceph-deploy是個腳本,這個腳本會自動ssh遠程自動創建gpt磁區
2)創建OSD存盤空間(僅node1操作即可)
重要:很多同學在這里會出錯!將主機名、設備名稱輸入錯誤!!!
遠程所有node主機,創建磁區,格式化磁盤,掛載磁盤,啟動osd服務共享磁盤,
[root@node1 ceph-cluster]# ceph-deploy osd create node1:sdb node1:sdc
#每個磁盤都會被自動分成兩個磁區;一個固定5G大小;一個為剩余所有容量
#5G磁區為Journal日志快取;剩余所有空間為資料盤,
[root@node1 ceph-cluster]# ceph-deploy osd create node2:sdb node2:sdc
[root@node1 ceph-cluster]# ceph-deploy osd create node3:sdb node3:sdc
提醒:ceph-deploy是個腳本,腳本會自動創建磁區、格式化、掛載!
怎么驗證磁區了?怎么驗證格式化?怎么驗證掛載了?
[root@node1 ~]# df -Th
[root@node2 ~]# df -Th
[root@node3 ~]# df -Th
3)在三臺不同的主機查看OSD服務狀態,可以開啟、關閉、重啟服務,
[root@node1 ~]# systemctl status ceph-osd@0
[root@node2 ~]# systemctl status ceph-osd@2
[root@node3 ~]# systemctl status ceph-osd@4
#備注:管理員可以自己啟動(start)、重啟(restart)、關閉(stop),查看狀態(status).
#提醒:這些服務在30分鐘只能啟動3次,超過就報錯.
#StartLimitInterval=30min
#StartLimitBurst=3
#在這個檔案中有定義/usr/lib/systemd/system/ceph-osd@.service
#如果修改該檔案,需要執行命令# systemctl daemon-reload重新加載配置
常見錯誤及解決方法(非必須操作),
使用osd create創建OSD存盤空間時,如提示下面的錯誤提示:
[ceph_deploy][ERROR ] RuntimeError: bootstrap-osd keyring not found; run 'gatherkeys'
可以使用如下命令修復檔案,重新配置ceph的密鑰檔案:
[root@node1 ceph-cluster]# ceph-deploy gatherkeys node1 node2 node3
步驟四:驗證測驗
-
查看集群狀態,
[root@node1 ~]# ceph -s [root@node1 ~]# ceph osd tree
2)常見錯誤(非必須操作),
如果查看狀態包含如下資訊:
health: HEALTH_WARN
clock skew detected on node2, node3…
clock skew表示時間不同步,解決辦法:請先將所有主機的時間都使用NTP時間同步!!!
Ceph要求所有主機時差不能超過0.05s,否則就會提示WARN,
如果狀態還是失敗,可以嘗試執行如下命令,重啟所有ceph服務:
[root@node1 ~]# systemctl restart ceph.target
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/211470.html
標籤:其他
下一篇:Linux云計算命令大全
