iSCSI IP-SAN 部署实战

发布于:2025-09-05 ⋅ 阅读:(20) ⋅ 点赞:(0)

存储领域,随着企业数据量爆炸式增长,传统本地存储已难以满足多服务器共享存储、灵活扩容及远程访问的需求。IP-SAN(IP Storage Area Network,IP 存储区域网络)作为一种基于 IP 网络的存储架构,通过 iSCSI(Internet Small Computer System Interface,互联网小型计算机系统接口)协议实现 “存储设备网络化”,成为中小型企业及混合云场景下的主流存储解决方案。本文将从核心概念、工作原理、部署步骤到应用场景,全面介绍如何通过 iSCSI 构建 IP-SAN。

一、核心概念:先理清 iSCSI 与 IP-SAN 的关系

很多人会混淆 iSCSI 和 IP-SAN,其实二者是 “协议” 与 “架构” 的关系:

  • IP-SAN:是一种存储架构,核心是 “通过 IP 网络连接存储设备与服务器”,打破传统存储的物理地域限制,实现存储资源的集中管理和共享。
  • iSCSI:是实现 IP-SAN 的核心协议,它将 SCSI(小型计算机系统接口,传统本地存储的 “设备通信语言”)命令封装在 TCP/IP 数据包中,让存储设备(如磁盘阵列)和服务器(客户端)能通过以太网进行数据交互 —— 简单说,iSCSI 让 “存储设备像本地硬盘一样被服务器识别”,但数据传输基于 IP 网络。

此外,IP-SAN 架构中还有两个关键角色:

  • iSCSI 目标端(Target):即存储设备端,负责提供可共享的存储资源(如 LUN,逻辑单元号,可理解为 “网络化的磁盘分区”),并响应客户端的 iSCSI 连接请求。常见的 Target 设备包括专业存储阵列(如 Dell PowerVault、华为 OceanStor)、服务器搭建的软件 Target(如 Linux 下的 targetcli、Windows Server 的 iSCSI 目标服务器)。
  • iSCSI 发起端(Initiator):即服务器 / 客户端端,负责向 Target 发起连接请求,将 Target 提供的 LUN 挂载为本地 “虚拟磁盘”,实现数据读写。主流操作系统(Linux、Windows、VMware ESXi)均内置或支持安装 Initiator 工具(如 Windows 的 “iSCSI 发起程序”、Linux 的 open-iscsi 工具)。

二、iSCSI 实现 IP-SAN 的核心原理

iSCSI 构建 IP-SAN 的本质是 “将 SCSI 协议 over IP 网络传输”,其数据交互流程可拆解为 5 个关键步骤,核心是 “封装 - 传输 - 解封装” 的过程:

1. 协议封装:把 SCSI 命令 “打包” 成 IP 数据包

当服务器(Initiator)需要读写存储(Target)时,首先生成 SCSI 命令(如 “读取 LUN 1 中某扇区数据”“写入 100MB 文件到 LUN 2”)。
iSCSI 协议会将这些 SCSI 命令、数据及状态信息,封装成 iSCSI PDU(协议数据单元),再将 iSCSI PDU 作为 payload(负载)封装到 TCP 数据包中(TCP 保证数据传输的可靠性,避免丢包),最终封装成 IP 数据包—— 至此,存储指令变成了可在以太网传输的 “网络数据”。

2. 网络传输:基于以太网实现存储数据交互

封装后的 IP 数据包通过以太网(千兆 / 万兆网卡、交换机)传输,可支持:

  • 本地局域网(LAN):如机房内服务器与存储设备通过交换机直连,延迟低(通常 <1ms),适合高性能场景(如数据库、虚拟化)。
  • 广域网(WAN):通过 VPN 或专线实现远程存储访问(如异地灾备),需注意带宽(建议 ≥100Mbps)和延迟(避免 >100ms,否则影响读写性能)。

3. 协议解封装:Target 端 “还原” SCSI 命令

存储设备(Target)接收到 IP 数据包后,按 “IP→TCP→iSCSI PDU→SCSI 命令” 的顺序反向解封装,提取出原始的 SCSI 命令,再执行命令(如从物理磁盘读取数据、写入数据到磁盘阵列)。

4. 数据响应:Target 向 Initiator 返回结果

Target 执行完 SCSI 命令后,会将 “执行结果”(如读取到的数据、写入成功 / 失败状态)按同样的封装逻辑(SCSI→iSCSI PDU→TCP→IP)打包,通过 IP 网络返回给服务器(Initiator)。

5. 本地挂载:Initiator 识别为 “虚拟本地磁盘”

