iSCSI 简介
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。
iSCSI是一种基于TCP/IP的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。
iSCSI的主要功能是在TCP/IP网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。
targetcli 简介
targetcli是Linux-IO Target的用户态的管理配置工具。用户可以使用yum或apt-get直接从各大发行版的官方仓库安装,对于较老的linux版本需要自己编译源码安装。targetcli提供一个类似shell的界面,各种Target、TPG、LUN、backstore对象则被组织成目录树的形式,用户可以用ls、cd命令来浏览目录树,用create、delete命令来创建和删除各种对象。浏览配置,就是浏览目录树,创建删除各种对象,就是在目录树的各级节点中创建新的节点。同时targetcli还提供了常见的shell命令辅助编辑功能,例如TAB智能补全、上下键切换命令历史、Ctrl+R搜索命令历史。凡是有不熟悉的命令,都可以用help命令查询使用说明。
实验环境
target侧(存储设备):
操作系统:CentOS7.0_64bit
管理IP:192.168.88.195/24
业务IP:192.168.15.10/24
磁盘:/dev/sda 系统磁盘(80G) /dev/sdb 数据磁盘(800GB)
软件:targetcli
FunsionCompute:
CNA1:
管理地址:192.168.88.60/24
存储平面地址:192.168.15.60/24
CNA2:
管理地址:192.168.88.61/24
存储平面地址:192.168.15.61/24
VRM:
管理地址:192.168.88.51/24
其中CNA1、CNA2已组集群 test-group
系统管理员:
IP:192.168.88.200/24
系统和软件:Windows 10 专业工作站版(64bit) xShell6 FireFox72
网络环境:
Switch-Manger 用于连接管理接口的交换机
Switch-Storage 用于连接存储接口的交换机
实验过程
配置存储服务器
准备
- 对存储业务的网络接口进行配置,配置静态IP地址
- 挂载数据磁盘
安装targetcli
- 关闭防火墙和SELINUX
- 使用yum进行安装:
yum -y install targetcli
- 设置开机启动服务:
systemctl enable target
- 启动target服务:
systemctl start target
配置target
- 以root权限运行targetcli:
# targetcli
- 创建一个块存储,例如我创建的是 server195.disk1 这个块,后面跟的是数据磁盘的名称 /dev/sdb
1
2/> cd /backstores/block
/> create server195.disk1 /dev/sdb - 配置ISCSI Target命名,例如我将本主机命名为 iqn.2020-02.cn.txisfine:server195
注意:命名在同一子网内确保是唯一的,命名格式为:iqn.yyyy-mm.<主机名反写>:自定义名称(自定义名称内不能有下划线)
1
2/> cd /iscsi
/> creat iqn.2020-02.cn.txisfine:server195 - 配置ACL允许ISCSI客户机连接,例如CNA1的iSCSI名称为iqn.2020-02.cn.txisfine:cna1,CNA2的iSCSI名称为iqn.2020-02.cn.txisfine:cna2,将进行如下配置
1
2
3/> cd /iscsi/iqn.2020-02.cn.txisfine:server195/tpg1/acls
/> creat iqn.2020-02.cn.txisfine:cna1
/> creat iqn.2020-02.cn.txisfine:cna2 - 创建LUN
1
2/> cd /iscsi/iqn.2020-02.cn.txisfine:server195/tpg1/luns
/> creat /backstores/block/server195.disk1 - 将portals指向存储网络接口地址
1
2/> cd cd /iscsi/iqn.2020-02.cn.txisfine:server195/tpg1/portals
/> creat 192.168.15.10 - 检查配置并退出
1
2/> ls
/> exit
配置FusionCompute
- 扫描存储设备,并修改WWN号,这里两台设备的WWN号应该与前面acl中的保持一致,否则将出现FC连不上存储的问题
- 添加存储资源,在资源池,存储选项卡,存储资源中添加存储资源,我是按照实验环境中预置的参数填写的
- 关联主机,这里我将关联两台CNA,确认并扫描存储设备
- 查看存储设备,切换到存储设备选项卡,可见IP SAN存储设备已被添加,并关联了两台CNA
- 添加数据存储,切换到数据存储选项卡,添加数据存储,选择刚才添加好的存储设备,这里选择使用方式为虚拟化存储,并关联两台CNA。
实验结果
- 成功提交添加数据存储任务,等待近期任务中该任务执行完毕,刷新数据存储,成功看到刚刚添加的数据存储
常见问题
iSCSI 报错:Could not create NetworkPortal in configFS
这是因为默认会监听0.0.0.0的3260端口,与新绑定的IP和端口冲突,需要手工删除0.0.0.0接口,重新绑定即可。
1 | /> cd cd /iscsi/iqn.2020-02.cn.txisfine:server195/tpg1/portals |
如何配置密码认证
使得CNA1需要验证用户名和密码,以root用户启动targetcli
1 | /> cd /iscsi/iqn.2020-02.cn.txisfine:server195/tpg1/acls/iqn.2020-02.cn.txisfine:cna1 |
在FusionCompute上添加存储资源时开启CHAP认证