2023年11月29日发(作者:)

维普资讯

科技论文

基于Windows内核模式的

SCSI启动器设计与研究

陈大恒黄世泽徐贵勇

摘要:本文介绍了一种基于Windows 2000内核模式的iSCSI启动器设计,通过SCSI

小端口驱动实现虚拟磁盘,从文件系统截取O请求,然后在操作系统内核根据

SCSI协议处理,并且利用TDI技术将封装好的iSCSI PDU通过TCP网络发送给目

标器,从而实现iSCSI启动器在Windows操作系统中的无缝集成。

关键词:iSCSI启动器虚拟磁盘小端口驱动程序TDI

1引言

SCSI即Internet SCSI,也称SCSI over TCP/IP,是建立在TCP/P协议上的网络存储

协议。iSCSI协议基于成熟的TCP/IP协议和广泛普及的以太网络,将SCSI协议映射到

TCP/P协议上,使得SCSI的命令、数据和状态可以在传统的IP网络上传输,充分利用

现有技术和设施,所以非常适合用来构建低成本的IP SAN系统,为中小企业提供了低

投入、高性能的网络存储解决方案。iSCSI启动器的实现方式主要有纯软件方式、智能

SCSI网卡和iSCSI HBA卡三种方式。其中纯软件方式虽然使主机CPU开销增大,但是

其硬件成本最低、便于推广,同时也是其他实现方式的技术基础。目前LAN中客户端

大多安装Windows操作系统,如何实现基于Windows平台的iSCSI启动器,成为架构小

型iSCSI SAN要解决的首要技术问题。

本文在分析和研究iSCSI协议与Windows内核驱动程序的基础上,设计并部分实现

了基于Windows 2000虚拟磁盘驱动程序的iSCSI启动器。该启动器基于Windows小端

口驱动程序(Miniport Driver),通过虚拟磁盘从文件系统截取SCSI数据包,采用传输

驱动接口TDI(Transport Drver nterface)技术实现网络连接,将SCSI数据和命令封装

为iSCSI协议数据单元(PDU)发送给目标器。驱动程序加载后,虚拟磁盘对用户显示

为一个本地磁盘分区,直接访问该磁盘分区即可与目标器交换数据,从而实现了对用户

透明的iSCSI启动器。

根据功能划分,iSCSI启动器可分为三个模块:虚拟磁盘模块、TDI网络传输模块

和iSCSI协议模块,本文依次介绍这三个模块的设计原理。

2虚拟磁盘的设计与实现

2.1 WDM磁盘驱动结构

虚拟磁盘就是在操作系统的设备树中添加一个虚拟的磁盘或者磁盘分区,用户或者

27