Ceph 叢集部署
Ceph部署(Mimic 13.2.10)
快速部署步驟
1、準備環境
4臺機器,作業系統centos 7.6,每臺機器都有一個系統盤/dev/vba 和一個數據盤dev/vdb,規劃如下
192.168.162.6 client 192.168.162.6 admin 192.168.162.4 storage1 192.168.162.7 storage3 192.168.162.5 storage2
2、配置環境
1、在每個對應的節點修改主機名,vim /etc/hostname 2、在每臺機器上配置hosts,vim /etc/hosts (見第一點) 3、在每臺機器上 sudo執行visudo命令,註釋#Defaults requiretty 4、在每臺機器上 配置yum源,在/etc/yum.repos.d/下新增ceph.repo,其他yum源的配置參考附件
5、各個節點,關閉selinux和firewall
setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config systemctl disable firewalld.service systemctl stop firewalld.service
6、各個節點 yum clean all 和 yum update -y
7、各個節點,建立使用者bybceph 並設定密碼 12345678
useradd bybceph echo 12345678 | passwd --stdin bybceph
8、各節點為bybceph 使用者配置sudo 免密,
echo "bybceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/bybceph sudo chmod 0440 /etc/sudoers.d/bybceph
9、 在各個節點上啟動了 NTP 服務,並且要使用同一個 NTP 伺服器
10、確保每個節點都安裝了ssh
3、安裝和配置ceph
1、在admin 節點配置免密登陸, 規劃admin 節點既是cepy-deploy節點也是monitor節點
su - bybceph ssh-keygen ssh-copy-id admin ssh-copy-id storage1 ssh-copy-id storage2 ssh-copy-id storage3
2、在admin 節點安裝ceph-deploy
sudo yum -y install ceph-deploy 如果報錯,可以先安裝 yum install python-setuptools ,可能出現的異常見右圖
3、本次練習時,我們建立一個 Ceph 儲存叢集,它有一個 Monitor 和3個 OSD 守護程序。
一旦叢集達到 active + clean 狀態,再擴充套件它:增加第4個 OSD 、增加元資料伺服器和兩個 Ceph Monitors。為獲得最佳體驗,先在admin點上建立一個目錄,用於儲存 ceph-deploy 生成的配置檔案和金鑰對。 mkdir my-cluster cd my-cluster ceph-deploy 會把檔案輸出到當前目錄,所以請確保在此目錄下執行 ceph-deploy
4、如果之前安裝出現了問題,需要重新安裝,請在admin節點執行如下命令
刪除ceph相關的配置:ceph-deploy purgedata {ceph-node} [{ceph-node}] 刪除key:ceph-deploy forgetkeys 刪除ceph相關的安裝包:ceph-deploy purge {ceph-node} [{ceph-node}] 停止所有程序: stop ceph-all (可選) 解除安裝所有ceph程式:ceph-deploy uninstall [{ceph-node}] (可選)
5、在admin 節點建立叢集,也是建立minitor,語法:ceph-deploy new {initial-monitor-node(s)},本次例項只有一個monitor放在admin節點,所以執行:
ceph-deploy new admin 執行完成後在當前目錄下用 ls輸出,應該有一個 Ceph 配置檔案、一個 monitor 金鑰環和一個日誌檔案。 1)修改ceph.conf配置檔案裡的預設副本數從 3 改成 2 。把下面這行加入 [global] 段 osd pool default size = 2 2)如果果你有多個網絡卡,可以把 public network 寫入 Ceph 配置檔案的 [global] 段,比如: 語法:public network = {ip-address}/{netmask} public network= 192.168.162.0/24
6、安裝ceph,在admin 節點執行:
ceph-deploy install admin storage1 storage2 storage3
執行該步驟後,實際上在各個節點都安裝了ceph
7、在各osd 節點上執行如下命令,安裝物件閘道器,實際上就是在每臺osd機器上部署了物件閘道器:(第6點安裝的時候其實已經裝了,到各個osd上去檢查下執行也行)
yum -y install ceph ceph-radosgw
8、在admin節點,配置初始化配置初始 monitor(s)、並收集所有金鑰,執行命令:ceph-deploy mon create-initial,執行完成後,在安裝目錄可以看到如下內容
9、用 ceph-deploy 把配置檔案和 admin 金鑰拷貝到管理節點和 Ceph 節點,這樣你每次執行 Ceph 命令列時就無需指定 monitor 地址和 ceph.client.admin.keyring 了,在admin節點執行
語法:ceph-deploy admin {admin-node} {ceph-node} 例子:ceph-deploy admin admin storage1 storage2 storage3
10、啟動OSD,在 admin 節點執行即可,預設採用的是bluestore,關於掛載見左側:
ceph-deploy osd create --data /dev/vdb1 storage1 ceph-deploy osd create --data /dev/vdb1 storage2 ceph-deploy osd create --data /dev/vdb1 storage3 TODO:關於裸盤的操作
11、驗證ceph health 或ceph -s
12、物件閘道器配置
1)、建立儲存池 ,在admin 節點執行,語法見 ceph osd pool create --help
ceph osd pool create test 128
2)安裝rgw服務,在admin 節點執行,ceph-deploy rgw create storage1 storage2 storage3 ,
完成後即可訪問,預設情況下是7480埠,http://ip:7480,返回資料為 :
物件閘道器重啟命令:sudo systemctl restart ceph-radosgw.service???
3) 在admin 節點安裝mgr,ceph-deploy mgr create storage1 storage2 storage3
4)建立物件閘道器使用者,在admin 節點執行:radosgw-admin user create --uid="rgwuser" --display-name="This is first rgw test user"
參考:https://www.jianshu.com/p/79903d72c066
建立完成後,得到accessKey和secetKey "access_key": "2HYN0UPBJ0E1VDIA94DY", "secret_key": "wBtVs1YN5OoxeGb0oOMzlLpmCG69xTVUWff1daxY"
5)基於第4點,有了兩個key 和物件閘道器訪問的url ,這樣就可以建立桶 (分別建立: bnc-private-bucket 和 bnc-public-bucket),私有桶用了儲存個人的身份證和資料資訊,公共桶用了存放廣告或新聞圖片
6)安裝S3cmd,便於管理ceph檔案和桶的策略,在admin 節點執行:yum -y install s3cmd
7)在使用者的家目錄,新建一個.s3cfg的檔案,內容如下,其中access-key、都是來自前面的資訊:可參考右邊的附件
[default] access_key = 2HYN0UPBJ0E1VDIA94DY secret_key = wBtVs1YN5OoxeGb0oOMzlLpmCG69xTVUWff1daxY host_base = 192.168.162.7:7480 host_bucket = 192.168.162.7:7480/bnc-private-bucket use_https = False .s3cfg
8)驗證s3,執行:s3cmd info s3://bnc-private-bucket/
9)配置公共桶策略,在使用者的家目錄新建一個examplepol 的檔案,可參與右邊的examplepol附件,內容如下:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::bnc-public-bucket/*" ] }] }
為公共桶新增策略:s3cmd setpolicy examplepol s3://bnc-public-bucket
刪除策略:s3cmd delpolicy s3://bnc-public-bucket
examplepol
13、安裝dashboard
1)開啟dashboard 功能,ceph mgr module enable dashboard
2)建立證書 ceph dashboard create-self-signed-cert
3)建立 web 登入使用者密碼,ceph dashboard set-login-credentials user-name password
4)檢視服務訪問方式 ceph mgr services
5)dashboard的安裝參考:https://blog.csdn.net/don_chiang709/article/details/97148101
14、關於解除安裝,中途裝了一半沒成功或想解除安裝ceph
清理機器上的ceph相關配置:
停止所有程序: stop ceph-all
解除安裝所有ceph程式:ceph-deploy uninstall [{ceph-node}]
刪除ceph相關的安裝包:ceph-deploy purge {ceph-node} [{ceph-node}]
刪除ceph相關的配置:ceph-deploy purgedata {ceph-node} [{ceph-node}]
刪除key:ceph-deploy forgetkeys
解除安裝ceph-deploy管理:yum -y remove ceph-deploy
15、本案例的安裝參考:
https://www.cnblogs.com/happy1983/p/9246379.html https://blog.csdn.net/wylfengyujiancheng/article/details/85613361 https://blog.csdn.net/don_chiang709/article/details/97148101 https://www.icode9.com/content-3-642657.html
關於s3cmd的使用, 比如檢視:s3cmd ls -rH s3://bnc-private-bucket
部署異常處理
pkill ceph
建立儲存池
ceph osd pool create test 128
必須掛裸盤
vim /etc/rc.local pvs vgs lvs lvremove /dev/akulaku_vg/akulaku_vol vgremove akulaku_vg pvremove /dev/vdb1 fdisk -l fdisk /dev/vdb1 partx -a /dev/vdb1 public network 和修改hostname
系統管理
儲存池:池是物件儲存的邏輯部分
基本概念
配置檔案、服務存放路徑、命令儲存路徑
service 配置路徑:
/etc/systemd/system /usr/lib/systemd/system
命令執行路徑:
/usr/bin/
配置檔案路徑:
/etc/sysconfig/ ceph 的啟動都做成了sysctl的啟動方式,啟動日誌和狀態檢視
// 啟動與關閉 /usr/lib/systemd/system
systemctl status [email protected]
ceph 相關的日誌路徑/var/log/ceph
修改ceph.conf 後需要修改monitor重啟
systemctl restart ceph-mon.target