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 负载)。
- 软件 Initiator:如 Linux 的
- 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(总拥有成本)。
浙公网安备 33010602011771号