iSCSI简介及使用

iSCSI简介

iSCSI(Internet Small Computer System Interface)是一种基于因特网及SCSI-3协议下的存储技术,也称为IP-SAN。以下是关于iSCSI的详细简介:

1. 定义与标准

  • iSCSI是Internet小型计算机系统接口的简称,由IETF(Internet Engineering Task Force)提出,并于2003年2月11日成为正式的标准。
  • 它利用TCP/IP的port 860和3260作为沟通的渠道,允许两个主机通过IP网络相互协商并交换SCSI命令。

2. 技术特点

  • 革命性变化
    • 突破地域限制:通过TCP/IP网络发送原来只用于本机的SCSI协议,使连接距离可作无限的地域延伸。
    • 连接服务器数量无限制:相比原SCSI-3的上限15个,iSCSI的连接数量无限制。
    • 在线扩容与动态部署:由于是服务器架构,可以实现在线扩容和动态部署。
  • 存储方式:利用iSCSI协议,计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置。

3. 应用场景

  • 数据中心存储:在大型数据中心中,存储设备通常集中在一个地方,而计算机则分布在各个位置。使用iSCSI协议,计算机可以通过网络连接到存储设备,实现集中存储和共享访问。
  • 虚拟化环境:在虚拟化环境中,多个虚拟机可能需要同时访问存储设备。iSCSI协议可以提供高性能和可靠的存储访问,满足虚拟机对存储的需求。
  • 远程备份和恢复:通过iSCSI协议,可以将数据备份到远程存储设备,保护数据免受本地故障和灾难的影响。
  • 远程复制和镜像:iSCSI协议还可以用于远程复制和镜像数据,提供数据的冗余和容错能力。

4. 优势

  • 灵活性:iSCSI协议可以在现有的IP网络上运行,无需额外的硬件和设备,使得部署和管理变得更加简单和灵活。
  • 性能:通过使用TCP/IP协议提供可靠的数据传输和流量控制,iSCSI可以实现高性能的存储访问。
  • 可扩展性:iSCSI协议可以支持大规模的存储网络,并且可以轻松地扩展和添加新的存储设备。

5. 工作原理

  • 当计算机需要访问远程存储设备时,它会发送一个iSCSI请求,该请求被封装在TCP/IP数据包中,并通过网络传输到存储设备。
  • 存储设备接收到请求后,执行相应的操作,并将结果返回给计算机。

总的来说,iSCSI是一种强大而灵活的存储访问协议,它可以使计算机通过IP网络访问远程存储设备,在数据中心存储、虚拟化环境、远程备份和恢复以及远程复制和镜像等应用场景中都有广泛的应用。

6.iSCSI的构成

iSCSI的构成主要可以分为以下几个部分,这些部分共同协作以实现iSCSI网络存储的功能:

  1. 后端存储(Backstore)
    • 定义:后端存储是一个对应到服务端提供实际存储的设备。
    • 作用:存储实际的数据,是iSCSI系统的数据源头。
  2. 硬盘组(Target)
    • 定义:硬盘组是客户的访问目标,作为一个框架,由多个逻辑单元(LUN)组成。
    • 作用:作为客户端访问的集中点,将多个LUN组合在一起,形成一个逻辑上的存储目标。
  3. 逻辑单元(Logical Unit, LUN)
    • 定义:每一个LUN需要关联到某一个后端存储设备,在客户端会被视为一块虚拟硬盘。
    • 作用:将后端存储设备的物理空间划分为多个逻辑单元,以便客户端可以像访问本地硬盘一样访问这些逻辑单元。
  4. iSCSI Initiator
    • 定义:iSCSI Initiator是客户端的软件或硬件组件,用于与iSCSI Target建立连接并发起存储请求。
    • 作用:在客户端上安装iSCSI Initiator软件后,客户端可以通过网络连接到iSCSI Target,从而访问存储资源。
  5. iSCSI Target
    • 定义:iSCSI Target是服务器端的软件或硬件组件,负责响应iSCSI Initiator的请求并提供存储服务。
    • 作用:接收来自iSCSI Initiator的请求,执行相应的存储操作(如读、写等),并将结果返回给iSCSI Initiator。
  6. 网络传输
    • 定义:iSCSI使用TCP/IP协议进行网络传输。
    • 作用:确保iSCSI Initiator和iSCSI Target之间的通信畅通无阻,实现数据的可靠传输。
  7. 存储连接桥(iSCSI Bridge)
    • 定义:在某些情况下,为了将现有的存储系统(如SCSI硬盘阵列或FC存储设备)转换为iSCSI存储设备,可能需要使用存储连接桥。
    • 作用:将SCSI或FC协议转换为iSCSI协议,使得传统的存储设备可以接入iSCSI网络。

