iSCSI详解及 iSCSI服务端配置、客户端(Linux、Windows配置)

article/2025/9/23 3:15:23

一、简介:
iSCSI,Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。iscsi通过TCP/IP协议,实现远程存储单元的本地使用(映射为本地硬盘)

二、实验环境:
iSCSI-Server:服务端centos7 192.168.8.235
iSCSI-Client-linux:客户端centos7 192.168.8.8
iSCSI-Client-Windows:客户端 192.168.8.14

三、实验准备:
设置IP地址、测试网络连通性、关闭服务端的防火墙和selinux

#设置服务端IP:

[root@docker network-scripts]# cd /etc/sysconfig/network-scripts/
[root@docker network-scripts]# vim ifcfg-enp0s3 
IPADDR=192.168.8.235 #在最后一行加入IP地址

#设置客户端IP:
同上,Windows后面会放图

测试网络连通性:

[root@docker ~]# ping 192.168.8.8

服务端关闭防火墙

[root@docker ~]# systemctl stop firewalld.service

关闭selinux

1、临时关闭:输入命令setenforce 0,重启系统后还会开启。
2、永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。

配置ISCSI的服务端:
准备存储空间
以硬盘的形式存在的:添加一块硬盘 (/dev/sdb)
以文件的形式存在的:dd if=/dev/zero of=/opt/disk.img bs=1024k count=512

四、实验步骤

  1. 关闭服务端虚拟机,添加一个网盘
[root@docker ~]# init 0 #关闭虚拟机

2.到虚拟机当前主机上编辑虚拟机设置,为当前主机添加一块本地磁盘:

在这里插入图片描述
3.查看磁盘信息、是否添加成功

[root@docker ~]# fdisk -l 
磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ddd2a设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200     6295551     2098176   82  Linux swap / Solaris
/dev/sda3         6295552   104857599    49281024   83  Linux磁盘 /dev/sdb:24.7 GB, 24696061952 字节,48234496 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节

4 .创建文件

[root@docker dev]# dd if=/dev/zero of=/opt/disk.img bs=1024k count=512
记录了512+0 的读入
记录了512+0 的写出
536870912字节(537 MB)已复制,0.814878 秒,659 MB/[root@docker dev]# cd /op
opp/ opt/ 
[root@docker dev]# cd /opt
[root@docker opt]# ls
cni  containerd  disk.img  test-scp  网络设备监控 - 副本.zip
  1. 安装iscsi服务端:targetd、targetcli
[root@docker network-scripts]# yum -y install targetd targetcli

6.调用targetcli命令进行设置:

  • 创建iscsi磁盘
  • 创建服务端程序
  • 创建服务卷luns
  • 5.4 创建客户端连接器(启用chap认证)
