● 摘要
使用SCSI磁盘建立RAID磁盘阵列,因其高速,稳定,安全性方面的优势是服务器系统中常见的存储解决方案。MegaRAID PCI SCSI 磁盘阵列控制器(简称MegaRAID控制器)是用以对SCSI磁盘建立RAID磁盘阵列的控制器。设备在系统中的使用离不开驱动程序的支持,本课题将论述适用于Solaris操作系统的MegaRAID的驱动程序的设计与实现。本驱动程序使得MegaRAID控制器能够为Solaris系统的上层模块提供存储控制服务,从而实现SCSI RAID磁盘阵列的存储功能。MegaRAID驱动程序的开发需要兼顾Solaris内核和硬件控制器的两方面的需求和特点。本课题首先通过分析Solaris内核中与驱动程序相关的模块和接口,标识出来至内核上层模块对驱动程序的需求;同时,本课题分析控制器的硬件特点及其规格说明书,标识出来至控制器硬件端的需求,从而设计和实现能够连接Solaris内核上层模块和控制器硬件的驱动程序。另外,本课题还综合考虑Solaris内核环境的特点,在驱动程序实现中提供对并发,地址空间,缓存同步等问题的处理,使得驱动程序能够在Solaris内核环境下可靠的工作。最后,一款好的驱动程序不仅仅能够提供硬件接入服务,稳定的发挥硬件功能,还需要最大程度的发挥硬件的特点,避免因为软件层次上驱动程序的原因造成性能低下。因此,本课题在开发MegaRAID驱动程序过程中,通过分析磁盘读写I/O流程来寻找可能提高驱动程序处理速度的方向,提出了多样性小粒度互斥锁,资源预构造和中断两部分处理等性能优化策略,尽可能提高驱动程序的响应和处理速度。本课题实现了Solaris操作系统上的MegaRAID控制器的驱动程序,并对驱动程序进行多种形式的测试。结果显示,本驱动程序能够正确,可靠,较高性能的在Solaris操作系统中工作,从而驱动MegaRAID控制器,使得控制器能够控制其下的SCSI磁盘阵列发挥作为服务器高效存储设备的功能。关键字: Solaris,驱动程序,SCSI控制器