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

news/2024/4/30 8:28:33/文章来源:https://blog.csdn.net/qq_52089863/article/details/137484999

文章目录

  • 使用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.luyixian.cn/news_show_1046170.aspx

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

相关文章

UE5、CesiumForUnreal实现加载建筑轮廓GeoJson数据生成白模功能

1.实现目标 在UE5.3中,通过加载本地建筑边界轮廓面GeoJson数据,获取底面轮廓和楼高数据,拉伸生成白模,并支持点选高亮。为防止阻塞Game线程,使用了异步任务进行优化,GIF动图如下所示: 其中建筑数量:128871,顶点索引数量:6695748,三角面数量:2231916,顶点数量:165…

Linux nsenter命令全面解析

Linux nsenter命令是一个强大的工具&#x1f6e0;️&#xff0c;用于进入到已存在的命名空间&#xff08;Namespace&#xff09;中执行命令。由于Linux的命名空间技术是构建容器技术的基础&#xff0c;nsenter因此成为了容器管理和调试中不可或缺的工具&#x1f433;。本文将从…

【开源语音项目OpenVoice](一)——实操演示

目录 一、前菜 1、Python选择 2、pip源切换 3、ffmpeg配置问题 4、VSCode添加Jupyter扩展 二、配置虚拟环境 1、下载源码 方法一 直接下载源码压缩包 方法二 使用git 1&#xff09;git加入鼠标右键 2&#xff09;git clone源码 2、VSCode出场 1&#xff09;创建pyth…

vue实现验证码验证登录

先看效果&#xff1a; 代码如下&#xff1a; <template><div class"container"><div style"width: 400px; padding: 30px; background-color: white; border-radius: 5px;"><div style"text-align: center; font-size: 20px; m…

鲨鱼恐怖的第六感

除了视觉、嗅觉、听觉、味觉、触觉这五种感官&#xff0c; 鲨鱼还有敏锐的「第六感」&#xff1a;电觉&#xff0c;可以侦测微弱电场&#xff0c;捕捉猎物。 恐怖的背鳍划破水面&#xff0c;直逼我们而来─一头三公尺长的硕大青鲨&#xff0c;正如鱼雷般朝血腥气味方向游去。…

基于SSM的周边乡村旅游小程序

系统实现 游客注册通过注册窗口&#xff0c;进行在线填写自己的账号、密码、姓名、年龄、手机、邮箱等&#xff0c;信息编辑完成后核对信息无误后进行选择注册&#xff0c;系统核对游客所输入的账号信息是否准确&#xff0c;核对信息准确无误后系统进入到操作界面。 游客登录通…

Lesson1--数据结构前言

1. 什么是数据结构&#xff1f; 2. 什么是算法&#xff1f; 3. 数据结构和算法的重要性 4. 如何学好数据结构和算法 5. 数据结构和算法书籍及资料推荐 1. 什么是数据结构&#xff1f; 数据结构(Data Structure) 是计算机存储、组织数据的方式&#xff0c;指相互之间存在一…

宁波银行交出2023年成绩单:高成长高质量,优质服务夯实金字招牌

撰稿 |多客 来源 | 贝多财经 4月9日&#xff0c;宁波银行&#xff08;SZ:002142&#xff09;交出了2023年的业绩答卷。透过财报不难发现&#xff0c;该行在业绩表现、资产质量、创新趋势、风控能力等方面均展现出了强韧的成长性&#xff0c;无愧城商行“优等生”之名。 进入2…

Android Studio学习15——多页面情况下再看Activity生命周期

按返回键退出APP时&#xff1a; 走正常页面的退出流程&#xff1a;onPause–>onStop–>onDestroy(会Destroy,因为它从任务栈中退出了) 再点击图标回来时&#xff1a; 走正常页面的创建流程&#xff1a;onCreate–>onStart–>onResume 按Home键退出App时&#xff1a…

鸿蒙实战开发-如何实现选择并查看文档与媒体文件

介绍 应用使用ohos.file.picker、ohos.multimedia.mediaLibrary、ohos.file.fs 等接口&#xff0c;实现了picker拉起文档编辑保存、拉起系统相册图片查看、拉起视频并播放的功能。 效果预览 使用说明&#xff1a; 在首页&#xff0c;应用展示出最近打开过的文档信息&#xf…

算法打卡day29

今日任务&#xff1a; 1&#xff09;1005.K次取反后最大化的数组和 2&#xff09;134.加油站 3&#xff09;135.分发糖果 1005.K次取反后最大化的数组和 题目链接&#xff1a;1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 给定一个整数数组 A&…

MySQL分库分表的方式有哪些

目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展&#xff0c;那这个网站流量也会增加&#xff0c;数据的压力也会随之而…

使用pytorch构建有监督的条件GAN(conditional GAN)网络模型

本文为此系列的第四篇conditional GAN&#xff0c;上一篇为WGAN-GP。文中在无监督的基础上重点讲解作为有监督对比无监督的差异&#xff0c;若有不懂的无监督知识点可以看本系列第一篇。 原理 有条件与无条件 如图投进硬币随机得到一个乒乓球的例子可以看成是一个无监督的GAN&…

Harmony鸿蒙南向驱动开发-UART

UART指异步收发传输器&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;&#xff0c;是通用串行数据总线&#xff0c;用于异步通信。该总线双向通信&#xff0c;可以实现全双工传输。 两个UART设备的连接示意图如下&#xff0c;UART与其他模块一般用2线&a…

Golang快速入门教程(一)

目录 一、环境搭建 1.windows安装 2.linux安装 3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 7.输入 三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符…

HWOD:投票统计

一、知识点 1、单词 候选人的英文是Candidate 投票的英文是vote 投票人的英文是voter 2、for循环 如果在for循环内将i置为n&#xff0c;结束该层循环后&#xff0c;for循环会先给i加1,然后再去判读i是否小于n&#xff0c;所以for循环结束后&#xff0c;i的值为n1 3、字符…

idm线程越多越好吗 idm线程数多少合适 IDM百度云下载 IDM下载器如何修改线程数

IDM&#xff08;Internet Download Manager&#xff09;是一款流行的网络下载器&#xff0c;它支持多线程下载&#xff0c;这意味着它可以同时建立多个连接来下载文件的不同部分&#xff0c;从而提高下载速度。我们在使用IDM的时候总是有很多疑问&#xff0c;今天我们学习IDM线…

Unity 遮罩

编辑器版本 2017.2.3f1 学习Unity的三张遮罩方式 1. Mask 遮罩方式 首先&#xff0c;在界面上创建2个Image&#xff0c;一个命名Img_Mask,大小设置 400* 400&#xff0c; 一个命名Img_Show,大小设置500*500。 然后&#xff0c;给 Img_Mask添加Mask,选择Img_Mask,点击Add Com…

数据可视化-ECharts Html项目实战(11)

在之前的文章中&#xff0c;我们学习了如何在ECharts中特殊图表的双y图以及自定义形状词云图。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 数据可视化-ECh…

基于springboot+vue实现新闻推荐系统项目【项目源码+论文说明】

基于springboot实现新闻推荐系统演示 摘要 随着信息互联网购物的飞速发展&#xff0c;国内放开了自媒体的政策&#xff0c;一般企业都开始开发属于自己内容分发平台的网站。本文介绍了新闻推荐系统的开发全过程。通过分析企业对于新闻推荐系统的需求&#xff0c;创建了一个计算…