[root@docker network-scripts]# 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 create  idisk2 /dev/sdb  #创建iscsi第一块磁盘
Created block storage object idisk2 using /dev/sdb.
/> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 1]| | o- idisk2 ........................................ [/dev/sdb (23.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]
/> /backstores/fileio create idisk3 /opt/disk.img  #创建iscsi第二块磁盘
Created fileio idisk3 with size 536870912
/> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 1]| | o- idisk2 ........................................ [/dev/sdb (23.0GiB) write-thru deactivated]| |   o- alua ................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- fileio ................................................................. [Storage Objects: 1]| | o- idisk3 .................................. [/opt/disk.img (512.0MiB) write-back deactivated]| |   o- alua ................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- pscsi .................................................................. [Storage Objects: 0]| o- ramdisk ................................................................ [Storage Objects: 0]o- iscsi ............................................................................ [Targets: 0]o- loopback ......................................................................... [Targets: 0]
/> iscsi/ create iqn.2021-12.pip.cc:server  #创建服务端程序
Created target iqn.2021-12.pip.cc:server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 1]| | o- idisk2 ........................................ [/dev/sdb (23.0GiB) write-thru deactivated]| |   o- alua ................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- fileio ................................................................. [Storage Objects: 1]| | o- idisk3 .................................. [/opt/disk.img (512.0MiB) write-back deactivated]| |   o- alua ................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- pscsi .................................................................. [Storage Objects: 0]| o- ramdisk ................................................................ [Storage Objects: 0]o- iscsi ............................................................................ [Targets: 1]| o- iqn.2021-12.pip.cc:server ......................................................... [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]o- loopback ......................................................................... [Targets: 0]
/> cd iscsi/iqn.2021-12.pip.cc:server/tpg1/ #进入服务端程序
/iscsi/iqn.20...c:server/tpg1> luns/ create  #创建服务卷backstores/block/idisk2  
Created LUN 0.
/iscsi/iqn.20...c:server/tpg1> luns/ create  #创建服务卷
/backstores/fileio/idisk3  
Created LUN 1.
/iscsi/iqn.20...c:server/tpg1> ls
o- tpg1 ..................................................................... [no-gen-acls, no-auth]o- acls ................................................................................ [ACLs: 0]o- luns ................................................................................ [LUNs: 2]| o- lun0 ........................................... [block/idisk2 (/dev/sdb) (default_tg_pt_gp)]| o- lun1 ..................................... [fileio/idisk3 (/opt/disk.img) (default_tg_pt_gp)]o- portals .......................................................................... [Portals: 1]o- 0.0.0.0:3260 ........................................................................... [OK]
/iscsi/iqn.20...c:server/tpg1> cd acls 
/iscsi/iqn.20...ver/tpg1/acls> ls
o- acls .................................................................................. [ACLs: 0]
/iscsi/iqn.20...ver/tpg1/acls> cd ..
/iscsi/iqn.20...c:server/tpg1> acls/ create iqn.2021-12.pip.cc:client  #创建客户端连接器
Created Node ACL for iqn.2021-12.pip.cc:client
Created mapped LUN 1.
Created mapped LUN 0.
/iscsi/iqn.20...c:server/tpg1> ls
o- tpg1 ..................................................................... [no-gen-acls, no-auth]o- acls ................................................................................ [ACLs: 1]| o- iqn.2021-12.pip.cc:client .................................................. [Mapped LUNs: 2]|   o- mapped_lun0 ...................................................... [lun0 block/idisk2 (rw)]|   o- mapped_lun1 ..................................................... [lun1 fileio/idisk3 (rw)]o- luns ................................................................................ [LUNs: 2]| o- lun0 ........................................... [block/idisk2 (/dev/sdb) (default_tg_pt_gp)]| o- lun1 ..................................... [fileio/idisk3 (/opt/disk.img) (default_tg_pt_gp)]o- portals .......................................................................... [Portals: 1]o- 0.0.0.0:3260 ........................................................................... [OK]
/iscsi/iqn.20...c:server/tpg1> cd acls/iqn.2021-12.pip.cc:client/
/iscsi/iqn.20...pip.cc:client> set auth userid=vec   #创建用户
Parameter userid is now 'vec'.
/iscsi/iqn.20...pip.cc:client> set auth password=112233445566  #设置密码
Parameter password is now '112233445566'.
/iscsi/iqn.20...pip.cc:client> cd /
/> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 1]| | o- idisk2 .......................................... [/dev/sdb (23.0GiB) write-thru activated]| |   o- alua ................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- fileio ................................................................. [Storage Objects: 1]| | o- idisk3 .................................... [/opt/disk.img (512.0MiB) write-back activated]| |   o- alua ................................................................... [ALUA Groups: 1]| |     o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- pscsi .................................................................. [Storage Objects: 0]| o- ramdisk ................................................................ [Storage Objects: 0]o- iscsi ............................................................................ [Targets: 1]| o- iqn.2021-12.pip.cc:server ......................................................... [TPGs: 1]|   o- tpg1 ............................................................... [no-gen-acls, no-auth]|     o- acls .......................................................................... [ACLs: 1]|     | o- iqn.2021-12.pip.cc:client ............................................ [Mapped LUNs: 2]|     |   o- mapped_lun0 ................................................ [lun0 block/idisk2 (rw)]|     |   o- mapped_lun1 ............................................... [lun1 fileio/idisk3 (rw)]|     o- luns .......................................................................... [LUNs: 2]|     | o- lun0 ..................................... [block/idisk2 (/dev/sdb) (default_tg_pt_gp)]|     | o- lun1 ............................... [fileio/idisk3 (/opt/disk.img) (default_tg_pt_gp)]|     o- portals .................................................................... [Portals: 1]|       o- 0.0.0.0:3260 ..................................................................... [OK]o- loopback ......................................................................... [Targets: 0]
/> 