Initiator 解封装后获取结果:若为 “读取数据”,则将数据交给上层应用(如数据库、文件系统);若为 “写入成功”,则通知应用完成操作。整个过程中,服务器会将 Target 提供的 LUN 识别为 “本地虚拟磁盘”(如 Linux 下的 /dev/sdb、Windows 下的 “磁盘 1”),应用无需感知存储是 “本地” 还是 “网络化” 的。

三、iSCSI IP-SAN 的关键优势与局限性

1. 核心优势:为何选择 iSCSI IP-SAN?

  • 低成本:基于现有以太网(无需专用光纤网络,如 FC-SAN 需光纤交换机和 HBA 卡,成本是 IP-SAN 的 3-5 倍),硬件兼容性强(普通千兆 / 万兆网卡、交换机即可)。
  • 易部署与维护:IP 网络是企业基础架构,IT 人员无需学习新的网络技术;存储管理通过 Web 界面(如存储阵列的管理平台)或命令行(如 Linux targetcli)即可完成,门槛低。
  • 灵活扩容:支持通过增加存储设备、扩展 IP 网络(如堆叠交换机)实现容量 / 性能扩容,且可跨地域(如异地机房的存储通过 VPN 接入 IP-SAN)。
  • 广泛兼容:支持所有主流操作系统(Linux、Windows、macOS、VMware ESXi)、数据库(MySQL、Oracle)及虚拟化平台(KVM、Hyper-V),适配企业现有 IT 架构。

2. 局限性:哪些场景不适合?

  • 性能上限低于 FC-SAN:TCP/IP 协议的封装 / 解封装会产生一定开销,且以太网延迟(通常 0.5-5ms)高于光纤网络(FC-SAN 延迟 <0.1ms),不适合对延迟极端敏感的场景(如高频交易、实时渲染)。
  • 依赖网络稳定性:IP 网络的丢包、拥堵会直接影响存储读写(如数据库 IO 卡顿),需通过配置 QoS(服务质量保障)、冗余链路(如双网卡绑定)降低风险。
  • 单链路带宽有限:千兆以太网单链路带宽上限为 1Gbps(约 125MB/s),万兆以太网为 10Gbps(约 1.25GB/s),若需更高带宽需配置链路聚合(LACP)。

四、iSCSI IP-SAN 部署实战:以 Linux 为例

Linux平台通过iscsi实现IP-SAN

准备2台虚拟机,不需要准备交换机,同网段虚拟机就相当于连在同一个交换机上

1. 静态ip

2. 配置主机名,主机名相互绑定

3. 关闭防火墙和selinux

4. 时间同步

5. 配置好yum

export主机

1. 安装应用

2. 创建块文件

3. 配置

# 安装epel

yum -y install epel-release

# 安装ip-san共享

yum -y install scsi-target-utils

# 查看应用

rpm -aq|grep scsi

dd if=/dev/zero of=/tmp/filex bs=1M count=1024

# 查看配置文件

rpm -qa|grep scsi

# 查看主配置文件

cat /etc/tgt/tgtd.conf

# 查看配置文件

vim /etc/tgt/targets.conf

cat /etc/tgt/targets.conf

# 查看模板配置文件

cat /etc/tgt/conf.d/sample.conf

启动服务

# 查看端口

lsof -i:3260

# 启动服务

systemctl start tgtd.service

# 查看端口

lsof -i:3260

import主机

1.安装应用

yum -y install iscsi-initiator-utils

rpm -qa|grep iscsi

2.发现服务

iscsiadm -m discovery -t sendtargets -p 10.1.1.128

3.登录

lsblk

iscsiadm -m node -l

lsblk

4. 退出登录

# 查看已经登录的iscsi目标

iscsiadm -m session

# 取消特定 iSCSI 目标的登录

iscsiadm -m node -T iscsi:data -p 10.1.1.128:3260 -u

验证没有disk

5. 格式化

mkfs.ext4 /dev/sdb

6. 挂载(块设备无法共享)

mount /dev/sdb /mnt/

五、结论

实验中 iSCSI 会话操作现矛盾,注销失败且设备未识别,系目标名不符、配置异常等所致,需重发现目标并检查配置与网络。

本实验加深了iSCSI协议在IP-SAN中的应用,实现了跨主机的块设备共享。

需注意块设备的独占性,避免多客户端同时挂载导致数据损坏。

改进建议:可结合LVM实现动态存储扩展,或配置CHAP认证提升安全性。


网站公告

今日签到

点亮在社区的每一天
去签到