一、前提
阅读本文前,请先安装好ceph iscsi等相关软件包,包括ceph集群必备组件以及rgw-target-gw,rgw-target-api ,tcmu-runner,targetcli,rtslib等组件。ceph iscsi手动安装教程可以参考这边文章。
二、环境
操作系统版本:Ubuntu20.04 x86_64
ceph版本:ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable)
radosgw版本:15.2.17
集群节点信息:
节点名称 | IP地址 |
---|---|
jeffhe | 192.168.237.128 |
node02 | 192.168.237.132 |
node03 | 192.168.237.133 |
三、iscsi 网关配置
3.1 gwcli 工具介绍
gwcli 工具用于创建目标端(target)和RBD镜像(即image,作为后端存储的一个逻辑卷,用于真实存放数据)的。gwcli工具比targetcli工具功能更完善(例如,targetcli不能创建RBD镜像),建议直接使用gwcli工具操作cehp iscsi 网关,而targetcli工具仅作为查看工具即可(gwcli 创建的target,通过targetcli工具也是可以查看的)。
3.2 进入命令行交互界面
在iscsi 网关节点上,切换到root用户,并执行如下命令:
gwcli
3.3 创建target
进入iscsi-targets目录并且创建target,target名称建议使用本节点iqn(iqn查询命令: cat /etc/iscsi/initiatorname.iscsi
)。我的节点iqn是:iqn.1993-08.org.debian:01:823b6fd8f520
。示例如下:
cd /iscsi-targets
create iqn.1993-08.org.debian:01:823b6fd8f520:iscsi-igw
3.4 创建iscsi 网关
命令如下:
cd iqn.1993-08.org.debian:01:823b6fd8f520:iscsi-igw/gateways
create jeffhe 192.168.237.128
create node02 192.168.237.132
create node03 192.168.237.132
注意:这里的IP地址是用于iscsi 读写数据使用的数据通道地址,在生产环境下建议配置更好的网卡(比如万兆网关等)。
3.5 创建RBD镜像
在默认池(名称为rbd)中创建一个名称为disk1的镜像如下:
cd /disks
create pool=rbd image=disk1 size=10G
3.6 创建iscsi客户端
创建一个iscsi客户端。这里以客户端iqn为iqn.1993-08.org.debian:01:823b6fd8f520
举例,如下:
cd /iscsi-targets/iqn.1993-08.org.debian:01:823b6fd8f520:iscsi-igw/hostscreate iqn.1993-08.org.debian:01:823b6fd8f520
注意:这里客户端iqn,是通过 cat /etc/iscsi/initiatorname.iscsi
命令查询出来的,不要修改这个值。否则,后期挂盘会出现权限问题。
3.7 设置CHAP用户名和密码
要登录到ceph target,必现设置CHAP用户和密码,否则将拒绝登录。CHAP支持双向认证(initiator authentication认证和target authentication认证),这里以initiator authentication认证举例。
进入到3.6步骤中创建的目录,并执行如下命令:
auth username=11111111 password=111111111111
username:必须8~64字符长度,支持 0 ~ 9, a ~ z, A ~ Z, @, _ , - , . ,: 这些字符。
password:必须12~16字符长度,支持 0 ~ 9, a ~ z, A ~ Z, @, _, -, / 这些字符。
3.8 给客户端添加LUN
执行命令:disk add rbd/disk1
这步执行之后,在客户端就可以扫描的服务端的磁盘,并且进行挂载操作了(当然需要配置客户端,继续往下看)。
3.9 配置客户端
因为,ceph设置了initiator authentication认证,所以客户端需要配置一下才可以登录。
首先,切换到客户端节点并按照如下配置iscsid.conf文件:
vim /etc/iscsi/iscsid.confnode.session.auth.authmethod = CHAP
node.session.auth.username = 11111111
node.session.auth.password = 111111111111
这里配置项node.session.auth.username
、node.session.auth.password
填写的内容分别对应3.7步骤中的username
、password
对应的内容。
重启下服务:systemctl restart iscsid
,客户端节点就配置好了。
发现目标命令:
iscsiadm -m discovery -t sendtargets -p 192.168.237.128
登录到target命令:
iscsiadm -m node -T iqn.1993-08.org.debian:01:823b6fd8f520:iscsi-igw -p 192.168.237.128 -l
# iqn.1993-08.org.debian:01:823b6fd8f520:iscsi-igw 需要切换成你自己的网关iqn
最后执行下lsblk命令,在你的客户端应该多一块盘了。