归纳来说,iSCSI的构成主要包括后端存储、硬盘组、逻辑单元、iSCSI Initiator、iSCSI Target以及网络传输等部分。这些部分共同协作,实现了iSCSI网络存储的功能,使得客户端可以通过网络访问远程的存储资源。

7.IQN命名规范

IQN(iSCSI Qualified Name)命名规范是用于iSCSI(Internet Small Computer System Interface)协议中,以唯一标识iSCSI节点(目标或发起程序)的命名方式。以下是IQN命名规范的详细解释:

  1. 格式
  • IQN的基本格式是 iqn.<YYYY-MM>.<naming-authority>:<unique name>
  • 其中:
    • iqn 表示这是一个iSCSI限定名称。
    • <YYYY-MM> 是命名机构获取此iSCSI名称中使用的域名的年份和月份。
    • <naming-authority> 通常是命名机构的Internet域名的反向语法。
    • <unique name> 是要使用的任何名称,例如主机名,它必须是唯一的。
  1. 示例
    iqn.2001-04.com.example.iscsi:SRV1-85412701
    

    是一个IQN命名的例子。

  • iqn 表明这是一个iSCSI限定名称。
  • 2001-04 表示example.com域名是在2001年4月注册的。
  • com.example.iscsi 是example.com域名的反向语法,表示命名机构。
  • SRV1-85412701 是一个唯一名称,可能表示某个特定的服务器或设备。

共享存储使用

服务端进行分区

