通过 iscsi 挂载共享 rbd 块设备

通过iscsi 挂载共享rbd

环境:

Ubuntu 12.04
ceph 0.94.2 hammer

在ceph集群的node3节点上安装 tgt

target 端安装过程

1.安装tgt

apt-get install tgt

2、建立rbd

rbd create test --size 4096 ##新建rbd,名称为test,单位是MB

rbd map test ##映射到本地快存储设备,比如:/dev/rbd1

3、iscsi 服务配置

3.1 新建一个target,tid=1,iqn=iqn:2016-02-node3:test

target可以自定义,名称为iqn:2016-02-node3:test 

标准命名方式为:
iqn.yyyy-mm.[:identifier]

    其中:
        iqn:表示“iSCSI Qualified Name”,简称iqn。

        yyyy-mm:表示年份-月份。这里是2016-02。
        reversed domain name:表示倒过来的域名,这里是node3
        identifier:表示识别代码,这里是test
        backing-store对应rbd块名称为 test

sudo tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn:2016-02-node3:test

3.2 编辑 /etc/tgt/targets.conf

添加以下内容:

3.2.1 最简配置:



    backing-store /dev/rbd1



###(/dev/rbd1 是 test被map到的本地块存储)

3.2.2 可选配置

backing-store:虚拟设备,与之对应的是direct-store(实际设备)

initiator-address 10.1.1.1 :用户端地址,可以用来限制initiator的来源IP

incominguser:用户名与密码,
可以设定initiator使用账户密码才可以使用对应target

    如果在target中使用了该配置,则在initiator的配置文件
    /etc/iscsi/iscsid.conf中打开如下配置:

    discovery.sendtargets.auth.username = username
    discovery.sendtargets.auth.password = password
    node.session.auth.username = username
    node.session.auth.password = password

3.3 给指定的target增加一个lun 1(数字 1, 已存在的lun 是 0 ),
通过tid来指定target,这里将/dev/rbd1添加到tid=1的target中

sudo tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/rbd1

3.4 共享target(initiator可以访问target)target 由tid 来确定

sudo tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

查看当前的target 信息:

sudo tgtadm --lld iscsi --op show --mode target

tgt-admin --show

删除某个target的命令:

sudo tgtadm --lld iscsi --mode target --op delete --tid 1

4、重启服务

sudo service tgt restart

/etc/init.d/tgt restart

initiator 端 安装过程

1、安装 open-iscsi

apt-get install open-iscsi

2、查找 node3上已存在的target,-p 是node3的ip地址加端口号(默认为3260)

iscsiadm -m discovery -t sendtargets -p 10.1.35.92:3260

3、建立连接:

iscsiadm --mode node --targetname iqn:2016-02.node3:testvmware2 --portal 10.1.35.92:3260 --login

4、确认/dev/rbd1已远程挂载成功:

`lsblk`  或者  `fdisk -l`

可以对该磁盘进行格式化并挂载后使用:
    `mkfs.ext4 /dev/sda`
    `mount -t ext4 /dev/sda /tmp/test`

5、断开连接:

如果磁盘已经挂载,要先卸载再断开连接

iscsiadm --mode node --targetname iqn:2016-02.node3:testvmware2 --portal 10.1.35.92:3260 --logout

添加新的target

1、建立新的rbd

rbd create test2 --size 4096 ##新建rbd,名称为test,单位是MB

rbd map test ##映射到本地快存储设备,比如:/dev/rbd2

2、新建target

新建一个target,tid=2(1已经存在),iqn=iqn:2016-02-node3:test2

sudo tgtadm --lld iscsi --op new --mode target --tid 2 -T iqn:2016-02-node3:test2

3、 编辑 /etc/tgt/targets.conf

添加以下内容:



    backing-store /dev/rbd2


4、给指定的target增加一个lun 1 ,通过tid来指定target,这里将/dev/rbd2添加到tid=2的target中

sudo tgtadm --lld iscsi --op new --mode logicalunit --tid 2 --lun 1 -b /dev/rbd2

5、共享target 2 (即 tid 2)

sudo tgtadm --lld iscsi --op bind --mode target --tid 2 -I ALL

6、重启服务

sudo service tgt restart

/etc/init.d/tgt restart

bug

新添target时,修改配置文件/etc/tgt/targets.conf

修改之后,不可执行命令:/etc/init.d/tgt reload (任何时候都不要执行)

否则之前所做的修改都会被覆盖,客户端也看不到远程target挂载的磁盘。

解决方法:所有修改完成后,重启机器 ;或者重新配置一遍

本文出自“heivy”的博客,转载请务必保留此出处:http://blog.csdn.net/heivy/article/details/50856806

你可能感兴趣的:(ceph)