通过iscsi协议使用ceph rbd
ceph很早就已经支持通过iscsi协议来使用rbd,这篇博文对此做下演示,并且使用OSD Server作为iscsi target端。
一、OSD Server side
1、安装支持rbd的TGT软件包
#echo "deb http://ceph.com/packages/ceph-extras/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph-extras.list
#apt-get install tgt2、安装完成后确认tgt支持rbd# tgtadm --lld iscsi --op show --mode system | grep rbd
rbd (bsoflags sync:direct)3、创建一个image(示例中pool名称叫做iscsipool,image叫做iamge1)#rbd create iscsipool/image1 --size 10240 --image-format 24、在tgt服务中注册刚才创建好的image,只需要将下面的内容添加到/etc/tgt/targets.conf 或者 etc/tgt/conf.d/ceph.conf中即可。
driver iscsi
bs-type rbd
backing-store iscsipool/image1 # Format is /
initiator-address 10.10.2.49 #client address allowed to map the address
5、重启或者重载tgt服务#service tgt reload
or
#service tgt restart6、关闭rbd cache,否则可能导致数据丢失或者损坏vim /etc/ceph/ceph.conf
[client]
rbd_cache = false二、Client
side
1、安装open-scsi
#apt-get install open-iscsi2、启动open-scsi服务# service open-iscsi restart
* Unmounting iscsi-backed filesystems [ OK ]
* Disconnecting iSCSI targets [ OK ]
* Stopping iSCSI initiator service [ OK ]
* Starting iSCSI initiator service iscsid [ OK ]
* Setting up iSCSI targets
iscsiadm: No records found
[ OK ]
* Mounting network filesystems3、发现目标设备# iscsiadm -m discovery -t st -p 10.10.2.50
10.10.2.50:3260,1 iqn.2014-04.rbdstore.example.com:iscsi4、挂载目标设备# iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2014-04.rbdstore.example.com:iscsi, portal: 10.10.2.50,3260] (multiple)
Login to [iface: default, target: iqn.2014-04.rbdstore.example.com:iscsi, portal: 10.10.2.50,3260] successful.5、确认设备已经挂载(示例中sda就是iscsdi设备)root@cetune1:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
vda 253:0 0 24G 0 disk
?..vda1 253:1 0 190M 0 part /boot
?..vda2 253:2 0 1K 0 part
?..vda5 253:5 0 23.8G 0 part
?..linux-swap (dm-0) 252:0 0 3.8G 0 lvm [SWAP]
?..linux-root (dm-1) 252:1 0 20G 0 lvm /