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

20200208123103.png/pk_watermark

系统管理员:

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
    20200208142140.png/pk_watermark

配置FusionCompute

  • 扫描存储设备,并修改WWN号,这里两台设备的WWN号应该与前面acl中的保持一致,否则将出现FC连不上存储的问题
    20200208124556.png/pk_watermark
  • 添加存储资源,在资源池,存储选项卡,存储资源中添加存储资源,我是按照实验环境中预置的参数填写的
    20200208143537.png/pk_watermark
  • 关联主机,这里我将关联两台CNA,确认并扫描存储设备
    20200208143824.png/pk_watermark
    20200208143858.png/pk_watermark
  • 查看存储设备,切换到存储设备选项卡,可见IP SAN存储设备已被添加,并关联了两台CNA
    20200208144115.png/pk_watermark
  • 添加数据存储,切换到数据存储选项卡,添加数据存储,选择刚才添加好的存储设备,这里选择使用方式为虚拟化存储,并关联两台CNA。
    20200208153855.png/pk_watermark
    20200208154102.png/pk_watermark
    20200208154137.png/pk_watermark

实验结果

  • 成功提交添加数据存储任务,等待近期任务中该任务执行完毕,刷新数据存储,成功看到刚刚添加的数据存储
    20200208154847.png/pk_watermark

常见问题

iSCSI 报错:Could not create NetworkPortal in configFS

这是因为默认会监听0.0.0.0的3260端口,与新绑定的IP和端口冲突,需要手工删除0.0.0.0接口,重新绑定即可。

1
2
3
/> cd cd /iscsi/iqn.2020-02.cn.txisfine:server195/tpg1/portals
/> delete 0.0.0.0 3260
/> creat XXX.XXX.XXX.XXX

如何配置密码认证

使得CNA1需要验证用户名和密码,以root用户启动targetcli

1
2
3
/> cd /iscsi/iqn.2020-02.cn.txisfine:server195/tpg1/acls/iqn.2020-02.cn.txisfine:cna1
/> set auth userid=huawei
/> set auth password=Huawei@2020

在FusionCompute上添加存储资源时开启CHAP认证
20200208160604.png/pk_watermark