版本1.0
撰寫時(shí)間:2018-5-31
Author:李松杉
環(huán)境:
192.168.8.196 node1
192.168.8.197? node2(admin server)
192.168.8.199? node3
1、更改主機(jī)名,增加主機(jī)對(duì)應(yīng)關(guān)系
192.168.8.196 node1
192.168.8.197 node2
192.168.8.199 node3
hostnamectl set-hostnamenode1
hostnamectl set-hostnamenode2
hostnamectl set-hostnamenode3
2、無秘鑰
node2:
? ? ssh-keygen
ssh-copy-id node1
ssh-copy-id node3
3、更新yum源
yum install -yhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
4、添加ceph源
[Ceph]
name=Ceph packages for$basearch
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/$basearch
enabled=1
priority=1
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch
enabled=1
priority=1
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/SRPMS
enabled=0
priority=1
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
5、安裝ceph-deploy
yum -yinstallpython-setuptools ceph-deploy
6、安裝ceph
先在所有server上部署yuminstall-y deltarpm
在node2
ceph-deployinstall--release=luminous node1 node2 node3
二、建立ceph集群
1、創(chuàng)建ceph-deploy執(zhí)行過程中生成控制文件的目錄
node2:
mkdir/etc/test-ceph-deploy
cdmkdir/etc/test-ceph-deploy
2、創(chuàng)建集群:1mon+1mgr
2.1 創(chuàng)建一個(gè)monitor
node2:
ceph-deploynewnode2
配置ceph網(wǎng)絡(luò)
注:如果一開始沒有配置網(wǎng)絡(luò)(ceph集群使用兩個(gè)網(wǎng)絡(luò):public network和cluster network。前者用于服務(wù)client;后者用于集群內(nèi)部通信,例如osd之間遷移數(shù)據(jù)。另外,兩個(gè)網(wǎng)絡(luò)上都有heartbeat。)后面在擴(kuò)展mon節(jié)點(diǎn)時(shí)會(huì)報(bào)錯(cuò)
解決方案增加ceph.conf中網(wǎng)絡(luò)配置,并且推送到所有節(jié)點(diǎn)
node2:
ceph-deploy --overwrite-conf config push node1 node2 node3
2.2 獲取密鑰
node2:
ceph-deploy mon create-initial
2.3 分發(fā)密鑰
node2:
ceph-deployadminnode1 node2 node3
2.4 部署initial monitor
node2:
ceph-deploy moncreatenode2
2.5創(chuàng)建mgr
node2:
ceph-deploy mgr createnode2
檢查
2.6 添加osd
1)、添加node1上的osd.1
node2:
ceph-deploy osd create node1 --data /dev/sdb
? ? 2)、添加node2上的osd.2
node2:
ceph-deploy osd create node2 --data /dev/sdb
3)、添加node3上的osd.3
node2:
ceph-deploy osd create node3 --data /dev/sdb
檢查狀態(tài)
2.7添加兩個(gè)mon+添加兩個(gè)mgr
node2:
ceph-deploy monaddnode1
ceph-deploy monaddnode3
ceph-deploy mgr create node1
ceph-deploy mgr create node3
檢查
注:檢查提示 node2和node3 時(shí)間不一致,集群異常,處理方法同步時(shí)間
node1、node2、node3:
配置時(shí)間管理工具chrony
? ? ? ? ? ? ? 2.7 增加一個(gè)mds
node2:
ceph-deploy mds createnode2
如下,我們通過ceph -s看不到mds服務(wù)。直到創(chuàng)建ceph filesystem的時(shí)候,mds才進(jìn)入active狀態(tài)(見4.1節(jié))。
? ? 至此,ceph集群就完全部署起來了。下面,我們?yōu)閏eph集群增加一些client。
3 增加rgw(在node2,管理端操作)
我們可以使用ceph集群之外的server來部署rgw。部署之前,需要保證默認(rèn)端口(7480)沒有被防火墻禁止。并且需要安裝ceph-radosgw包機(jī)器依賴:
ceph-deploy install --rgw []
為了方便起見,我們復(fù)用集群內(nèi)的node1和node3來部署rgw。(可以在node1和node3上ps查看,并且可以通過http訪問)
ceph-deploy rgw createnode1node3
node2上http訪問
? ? 4、增加cephfs
ceph filesystem需要mds,并且有兩種方式來掛載:ceph fuse和ceph kernel driver。
在這一節(jié),我們:
創(chuàng)建一個(gè)ceph filesystem
通過ceph fuse掛載
通過ceph kernel driver掛載
4.1 創(chuàng)建ceph filesystem (在集群內(nèi)任意主機(jī)皆可)
1)、創(chuàng)建所需的pool
ceph osd pool create cephfs_data 80
ceph osd pool create cephfs_metadata 40
2)、創(chuàng)建ceph filesystem
ceph fsnewmycephfscephfs_metadata cephfs_data
創(chuàng)建filesystem 后mds就會(huì)active
? 4.2 通過ceph fuse掛載(在任意客戶端機(jī)器,這里復(fù)用了node2)
和rgw一樣,原則上我們?cè)赾eph集群之外的某臺(tái)server上掛載ceph filesystem。但為了方便起見,我們還是在node2上掛載。
1)、部署ceph fuse包;
yum -yinstallceph-fuse
? ? 2)、創(chuàng)建一個(gè)掛載點(diǎn),就可以掛載了。注意ceph-fuse使用admin權(quán)限,所以通過-k選項(xiàng)傳入admin的key。
[root@node2~]# mkdir /mnt/cephfs
[root@node2~]# ceph-fuse -k /etc/ceph/ceph.client.admin.keyring? -m node1:6789 /mnt/cephfs
這時(shí)候,一個(gè)全新的ceph filesystem就可以使用了。注意:這時(shí)cephfs_data是空的,但cephfs_metadata不空:
ceph df
創(chuàng)建文件后cephfs_data也有數(shù)據(jù)
5.增加rbd
5.1 準(zhǔn)備rbd pool
在集群內(nèi)的任意server上創(chuàng)建一個(gè)pool:
ceph osd pool create rbd_pool 10 10
5.2 創(chuàng)建塊設(shè)備
首先我們嘗試在集群內(nèi)的 一個(gè)server(node1)上創(chuàng)建塊設(shè)備
需要先安裝ceph-common
yum-y install ceph-common
創(chuàng)建塊設(shè)備
1、將admin的key獨(dú)立保存admin.secret文件
rbd create foo --size4906--image-feature layering -m192.168.8.196-K admin.secret -p rbd_pool
rbd map foo --name client.admin -m192.168.8.196-K admin.secret -p rbd_pool
錯(cuò)誤:
此錯(cuò)誤是因?yàn)閮?nèi)核版本低造成,需要升級(jí)內(nèi)核版本
石墨鏈接:
https://shimo.im/docs/aQqL932X2R4rrMpo/ 點(diǎn)擊鏈接查看「ceph12.2.5部署記錄」
關(guān)注鏈接: