news 2026/8/11 6:50:55

低成本网络存储!iSCSI 从 0 搭建 + 多路径高可用实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
低成本网络存储!iSCSI 从 0 搭建 + 多路径高可用实操

CentOS7 iSCSI IP-SAN 完整实战博客

前言

传统服务器本地硬盘容量有限、无法多机共享,光纤FC SAN存储成本高昂。iSCSI基于TCP/IP以太网实现块级远程存储共享,俗称IP-SAN,普通千兆/万兆网线即可搭建共享存储,中小企业、机房实训首选方案。
本文完整覆盖iSCSI核心理论、单路径存储部署、客户端挂载、持久化配置、Multipath多路径高可用链路冗余,附带完整可复制命令、虚拟机实操步骤、故障排查,全部来自实验文档实操内容,适合运维自学、课堂实操。

一、iSCSI基础概念

1.1 什么是iSCSI

SCSI是本地硬盘通信标准,iSCSI(Internet小型计算机系统接口)将SCSI读写指令封装在IP数据包,通过局域网传输,实现远程裸盘共享。

  • 优势:复用现有网络设备,部署成本低;支持10G以太网卡提升存储性能;
  • 安全:内网存储流量无需加密,跨公网可搭配IPsec加密传输;
  • 端口:默认服务监听3260端口。

1.2 iSCSI C/S架构

  1. Target(存储服务端):服务器侧,挂载物理磁盘/分区,对外提供共享存储资源;
  2. Initiator(存储客户端):业务主机,通过网络连接Target,远端磁盘识别成本地裸设备。

1.3 核心专业名词

  1. IQN:全球唯一设备标识,服务端、客户端各有独立IQN,用于访问鉴权,格式:iqn.年月.反向域名:自定义标识
  2. Portal:服务监听IP+3260端口,一台Target可配置多个Portal实现多链路;
  3. LUN:后端磁盘映射后的共享逻辑单元,一个Target可绑定多块LUN;
  4. Backstore:后端存储池,4种类型:
    • block:物理硬盘/分区(生产常用)
    • fileio:文件模拟磁盘(测试用)
    • pscsi:直通本地物理SCSI设备
    • ramdisk:内存磁盘,断电数据丢失
  5. ACL访问控制:客户端IQN白名单,未加入白名单主机无法登录共享磁盘。

二、单路径iSCSI完整部署

2.1 实验节点规划

主机名IP地址角色硬件配置
iscsi-server10.1.8.10/24Target服务端额外新增2块20G SCSI硬盘
iscsi-client10.1.8.11/24Initiator客户端普通CentOS7虚拟机

2.2 虚拟机硬件准备

  1. 关闭虚拟机,进入虚拟机设置,添加SCSI类型20G虚拟硬盘;

  2. 系统基础配置:关闭防火墙、SELinux,配置静态IP、修改主机名

# 服务端基础配置hostnamectl set-hostname iscsi-server nmcli connection modify ens33 ipv4.method manual ipv4.addresses10.1.8.10/24 ipv4.gateway10.1.8.2 ipv4.dns10.1.8.2 autoconnectyesnmcli connection up ens33 systemctl disable firewalld--nowsetenforce0# 客户端同步修改IP、主机名、关闭防护hostnamectl set-hostname iscsi-client nmcli connection modify ens33 ipv4.method manual ipv4.addresses10.1.8.11/24 ipv4.gateway10.1.8.2 ipv4.dns10.1.8.2 autoconnectyesnmcli connection up ens33 systemctl disable firewalld--nowsetenforce0

2.3 Target服务端配置流程

流程顺序:创建后端存储 → 创建Target IQN → 绑定LUN磁盘 → 添加客户端ACL白名单 → 配置监听Portal → 保存配置

