iSCSI 存储协议详解

(注意:正确缩写为 iSCSI,全称为 Internet Small Computer System Interface,是一种基于 IP 网络的存储协议。)


1. 什么是 iSCSI?

iSCSI 是一种将 SCSI 命令 封装在 TCP/IP 协议 中的技术,允许通过标准以太网传输块级存储数据。

  • 核心功能:将远程存储设备(如磁盘阵列)模拟成本地硬盘,实现跨网络的块级存储访问。
  • 替代方案:相比传统的光纤通道(FC-SAN),iSCSI 基于廉价的以太网,成本更低,但性能略低。

2. 核心组件

  • iSCSI Initiator(发起端):客户端设备(如服务器),通过软件或硬件发起存储请求。
    • 软件 Initiator:如 Linux 的 open-iscsi、Windows 的 iSCSI Initiator
    • 硬件 Initiator:专用 HBA 卡(支持 TCP Offload 以降低 CPU 负载)。
  • iSCSI Target(目标端):存储设备(如 NAS/SAN),提供存储资源。
    • 常用软件:targetcli(Linux)、StarWind(Windows)、专用存储阵列。

3. 核心功能与作用

功能 作用
块级存储访问 直接读写磁盘块,适合数据库、虚拟机等高性能场景。
IP 网络传输 利用现有以太网,无需专用光纤网络,降低成本。
跨平台兼容性 支持 Windows、Linux、VMware 等操作系统。
集中存储管理 统一管理存储资源,提高利用率。
远程存储映射 将远程存储挂载为本地磁盘,实现异地数据访问。
数据加密与认证 支持 CHAP 认证、IPsec 加密,保障传输安全。

4. 应用场景

(1) 企业级存储网络(SAN)

  • 场景:需要高性能、低延迟的存储环境(如数据库、ERP 系统)。
  • 优势:通过 10Gb/25Gb 以太网,提供接近光纤通道(FC)的性能,但成本更低。

(2) 虚拟化与云计算

  • 场景:VMware/Hyper-V 虚拟机的共享存储。
  • 优势:支持 VMware vSphere 的 VMFS 集群文件系统,实现虚拟机热迁移(vMotion)。

(3) 远程备份与灾备

  • 场景:异地数据中心的数据同步与备份。
  • 优势:通过广域网(WAN)传输,结合去重与压缩技术,降低带宽占用。

(4) 中小型企业存储

  • 场景:预算有限的中小企业,使用普通服务器搭建 iSCSI 存储。
  • 优势:无需专用硬件,利用现有以太网交换机即可部署。

(5) 开发与测试环境

  • 场景:快速部署测试用的存储资源。
  • 优势:通过软件定义存储(如 FreeNAS)灵活分配存储空间。

5. 典型架构示例

+---------------+
| 应用服务器     |
| (iSCSI Initiator)|---[以太网]---+
+---------------+                |
                                  |
+---------------+                |    +-------------------+
| 虚拟机集群     |                +----| iSCSI Target       |
| (VMware ESXi) |---------------------| (存储阵列/NAS)    |
+---------------+                |    +-------------------+
                                  |
+---------------+                |
| 数据库服务器   |                |
| (Oracle DB)   |----------------+
+---------------+

6. 优缺点对比

优点 缺点
低成本(基于以太网) 性能受网络延迟和带宽影响
部署简单,无需专用硬件 高负载时 CPU 占用较高(软件方案)
支持标准网络设备(交换机/路由器) 安全性需额外配置(如 IPsec)
跨平台兼容性强 巨型帧(Jumbo Frame)依赖网络支持

7. 配置示例(Linux 环境)

(1) 安装工具

# Ubuntu/Debian
sudo apt-get install open-iscsi targetcli

# CentOS/RHEL
sudo yum install iscsi-initiator-utils targetcli

(2) 配置 Target 端

sudo targetcli
# 创建存储后端
/backstores/block create name=disk1 dev=/dev/sdb

# 创建 iSCSI Target
/iscsi create iqn.2023-10.com.example:storage.disk1

# 绑定存储
/iscsi/iqn.2023-10.com.example:storage.disk1/tpg1/luns create /backstores/block/disk1

# 设置访问控制
/iscsi/iqn.2023-10.com.example:storage.disk1/tpg1/acls create iqn.2023-10.com.example:server.initiator1

# 保存配置
saveconfig
exit

(3) 配置 Initiator 端

# 发现 Target
sudo iscsiadm -m discovery -t st -p 192.168.1.100

# 登录 Target
sudo iscsiadm -m node -T iqn.2023-10.com.example:storage.disk1 -p 192.168.1.100 --login

# 查看挂载的磁盘
lsblk

8. 性能优化

  • 网络优化:使用 10Gb/25Gb 以太网、专用 VLAN、启用巨型帧(MTU=9000)。
  • 硬件加速:使用支持 TCP Offload Engine(TOE)的网卡。
  • 多路径 I/O:配置多路径(MPIO)提高冗余和带宽。

9. 总结

iSCSI 是 IP 时代存储网络的核心技术之一,尤其适合以下场景:

  • 需要低成本 SAN 的企业。
  • 虚拟化环境中的共享存储。
  • 跨地域数据同步与灾备。
    通过合理配置和优化,iSCSI 可提供接近光纤通道的性能,同时大幅降低 TCO(总拥有成本)。
posted on 2025-05-21 17:40  LeeHang  阅读(1172)  评论(0)    收藏  举报