分布式存儲(chǔ)ceph部署
部署luminous(ceph12.2.10的版本代號(hào))
配置dashboard
客戶(hù)端使用rbd
======================================
部署環(huán)境
系統(tǒng)版本:centos7.5 x86_64 server
ceph版本:ceph 12.2.10(luminous)
硬件配置:5臺(tái)vm候齿,1核1G內(nèi)存钞速,每臺(tái)node角色的機(jī)器至少掛載1塊為osd準(zhǔn)備的空閑盤(pán)
主機(jī)名 ip role
admin 192.168.101.100 admin
node1 192.168.101.101 mon / mgr / osd
node2 192.168.101.102 osd
client 192.168.101.103
======================================
1 準(zhǔn)備工作
1.1 開(kāi)啟網(wǎng)絡(luò)(所有節(jié)點(diǎn)恩敌,root用戶(hù))
1.2 修改主機(jī)名/互相解析(所有節(jié)點(diǎn),root用戶(hù))
1.3 創(chuàng)建用戶(hù)(所有節(jié)點(diǎn)古拴,root用戶(hù)) 在所有節(jié)點(diǎn)上執(zhí)行如下操作:
1)創(chuàng)建用戶(hù)名:cephu,設(shè)置密碼:
# useradd cephu
# passwd cephu
2)修改visudo文件,否則提示cephu不再sudoer列表中的錯(cuò)誤鲸鹦。
命令行輸入visudo,在root ALL=(ALL) ALL下面添加:
cephu ALL=(ALL) ALL
3)切換至cephu用戶(hù)跷跪,為該用戶(hù)增加root權(quán)限:
$ echo "cephu ALL=(root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephu
$ sudo chmod 0440 /etc/sudoers.d/cephu
1.4 實(shí)現(xiàn)ssh無(wú)密碼登錄(admin節(jié)點(diǎn))
1)cephu用戶(hù)下馋嗜,生成秘鑰:
$ ssh-keygen
2)cephu用戶(hù)下,把生成的密鑰拷貝到各Ceph節(jié)點(diǎn):
$ ssh-copy-id cephu@node1
$ ssh-copy-id cephu@node2
3)root用戶(hù)下吵瞻,添加~/.ssh/config配置文件葛菇,并進(jìn)行如下設(shè)置:
Host node1
Hostname node1
User cephu
Host node2
Hostname node2
User cephu
Host node3
Hostname node3
User cephu
1.5 添加下載源,安裝ceph-deploy(admin節(jié)點(diǎn)橡羞,root用戶(hù))
1)添加ceph源:
#vim /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
2)更新源眯停,安裝ceph-deploy:
# sudo yum makecache
# sudo yum update
# vim /etc/yum.conf
keepcache=1
# sudo yum install ceph-deploy -y
1.6 設(shè)置TTY(所有節(jié)點(diǎn))
注意:此設(shè)置由官方文檔指出,但是并未在這里找不到此配置行,不用做此步
# sudo visudo 找到 Defaults requiretty 注釋掉
1.7 關(guān)閉selinux(所有節(jié)點(diǎn))
1.8 設(shè)置時(shí)間同步
sudo yum -y install ntpdate
sudo ntpdate ntp1.aliyun.com
2 部署ceph集群
沒(méi)有特別說(shuō)明以下所有操作均是在admin節(jié)點(diǎn),cephu用戶(hù)下執(zhí)行
2.1 創(chuàng)建ceph操作目錄:
$ mkdir my-cluster //切記不可用sudo創(chuàng)建
$ cd my-cluster //之后,所有ceph-deploy命令操作必須在該目錄下執(zhí)行
2.2 創(chuàng)建集群:
$ ceph-deploy new node1
創(chuàng)建成功會(huì)有三個(gè)文件:ceph.conf, ceph.mon.keyring, and a log file
2.3 安裝luminous(12.2.9):
目標(biāo):在node1,node2,node3三個(gè)節(jié)點(diǎn)上安裝ceph和ceph-radosgw主包
方法1:利用官方腳本全自動(dòng)安裝
腳本會(huì)幫助node1,node2,node3創(chuàng)建epel源和ceph源固以,并且自動(dòng)安裝ceph和ceph-radosgw主包
$ ceph-deploy install --release luminous node1 node2 node3
這一步實(shí)際上是給3個(gè)節(jié)點(diǎn)安裝兩個(gè)軟件:如果ceph和ceph-radosgw安裝不上结笨,則采用方法2
測(cè)試是否安裝完成:分別在node1 node2 node3中確認(rèn)安裝版本為12.2.9
$ ceph --version
方法2:手動(dòng)部署安裝
1)安裝epel源
2)創(chuàng)建Ceph源,內(nèi)容如下:
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
3)分別在node1齐邦,node2,node3節(jié)點(diǎn)執(zhí)行下面命令安裝軟件
可以完全手動(dòng)安裝第租,但需要yum的ceph緩存目錄結(jié)構(gòu)
$sudo yum install ceph ceph-radosgw -y
如果因?yàn)樗俣嚷龑?dǎo)致安裝失敗可以按ctrl+c措拇,利用它創(chuàng)建的yum緩存目錄,手動(dòng)把安裝包下載下來(lái)保存到緩存目錄/var/cache/yum/x86_64/Ceph/packages目錄下
再次執(zhí)行安裝命令:
$sudo yum install ceph ceph-radosgw -y
分別在node1 node2 node3中確認(rèn)安裝版本為12.2.1:
$ ceph --version
2.4 初始化mon:
$ ceph-deploy mon create-initial
2.5 賦予各個(gè)節(jié)點(diǎn)使用命令免用戶(hù)名權(quán)限:
$ ceph-deploy admin node1 node2 node3
2.6 安裝ceph-mgr:只有l(wèi)uminous才有慎宾,為使用dashboard做準(zhǔn)備
$ ceph-deploy mgr create node1
2.7 添加osd:
注意:各個(gè)節(jié)點(diǎn)上提供存儲(chǔ)空間的磁盤(pán)大小不能太小丐吓,最好5G以上
$ ceph-deploy osd create --data /dev/sdb node1(12.2.10版本是這條命令浅悉,分開(kāi)給各節(jié)點(diǎn)安裝)
$ ceph-deploy osd create --data /dev/sdb node2
$ ceph-deploy osd create --data /dev/sdb node3
命令中/dev/sdb是在各個(gè)節(jié)點(diǎn)上為osd準(zhǔn)備的空閑磁盤(pán)(無(wú)需分區(qū)格式化,如果有分區(qū)需要指定具體分區(qū))券犁,通過(guò)如下命令查看:
$ ssh node1 lsblk -f
最后通過(guò)如下命令查看集群狀態(tài):
$ ssh node1 sudo ceph -s
如果顯示health_ok术健,3個(gè)osd up就成功了
3 Dashboard的配置:在node1上操作
把ceph-mgr和ceph-mon安裝在同一個(gè)主機(jī)上,最好只有一個(gè)ceph-mgr
3.1 創(chuàng)建管理域秘鑰:
$ sudo ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'
3.2 開(kāi)啟 ceph-mgr 管理域:
$ sudo ceph-mgr -i node1
3.3 查看ceph的狀態(tài):
$ sudo ceph status
確認(rèn)mgr的狀態(tài)為active
3.4 打開(kāi)dashboard模塊:
$ sudo ceph mgr module enable dashboard
3.5 綁定開(kāi)啟dashboard模塊的ceph-mgr節(jié)點(diǎn)的ip地址:
$ sudo ceph config-key set mgr/dashboard/node1/server_addr 192.168..101.101 #ip地址為mgr節(jié)點(diǎn)的ip地址
3.6 web登錄:
瀏覽器地址欄輸入:
mgr地址:7000
======================================
4 配置客戶(hù)端使用rbd:
創(chuàng)建塊設(shè)備之前需要?jiǎng)?chuàng)建存儲(chǔ)池粘衬,存儲(chǔ)池相關(guān)命令需要在mon節(jié)點(diǎn)執(zhí)行
4.1 創(chuàng)建存儲(chǔ)池:
$ sudo ceph osd pool create rbd 128 128
4.2 初始化存儲(chǔ)池:
$ sudo rbd pool init rbd
4.3 準(zhǔn)備客戶(hù)端client:
另備一臺(tái)主機(jī)苛坚,系統(tǒng)centos7用來(lái)作為client。主機(jī)名為client色难,ip:192.168.101.103泼舱。修改hosts文件實(shí)現(xiàn)和admin節(jié)點(diǎn)的主機(jī)名互通。
1)升級(jí)client內(nèi)核到4.x,方法在子目錄中
Centos7升級(jí)內(nèi)核
更新前枷莉,內(nèi)核版本為:
#uname -r
3.10.0-327.10.1.el7.x86_64
升級(jí)方法
導(dǎo)入key:
#rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安裝elrepo的yum源:
#rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
4.4查看可用的系統(tǒng)內(nèi)核包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安裝內(nèi)核:
#yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml
kernel-ml x86_64 4.4.4-1.el7.elrepo elrepo-kernel 38M
kernel-ml-devel x86_64 4.4.4-1.el7.elrepo elrepo-kernel 10M
查看默認(rèn)啟動(dòng)順序
#awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.4.4-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.10.1.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c52097a1078c403da03b8eddeac5080b) 7 (Core)
默認(rèn)啟動(dòng)的順序是從0開(kāi)始娇昙,新內(nèi)核是從頭插入(目前位置在0,而4.4.4的是在1)笤妙,所以需要選擇0冒掌。
#grub2-set-default 0
然后reboot重啟,使用新的內(nèi)核蹲盘,下面是重啟后使用的內(nèi)核版本:
4.5股毫、刪除舊的內(nèi)核
#yum remove kernel
2)為client安裝ceph:
參考2.3 在做2.3之前先在client上做1.3的三步
還要做著一步 否則報(bào)錯(cuò) #yum -y install python-setuptools
3)關(guān)閉防護(hù)墻和selinux
4)在admin節(jié)點(diǎn)賦予client使用命令免用戶(hù)名權(quán)限:
$ ceph-deploy admin client
5)修改client下該文件的讀權(quán)限:
$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
6)修改client下的ceph配置文件:這一步是為了解決映射鏡像時(shí)出錯(cuò)問(wèn)題
$ sudo vi /etc/ceph/ceph.conf 在global section下添加:
rbd_default_features = 1
4.4 client節(jié)點(diǎn)創(chuàng)建塊設(shè)備鏡像:?jiǎn)挝皇荕,這里是4個(gè)G
$ rbd create foo --size 4096
4.5 client節(jié)點(diǎn)映射鏡像到主機(jī):
$ sudo rbd map foo --name client.admin
4.6 client節(jié)點(diǎn)格式化塊設(shè)備:
$ sudo mkfs.ext4 -m 0 /dev/rbd/rbd/foo
4.7 client節(jié)點(diǎn)mount塊設(shè)備:
$ sudo mkdir /mnt/ceph-block-device
$ sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
$ cd /mnt/ceph-block-device