以下是详细的iSCSI存储挂载主机实验步骤及命令说明,帮助您深入理解iSCSI协议的工作原理和配置流程:


实验环境

• Target服务器(存储提供端):IP 192.168.1.100

• Initiator客户端(存储挂载端):IP 192.168.1.200

• 操作系统:Ubuntu/CentOS(以Ubuntu为例)

• 确保防火墙开放3260端口(或临时关闭防火墙测试)


一、配置iSCSI Target(存储服务端)

  1. 安装必要软件包
sudo apt-get update
sudo apt-get install targetcli-fb -y # Ubuntu
# CentOS: yum install targetcli
  1. 创建虚拟存储设备(模拟磁盘)
# 创建一个1GB的虚拟磁盘文件(路径可自定义)
sudo dd if=/dev/zero of=/var/lib/iscsi_disks/disk1.img bs=1M count=1024
  1. 使用targetcli配置iSCSI Target
sudo targetcli

进入交互式命令行后,按顺序执行以下操作:

# 创建块存储后端(backstore)
/> /backstores/block create name=disk1 dev=/var/lib/iscsi_disks/disk1.img # 创建iSCSI Target IQN(格式:iqn.年月.域名反写:标识)
/> /iscsi create iqn.2024-06.com.example:storage.target1 # 创建LUN并关联存储设备
/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/luns create /backstores/block/disk1 # 设置ACL(允许指定Initiator访问)
# 获取Initiator的IQN(需在客户端查看,见下文步骤)
/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/acls create iqn.2024-06.com.example:client.initiator1 # 配置监听IP和端口
/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/portals create 192.168.1.100 # 保存配置并退出
/> saveconfig
/> exit
  1. 启动服务并验证
sudo systemctl restart target
sudo systemctl enable target

二、配置iSCSI Initiator(存储客户端)

  1. 安装客户端工具
sudo apt-get install open-iscsi -y  # Ubuntu
# CentOS: yum install iscsi-initiator-utils
  1. 设置Initiator名称(IQN)
# 编辑配置文件,设置与Target ACL匹配的IQN
sudo vim /etc/iscsi/initiatorname.iscsi
---
InitiatorName=iqn.2024-06.com.example:client.initiator1
  1. 发现Target存储
# 发现指定IP的Target
sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.100

输出示例:

192.168.1.100:3260,1 iqn.2024-06.com.example:storage.target1
  1. 登录到Target
# 登录所有发现的Target
sudo iscsiadm -m node -L all # 查看连接的磁盘设备
lsblk # 应看到新磁盘(如sdb、sdc等)

三、挂载并使用iSCSI磁盘

  1. 分区及格式化
# 对新磁盘分区(示例磁盘为/dev/sdb)
sudo fdisk /dev/sdb # 创建新分区(n→p→默认→w保存) # 格式化分区为ext4
sudo mkfs.ext4 /dev/sdb1
  1. 挂载分区
# 创建挂载点并挂载
sudo mkdir /mnt/iscsi_disk
sudo mount /dev/sdb1 /mnt/iscsi_disk # 验证挂载
df -h | grep iscsi_disk
  1. 配置开机自动挂载
# 获取磁盘UUID
sudo blkid /dev/sdb1 # 编辑/etc/fstab,添加以下内容(使用_netdev确保网络就绪后挂载)
UUID=xxxx-xxxx-xxxx /mnt/iscsi_disk ext4 _netdev 0 0

四、验证与维护

  1. 测试读写
sudo touch /mnt/iscsi_disk/testfile
echo "iSCSI test" | sudo tee /mnt/iscsi_disk/testfile
  1. 断开连接(可选)
# 卸载并登出
sudo umount /mnt/iscsi_disk
sudo iscsiadm -m node -U all # 登出所有Target

五、高级配置(可选)

启用CHAP认证

• Target端:

/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/ set auth userid=myuser
/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/ set auth password=mypassword

• Initiator端:

# 编辑CHAP配置文件
sudo vim /etc/iscsi/iscsid.conf
---
node.session.auth.authmethod = CHAP
node.session.auth.username = myuser
node.session.auth.password = mypassword

多路径配置(高可用)

安装multipath-tools并配置多路径策略,提升存储访问可靠性。


注意事项

  1. 防火墙:确保服务端3260/tcp端口开放。
  2. IQN格式:必须符合标准格式,否则连接失败。
  3. 数据安全:生产环境务必启用CHAP认证。
  4. 性能调优:根据网络条件调整MTU、队列深度等参数。

通过此实验,您将掌握iSCSI存储协议的配置流程,理解存储网络化的实现原理。