1. 安装服务端工具
yuminstall-ytargetd targetcli systemctlenabletarget--now# 放行3260端口firewall-cmd--permanent--add-service=iscsi-target firewall-cmd--reload
2. targetcli交互式完整配置
# 进入交互控制台targetcli# 1. 创建后端存储,绑定/dev/sdb硬盘cd/backstores/block create myblock1 /dev/sdb# 2. 创建Target唯一IQNcd/iscsi create iqn.2026-04.cloud.laogao.iscsi-server:disk1# 3. 绑定LUN,关联后端磁盘cd/iscsi/iqn.2026-04.cloud.laogao.iscsi-server:disk1/tpg1/luns create /backstores/block/myblock1# 4. 添加客户端IQN白名单cd../acls create iqn.2026-04.cloud.laogao.iscsi-client# 5. 删除默认全地址监听,仅监听本机10.1.8.10cd../portals delete0.0.0.03260create10.1.8.103260# 退出自动保存配置exit
3. 非命令行一键批量配置(适合脚本自动化)
targetcli /backstores/block create myblock2 /dev/sdc targetcli /iscsi create iqn.2026-04.cloud.laogao.iscsi-server:disk2 targetcli /iscsi/iqn.2026-04.cloud.laogao.iscsi-server:disk2/tpg1/luns create /backstores/block/myblock2 targetcli /iscsi/iqn.2026-04.cloud.laogao.iscsi-server:disk2/tpg1/acls create iqn.2026-04.cloud.laogao.iscsi-client targetcli /iscsi/iqn.2026-04.cloud.laogao.iscsi-server:disk2/tpg1/portals delete0.0.0.03260targetcli /iscsi/iqn.2026-04.cloud.laogao.iscsi-server:disk2/tpg1/portals create10.1.8.103260targetcli saveconfig# 查看完整存储配置targetclils

2.4 Initiator客户端完整操作

1. 安装客户端工具
yuminstall-yiscsi-initiator-utils
2. 修改客户端唯一IQN(必须和服务端ACL一致)
vim/etc/iscsi/initiatorname.iscsi# 修改内容InitiatorName=iqn.2026-04.cloud.laogao.iscsi-client# 重启iscsi服务生效systemctl restart iscsid
3. 扫描存储服务器、登录共享盘
# 发现Target设备iscsiadm-mdiscovery-tst-p10.1.8.10# 登录指定IQN存储iscsiadm-mnode-Tiqn.2026-04.cloud.laogao.iscsi-server:disk1-l# 查看识别的远端磁盘lsblk# 查看完整会话信息iscsiadm-msession-P3
4. 磁盘格式化、临时挂载
# 格式化远端裸盘mkfs.xfs /dev/sdb# 创建挂载目录并挂载mkdir/storagemount/dev/sdb /storage# 写入测试文件验证echotest>/storage/test.txtcat/storage/test.txt
5. 开机持久化挂载(关键规范)

禁止使用/dev/sdb盘符,盘符会随扫描顺序变化,必须使用UUID;挂载参数添加_netdev,系统等待网络就绪再挂载存储。

# 获取磁盘UUIDblkid /dev/sdb# 编辑fstabvim/etc/fstab# 写入配置示例UUID="0461e240-7743-47fe-876b-6df8b8e7ebf8"/storage xfs defaults,_netdev00# 验证挂载无报错mount-a# 设置iscsi开机自启systemctlenableiscsi
6. 断开存储完整流程
  1. 卸载挂载目录
  2. 注销iSCSI会话
  3. 删除本地存储节点记录
umount/storage iscsiadm-mnode-Tiqn.2026-04.cloud.laogao.iscsi-server:disk1-uiscsiadm-mnode-Tiqn.2026-04.cloud.laogao.iscsi-server:disk1-odelete

2.5 单路径常见故障排查

客户端无法登录存储:99%是客户端IQN与服务端ACL白名单不匹配,修改initiatorname.iscsi并重启iscsid服务,重新扫描登录。

三、进阶:Multipath多路径高可用部署

3.1 多路径作用

单网卡存在单点故障,网线/网卡损坏会直接丢失存储。多路径给存储搭建多条独立网络链路,一条链路故障自动切换备用线路,同时支持带宽聚合,生产环境必备高可用方案。

3.2 双网卡实验环境升级

  1. iscsi-server、iscsi-client各新增一块网卡,划分两套独立网段:
  • 网卡1:10.1.8.0/24
  • 网卡2:10.1.1.0/24
  1. 服务端Target新增第二个Portal监听10.1.1.10:3260,实现双链路访问同一LUN。

3.3 客户端多路径配置

1. 安装多路径软件
yuminstall-ydevice-mapper-multipath iscsi-initiator-utils# 生成默认配置文件mpathconf--enable--with_multipathdy# 启动多路径守护进程systemctlenablemultipathd--now
2. 双链路扫描登录存储
# 扫描两个网段Portaliscsiadm-mdiscovery-tst-p10.1.8.10 iscsiadm-mdiscovery-tst-p10.1.1.10# 批量登录所有存储节点iscsiadm-mnode-Lall# lsblk查看,两条链路识别出sdb、sdc两块盘,实际是同一块远端存储
3. 多路径状态查看与WWN识别

WWN是存储设备全球唯一标识,两条链路磁盘WWN一致代表同一块存储:

