1. 程式人生 > 實用技巧 >Ceph 叢集部署

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