网络驱动器设备:ISCSI服务器

文章目录

  • 使用ISCSI服务部署网络存储
    • ISCSI技术介绍
    • 创建RAID磁盘整列
    • 配置ISCSI服务端
    • 配置Windows端
    • 配置Linux客户端
    • iSCSI服务器CHAP单向认证配置
      • Linux端具体步骤
      • Windows端具体步骤

使用ISCSI服务部署网络存储

主机名IP
ISCSI服务端192.168.200.10
ISCSI客户端192.168.200.20
Windows客户端192.168.200.30
# 修改主机名
[root@localhost ~]# hostnamectl set-hostname iscsi-server
[root@localhost ~]# bash
[root@iscsi-server ~]# 
[root@localhost ~]# hostnamectl set-hostname iscsi-client
[root@localhost ~]# bash
[root@iscsi-client ~]# 

ISCSI技术介绍

iSCSI(Internet Small Computer System Interface)是一种将SCSI(Small Computer System Interface)存储协议运行在TCP/IP网络上的技术。它通过使用IP网络来传输SCSI命令和数据,并将存储设备的逻辑单元(LUN)暴露给远程主机,使其能够远程访问和使用存储资源。

架构: iSCSI 架构由以下组件组成:

  • iSCSI Target(ISCSI服务端):存储资源提供者,通过将存储设备映射为逻辑单元(LUN),并在网络上以iSCSI协议提供服务。
  • iSCSI Initiator(ISCSI客户端):远程主机或客户端,使用iSCSI协议连接到iSCSI Target,并通过发送SCSI命令和接收数据来访问存储资源。

传输: iSCSI 使用 TCP/IP 协议作为底层传输协议,利用 IP 网络传输SCSI命令和数据。它使用 iSCSI Initiator 向 iSCSI Target 发送SCSI 命令,并将响应和数据通过网络传输回 Initiator。

配置和管理: iSCSI 需要配置 iSCSI Initiator 和 iSCSI Target 来建立连接并传输数据。 Initiator 需要指定目标的 IP 地址和端口号,以及要访问的 LUN。 Target 需要配置相应的存储资源,并设置适当的访问控制和身份验证机制。

功能和优势:

  • 远程存储访问:iSCSI 提供了远程主机访问存储资源的能力,使得远程设备可以像访问本地存储一样使用远程存储。
  • 存储共享:多个远程主机可以通过 iSCSI 连接到同一个 iSCSI Target,实现存储资源的共享和协同访问。
  • 灵活性和可扩展性:iSCSI 技术基于 TCP/IP 网络,具有广泛的支持和可扩展性。可以通过现有的网络基础设施实现存储访问,并可以轻松扩展存储容量和性能。
  • 成本效益:相对于传统的专用存储网络(如光纤通道),iSCSI 提供了更低的部署和维护成本。

iSCSI 技术需要在网络中传输存储数据,因此网络性能和带宽是关键因素。

创建RAID磁盘整列

既然要使用ISCSI存储技术为远程用户提供共享存储资源,首先要保障用于存放资源的服务器的稳定性与可用性,否则一旦在使用过程中出现故障,则维护的难度相较于本地硬盘设备要更加复杂、困难。

首先给虚拟机添加4块硬盘,用于创建RAID5磁盘阵列和备份盘

image-20240407180746618

[root@iscsi-server ~]#  lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0            11:0    1  8.9G  0 rom  /run/media/root/RHEL-9-2-0-BaseOS-x86_64
nvme0n1       259:0    0   50G  0 disk 
├─nvme0n1p1   259:1    0  600M  0 part /boot/efi
├─nvme0n1p2   259:2    0    1G  0 part /boot
└─nvme0n1p3   259:3    0 48.4G  0 part ├─rhel-root 253:0    0 44.5G  0 lvm  /└─rhel-swap 253:1    0  3.9G  0 lvm  [SWAP]
nvme0n2       259:4    0   20G  0 disk 
nvme0n3       259:5    0   20G  0 disk 
nvme0n4       259:6    0   20G  0 disk 
nvme0n5       259:7    0   20G  0 disk 
[root@iscsi-server ~]#  mdadm -Cv /dev/md0 -l 5 -n 3 -x 1 /dev/nvme0n{2..5}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm -D /dev/md0 
/dev/md0:Version : 1.2Creation Time : Sun Apr  7 18:30:39 2024Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sun Apr  7 18:32:24 2024State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 4fe66abc:dc653251:28374699:803cfb22Events : 18Number   Major   Minor   RaidDevice State0     259        4        0      active sync   /dev/nvme0n21     259        5        1      active sync   /dev/nvme0n34     259        6        2      active sync   /dev/nvme0n43     259        7        -      spare   /dev/nvme0n5

