1、首先獲得相應的部署資源,多臺主機或相應數量的虛擬機資源
示例:
Ip | Hostname | 節點 |
---|---|---|
10.10.21.54 | admin | 部署節點 |
10.10.21.55 | node1 | MON節點 |
10.10.21.56 | node2 | OSD0節點 |
10.10.21.57 | node3 | OSD1節點 |
2、ifconfig查看基本網絡配置信息,嘗試ping連外網如:ping www.baidu.com
問題1:執行ifconfig命令,無相應的輸出響應 |
一般純淨的Centos7系統會出現上述這個問題
顯示:ifconfig Command not found
解決:下載相應的NET管理工具:net-tools
那麼首先需要在/etc/yum.repo/目錄下創建如:Centos-local.repo的源庫下載腳本
注:若當前源庫目錄下有其它的腳本,則最好將上圖示priority置0 使之遍歷優先級最高
然後執行 # yum install net-tools*
最後執行 ifconfig命令便可看到熟悉的信息:
問題2:ping www.baidu.com 不通,即不能實現外網鏈接 |
解決:若是企業有MAC限制,想在公司上外網,首先解決MAC限制,若是虛擬機不能有MAC衝突的問題。之後還不能實現外網鏈接,則需添加DNS解析
首先:vi /etc/sysconfig/network-scripts/ifcfg-eno16777984 (本人配置信息)
添加:DNS1=10.10.10.1
若有MAC衝突可修改HWADDR或MACADDR項,配置如下:
3、在10.10.21.54主機(管理點)上以root用戶模式完成以下操作
修改主機名,以便後面切換部署時識別相應節點
配置:
# vi /etc/hostname 修改主機名 這裏命名爲admin# vi /etc/hosts 修改127.0.0.1 後主機名爲admin
並添加如下信息:
10.10.21.54 admin
10.10.21.55 node1
10.10.21.56 node2
10.10.21.57 node3創建用戶並修改主機名
- 切換到各個主機上創建ceph用戶 命名:ceph
# ssh username@host-serverip 如username: root host-serverip: 10.10.21.55
# useradd –d /home/ceph –m ceph
# passwd ceph
$ exit exit前修改各個主機名稱,實現步驟同理(1)示
測試:ping xxx節點切換至各個Ceph節點的ceph用戶,爲用戶增加root權限
# ssh username@hostname 如:ssh ceph@node1
$ echo “ceph ALL=(root) NOPPASSWD:ALL” | sudo tee /etc/sudoers.d/ceph
$ sudochmod 0440 /etc/sudoers.d/ceph
$ exit實現ssh無密碼登錄
- 切換至ceph用戶,生成公鑰以及私鑰於當前用戶.ssh目錄下,id_rs is_rsa.pub
# ssh ceph@admin
$ ssh-keygen
$ exit - exit前將生成的密鑰拷貝到各個Ceph節點的ceph用戶的 ~/.ssh/目錄下
$ ssh-copy-id ceph@node1
$ ssh-copy-id ceph@node2
$ ssh-copy-id ceph@node3
- 切換至ceph用戶,生成公鑰以及私鑰於當前用戶.ssh目錄下,id_rs is_rsa.pub
admin主機上添加~/.ssh/config配置文件 注:並非ceph用戶
- 切換到各個主機上創建ceph用戶 命名:ceph
4、創建集羣
- 在admin主機切換至ceph用戶,創建文件夾
# ssh ceph@admin
$ mkdir my-cluster
$ cd my-cluster ceph-deploy部署集羣 注:使用ceph-deploy部署集羣均在my-cluster目錄中
- 更新軟件源並安裝ceph-deploy工具:
$ sudo yum update && sudo install ceph-deploy - 同步每臺主機的時間,需切換至每個節點:
$ ssh {node} 如:ssh node1
$ sudo yum install ntp
$ sudo yum install openssh-server (如果有必要可安裝) - 清除之前的配置數據:
卸載ceph:
$ ceph-deploy uninstall admin node1 node2 node3
清除遠程主機/var/lib/ceph /etc/ceph中的包和數據
$ ceph-deploy purgeadmin node1 node2 node3
清除/var/lib/ceph及/etc/ceph下ceph目錄及以下內容全部:
$ ceph-deploy purgedata admin node1 node2 node3
清除my-cluster目錄中的認證密鑰文件:
$ ceph-deploy forgetkeys - 關閉所有節點的防火牆及安全防護項,切換到所有節點執行:
$ ssh {node} 如:ssh node1
$ sudo systemctl stop firewalld
$ sudo setenforce 0 之後就可正真的來實現創建集羣:
$ ceph-deploy new node1
成功執行後當前目錄增加三個文件:
- 更新軟件源並安裝ceph-deploy工具:
系統默認的osd pool的爲3 目前osd爲2 即需修改默認的副本數爲2
$ vi ./ceph.conf 添加:osd pool default size=2部署安裝ceph
$ ceph-deploy install admin node1 node2 node3
安裝成功後:創建Ceph mon
$ ceph-deploy mon create-initial
若無法創建則使用如下命令:
$ ceph-deploy mon create node1
$ ceph-deploy gatherkeys node1
成功後當前目錄ls -l創建兩個osd
- 首先切換到node2中ceph用戶,創建OSD0
$ ssh ceph@node2
df –mh 查看可知sdc可用,故可將sdc xfs格式化 並實現掛載
$ sudo mkfs.xfs –f /dev/sdc
$ sudo mkdir /var/lib/ceph/osd/osd-0
$ sudo mount /dev/sdc /var/lib/ceph/osd/osd-0
$ exit - 同理創建OSD1
$ ssh ceph@node3
$ sudo mkfs.xfs –f /dev/sdc
$ sudo mkdir /var/lib/ceph/osd/osd-1
$ sudo mount /dev/sdc /var/lib/ceph/osd/osd-1
$ exit
- 首先切換到node2中ceph用戶,創建OSD0
準備並激活osd
$ ceph-deploy osd prepare node2: /var/lib/ceph/osd/osd-0
node3: /var/lib/ceph/osd/osd-1
$ ceph-deploy osd activate node2: /var/lib/ceph/osd/osd-0
node3: /var/lib/ceph/osd/osd-1- 實現拷貝配置文件以及key文件
$ ceph-deploy admin admin node1 node2 node3 - 爲ceph.client.admin.keyring添加可讀權限
通常管理部署節點和監控節點須得設置,以便於查看集羣狀態。OSD節點設置與否,看能給予的權限。命令如下:
$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring 查看集羣狀態
集羣整體狀態:ceph –s
集羣OSD狀態:ceph osd tree
ceph {xxx} dump 如:ceph osd dump; ceph mon dump; ceph mds dump ceph osd dump
集羣動態部署:ceph –w
查看mon狀況
$ sudo mon mon.{node} mon_status 如:node3 爲mon節點
操作OSD
- 將OSD踢出集羣out 並實現數據重新均衡
$ ceph osd out osd.2 停止OSD設備 (需切換到當前節點中,實現osd的停止)
從CRUSH中移除
$ ceph osd crush remove osd.2從認證中刪除
$ ceph auth del osd.2- 刪除osd
$ ceph osd rm 2
- 將OSD踢出集羣out 並實現數據重新均衡
5. 附錄(問題)
*問題:添加新osd集羣試圖實現均衡失敗後,集羣不正常 |
情景:
集羣:[(osd pool default size = 2) admin node1(mon) node2(osd0) node3(osd1) ]
創建後 集羣active+clean 處於正常狀況,之後向node1節點添加osd2 添加成功後:
開始時:osd2 處於down + in狀態
一段時間後:osd2處於 up + in 同時使得 osd1處於 down + out
再之後顯示如下:
原因:
- 可能是系統爲防止集羣崩潰,mon的防火牆會自行啓動,使得其它的osd節點無法訪問mon節點(注:並非是說ping不同)
- 有些軟件(進程)的啓動需要依賴防火牆去實現解決:
解決:
此時首先關閉firewalld:
$ sudo systemctl stop firewalld
$ firewall-cmd –-state
嘗試重新啓動ceph集羣,看是否能夠起來(各個節點均執行),命令:
$ sudo service ceph start