[root@nnode1 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 47.7G  0 part /
sde      8:64   0    2G  0 disk
├─sde1   8:65   0    1G  0 part
└─sde2   8:66   0 1023M  0 part
sr0     11:0    1 1024M  0 rom

安装服务端

yum -y install targetcli
systemctl start target

进行共享配置

[root@nnode1 ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> backstores/block create name=nsd dev=/dev/sde1
Created block storage object nsd using /dev/sde1.
/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- nsd ........................................................................... [/dev/sde1 (1.0GiB) write-thru deactivated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 0]
  o- loopback ......................................................................................................... [Targets: 0]

/> iscsi/ create iqn.2023-08.club.shadow.www:isc1
Created target iqn.2023-08.club.shadow.www:isc1.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

/> iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/luns create /backstores/block/nsd
Created LUN 0.
/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- nsd ............................................................................. [/dev/sde1 (1.0GiB) write-thru activated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 1]
  | o- iqn.2023-08.club.shadow.www:isc1 .................................................................................. [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 0]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 ....................................................................... [block/nsd (/dev/sde1) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 ..................................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]
/> iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/acls create iqn.2023-08.club.shadow.www:shadow
Created Node ACL for iqn.2023-08.club.shadow.www:shadow
Created mapped LUN 0.
/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- nsd ............................................................................. [/dev/sde1 (1.0GiB) write-thru activated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 1]
  | o- iqn.2023-08.club.shadow.www:isc1 .................................................................................. [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.2023-08.club.shadow.www:shadow ................................................................... [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ................................................................................... [lun0 block/nsd (rw)]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 ....................................................................... [block/nsd (/dev/sde1) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 ..................................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]
/>

/> iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/> iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ create ip_address=192.168.126.21
Using default IP port 3260
Created network portal 192.168.126.21:3260.
/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- nsd ............................................................................. [/dev/sde1 (1.0GiB) write-thru activated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 1]
  | o- iqn.2023-08.club.shadow.www:isc1 .................................................................................. [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.2023-08.club.shadow.www:shadow ................................................................... [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ................................................................................... [lun0 block/nsd (rw)]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 ....................................................................... [block/nsd (/dev/sde1) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 192.168.126.21:3260 .............................................................................................. [OK]
  o- loopback ......................................................................................................... [Targets: 0]
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json
指定ip提供服务,默认所有ip提供服务,这步可以不做
iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ delete 0.0.0.0 3260
iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ create ip_address=192.168.126.21
Using default IP port 3260
systemctl restart target

总结,下面将两个分区都创建为lun

1、创建名为nsd的块设备backstore,关联/dev/sde1。
backstores/block create name=nsd dev=/dev/sde1

2、创建名为nsd2的块设备backstore,关联/dev/sde2。
backstores/block create name=nsd2 dev=/dev/sde2

3、创建一个iSCSI Target,IQN为iqn.2023-08.club.shadow.www:isc1。
iscsi/ create iqn.2023-08.club.shadow.www:isc1

4、在Target的tpg1中创建LUN,关联nsd。
iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/luns create /backstores/block/nsd

5、在Target的tpg1中创建LUN,关联nsd2。
iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/luns create /backstores/block/nsd2

6、为Target的tpg1设置ACL,允许iqn.2023-08.club.shadow.www:shadow访问。
iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/acls create iqn.2023-08.club.shadow.www:shadow

7、删除Target的tpg1默认监听地址。
iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ delete 0.0.0.0 3260

8、为Target的tpg1设置监听地址为192.168.126.21。
iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ create ip_address=192.168.126.21

systemctl restart target

安装客户端软件(一般默认安装了)

yum install iscsi-initiator-utils

vim /etc/iscsi/initiatorname.iscsi

复制acl的名字复制到InitiatorName后

InitiatorName=iqn.2023-08.club.shadow.www:shadow

重启服务,刷新配置

systemctl restart iscsid

发现共享存储

从man帮助种找到发现命令
man iscsiadm   /EXAMPLE
修改ip为服务器ip即可使用
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.126.21 --discover
[root@dnode1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.126.21 --discover
192.168.126.21:3260,1 iqn.2023-08.club.shadow.www:isc1

共享硬盘查看

[root@dnode1 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 47.7G  0 part /
sr0     11:0    1 1024M  0 rom

重启服务,获得共享存储
[root@dnode1 ~]# systemctl restart iscsi
看到多了sdb硬盘
[root@dnode1 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 47.7G  0 part /
sdb      8:16   0    1G  0 disk
sr0     11:0    1 1024M  0 rom
systemctl enable iscsi
systemctl enable iscsid

《iSCSI简介及使用》

使用lvs共享存储

lvs方便拓展,重新共享,首先删除之前的lun

targetcli
backstores/block delete  name=nsd2
backstores/block delete  name=nsd

创建lvs,占用整个sde硬盘

vgcreate vgci /dev/sde1 /dev/sde2
lvcreate -n lvci -l 100%FREE vgci
targetcli
backstores/block create name=lvnsd dev=/dev/vgci/lvci
iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/luns create /backstores/block/lvnsd

/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- lvnsd ...................................................................... [/dev/vgci/lvci (2.0GiB) write-thru activated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- fileio ................................................................................................. [Storage Objects: 0]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 2]
  | o- iqn.2023-08.club.shadow.www:isc1 .................................................................................. [TPGs: 1]
  | | o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  | |   o- acls .......................................................................................................... [ACLs: 1]
  | |   | o- iqn.2023-08.club.shadow.www:shadow ................................................................... [Mapped LUNs: 1]
  | |   |   o- mapped_lun0 ................................................................................. [lun0 block/lvnsd (rw)]
  | |   o- luns .......................................................................................................... [LUNs: 1]
  | |   | o- lun0 ................................................................ [block/lvnsd (/dev/vgci/lvci) (default_tg_pt_gp)]
  | |   o- portals .................................................................................................... [Portals: 1]
  | |     o- 192.168.126.21:3260 .............................................................................................. [OK]
  | o- iqn.2023-08.club.shadow.www:isc2 .................................................................................. [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 0]
  |     o- luns .......................................................................................................... [LUNs: 0]
  |     o- portals .................................................................................................... [Portals: 0]
  o- loopback ......................................................................................................... [Targets: 0]

exit

客户端reboot,查看到lvs被使用了

《iSCSI简介及使用》

报错及解决

Could not create NetworkPortal in configFS

/> iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ create ip_address=192.168.126.21
Using default IP port 3260
Could not create NetworkPortal in configFS
/>  delete 0.0.0.0 3260
Command not found delete

删除0.0.0.0 3260

/> iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/> iscsi/iqn.2023-08.club.shadow.www:isc1/tpg1/portals/ create ip_address=192.168.126.21
Using default IP port 3260
Created network portal 192.168.126.21:3260.
点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注