iSCSI(Internet Small Computer System Interface)是一种基于 TCP/IP 网络传输的存储协议,全称是 Internet SCSI。
简单说,它是让网络看起来像一根“远程硬盘线”的技术。
一、先理解 SCSI 是什么
SCSI(Small Computer System Interface)原本是一种本地存储接口标准,用在服务器或工作站上,把硬盘、磁带机等设备直接接到主机上。
比如:
- SATA 是家用硬盘接口;
- SCSI 是服务器常用的高性能接口。
它的特点是:
- 高速;
- 支持多设备;
- 支持命令级别的数据传输。
二、iSCSI 做了什么事
后来大家希望:
“我能不能不插线,而是通过网络访问远程存储,就像插在自己机器上一样?”
于是 iSCSI 出现了。
它把原本 SCSI 的指令封装进 IP 网络包(TCP 协议) 里发送,让服务器通过普通以太网访问远程磁盘。
换句话说:
- 原来的 SCSI 是本地总线通信;
- iSCSI 是通过网络实现的远程 SCSI 通信。
三、iSCSI 的基本架构
iSCSI 系统有两个角色:
角色 | 说明 | 类比 |
---|---|---|
Initiator(发起端) | 就是客户端,一般是服务器主机(比如 Linux、Windows Server) | 想要使用硬盘的电脑 |
Target(目标端) | 存储服务器,提供 iSCSI 磁盘服务 | 存储阵列或共享硬盘设备 |
当主机连接上 iSCSI Target 后,在操作系统里会看到一个 新硬盘(/dev/sdX),就像本地磁盘一样。
四、数据传输过程举例
假设有两台设备:
- 服务器A(Initiator)
- 存储B(Target)
流程如下:
- A 通过 TCP/IP 连接 B 的 3260 端口(iSCSI 默认端口)。
- A 登录(可带用户名、密码、CHAP 验证等)。
- 登录成功后,B 把“虚拟磁盘”映射给 A。
- A 在系统中看到
/dev/sdb
,可以像本地盘一样格式化、挂载、写文件。
底层其实是:A 发出的“写入块数据”的 SCSI 命令 → 被 iSCSI 封装 → 通过网络发给 B → B 执行并返回结果。
五、iSCSI 的优点
- 使用普通以太网,不需要昂贵的光纤通道(Fibre Channel);
- 扩展性强,可以跨机房部署;
- 与现有 IP 网络兼容;
- 对上层操作系统透明(像本地磁盘一样使用)。
六、常见使用场景
- 数据中心服务器连接集中式存储(NAS、SAN);
- 虚拟化平台(如 VMware、KVM)挂载远程存储;
- 备份、快照、灾备系统;
- Ceph、OpenStack、TrueNAS 等都支持 iSCSI 导出。
七、和 NFS 的区别
对比项 | iSCSI | NFS |
---|---|---|
类型 | 块存储 | 文件存储 |
挂载后看到 | 硬盘(/dev/sdX) | 文件系统目录 |
访问控制 | 操作系统控制 | NFS 服务端控制 |
使用场景 | 数据库、虚拟机磁盘 | 文件共享、备份 |