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

系统管理员:

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

配置 FusionCompute

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

实验结果

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

常见问题

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