首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

SAN储存网络管理系统中HBA应用层API的实现

2012-10-28 
SAN存储网络管理系统中HBA应用层API的实现随着信息数据量的急速膨胀,存储越来越追求效率和无限可扩展性,而

SAN存储网络管理系统中HBA应用层API的实现
随着信息数据量的急速膨胀,存储越来越追求效率和无限可扩展性,而SAN光纤存储网络是现在非常流行的一种解决方案。光纤通信具有无可比拟的高速数据量传输,加上网络化的存储管理,及无限无痛的可扩容性,这一行业的市场前景非常乐观。

一个简单的光纤存储网络主要有以下几大组成部分:
1) 存储设备,一般是磁盘阵列柜
2) 光纤通道卡,也就是FC HBA,类似于网卡
3) 光纤通道交换机,可以实现数据路由及硬分区管理等
4) 应用主机服务器,安装光纤通道卡

相应的,也需要有相关的管理系统对整个存储网络进行管理配置。一般来说,管理系统主要分两大部分,一部分是光纤通道卡的管理,另一部分则是对存储的管理。

对光纤通道卡的管理牵涉到很多功能,如参数的配置,拓扑管理,卡与存储逻辑盘的绑定(包括LUN mapping, LUN masking,分区zoning,持久性绑定persistent binding等等),还需要提供对流量的控制及冗余多链路处理等等。

一个大型的SAN存储网络中,可能有很多不同厂家,不同型号的光纤通道卡,这就对卡的管理提了一个很大的难题。而且暂时也没有一个统一的规范和工业标准支持。T11组织就提出了Common HBA API的概念,提供对上层应用的统一的API标准接口调用。相关的规范可以参看T11的主页: http://www.t11.org/index.html

这样对上层管理系统来说,它就不再需要关心底层硬件的细节,只是通过标准接口的调用对卡进行管理和配置。我们只需要实现特定HBA的应用层API即可,通过注册表(windows平台)或配置文件,Common HBA API可以装载这些应用层API。

HBA应用层API一般需要和特定光纤通道卡驱动进行交互,在windows操作系统下,可以采用DeviceIoControl API,如下面的示例代码:

    SRB_BUFFER  smpi;    IOCTLPayload_t *py = NULL;    DWORD cbData;    BOOL ret;    smpi.sic.HeaderLength = sizeof(SRB_IO_CONTROL);    smpi.sic.Timeout = 1000;    smpi.sic.Length = 4000-sizeof(SRB_IO_CONTROL);    smpi.sic.ControlCode = VENDOR_IOCTL_FC;    strncpy ((char *) smpi.sic.Signature, VENDOR_IOCTL_SIGNATURE, 8);    py = (IOCTLPayload_t *)smpi.ucDataBuffer;    py->Signature = VENDOR_SIGNATURE;    py->MajorFunction = majorFunc;    py->MinorFunction = minorFunc;    py->Length =  sizeof(IOCTLPayload_t);    py->Status = -1;    ret = DeviceIoControl(handle,    // device handle            IOCTL_SCSI_MINIPORT,     // io control code            &smpi,                   // input buffer            4000,            &smpi,                   // output buffer            4000,                &cbData,                 // # bytes returned            NULL);                   // synchronous call


当然如果是Linux操作系统,也有相关的ioctl API进行交互。具体的代码实现就不多说了。

这里有一个很好的HBA应用层API实现的代码框架(插图中sun_fc子项目),大家可以参考。
http://www.koders.com/info.aspx?c=ProjectInfo&pid=XF2UHNMR54MHCW89X5EBNVH2PE

热点排行