配置ISCSI服务端

ISCSI技术在工作形式上分为服务器(target)与客户端(initiator)。

ISCSI服务端用于存放硬盘存储资源的服务器,它作为前面创建的RAID磁盘整列的存储端,能够为用户提供可用的存储资源

ISCSI客户端则是用户使用的软件,用于访问远程服务端的存储资源

第一步:在RHEL8/centos 8系统中,默认已经安装了ISCSI服务端程序,用户只用安装ISCSI服务端的交换配置工具就可以了

[root@iscsi-server ~]#  yum install -y targetcli

第二步:配置ISCSI服务端共享资源

targetcli是用于管理iSCSI服务端存储资源的专用配置命令,它能够提供类似于 fisk 命令的交互式配置功能,将iSCSI 共享资源的配置内容抽象成“目录”的形式,我们只需将各类配置信息填入到相应的“目录”中即可。

主要在于认识每个“参数目录”的作用。当把配置参数正确地填写到“目录”中后,iSCSI服务端也就可以提供共享资源服务了。
在执行 targetcli 命令后就能看到交互式的配置界面了。在该界面中允许使用很多 Linux命令,比如利用ls查看目录参数的结构,使用cd切换到不同的目录中。

常用的targetcli命令和其功能的详解

命令作用
ls [path] [depth]列出指定路径下的目标和/或目录
cd [path]进入指定的路径(目标或目录)
pwd打印当前路径
bookmarks action [bookmark]执行与书签相关的操作
create name dev [readonly] [wwn]创建一个新的配置。name参数指定了配置的名称,dev参数指定了设备
delete name删除指定的配置。name参数指定了要删除的配置
exit退出当前会话或程序
get [group] [parameter…]获取指定组或参数的信息
refresh刷新当前状态或视图
set [group] [parameter=value…]设置指定组或参数的值
status显示当前状态信息

[root@iscsi-server ~]# 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’.

/> ls
o- / … […]
o- backstores … […]
| o- block … [Storage Objects: 0]
| o- fileio … [Storage Objects: 0]
| o- pscsi … [Storage Objects: 0]
| o- ramdisk … [Storage Objects: 0]
o- iscsi … [Targets: 0]
o- loopback … [Targets: 0]

  • /:根目录,包含其他目录和命令的子目录
  • backstores:用于存储对象的目录
    • block:块设备类型的存储对象列表
    • fileio:文件IO类型的存储对象列表
    • pscsi:Pseudo SCSI类型的存储对象列表
    • ramdisk:内存磁盘类型的存储对象列表
  • iscsi:iSCSI目标的目录
  • loopback:回环目标的目录

将刚刚创建的RAID5磁盘阵列md0文件假如到配置共享设备的资源池中,并将该文件重新命名为disk0,这样用户就不会知道是有服务器中的哪块硬盘来提供共享存储资源,而只会看到一个名为disk0的存储设备

