摘要
部署ceph;设置rbdmap;导出iscsi rbd块设备
1. 环境与说明
在ubuntu14.04 server上部署ceph-0.87;设置rbdmap自动挂载/卸载rbd块设备;利用带rbd支持的tgt导出iscsi的rbd块。
2. 安装ceph
1)配置hostname与无密码登录
1
2
3
4
5
|
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
|
1
2
3
|
#示例如下
ssh
-keygen
ssh
-copy-
id
-i
/root/
.
ssh
/id_rsa
.pub osd1
|
2)安装ceph-deploy
1
2
3
4
|
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
1
2
3
4
5
6
7
|
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
|
1
|
restart ceph-all
|
这里遇到的问题是虽然修改了/etc/apt/sources.list.d/ceph.list,但ceph-deploy会去修改这个文件,并配置成firefly,所以安装的是0.80.7。安装完成后,修改ceph.list文件:
1
2
|
root@mon0:
/etc/ceph
# cat /etc/apt/sources.list.d/ceph.list
deb http:
//ceph
.com
/debian-giant/
trusty main
|
1
2
3
|
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
1
2
3
|
$
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
|
1
2
3
4
5
6
|
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
|
1
2
3
4
|
root@mon0:
/etc/ceph
# cat /etc/ceph/rbdmap
# RbdDevice Parameters
#poolname/imagename id=client,keyring=/etc/ceph/ceph.client.keyring
iscsi
/iscsi-rbd
|
这样就可以手动控制、并且开关机可以自动挂载和卸载rbd块设备了。
4. 配置支持rbd导出的iscsi
安装tgt,并检查是否支持rbd
1
2
3
|
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)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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
|