不卸載ceph重新獲取一個干凈的集群環境
標簽(空格分隔): ceph ceph環境搭建 運維
部署了一個ceph集群環境,由於種種原因需要回到最開始完全clean的狀態,而又不想卸載ceph客戶端或者重新搭建虛擬機,此篇博客的目的就是為了解決這一問題。
我的環境:node1的角色為osd,mon,node2和node3的角色都為osd。每個host的系統為centos7,每個host上部署兩個osd。ceph版本為luminous (12.4.1 )。之外有一個host作為專門部署ceph的admin節點,系統同樣是centos7。
1. ceph環境清理!
在每個ceph節點上執行如下指令,即可將環境清理至剛安裝完ceph客戶端時的狀態!強烈建議在舊集群上搭建之前清理干凈環境,否則會發生各種異常情況。
ps aux|grep ceph |awk '{print $2}'|xargs kill -9
ps -ef|grep ceph
確保此時所有ceph進程都已經關閉!!!如果沒有關閉,多執行幾次
umount /var/lib/ceph/osd/*
rm -rf /var/lib/ceph/osd/*
rm -rf /var/lib/ceph/mon/*
rm -rf /var/lib/ceph/mds/*
rm -rf /var/lib/ceph/bootstrap-mds/*
rm -rf /var/lib/ceph/bootstrap-osd/*
rm -rf /var/lib/ceph/bootstrap-rgw/*
rm -rf /var/lib/ceph/bootstrap-mgr/*
rm -rf /var/lib/ceph/tmp/*
rm -rf /etc/ceph/*
rm -rf /var/run/ceph/*
同時情況admin節點中my-cluster目錄下的所有內容:
cd /root/my-cluster/
rm *
雖然這個時候環境已經清理干凈,但是ceph卻還不能運行,需要執行下面的操作。
2. 重新啟動ceph:
2.1 在admin節點上執行下面的命令:
創建my-cluster目錄之后,進入該目錄下創建集群:
ceph-deploy new node1
2.2 在每個ceph節點上執行下面的命令:
如果想要隨便更新ceph,並且網速不好,需要從https://download.ceph.com/rpm-luminous/el7/x86_64/下載最新安裝包放到/var/cache/yum/x86_64/7/Ceph/packages/文件夾下
執行下面的命令重新安裝ceph:
sudo yum install ceph epel-release ceph-radosgw
安裝完成后,查看ceph版本確定安裝成功:
ceph --version
添加防火牆規則:
firewall-cmd --zone=public --add-service=ceph-mon --permanent(僅mon節點執行,如不添加就不能在其他節點執行ceph命令)
firewall-cmd --zone=public --add-service=ceph --permanent
firewall-cmd --reload
3. 在admin節點執行:
ceph-deploy install --release luminous node1 node2 node3
4. 在admin節點初始化mon:
ceph-deploy mon create-initial
5. 賦予各個節點使用命令免用戶名權限:
ceph-deploy admin node1 node2 node3
6. 安裝ceph-mgr (僅luminous版本,為使用dashboard做准備):
ceph-deploy mgr create node1
7. 添加osd:
ceph-deploy osd createnode1:sdb1 node2:sdb1 node3:sdb1 node1:/dev/sdc1 node2:/dev/sdc1 node3:/dev/sdc1
需要說明的是該sdb是在各個節點上為osd准備的空閑磁盤(無需分區格式化,如果有分區需要指定具體分區),通過如下命令查看:
ssh node1 lsblk -f
最后通過如下命令查看集群狀態:
ssh node1 sudo ceph -s
如果顯示health_ok,6個osd up就成功了。
但在環境創建完成后,該命令執行后,雖然集群狀態為health_ok,但是卻顯示0個osd。在ceph節點使用ceph osd tree命令后竟然啥都沒有,最后需要在admin部署節點,執行如下命令:
ceph-deploy osd activate node1:/dev/sdb1 node2:/dev/sdb1 node3:/dev/sdb1 node1:/dev/sdc1 node2:/dev/sdc1 node3:/dev/sdc1
至此就得到一個干凈的ceph環境,這種方法可以徹底清除原來滯留的數據
結束語
第一次使用markdown寫博客,參考了 高亮顯示linux命令, MarkDown寫作技巧 簡單完成此篇博客書寫語法方面的問題。特別感謝徐小胖的 快速部署ceph ,從該作者的一系列的博客學習很多ceph相關的知識,包括疑難問題解決,運維常用知識等。