利用ceph-deploy在ubuntu server14.04上部署ceph并進行其它配置

jopen 10年前發布 | 58K 次閱讀 Ceph

1. 環境與說明

在ubuntu14.04 server上部署ceph-0.87;設置rbdmap自動掛載/卸載rbd塊設備;利用帶rbd支持的tgt導出iscsi的rbd塊。

2. 安裝ceph

1)配置hostname與無密碼登錄

root@mon0:/etc/ceph# cat /etc/hosts
127.0.0.1   localhost
192.168.108.4     osd2.osd2    osd2
192.168.108.3   osd1.osd1   osd1
192.168.108.2   mon0.mon0   mon0
#示例如下
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub osd1

2)安裝ceph-deploy

wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
echo deb http://ceph.com/debian-dumpling/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
apt-get update
apt-get install ceph-deploy

3)安裝ceph

ceph-deploy new mon0 osd1 osd2
ceph-deploy install mon0 osd1 osd2
ceph-deploy mon create mon0 osd1 osd2
ceph-deploy gatherkeys mon0 osd1 osd2
ceph-deploy osd prepare mon0:/cephmp1:/dev/sdf1 mon0:/cephmp2:/dev/sdf2 osd1:/cephmp1:/dev/sdf1 osd1:/cephmp2:/dev/sdf2 osd2:/cephmp1:/dev/sde1 osd2:/cephmp2:/dev/sde2
ceph-deploy osd activate mon0:/cephmp1:/dev/sdf1 mon0:/cephmp2:/dev/sdf2 osd1:/cephmp1:/dev/sdf1 osd1:/cephmp2:/dev/sdf2 osd2:/cephmp1:/dev/sde1 osd2:/cephmp2:/dev/sde2
ceph-deploy mds create mon0 osd1 osd2
安裝好后,可以按需要修改/etc/ceph/ceph.conf文件,然后利用ceph-deploy --overwrite-conf config push osd1 osd2命令將修改的配置文件push到其它主機上。然后利用如下命令重啟:
restart ceph-all

這里遇到的問題是雖然修改了/etc/apt/sources.list.d/ceph.list,但ceph-deploy會去修改這個文件,并配置成firefly,所以安裝的是0.80.7。安裝完成后,修改ceph.list文件:

root@mon0:/etc/ceph# cat /etc/apt/sources.list.d/ceph.list 
deb http://ceph.com/debian-giant/ trusty main
修改成giant版本后:
apt-get update
apt-get upgrade ceph
restart ceph-all

這樣就將ceph升級到giant 0.87了。

3. 配置rbdmap

創建rbd塊設備并rbd map后,如果不及時rbd unmap,關機的時候系統會hung在umount此rbd設備上。所以配置rbdmap是必須的。首先下載并設置開機啟動rbdmap

$ sudo wget https://raw.github.com/ceph/ceph/a4ddf704868832e119d7949e96fe35ab1920f06a/src/init-rbdmap -O /etc/init.d/rbdmap
$ sudo chmod +x /etc/init.d/rbdmap
$ sudo update-rc.d rbdmap defaults
然后創建一個rbd塊設備,并利用rbd map掛載此設備,然后mkfs進行格式化,結果如下:
root@mon0:/etc/ceph# rbd ls iscsi
iscsi-rbd
root@mon0:/etc/ceph# rbd showmapped
id pool  image     snap device    
1  iscsi iscsi-rbd -    /dev/rbd1 
mkfs.xfs /dev/rbd1
修改/etc/init.d/rbdmap,將/etc/rbdmap修改為你的rbdmap的實際路徑;然后將掛載信息寫入/etc/ceph/rbdmap(我的rbdmap路徑):
root@mon0:/etc/ceph# cat /etc/ceph/rbdmap

RbdDevice Parameters

poolname/imagename id=client,keyring=/etc/ceph/ceph.client.keyring

iscsi/iscsi-rbd</pre>因為我禁用了cephx,所以不必配置keyring了。

這樣就可以手動控制、并且開關機可以自動掛載和卸載rbd塊設備了。

4. 配置支持rbd導出的iscsi

安裝tgt,并檢查是否支持rbd

root@mon0:/etc/ceph# apt-get install tgt
root@mon0:/etc/ceph# tgtadm --lld iscsi --op show --mode system | grep rbd
    rbd (bsoflags sync:direct)
創建一個rbd塊設備并map和格式化;然后修改/etc/tgt/targets.conf:
root@mon0:/etc/ceph# cat /etc/tgt/targets.conf

Empty targets configuration file -- please see the package

documentation directory for an example.

#

You can drop individual config snippets into /etc/tgt/conf.d

include /etc/tgt/conf.d/*.conf <target iqn.2014-11.rbdstore.com:iscsi> driver iscsi bs-type rbd backing-store iscsi/iscsi-rbd # Format is <iscsi-pool>/<iscsi-rbd-image> </target>

service tgt reload</pre>


總結:在ubuntu上還是第一次折騰ceph,需要慢慢總結和適應。也希望搞過的童鞋不吝賜教。

來自:http://my.oschina.net/renguijiayi/blog/342983

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!