分享

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

pig2 发表于 2014-11-11 23:48:11 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 17093
问题导读

1.如何安装ceph?
2.需要做哪些准备?
3.restart ceph-all 命令的作用是什么?








1. 环境与说明  
在ubuntu14.04 server上部署ceph-0.87;设置rbdmap自动挂载/卸载rbd块设备;利用带rbd支持的tgt导出iscsi的rbd块。

2. 安装ceph  
1)配置hostname与无密码登录

  1. root@mon0:/etc/ceph# cat /etc/hosts
  2. 127.0.0.1        localhost
  3. 192.168.108.4          osd2.osd2        osd2
  4. 192.168.108.3   osd1.osd1        osd1
  5. 192.168.108.2   mon0.mon0        mon0
复制代码

  1. #示例如下
  2. ssh-keygen
  3. ssh-copy-id -i /root/.ssh/id_rsa.pub osd1
复制代码


2)安装ceph-deploy

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



  
3)安装ceph

  1. ceph-deploy new mon0 osd1 osd2
  2. ceph-deploy install mon0 osd1 osd2
  3. ceph-deploy mon create mon0 osd1 osd2
  4. ceph-deploy gatherkeys mon0 osd1 osd2
  5. 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
  6. 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
  7. 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文件:

  1. root@mon0:/etc/ceph# cat /etc/apt/sources.list.d/ceph.list
  2. deb http://ceph.com/debian-giant/ trusty main 修改成giant版本后:
  3. apt-get update
  4. apt-get upgrade ceph
  5. restart ceph-all
复制代码


这样就将ceph升级到giant 0.87了。

3. 配置rbdmap  
创建rbd块设备并rbd map后,如果不及时rbd unmap,关机的时候系统会hung在umount此rbd设备上。所以配置rbdmap是必须的。首先下载并设置开机启动rbdmap

  1. $ sudo wget https://raw.github.com/ceph/ceph/a4ddf704868832e119d7949e96fe35ab1920f06a/src/init-rbdmap -O /etc/init.d/rbdmap
  2. $ sudo chmod +x /etc/init.d/rbdmap
  3. $ sudo update-rc.d rbdmap defaults
复制代码




然后创建一个rbd块设备,并利用rbd map挂载此设备,然后mkfs进行格式化,结果如下:
  1. root@mon0:/etc/ceph# rbd ls iscsi
  2. iscsi-rbd
  3. root@mon0:/etc/ceph# rbd showmapped
  4. id pool  image     snap device   
  5. 1  iscsi iscsi-rbd -    /dev/rbd1
复制代码



修改/etc/init.d/rbdmap,将/etc/rbdmap修改为你的rbdmap的实际路径;然后将挂载信息写入/etc/ceph/rbdmap(我的rbdmap路径):
  1. root@mon0:/etc/ceph# cat /etc/ceph/rbdmap
  2. # RbdDevice                Parameters
  3. #poolname/imagename        id=client,keyring=/etc/ceph/ceph.client.keyring
  4. iscsi/iscsi-rbd
复制代码





因为我禁用了cephx,所以不必配置keyring了。
这样就可以手动控制、并且开关机可以自动挂载和卸载rbd块设备了。

4. 配置支持rbd导出的iscsi  
安装tgt,并检查是否支持rbd

  1. root@mon0:/etc/ceph# apt-get install tgt
  2. root@mon0:/etc/ceph# tgtadm --lld iscsi --op show --mode system | grep rbd
  3.     rbd (bsoflags sync:direct)
复制代码




创建一个rbd块设备并map和格式化;然后修改/etc/tgt/targets.conf:
  1. root@mon0:/etc/ceph# cat /etc/tgt/targets.conf
  2. # Empty targets configuration file -- please see the package
  3. # documentation directory for an example.
  4. #
  5. # You can drop individual config snippets into /etc/tgt/conf.d
  6. include /etc/tgt/conf.d/*.conf
  7. driver iscsi
  8. bs-type rbd
  9. backing-store iscsi/iscsi-rbd # Format is /
  10. service tgt reload
复制代码



总结:在ubuntu上还是第一次折腾ceph,需要慢慢总结和适应。也希望搞过的童鞋不吝赐教。
      



没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条