上一篇完成了源碼編譯云挟,本篇開啟部署過程
其實整個步驟還是按照官網(wǎng)手動部署來進行的,只是中間遇到了osd起不來的問題转质,經(jīng)過一系列試錯园欣,找到了解決方案,總的來說還是權(quán)限問題峭拘。
1.安裝
make install
安裝完成之后俊庇,就可以使用ceph的命令了
I.集群配置及monitor初始化及啟動
1.給集群分配唯一的ID
uuidgen
ceph提供了生成ID的命令,這個工具可用于生成各種uuid鸡挠,包括集群fsid辉饱,osd的uuid等。
2.寫默認配置文件
其實這里還是花了不少時間的拣展,畢竟是首次部署彭沼,總是擔(dān)心由于配置錯誤導(dǎo)致集群起不來,又找不到癥結(jié)所在备埃⌒栈螅總之,fsid和ip是要給的按脚,包括osd于毙。
3.創(chuàng)建密鑰環(huán)
這邊其實很好理解,不知為何看社區(qū)文檔就很難理解辅搬。
因為ceph有monitor础爬,要去監(jiān)控每個osd赡麦,且osd之間也需要通信东抹,畢竟涉及到數(shù)據(jù)遷移呀什么的爆阶,所以認證就是必須的了。認證協(xié)議其實有很多溶褪,ceph有自己的認證體系cephx币旧,自己創(chuàng)建key并實現(xiàn)認證就不難理解了≡陈瑁看配置文件中auth cluster required吹菱,auth service required巍虫,auth client required都配置了cephx,那就是都需要cephx的認證了(有的集群這幾個配置都是none毁葱,初始化時就不需要這個keyring了)垫言。
(1)為集群創(chuàng)建keyring
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
集群搭建之初,會生成一個ceph.mon.keyring倾剿,這個文件幾乎不會再后面的集群交互中使用,因為在集群初始化時會生成一個client.admin用戶蚌成,后面交互一般都會使用這個用戶前痘。但集群生成的第一個用戶是<mon.>,對應(yīng)密鑰文件保存在部署目錄下的ceph.mon.keyring担忧。
關(guān)于caps:表示各個用戶的權(quán)限細分
(2)生成管理員keyring:生成client.admin用戶并加入keyring
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
(3)創(chuàng)建bootstrap引導(dǎo)osd的keyring
關(guān)于bootstrap的幾個用戶:用于引導(dǎo)生成對應(yīng)類用戶的用戶
如:boostrap-osd:用戶引導(dǎo)生成所有osd.N用戶
sudo mkdir -r /var/lib/ceph/bootstrap-osd/
ceph-authtool -C /var/lib/ceph/bootstrap-osd/ceph.keyring
(4)創(chuàng)建mgr用戶的keyring
ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'
mkdir /var/lib/ceph/mgr/ceph-node1
ceph auth get mgr.node1 -o /var/lib/ceph/mgr/ceph-node1/keyring
其中node1對應(yīng)為主機名
(5)創(chuàng)建osd用戶的keyring
這邊我只有兩塊盤芹缔,所以只有兩個osd
ceph auth get-or-create osd.0 mon 'allow rwx' osd 'allow *' mgr 'allow *' -o /var/lib/ceph/osd/ceph-0/keyring
ceph auth get-or-create osd.1 mon 'allow rwx' osd 'allow *' mgr 'allow *' -o /var/lib/ceph/osd/ceph-1/keyring
(6)查看所有的認證
ceph auth list
ceph auth get [client.admin]
4.為monitor生成監(jiān)視器圖
用規(guī)劃好的主機名、對應(yīng) IP 地址瓶盛、和 FSID 生成一個監(jiān)視器圖最欠,并保存為 /tmp/monmap
monmaptool --create --add [host] [ip] --fsid [fsid] /tmp/monmap
5.在monitor創(chuàng)建數(shù)據(jù)目錄
mkdir /var/lib/ceph/mon/ceph-node1
6.用monmap和keyring組裝守護進程所需的初始數(shù)據(jù)
大白話:這一步就是monitor的初始化
ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
7.啟動monitor
建一個空文件 done ,表示監(jiān)視器已創(chuàng)建惩猫、可以啟動
touch /var/lib/ceph/mon/ceph-node1/done
touch /var/lib/ceph/mon/ceph-node1/sysvinit
啟動
/etc/init.d/ceph start mon.node1
到這步芝硬,我們可以查看ceph的集群狀態(tài)了,這邊提一句轧房,默認的集群名為"ceph"拌阴,用戶為"ceph",后面涉及到權(quán)限問題奶镶。
查看ceph狀態(tài)
[root@node1 ~]# ceph -s? ?
這邊看到ceph狀態(tài)不是HEALTH_OK迟赃,且告訴我們monitor沒有enabled msgr2,這個也好解決:
?ceph monenable-msgr2
重啟monitor
systemctl restart ceph-mon@node01
或者
/etc/init.d/ceph restart mon.node1
II.配置并啟動mgr
我裝的是ceph N版(14.2.9)厂镇,新版本是通過mgr來管理的纤壁,所以要把它啟動下
1.生成mgr的keyring并保存(這一步第I部分已經(jīng)做了)
ceph auth get-or-create mgr.node1 mon 'allow *' osd 'allow *'
mkdir /var/lib/ceph/mgr/ceph-node1
ceph auth get mgr.node1 -o /var/lib/ceph/mgr/ceph-node1/keyring
2.初始化并啟動mgr
ceph-mgr -i node1
III.配置并啟動osd
這一部分真是很折磨人,當我按照官網(wǎng)創(chuàng)建OSD的步驟走完之后捺信,發(fā)現(xiàn)我的兩個OSD都是down的狀態(tài)酌媒,不知道如何拉起來,后來發(fā)現(xiàn)是權(quán)限問題残黑。以下步驟以osd.0為例馍佑,osd.1的創(chuàng)建啟動步驟都是一樣的。
1.創(chuàng)建boot引導(dǎo)osd的key
這一步也是第一部分已經(jīng)做了
mkdir /var/lib/ceph/bootstrap-osd/
ceph-authtool -C /var/lib/ceph/bootstrap-osd/ceph.keyring
2.創(chuàng)建掛載目錄
sudo mkdir -r /var/lib/ceph/osd/ceph-0
3.為osd生成uuid
uuidgen
4.創(chuàng)建osd
ceph osd create [osduuid]
5.選一個磁盤創(chuàng)建文件系統(tǒng)
mkfs -t xfs /dev/sdb
6.將創(chuàng)建好文件系統(tǒng)的磁盤掛載到osd目錄
mount /dev/sdb /var/lib/ceph/osd/ceph-0
7.為osd.0創(chuàng)建一個用戶并創(chuàng)建一個key(這一步也是第一部分已經(jīng)做了)
ceph auth get-or-create osd.0 mon 'allowrwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-0/keyring
8.初始化osd目錄
?sudo ceph-osd -i 0 --mkfs --mkkey
這一步梨水,會有很多報錯拭荤,原因就是/var/lib/ceph/osd/ceph-0這個目錄的權(quán)限所屬是root,不是ceph
chown -R ceph:ceph?/var/lib/ceph/osd/ceph-0
9.啟動osd.0
/etc/init.d/ceph start osd.0
*9.1啟動某一Ceph的節(jié)點上的所有OSD守護進程
systemctl start ceph-osd.target
這個時候在看下ceph 集群疫诽,HEALTH_OK舅世,且所有OSD都是up的旦委,so happy!