iSCSI存储挂载主机实验的更多相关文章

  1. iSCSI存储的3种连接方式

    我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器.工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统. iSCSI设备的主机接口一般默认都是IP接口,可以直接与 ...

  2. vSphere ESXi主机配置iSCSI存储

    vSphere ESXi主机配置iSCSI存储 vSphere ESXi主机一般连接的存储类型有光纤存储.iSCSI存储两类.本次案例为iSCSI存储连接ESXi主机的配置. 案例环境:ESXi主机通 ...

  3. linux下挂载ISCSI存储设备

    安装 首先要在存储设备上做好RAID,设置好iSCSI 目标方(target). 这里主要说明iSCSI initiator的安装. 不同的操作系统对应各自的iSCSI initiator,以Redh ...

  4. 有了iscsi存储怎么让主机识别以及使用创建lvm

    1.查找安装包:rpm -ivh iscsi-initiator-utils去sf.net下载iscsitarget包make kernel,usr,install开启服务 (0)查看iscsi发现记 ...

  5. linux杂谈(十七):iscsi存储分离技术

    1.iscsi简单介绍 ​ ​iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道.透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机能够透过快速的局域网集线来 ...

  6. Linux FC/iSCSI存储设备管理系列(一):Linux系统设备驱动入门

    Linux FC/iSCSI存储设备管理系列(一):Linux系统设备驱动入门 转载请在文首保留原文出处:EMC中文支持论坛 - https://community.emc.com/go/chines ...

  7. 配置软ISCSI存储

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独使用RedHat Enterprise Linux 7搭建软ISCSI的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服 ...

  8. 通过SCVMM分配iSCSI存储

    除了使用基于SMB3.0应用程序的文件共享外,还可以使用iSCSI目标服务器的SAN存储,然后在SCVMM控制台中添加基于SMI-S类型的存储,步骤如下: 1.将一台安装了 iSCSI目标 功能的Wi ...

  9. 通过Windows Server 2008 R2建立iSCSI存储

    名词解释:iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能够在诸如高速千兆以太网上 ...

  10. 基于使用ISCSI存储的ibmmq通过heartbeat实现HA方案以及碰到的问题总结

    一.背景 ibmmq是一种传统架构的mq产品,运行稳定,有其自身优点,但在高可用(HA)这一块需要使用公司根据自身需求选用高可用(HA)产品,但由于市面HA商业产品较贵,所以使用linux操作系统级的 ...

随机推荐

  1. WPF 窗口 触摸失效 的一种场景

    最近,生产线反馈,在执行生产大屏测试软件的时候,软件大概率出现不能触摸,但是可以用鼠标的的情况.刚好 这个软件又是WPF 做的,所以做了以下排查. .Net 环境: .NetFrameWork 4.8 ...

  2. Maven中dependencyManagement标签的正确使用方法

    目录 前言 使用方法 结束语 前言   Maven中的dependencyManagement元素提供了一种管理依赖版本号的方式,她用于声明所依赖的jar包的版本号等信息.当所有子项目再次引入这些ja ...

  3. InheritableThreadLocal父子线程变量共享实现原理

    概述   我们知道ThreadLocal 的设计初衷是为了解决多线程并发导致的线程安全问题,向每一个线程提供一个自己的变量副本,实现变量隔离.那如何在不同线程之间共享变量呢?InheritableTh ...

  4. 【非对称加密】详解及Java实现

    非对称加密详解及Java实现 一.非对称加密概述 非对称加密(Asymmetric Cryptography),也称为公钥加密,是一种使用一对密钥(公钥和私钥)进行加密和解密的加密方法.它与对称加密的 ...

  5. Kubernetes配置管理

    Kubernetes配置管理 ConfigMap 对于应用的可变配置在 Kubernetes 中是通过一个 ConfigMap 资源对象来实现的,许多应用经常会有从配置文件.命令行参数或者环境变量中读 ...

  6. Ant Design 的 a-input-number 组件限制最小值和最大值以及限制输入为数值型

    1.限制输入最大小值 <a-input-number v-model="form.deviceCpuThreshold" placeholder="请输入CPU阈值 ...

  7. 五、kernel修改屏幕配置

    2.3.修改屏幕配置 2.3.1.配置 gpio 修改 ./rk_linux_sdk/kernel/arch/arm64/boot/dts/rockchip/rk3566-evb2-lp4x-v10. ...

  8. Blazor学习之旅(8)MudBlazor组件库介绍

    大家好,我是Edison. 为了实现一个Web应用系统,需要有个看起来不丑的UI,而对于.NET程序员来说要做全栈开发还是有点难,而本篇介绍的这个UI组件库正好可以帮助我们解决这个问题! MudBla ...

  9. 深入掌握iostat:运维必备的I/O性能分析利器

    在Linux系统运维中,磁盘I/O性能往往是系统瓶颈的关键来源.iostat作为sysstat工具包中的核心命令,能够实时监控CPU使用率和磁盘I/O统计,是性能诊断不可或缺的工具.本文将全面解析io ...

  10. C# WinForm 窗体/控件移动

    #region 窗体移动 [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "Re ...