exit 退出

5.5 重启targetd服务,并配置开机自动运行

[root@docker ~]# systemctl restart targetd
[root@docker ~]# systemctl  enable targetd

6.客户端配置(Linux)
1 安装iscsid的客户端:iscsi-initiator-utils

[root@jbjb ~]#cd /media/cdrom/Packages/
[root@jbjb Packages]#yum -y install iscsi-initiator-utils

2 修改iscsi的配置文件:/etc/iscsi/

[root@jbjb Packages]#cd /etc/iscsi/

initiatorname.iscsi #定义客户端连接器的名称 iqn.2021-12.pip.cc:client
在这里插入图片描述

iscsid.conf:启用chap认证、配置服务器设定的用户与密码
启用chap认证
在这里插入图片描述

配置服务器设定的用户与密码在这里插入图片描述

3 .启动iscsid服务,启动后刚配置的才会生效

[root@jbjb iscsi]# systemctl restart iscsid

4.发现存储服务器

[root@jbjb iscsi]# iscsiadm -m discovery -t st -p 192.168.8.235
192.168.8.235:3260,1 iqn.2021-12.pip.cc:server

5.登录存储服务器

[root@jbjb iscsi]# iscsiadm -m node -T iqn.2021-12.pip.cc:server -p 192.168.8.235 -l #登录

6.查看iscsi"网盘" : lsblk
在这里插入图片描述

  1. 磁盘使用使用:
    7.1格式化
[root@jbjb iscsi]# mkfs.xfs -f /dev/sdc 格式化sdc盘

7.2挂载

[root@jbjb iscsi]# mount /dev/sdc /mnt/usb/ 挂载sdc到客户端的/mnt/usb/

7.3添加文件测试

[root@jbjb iscsi]# echo 11111111 > /mnt/usb/2.txt
[root@jbjb iscsi]# ll /mnt/usb/
总用量 4
-rw-r--r-- 1 root root 9 1219 06:01 2.txt

8.卸载存储服务器
先解除卸载

[root@jbjb iscsi]# umount -l /dev/sdc 

然后执行

[root@jbjb iscsi]# iscsiadm -m node -T iqn.2021-12.pip.cc:server -p 192.168.8.235 -u 

7.Windows客户端配置

在这里插入图片描述
调出程序属性
在这里插入图片描述
目标处填写服务端IP
在这里插入图片描述在这里插入图片描述
卷和设备处点击自动配置
在这里插入图片描述

进入计算机管理,查看磁盘是否共享成功
在这里插入图片描述


http://chatgpt.dhexx.cn/article/fjwolrBH.shtml

相关文章

交换机的Access口与Trunk口

基本概念 Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口; Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口; 处理流程 Acess端口收报文:…

交换机中access和trunk详解

首先需要说明的是,vlan的标准802.1q中采用的是untagged,tagged这两个术语来制定vlan规范,并没有access,trunk。然而大多数实际的交换机设备在配置时,却都采用access,trunk。 以下简称802.1q中数据包中的vlan标识部分为vid标签。 …

什么是trunk端口?

什么是iis7服务器监控工具Trunk端口 基本概念 Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口; 处理流程 trunk端口收报文: 收到一个报文,判断是否有VLAN信息,如果没有则打上端口的PVID,并进行交换转发;如果有判断…

链路聚合Eth-Trunk

链路聚合简介 以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。 目的&…

超详细讲解access和trunk的区别,从此不再迷糊

我在网上阅读了好几篇关于这个主题的博文,发现很多都是有错误理解的,特此发表一下关于本人的理解,本文只简单概述access和trunk的区别并且hybrid不做探讨。 一、接收区别 access收到的帧通常是不带vlanTag的,收到无tag的帧会打上…

Eth-Trunk技术原理与配置

目录 前言Eth-Trunk概念手工负载分担模式LACP模式LACP模式活动链路的选取LACP模式的抢占机制 Eth-Trunk接口负载分担模式配置手工负载分担模式配置LACP模式 前言 随着网络中部署的业务量不断增长,对于全双工点对点链路,单条物理链路的带宽已不能满足正常…

TRUNK通信过程

一、拓扑结构 拓扑说明,PC1、PC3连接到VLAN10接口下,PC2、PC4连接到VLAN20接口下,两台交换机用trunk链路连接,允许VLAN10 20 通过 以上述拓扑为例,说明PC1到PC3的通信过程 二、通信过程 PC1 ping PC3 PC1发起一个与…

