iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口) 技术是一种新存储技术,该技术是将现有的SCSI接口与以太网技术相结合,使服务器可与使用IP网络的存储装置互相交换资料。

基本概念

ISCSI 这个架构主要将存储装置与使用的主机分别为两部分,分别是:

  • ISCSI target :就是存储设备端,存放磁盘或RAID的设备,目前也能够将Linux主机仿真成ISCSI target了,目的在提供其他主机使用的磁盘。
  • ISCSI inITiator: 就是能够使用target的客户端,通常是服务器,只有装有iscsi initiator的相关功能后才能使用ISCSI target 提供的磁盘。

配置iSCSI服务端(target)

安装

yum -y install targetcli
systemctl enable targetcli 
fdisk # 创建一个新分区
fdisk /dev/sdb
partprobe # 同步内核分区表

配置

这里使用targetcli 命令进入iscsi配置

[root@localhost ~]# targetcli
targetcli shell version 2.1.57
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

创建iSCSI target名称和配置共享资源

# 进入存储卷目录
/> cd backstores/block 
# 创建储存卷
/backstores/block> create name=block1 dev=/dev/sdb1
# 回到主目录
/backstores/block> cd ../../../..
/> cd iscsi
# 创建iscsi target
/iscsi> create
# 输出:
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.master.x8664:sn.980f34541195.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> 
# 创建共享设备
/iscsi/iqn.20....980f34541195> cd tpg1/luns 

设置服务端访问控制列表(这是?)

# 进入acl目录
/iscsi/iqn.20...195/tpg1/luns> cd ..
/iscsi/iqn.20...34541195/tpg1> cd acls 

这是访问控制列表

格式:iqn.YYYY-MM.reverse.domain:identifier

  • YYYY-MM 是域名的注册月份。
  • reverse.domain 是反向的域名(例如 com.example)。
  • identifier 是客户端的标识符(例如 client)。
/iscsi/iqn.20...195/tpg1/acls> create iqn.2024-11.org.alexblock:client

设置iSCSI服务端的监听IP地址和端口号(存疑,这个好像不需要配置)

/iscsi/iqn.20...195/tpg1/acls> cd ..
/iscsi/iqn.20...34541195/tpg1> cd portals/
/iscsi/iqn.20.../tpg1/portals> create ip_address=192.168.10.3 ip_port=3260
Using default IP port 3260
Could not create NetworkPortal in configFS
/iscsi/iqn.20.../tpg1/portals> create ip_address=192.168.10.4 ip_port=3260
Using default IP port 3260
Could not create NetworkPortal in configFS
/iscsi/iqn.20.../tpg1/portals> create ip_port=3260
Using default IP port 3260
Binding to INADDR_ANY (0.0.0.0)
This NetworkPortal already exists in configFS

保存和后续操作

systemctl restart targetclid

Linux使用 iSCSI

yum -y install iscsi-initiator-utils
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2024-11.org.alexblock:client

[root@node1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.10.3:3260
192.168.10.3:3260,1 iqn.2003-01.org.linux-iscsi.master.x8664:sn.980f34541195

[root@node1 ~]# sudo iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.master.x8664:sn.980f34541195 -p 192.168.10.3:3260 -l
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.master.x8664:sn.980f34541195, portal: 192.168.10.3,3260]
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.master.x8664:sn.980f34541195, portal: 192.168.10.3,3260] successful.

# 查看连接状态
[root@node1 ~]# iscsiadm -m session
tcp: [1] 192.168.10.3:3260,1 iqn.2003-01.org.linux-iscsi.master.x8664:sn.980f34541195 (non-flash)

# 使用 lsblk 或 fdisk -l 命令查看新添加的设备
[root@node1 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   20G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   19G  0 part 
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  
sdb           8:16   0   20G  0 disk 
sr0          11:0    1  8.8G  0 rom  

Disk /dev/sdb: 20 GiB, 21473787904 bytes, 41940992 sectors
Disk model: block1          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes

# 格式化并挂载
mkfs.ext4 /dev/sdb
sudo mkdir /iscsi
sudo mount /dev/sdb /iscsi

退出iscsi

iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.master.x8664:sn.980f34541195 -p 192.168.10.3:3260 -u

Windows下使用iscsi

图片来自 曹世宏的博客

win

属性

连接

存储