ISCSI网络存储服务

一、理论部分

iSCSI的概念

         iSCSI,即internetSCSI,是IETF制订的一项标准,用于将SCSI数据块映射为以太网数据包。从根本上说,它是一种基于IP Storage理论的新型存储技术,该技术将存储行业广泛应用的SCSI接口技术与IP网络技术相结合,可以在IP网络上构建SAN。简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术。iSCSI技术最初由CiscoIBM两家开发,并且得到了广大IP存储技术爱好者的大力支持,这几年得到迅速的发展壮大。

 

对于中小企业的存储网络来说,iSCSI是个非常好的选择。首先,从技术实现上来讲,iSCSI是基于IP协议的技术标准,它允许网络在TCP/IP协议上传输SCSI命令,实现SCSITCP/IP协议的连接,这样用户就可以通过TCP/IP网络来构建SAN,只需要不多的投资,就可以方便、快捷地对信息和数据进行交互式传输和管理。但是,在iSCSI出现之前,构建SAN的唯一技术是利用光纤通道,这要花费很大的建设成本,一般中小企业无法承担。其次,iSCSI技术解决了传输效率、存储容量、兼容性、开放性、安全性等方面的诸多问题,在使用性能上绝对不输给商业的存储系统或光纤存储网络。

 

         iSCSI的优势主要表现为:首先,iSCSI沿用TCP/IP协议,而TCP/IP是在网络方面最通用、最成熟的协议,且IP网络的基础建设非常完善,同时,SCSI技术是被磁盘和磁带等设备广泛采用的存储标准,这两点使iSCSI的建设费用和维护成本非常低廉;其次,iSCSI支持一般的以太网交换机而不是特殊的光纤通道交换机,从而减少了异构网络带来的麻烦;还有,iSCSI是通过IP封包传输存储命令,因此可以在整个Internet上传输数据,没有距离
的限制。

 

二、操作部分

1)      实验环境

准备一台ISCSI服务器CentOS7系统,IP地址192.168.1.100

一台initiator客户端CentOS7系统,IP地址192.168.1.200

2)      实验步骤

1、首先准备作为LUN发布的ISCSI的存储设备(可以是一整块磁盘,一个分区,逻辑卷或RAID阵列)。这里我们准备了/dev/sdb/dev/sdc

cat /proc/partitions

ISCSI网络存储服务_第1张图片

2、安装target软件

yum -y install targetd targetcli

wKioL1h3OxWw_E_nAAAKBVQ8hNo335.jpg

3、启动target服务

systemctl enable target
systemctl start target

wKiom1h3OxXyX1nXAAAnoKkC_Mg786.jpg

4、设置firewalld防火墙允许3260服务

firewall-cmd --premanet --add-prt=3260/tcp
firewall-cmd --reload

wKioL1h3OxWiZKuZAAATL72J2E0977.jpg

5、执行targetcli工具

targetcli

ISCSI网络存储服务_第2张图片

6、输入help可以查看targetcli的帮助,ls查看结构

ISCSI网络存储服务_第3张图片

targetcli所支持的命令

wKioL1h3Oxag7bHLAAAJ4fzCdss384.jpg

7、创建块(给要发布的逻辑卷起个名字)

/backstores/block create server0.disk1 /dev/sdb

wKiom1h3OxazMFOHAAAZX9dr78U423.jpg

可以理解为给/dev/sdb起个名字为server0.disk1,/dev/sdc起个名字为server0.disk2

ls查看块

ISCSI网络存储服务_第4张图片

8、创建iqn名字即创建ISCSI对象

/iscsi create iqn.2017-01.com.benet:disk1

ISCSI网络存储服务_第5张图片

查看ISCSI对象

ISCSI网络存储服务_第6张图片

9、设置ACLISCSI对象与客户端IP或主机名绑定(注:后面的名字是initiator的名字,需要在客户端中设置)

/iscsi/iqn.2017-01.com.benet:disk/tpg1/acls create iqn.2017-01.com.benet:client

wKiom1h3OxiSYvf_AAAgzD-cW-4767.jpg

10、创建LUN并绑定块

/iscsi/iqn.2017-01.com.benet:disk1/tpg1/luns create /backstores/block/server0.disk1

wKioL1h3OxuyXd2vAAAmElip0fA014.jpg

(一个ISCSI对象可以创建多个LUN

执行ls查看

ISCSI网络存储服务_第7张图片

11、可以看到portals选项中默认启动了0.0.0.0:3260,如果想启用指定端口可以输入下命令

/iscsi/iqn.2017-01.com.benet:disk1/tpg1/portals create 192.168.1.100 3260

wKioL1h3OxyzZcKXAAAiIygIP2s002.jpg

initiator端的配置:

1、安装软件

yum -y install iscsi-initlator-utils

2、initiator起个名字输入以下内容

vim /etc/iscsi/initiatorname.iscsi

wKiom1h3OxywMUPnAAAQL_4p938282.jpg

3、启动iscsi服务

systemctl enable iscsi
systemctl start iscsi


wKioL1h3OxyCeUZgAAATKAEGYrI012.jpg

4、发现存储

iscsiadm -m discovery -t st -p 192.168.1.100

wKioL1h3OxzhuHfAAAAaCTEcw2A843.jpg

5、登入存储(注:-l表示连接ISCSI目标;-u表示断开和ISCSI目标的连接)

iscsiadm -m node -T iqn.2017-01.com.benet:disk1 -p 192.168.100 -l

wKiom1h3Ox2QPf3uAAAhuF0N5BI676.jpg

1、验证客户端ISCSI连接

lsscsi

wKiom1h3Ox2wI2WkAAAVpPkD5Xg534.jpg

剩下的操作就和操作本地硬盘一样了