trunk与access的区别

首先声明我没研究过交换机底层实现,以下结论都是我的个人理解。不保证正确,但是有助于理解trunk和access。以下言论可能你在哪里都没有看到过。 先说观点:我认为trunk与access并没有本质的区别。 access收到带vlan的帧和自己所属vlan比较&a…

TRUNK详解

TRUNK 详解 TRUNK作为一个重要的指标,常常在二层交换机的性能参数中被提到,许多的二层交换机产品在介绍其性能时,都会提到能够支持TRUNK功能,从而可以为互连的交换机之间提供更好的传输性能。一下就是TRUNK的介绍 一、什么是TRUN…

链路聚合(eth-trunk)

文章目录 1.链路聚合概述①概念:②链路聚合两种模式:当两台交换机之间使用链路聚合技术进行互连时,各个成员端口需要满足以下哪些条件? 2.二层链路聚合配置修改负载均衡的方式:(可选)注意:e-tru…

Trunk和Access分析

一、配置界面: 如果有页面可以添加trunk口和access口,如常规的HCI产品上,交换机通常可以增加新的trunk和access, 新建的时候,配置参数就不一样: 1、trunk:两个配置参数 (1)、vlan范…

实验: 配置trunk

配置trunk 实验: 配置trunk1、实验拓扑结构图如下:2、给每台主机配置IP地址3.配置SW14.配置SW25.配置trunk端口(两个交换机都要配置)6.流量控制7.修改nativeVLAN为VLAN 90 实验: 配置trunk 实验目标: 1.学会配置trunk,实现端到端VLAN通信 2.配置trunk流量控制 3.修…

Access、Trunk、Hybrid模式详解

文章目录 华为交换机转发VLAN数据时的行为详解前言参考阅读一、交换机的行为1.1 接收数据1.2 转发数据 二、工作模式横向对比2.1 接入模式2.2 中继模式2.3 混杂模式 三、实验详解3.1 几种模式的配置3.2 DHCP分配地址时对于native vlan的处理方式至此,理论实验完成&a…

Trunk概念

一、为什么需要trunk? 1、当一条链路,需要承载多VLAN信息的时候,需要使用trunk来实现。 2、trunk两端的交换机需要采用相同的干道协议。 3、一般见于交换机之间或交换机与路由器、服务器之间。 4、划分多个vlan之后,解决不同交换机…

access与trunk详细解析+区别

目录 一、Access 二、Trunk 三、区别: 四、额外说明: 一、Access Access只能属于一个vlan,一般用来连接计算机的端口Access接受和转发的数据包必是无VID的数据包Access端口发送出去的数据包无VID,可被PC接受或access口接受。…

TRUNK 的介绍和配置

一、 TRUNK 的背景 : 如果交换机与交换机之间存在多条链路,交换机每增加一个vlan,交换机与交换机就会增加一条链路。这样会存在链路浪费,就产生了 DTP ( dynamic trunk protocols)采用trunk后,所…

网络管理中TRUNK的作用和使用

😘作者简介:一名99年运维岗位员工。👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。🙏创作不易,动动…

交换机Trunk详解

文章目录 一、Trunk概述二、封装协议三、ISL四、Dot1Q五、DTP六、Trunk配置七、MTU问题 一、Trunk概述 当一条链路,需要承载多VLAN信息的时候,需要使用trunk来实现Trunk两端的交换机需要采用相同的干道协议一般见于交换机之间或交换机与路由器、服务器之…

HSM-Net: Hierarchical Deep Stereo Matching on High-resolution Images

paper code Abstract 应用端到端的框架,从粗到细的层次上递增地搜索对应关系。由于高分辨率立体数据集相对较少,我们引入了一个包含高分辨率立体对的数据集,用于训练和评估。 Motivation 1.立体匹配中的误差随深度的增加呈二次曲线增加&…

调度器学习笔记三:HSM状态机理解

今天心情不错,突然想明白了困扰自己几个月的HSM(层次状态机)问题,“顿悟”的感觉真是舒畅。这也再次证明不够聪明的人(我),应该勤能补拙。废话少说,把自己的体会总结如下。 HSM被称为…