# 查看磁盘WWN/usr/lib/udev/scsi_id-g-u/dev/sdb /usr/lib/udev/scsi_id-g-u/dev/sdc# 查看多路径聚合虚拟设备multipath-ll

输出说明:

  • status=active:当前主业务链路
  • status=enabled:备用冗余链路
  • status=failed:链路故障,自动切换线路

3.4 多路径两种工作模式

  1. 主备模式(默认service-time)
    同一时间仅一条链路传输IO,主链路故障自动切备用,适合大多数企业场景;
  2. multibus负载均衡模式
    多条链路同时分担读写流量,提升存储带宽,需存储控制器支持双活。

3.5 多路径持久挂载与故障模拟

聚合后的统一设备为/dev/mapper/mpatha,格式化、挂载、fstab持久化操作和单路径一致;
故障测试操作:断开服务端其中一块网卡,执行multipath -ll可观察链路状态自动切换,业务读写不中断。

3.6 multipath.conf配置文件详解

配置文件分为5大模块,优先级:multipaths > devices > defaults

  1. defaults:全局默认参数(IO调度、链路检测)
  2. blacklist:本地硬盘黑名单,避免本地磁盘被误聚合
  3. blacklist_exceptions:白名单,放行iSCSI存储盘
  4. devices:匹配厂商存储设备,批量配置规则
  5. multipaths:自定义存储别名、链路策略

四、生产运维规范总结

  1. 安全规范
    禁止Target监听0.0.0.0全地址,必须配置ACL客户端IQN白名单,防止内网任意主机挂载存储;公网传输iSCSI流量搭配IPsec加密。
  2. 挂载规范
    iSCSI属于网络存储,fstab必须添加_netdev参数;绝对不能使用/dev/sd盘符挂载,统一采用UUID,避免盘符漂移无法开机。
  3. 高可用规范
    生产环境全部部署Multipath多路径,消除网卡、网线单点故障;普通XFS/EXT4文件系统不支持多主机同时读写,多节点共享存储需部署GFS2集群文件系统。
  4. 存储选型规范
    测试环境可使用fileio、ramdisk;正式业务统一使用block物理磁盘模式,ramdisk内存盘断电丢失数据,禁止线上使用。
  5. 故障排查顺序
    客户端无法挂载 → 检查IQN匹配 → 检查3260端口防火墙放行 → 单路径检查网线;多路径执行multipath -ll查看链路状态。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/11 6:48:10

本地部署AI声控游戏助手:低延迟语音识别与指令映射实战

这次我们来看一个很有意思的本地AI项目,它能把你的语音指令实时转换成游戏里的操作。想象一下,你对着麦克风喊“攻击”、“跳跃”、“格挡”,游戏角色就能立刻响应,这听起来像是科幻电影里的场景,但现在通过开源AI模型…

作者头像 李华
网站建设 2026/8/11 6:48:05

AI内容生成新范式:零交互“无尽流”技术架构与工程实践

如果你最近关注AI生成内容,可能会发现一个现象:很多AI工具都在强调“可控”和“精准”——你需要输入复杂的提示词,调整各种参数,才能得到一张勉强符合预期的图片或一段视频。整个过程更像是在操作一台精密仪器,而非享…

作者头像 李华
网站建设 2026/8/11 6:46:38

Flutter在OpenHarmony中的转场动画优化实践

1. 项目概述:Flutter在OpenHarmony中的转场动画实践去年在开发一款跨平台应用时,我遇到了一个棘手的问题:如何在OpenHarmony设备上实现与iOS/Android平台一致的流畅转场效果。经过两个月的实战摸索,终于总结出一套可靠的Flutter转…

作者头像 李华
网站建设 2026/8/11 6:45:40

企业复工留才面谈策略与核心技术人才保留

1. 年后复工留才面谈的底层逻辑春节假期后的复工阶段,往往是企业人才流动的高峰期。根据人力资源行业数据显示,每年春节后第一个月的主动离职率比平时高出40%左右。这个特殊时间窗口的留才工作,本质上是对企业人才结构的一次战略性调整。我在…

作者头像 李华
网站建设 2026/8/11 6:41:47

《我的世界》PVP材质包终极指南:30款精选与实战配置提升竞技体验

如果你是一名《我的世界》PVP玩家,或者正准备踏入这个充满竞技乐趣的领域,那么你一定遇到过这个经典难题:为什么别人的操作看起来那么流畅丝滑,而我的游戏画面却总感觉“拖泥带水”?这背后,除了个人技术&am…

作者头像 李华