/> cd /backstores/block
/backstores/block> create disk0 /dev/md0
Created block storage object disk0 using /dev/md0.
/backstores/block> cd /
/> ls
o- / … […]
o- backstores … […]
| o- block … [Storage Objects: 1]
| | o- disk0 … [/dev/md0 (40.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 target名称及配置共享资源

iSCSI target名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串。稍后用户在扫描iSCSI服务端时即可看到这个字符串,因此我们不需要记住它。

iqn.yyyy-mm.<reversed domain name>:identifier
iqn.年年-月.单位网络名的反转写法      : 这个共享的target名称

/> cd iscsi
/iscsi> ls
o- iscsi … [Targets: 0]
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> ls
o- iscsi … [Targets: 1]
o- iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b … [TPGs: 1]
o- tpg1 … [no-gen-acls, no-auth]
o- acls … [ACLs: 0]
o- luns … [LUNs: 0]
o- portals … [Portals: 1]
o- 0.0.0.0:3260 … [OK]

系统在生成这个 target 名称后,还会在/iscsi 参数目录中创建一个与其字符串同名的新“目录”用来存放共享资源。我们需要把前面加人到iSCSI共享资源池中的硬盘设备添加到这个新目录中,这样用户在登录iSCSI服务端后,即可默认使用这硬盘设备提供的共享存储资源了。

/iscsi/iqn.20...5a84619b/tpg1> cd luns 
/iscsi/iqn.20...19b/tpg1/luns> create /backstores/block/disk0 
Created LUN 0.

第四步:设置访问控制列表(ACL)

iSCSI协议是通过客户端名称进行验证的。也就是说,用户在访问存储共享资源时不需要输入密码,只要iSCSI客户端的名称与服务端中设置的访问控制列表中某一名称条目一致即可,因此需要在iSCSI服务端的配置文件中写入一串能够验证用户信息的名称。acls 参数目录用于存放能够访问iSCSI服务端共享存储资源的客户端名称。

[root@iscsi-client ~]# systemctl start iscsid.service && systemctl enable iscsid.service
[root@iscsi-client ~]# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:cc54be3e2f1/iscsi/iqn.20...19b/tpg1/acls> create iqn.1994-05.com.redhat:cc54be3e2f1
Created Node ACL for iqn.1994-05.com.redhat:cc54be3e2f1
Created mapped LUN 0.

image-20240407232544132

image-20240407232609394

/iscsi/iqn.20...19b/tpg1/acls> create iqn.1991-05.com.microsoft:desktop-utnil1q
Created Node ACL for iqn.1991-05.com.microsoft:desktop-utnil1q
Created mapped LUN 0.

第五步:设置ISCSI服务端的监听IP地址和端口号

位于生产环境中的服务器上可能有多块网卡,那么到底是由哪个网卡或正地址对外提供共享存储资源呢?在配置文件中默认是允许所有网卡提供iSCSI服务,如果您认为这有些许不安全,可以手动删除:

/iscsi/iqn.20...19b/tpg1/acls> cd ..
/iscsi/iqn.20...5a84619b/tpg1> cd portals/
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
# 使用192.168.200.10的3260端口向外提供ISCSI共享存储资源服务
/iscsi/iqn.20.../tpg1/portals> create 192.168.200.10
Using default IP port 3260
Created network portal 192.168.200.10:3260.

第六步:再参数文件配置妥当后,浏览刚刚配置的信息,确保上述提到的“目录”都已经填写了正确的内容

确认无误exit退出配置

/> ls
o- / … […]
o- backstores … […]
| o- block … [Storage Objects: 1]
| | o- disk0 … [/dev/md0 (40.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.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b … [TPGs: 1]
| o- tpg1 … [no-gen-acls, no-auth]
| o- acls … [ACLs: 2]
| | o- iqn.1991-05.com.microsoft:desktop-utnil1q … [Mapped LUNs: 1]
| | | o- mapped_lun0 … [lun0 block/disk0 (rw)]
| | o- iqn.1994-05.com.redhat:cc54be3e2f1 … [Mapped LUNs: 1]
| | o- mapped_lun0 … [lun0 block/disk0 (rw)]
| o- luns … [LUNs: 1]
| | o- lun0 … [block/disk0 (/dev/md0) (default_tg_pt_gp)]
| o- portals … [Portals: 1]
| o- 192.168.200.10: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

防火墙放心规则

[root@iscsi-server ~]# firewall-cmd --add-service=iscsi-target --permanent 
[root@iscsi-server ~]# firewall-cmd --reload 

配置Windows端

打开windows客户端输入ISCSI服务端的IP地址,点击快速连接

image-20240408000216115

已连接,点击完成

image-20240408000302865

搜索磁盘管理器,点击搜索的第一个

image-20240408000423038

点进去后,就会发现有一个未分配的40G磁盘

image-20240408000459787

点击未分配的磁盘,右键新建卷,设置磁盘大小为30G,设置驱动号为E盘,NTFS文件系统,卷标为ISCSI磁盘,最后点击完成

image-20240408000903347

image-20240408000928246

在ISCSI磁盘中存储一些内容,也可以存储

image-20240408001517165

配置Linux客户端

在RHEL 9 系统中,已经默认安装了ISCSI客户端服务程序initiator,如果没有安装可以用yum安装

[root@iscsi-client ~]# rpm -qa |grep -i iscsi          
iscsi-initiator-utils-iscsiuio-6.2.1.4-3.git2a8f9d8.el9.x86_64
iscsi-initiator-utils-6.2.1.4-3.git2a8f9d8.el9.x86_64
udisks2-iscsi-2.9.4-7.el9.x86_64

设置iscsid服务开机自启,并启动,在之前设置访问控制列表已经开启过了

iscsiadm 是一个用于管理 iSCSI 会话和目标的命令行工具。它允许您配置和管理 iSCSI 收发器(也称为 iSCSI initiator)与 iSCSI 目标(也称为 iSCSI 服务端)之间的连接。

Discovery(发现)

  • iscsiadm -m discovery -t st -p <target_ip> 这个命令用于从指定的 iSCSI 目标 IP 地址进行发现。通过执行发现操作,可以列出可以连接的 iSCSI 目标。

Login(登录)

  • iscsiadm -m node -T <target_name> -p <target_ip> --login 这个命令用于使用指定的 iSCSI 目标名称和 IP 地址登录到 iSCSI 目标。

Logout(注销)

  • iscsiadm -m node -T <target_name> -p <target_ip> -u 这个命令用于从指定的 iSCSI 目标注销并断开与目标的连接。
# 先发现
[root@iscsi-client ~]# iscsiadm -m discovery -t st -p 192.168.200.10
192.168.200.10:3260,1 iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b
# 在登录
[root@iscsi-client ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b -p 192.168.200.10 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b, portal: 192.168.200.10,3260]
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b, portal: 192.168.200.10,3260] successful.
# 登录成功# 登录成功之后,会在客户端主机上多出一块磁盘,可以使用lsblk查看
[root@iscsi-client ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda             8:0    0   40G  0 disk 
└─sda1          8:1    0   30G  0 part   # 这个是windows分区的磁盘
sr0            11:0    1  8.9G  0 rom  /run/media/root/RHEL-9-2-0-BaseOS-x86_64
nvme0n1       259:0    0   50G  0 disk 
├─nvme0n1p1   259:1    0  600M  0 part /boot/efi
├─nvme0n1p2   259:2    0    1G  0 part /boot
└─nvme0n1p3   259:3    0 48.4G  0 part ├─rhel-root 253:0    0 44.5G  0 lvm  /└─rhel-swap 253:1    0  3.9G  0 lvm  [SWAP]# 再来分区sda
[root@iscsi-client ~]# lsblk /dev/sda
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda      8:0    0  40G  0 disk 
├─sda1   8:1    0  30G  0 part 
└─sda2   8:2    0  10G  0 part   # 我们创建的
# 格式化
[root@iscsi-client ~]# mkfs.xfs /dev/sda2 
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/sda2              isize=512    agcount=16, agsize=163200 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1    bigtime=1 inobtcount=1
data     =                       bsize=4096   blocks=2611200, imaxpct=25=                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# 创建挂载点
[root@iscsi-client ~]# mkdir /sharedisk
# 挂载
[root@iscsi-client ~]# mount /dev/sda2 /sharedisk/
# 查看
[root@iscsi-client ~]# df -hT /sharedisk/
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/sda2      xfs    10G  104M  9.9G    2% /sharedisk
# 写入数据
[root@iscsi-client ~]# dd if=/dev/zero of=/sharedisk/test_1 count=500 bs=1M
记录了500+0 的读入
记录了500+0 的写出
524288000字节(524 MB,500 MiB)已复制,0.432517 s,1.2 GB/s
[root@iscsi-client ~]# cd /sharedisk/
[root@iscsi-client sharedisk]# ls
test_1
[root@iscsi-client sharedisk]# df -hT /sharedisk/                                  
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/sda2      xfs    10G  604M  9.4G    6% /sharedisk# 添加自动挂载
[root@iscsi-client sharedisk]# vim /etc/fstab 
/dev/sda2             /sharedisk                xfs     defaults,_netdev        0 0
# _netdev 参数可以确保系统在启动网络服务之后再进行挂载,避免因为网络尚未准备好而导致挂载失败。
[root@iscsi-client sharedisk]# cd 
[root@iscsi-client ~]# umount /sharedisk 
[root@iscsi-client ~]# mount -a
[root@iscsi-client ~]# df -hT /sharedisk/
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/sda2      xfs    10G  604M  9.4G    6% /sharedisk

在windows端刷新一下磁盘管理,看看分区情况

image-20240408005344450

分区没问题

如果不再需要使用ISCSI共享设备资源了,可以用iscsiadm命令的-u参数将其他设备卸载

# 先发现
[root@iscsi-client ~]# iscsiadm -m discovery -t st -p 192.168.200.10
192.168.200.10:3260,1 iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b
# 再注销
[root@iscsi-client ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b -u
Logging out of session [sid: 1, target: iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b, portal: 192.168.200.10,3260]
Logout of [sid: 1, target: iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b, portal: 192.168.200.10,3260] successful.
# 查看磁盘
[root@iscsi-client ~]# lsblk |grep sda
# 记得删除fstab自动挂载内容,否则关机就开不了机了

windows注销可以打开ISCSI发起程序,点击断开连接就可以卸载磁盘了

iSCSI服务器CHAP单向认证配置

在 iSCSI 中,CHAP(Challenge Handshake Authentication Protocol)是一种用于进行身份认证的协议,可以在 iSCSI 连接中提供一种基于密码的安全机制。单向 CHAP 认证是一种配置方式,其中只有 Linux客户端验证 iSCSI 服务器的身份

  1. 创建 CHAP 用户名和密码: 在 iSCSI 服务器上创建一个 CHAP 用户名和密码组合,用于与 iSCSI 客户端进行认证。这些用户名和密码将用于验证 iSCSI 客户端身份。

  2. 修改 iSCSI 客户端的配置文件: 打开 iSCSI 服务器的配置文件,并添加以下配置项:

    discovery.sendtargets.auth.authmethod = CHAP
    discovery.sendtargets.auth.username = <CHAP用户名> 
    discovery.sendtargets.auth.password = <CHAP密码>
    # 将 <CHAP用户名> 替换为您在第一步中创建的 CHAP 用户名,将 <CHAP密码>替换为相应的密码。
    
  3. 保存并关闭配置文件

  4. 建立 iSCSI 连接: 在配置完成后,通过 iSCSI 客户端建立与 iSCSI 服务器的连接。客户端将使用配置的 CHAP 用户名和密码与服务器进行认证,并建立受信任的连接

Linux端具体步骤

# 创建 CHAP 用户名和密码
[root@iscsi-server ~]# targetcli
/> cd iscsi/
/iscsi> set discovery_auth enable=1 userid=csq password=Abc@1234  # 设置单向认证
Parameter enable is now 'True'.
Parameter userid is now 'csq'.
Parameter password is now 'Abc@1234'.
/iscsi> get discovery_auth 
DISCOVERY_AUTH CONFIG GROUP
===========================
enable=True
-----------
The enable discovery_auth parameter.mutual_password=
----------------
The mutual_password discovery_auth parameter.mutual_userid=
--------------
The mutual_userid discovery_auth parameter.password=Abc@1234  # # 单项认证的密码
-----------------
The password discovery_auth parameter.userid=csq        # 单项认证的账户
----------
The userid discovery_auth parameter.
# 修改 iSCSI 服务器的配置文件
[root@iscsi-server ~]# vim /etc/iscsi/iscsid.conf 79 discovery.sendtargets.auth.authmethod = CHAP83 discovery.sendtargets.auth.username = csq84 discovery.sendtargets.auth.password = 123789456csq
# 先发现
[root@iscsi-client ~]# iscsiadm -m discovery -t st -p 192.168.200.10
192.168.200.10:3260,1 iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b
# 再登陆
[root@iscsi-client ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b, portal: 192.168.200.10,3260]
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.3e775a84619b, portal: 192.168.200.10,3260] successful.
# 查看磁盘
[root@iscsi-client ~]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb      8:16   0  40G  0 disk 
├─sdb1   8:17   0  30G  0 part 
└─sdb2   8:18   0  10G  0 part 

Windows端具体步骤

# 创建 CHAP 用户名和密码,执行过不用执行第二遍
[root@iscsi-server ~]# targetcli
/> cd iscsi/
/iscsi> set discovery_auth enable=1 userid=csq password=123789456csq  # 设置单向认证
Parameter enable is now 'True'.
Parameter userid is now 'csq'.
Parameter password is now '123789456csq'.
/iscsi> get discovery_auth 
DISCOVERY_AUTH CONFIG GROUP
===========================
enable=True
-----------
The enable discovery_auth parameter.mutual_password=
----------------
The mutual_password discovery_auth parameter.mutual_userid=
--------------
The mutual_userid discovery_auth parameter.password=123789456csq   # 单项认证的密码
-----------------
The password discovery_auth parameter.userid=csq        # 单项认证的账户
----------
The userid discovery_auth parameter.
/iscsi> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

打开ISCSI发起程序,点击发现,发现门户,输入ISCSI服务端IP,点击高级,在启用CHAP登录前面打上对勾,输入名称机密,点击确定

然后点击目标,点击连接,就连接上了

image-20240408012917538

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/599136.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 有哪些主要的指令修饰符

目录 1. 什么是指令修饰符 2. 指令修饰符有哪些 2.1. 按键修饰符 2.2. v-model修饰符 2.3. 事件修饰符 1. 什么是指令修饰符 通过 "." 指明一些指令 后缀&#xff0c;不同 后缀 封装了不同的处理操作 目的&#xff1a;简化代码 2. 指令修饰符有哪些 2.1. 按键…

WPS快速将插入Excle数据插入Word

前置条件&#xff1a; 一张有标题、数据的excle表格word中的表格与excle表格标题对应或包含电脑已经安装WPS软件 第一步、根据word模板设计excle模板&#xff0c;标头对应 第二步、word上面选【引用】--【邮件】&#xff0c;选打开数据源&#xff0c;找到excle文件&#xff0c;…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之二 简单视频闪白效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之二 简单视频闪白效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之二 简单视频闪白效果 一、简单介绍 二、简单视频闪白效果实现原理 三、简单视频闪白效果案例实现…

什么是GIF?MP4视频如何转换成GIF动图格式?

一&#xff0c;什么是GIF GIF的全称是Graphics Interchange Format&#xff0c;可译为图形交换格式&#xff0c;用于以超文本标志语言&#xff08;Hypertext Markup Language&#xff09;方式显示索引彩色图像&#xff0c;在因特网和其他在线服务系统上得到广泛应用。GIF是一种…

说说TCP为什么需要三次握手和四次挥手?

一、三次握手 三次握手&#xff08;Three-way Handshake&#xff09;其实就是指建立一个TCP连接时&#xff0c;需要客户端和服务器总共发送3个包 主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备 过程如下&#xff…

激光雷达和相机的联合标定工具箱[cam_lidar_calibration]介绍

激光雷达和相机的联合标定工具箱[cam_lidar_calibration]介绍 写在前面安装过程调试过程标定成功可视化展示 写在前面 激光雷达和相机联合标定工具 论文地址&#xff1a;https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber9564700 github地址: https://github.com…

手机如何在线制作gif?轻松一键在线操作

现在大家都喜欢使用手机来拍摄记录有趣的事物&#xff0c;但是时间长了手机里的视频越来越多导致手机存储空间不够了&#xff0c;这些视频又不想删除时应该怎么办呢&#xff1f;这个很简单&#xff0c;下面就给大家分享一款不用下载手机就能操作的视频转gif网站-GIF中文网&…

Linux -- 字符设备驱动--LED的驱动开发(初级框架)

驱动框架一阶段 我们怎样去点亮一个 LED 呢&#xff1f;分为三步&#xff1a; 看原理图确定引脚&#xff0c;确定引脚输出什么电平才能点亮/熄灭 LED 看主芯片手册&#xff0c;确定寄存器操作方法&#xff1a;哪些寄存器&#xff1f;哪些位&#xff1f;地址是&#xff1f; 编…

STM32智能家居小助手

​ 设计的目的 大部分家用电器开关仍旧是传统的机械式按键开关&#xff0c;原因是传统式的电器开关开发周期短&#xff0c;制作成本低&#xff0c;方案成熟&#xff0c;但是传统的遥控家电开关已经不能满足人们对家电控制的要求&#xff0c;传统的遥控器具有单一性&#xff0c;…

6_6_SQL

//名词 Candidate key:若表中记录的某一字段或字段组合能够唯一标志记录&#xff0c;则称该字段或字段组合为候选关键字 Primary key:若一个表有多个候选关键字&#xff0c;则选定其中一个为主关键字&#xff0c;也称为主键 Foreignkey:若某字段或字段组合不是数据库中A表的关键…

鼠标灵敏度怎么调,鼠标灵敏度怎么调最稳

鼠标和键盘是操作计算机过程中使用最频繁的设备之一&#xff0c;用电脑的时&#xff0c;我敢说你一定离不开鼠标。有些用户发现鼠标不太好用&#xff0c;尤其是在游戏时&#xff0c;总觉得鼠标移动太慢了。另外&#xff0c;如果你感觉鼠标按键失灵、鼠标单击变双击以及反应迟钝…

MySQL的存储引擎、索引与事务

常见的端口号 MySQL–3306http–80https–443tcp–23fcp–21tomcat–8080ssh–22oracle–1521rockermq–9876 存储引擎 使用指令查看所有引擎&#xff1a; show engines;从图中可以看出MySQL默认的存储引擎是InnoDB&#xff1b;并且在5.7版本所有的存储引擎中只有 InnoDB 是…