实验环境

两台Debian10
服务端IP地址:192.168.10.1/24
客户端ip地址:192.168.10.2/24

什么是iSCSI ?

iSCSI(Internet Small Computer System Interface,发音为/ˈаɪskʌzi/),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。
与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:
1.把原来只用于本机的SCSI协议透过TCP/IP网络发送,使连接距离可作无限的地域延伸;
2.连接的服务器数量无限(原来的SCSI-3的上限是15);
3.由于是服务器架构,因此也可以实现在线扩容以至动态部署。

链接

iSCSI_百度百科 (baidu.com)

服务器配置

先加入一块用于共享的磁盘 推荐加入SATA磁盘 
我这里是虚拟机不能加SATA磁盘 所以才用的SCSI磁盘 
SATA磁盘不需要重启 我这里是重启过

debian 10 搭建iSCSI服务_iSCSI

这里我们使用lsblk查看磁盘 可以看见磁盘成功添加上去

debian 10 搭建iSCSI服务_iSCSI_02

这里我们安装tgt服务
apt install tgt -y			#就不截全了

debian 10 搭建iSCSI服务_Debian10_03

安装完成之后 我们进入cd /etc/tgt/conf.d/此文件夹
可以用ls查看一下文件 可以发现里面也没有 但是不要慌张 需要我们手动创建

debian 10 搭建iSCSI服务_Debian10_04

这里我们编写 一个文件 文件名称可以自定义 内容是正确的就行
vim iscsi.conf 				#我取这个名字是为了辨识

debian 10 搭建iSCSI服务_Debian10_05

配置文件内容如下

debian 10 搭建iSCSI服务_Debian10_06

<target iqn.2019-07.world.srv:dlp.target01>
#第一条命令: 命名规则: <target(头 显示这个文件是干啥的) iqn(默认跟).2019(年)-07(月).world.srv(域名的后俩位):dlp.target01(你喜欢的任何名称)

backing-store /dev/sdb
# backing-store (后面跟你要共享的东西) /dev/sdb (这里是我共享的磁盘)

initiator-name iqn.2019-07.world.srv:www.srv.world
#initiator-name (后面跟iSCSI 发起程序的iqn)  
iqn.2019-07.world.srv:www.srv.world (这里是一会客户端登录所用的iqn 可以理解为补充第一条iqn所用的 如果你开始的iqn写的足够详细 也可以不用这一条命令 写了这一条iqn 我没有试过还能不能用开始的iqn登录)

initiator-address 192.168.10.0/24
#initiator-address 192.168.10.0/24(为允许访问此设备的IP地址,即我们后面要配置的ISCSI客户端的IP地址 也可理解为限制IP地址)

incominguser username password
#incominguser身份验证信息(为“username”,“password”设置一个你喜欢的名字)
incominguser a 123
#这里的a是我自定义的账户 123为我自定义的密码 (你可以按照你自己的喜好进行配置 需要做chap认证就需要这一条命令 不需要做chap就不需要)

vendor_id XXX
#vendor_id 为供应商标识符
product_id XXX
#product_id 为产品编号
这两个字段我们可以随意设置。

:wq					#退出保存就可以了
这里我们重启服务和加入到开机自启

debian 10 搭建iSCSI服务_Debian10_07

显示状态
tgtadm --mode target --op show

debian 10 搭建iSCSI服务_iSCSI_08

这里我们不做chap的话 是不会有这个a的 推荐不做chap

客户端配置

我们安装open-iscsi服务
apt install open-iscsi -y

debian 10 搭建iSCSI服务_Debian10_09

安装完成之后 我们编辑俩个文件
第一个文件
vim /etc/iscsi/initiatorname.iscsi
这里我是把服务器的iqn输入上去了
前面我没截屏
原本存在一个InitiatorName=XXXXXXXXXXX(以为我没截屏所以直接用X代替了)
InitiatorName=后面就可以输入服务器上面的了
:wq				#保存退出

debian 10 搭建iSCSI服务_Debian10_10

第二个文件
vim /etc/iscsi/iscsid.conf
原本开启的是43行的手动
我们把他注释掉 开启第40行的自动
:wq				#保存退出

debian 10 搭建iSCSI服务_iSCSI_11

chap认证(需要可以做 不需要可以不做)

开启56 60 61 行
修改60 61行 为服务端上面的账户和密码
:wq				#保存退出

debian 10 搭建iSCSI服务_iSCSI_12

重启iSCSI客户端
systemctl restart iscsid.service open-iscsi.service

debian 10 搭建iSCSI服务_Debian10_13

iscsiadm -m discovery -t st -p 192.168.10.1(服务端的IP地址)  					#发现节点

debian 10 搭建iSCSI服务_iSCSI_14

iscsiadm -m node				#查看已发现节点

debian 10 搭建iSCSI服务_Debian10_15

iscsiadm -m node -T iqn.2019-07.world.srv:www.srv.world(服务端的iqn) -l		#连接target	注意!!!开启了chap认证这条命令就登录不了
iscsiadm -m session  #查看已连接target

debian 10 搭建iSCSI服务_Debian10_16

chap登录命令

iscsiadm -m node --login   	#chap登录命令

其他操作

# 重新扫描节点
iscsiadm -m node -R
# 重新扫描会话
iscsiadm -m session -R
# 断开target
iscsiadm -m node -T iqn.2019-07.world.srv:www.srv.world(服务端的iqn) -u
# 断开所有target
iscsiadm -m node -U all
# 删除节点
iscsiadm -m node -p 192.168.10.1(服务端IP地址) -o delete
# 删除所有节点
iscsiadm -m node -o delete
我们lsblk查看
成功挂载 格式化你就可以使用这块网络磁盘了

debian 10 搭建iSCSI服务_iSCSI_17