抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

iSCSI 是一种由 IBM 公司研究开发的 IP SAN 技术,该技术是将现有 SCSI 接口与以太网络技术相结合,基于 TCP/IP 的协议连接 iSCSI 服务端和客户端,使得封装后的 SCSI 数据包可以在通用互联网传输,最终实现 iSCSI 服务端映射为一个存储空间提供给已连接认证后的客户端。

什么是 SCSI

SCSI 是种 I/O 技术,规范一种并行的 I/O 总线和相关的协议,SCSI 数据传输是以块的方式进行的。

SCSI 总线通过 SCSI 控制器来和硬盘之类的设备进行通信, SCSI 的控制器称为 Target,访问客户端应用称为 Initiator。

窄 SCSI 总线最多允许 8 个、宽 SCSI 总线最多允许 16 个不同的 SCSI 设备和它进行连接,每个 SCSI 设备都必须有自己唯一的 SCSI ID 设备的地址。

LUN 逻辑单元号,是为使用和描述更多设备及对象而引进的一个方法,每个 SCSI ID 上最多有 32 个 LUN,一个 LUN 对应了一个逻辑设备。

iSCSI 的实现

  1. iSCSI Initiator 客户端。iSCSI 启动器,本质上说,iSCSI 启动器是一个客户端设备,用于将请求连接并启动到服务器。iSCSI 的启动器有三种实现方式,可以完全基于硬件实现,比如 iSCSI HBA 卡,硬件 TOE 卡与软件结合的方式,完全基于软件实现,而且软件 iSCSI 启动器适用于大部分主流操作系统平台;

  2. iSCSI Target 服务端。即 iSCSI 目标,它是 iSCSI 网络服务器组件,用于包含所需要的数据并回应来自 iSCSI 启动器的请求。

工作过程

Initiator 发出请求后,会在本地的操作系统会生成了相应的 SCSI 命令和数据 I/O 的请求,然后这些命令和请求被封装加密成为 IP 信息包,通过以太网 TCP/IP 传输到 Targer。

当 Targer 接收到信息包,将进行解密和解析,将 SCSI 命令和 I/O 请求分开。SCSI 命令被发送到 SCSI 的控制器,再传送到 SCSI 的存储设备。

设备执行 SCSI 命令的响应,经过 Target 封装成 iSCSI 响应 PDU,再通过已连接的 TCP/IP 网络传送给 Initiator。

Initiator 会从 iSCSI 响应 PDU 里解析出 SCSI 响应并传送给操作系统,操作系统再响应给应用程序。

与 NFS 比较

SAN 与 NAS 是完全不相同架构的存储方案,SAN 支持 Block 协议,后者则支持 File 协议;SAN 结构中,文件管理系统还是分别在每一个应用服务器上,会产生 I/O 操作,而 NAS 则是每个应用服务器通过网络共享协议使用同一个文件管理系统,所以 CPU 密集型的应用可以选用 NAS。SAN 是将目光集中在磁盘、磁带以及联接它们的可靠的基础结构,NAS 是将目光集中在应用、用户和文件及它们共享的数据上。

以上区别具体到 iSCSI 和 NFS。iSCSI 可优化空间更大,性能稍好,但是技术难度更高;而 NFS 在系统层面的支持更多,例如一些备份、恢复等操作较简单。

评论