基于IBA的SRP Target的研究与实现
扫描二维码
随时随地手机看文章
引言
InfiniBand是一种新的互连技术,它将I/O系统与CPU/Mem分开。克服了当前I/O结构的种种弊端,提供了高带宽、低延迟、可扩展的I/0互连。SRP协议是Infini-Band中的一种通信协议,在InfiniBand中将SCSI命令进行打包,允许SCSI命令通过RDMA(远程直接内存访问)在不同的系统之间进行通信.实现存储设备共享和RDMA通信服务。
1 SRP Target简介
SRP Target将系统中的存储设备信息映射到IB网络上.让SRP Initiator端的服务器能够在IB网络上获取到这些SCSI存储设备的信息,并可通过与SRP Target对存储设备的进行访问。
图1为SRP Target的协议栈结构,如图所示,与IB链路直接连接的是InfiniBand HCA,它与SRP Initiator端的HCA建立了RDMA通道,负责提供RDMA通信服务。SRP Target区域包括了SCSI Target、SRP Target Drive和InfiniBand Driver三个部分。
2 SRP Target的实现
2.1 初始化SRP Target模块
SCSI Target的初始化是指获取系统中的SCSI存储设备信息并注册,以使模块具有处理SCSI命令的功能。SRPTarget的初始化关键是使SRP Target与SCSI Target建立联系,使其具有处理SRP信息、进行SCSI命令的转换、进行m管理以及提供RDMA通道服务等功能。初始化完成之后,SRP Initiator便可以获取IB网络上的SCSI存储设备信息。
2.2 读操作的实现
读操作是指SRP Initiator服务器从SRP Target服务器读取信息的过程。读操作包括了SRP Initiator从SRP Target服务器获取SCSI存储设备信息、查看存储设备容量大小,读取存储设备文件信息等操作。实现具体过程如图2所示。
当完成数据传输以后。SRP Target就要对执行过程中所占有的资源进行释放,为下一个任务腾出资源,SRP Tar一get就处于等待接收下一个任务的状态中。
2.3 写操作实现过程
写操作是指SRP Initiator服务器从SRP Target服务器写信息的过程。写操作包括了SRP Initiator服务器向SRPTarget服务器上的存储设备写入数据,对存储设备进行格式化等操作。
释放SCSI命令占有资源的操作过程与前述处理读命令的过程是一致的。
2.4 处理异常中断
当SRP Initiator通过RDMA通道向SRP Target发送SRP请求信息.要求RDMA通道对应的SRP Target端口接收SRP请求信息。端口执行接收操作,但是出现异常中断,接收SRP请求信息失败,就要进行相应的处理措施.具体步骤如下:[!--empirenews.page--]
(1)SRP Target的端口检测RDMA通道中有SRP请求信息,确认为接收完成操作失败,未接收到SRP请求信息,立即进行操作失败下的处理方式。
(2)释放RDMA缓冲区相关资源,重新初始化相关属性信息。
2.5 卸载SRPTarget
当进行卸载SRP Target时,主要进行释放SRP Target模块和SCSI模块所占有资源。具体的步骤如下:
(1)注销SCSI Target模块中的I/O控制器,清除该控制器的设备ID号,将该控制器从全局上下文中移除。
(2)清I/O控制器所控制的SCSI命令,释放SCSI命令所占有的内存缓冲区等资源。释放所占有的内存缓冲区。
(3)释放SRP Target模块中I/O控制器所占有的资源,停止对IB端口服务人口的监听操作,释放服务入口所占有的内存空间资源,并对IB端口进行更新操作,恢复端口的初始设置。
(4)对所有RDMA通道进行断开操作.释放RDMA通道所占有的资源。
(5)释放IB I/O控制器所占有的空间。
3 实验结果与分析
3.1 实验环境
(1)硬件配置:
神威SWIBS24型IBA交换机。
IBM System x3650服务器3台(Initiator01,Initiator02,Initiator03)各配有一块HCA卡,作为SRP Initiator。存储服务器一台配置一块HCA卡。作为SRP Target。
(2)软件配置:
四台linux AS4 Updata4服务器.内核版本为2.6.9-42。Initiator01、Initiator02、Initiator03安装IBA驱动程序IBGD(InfiniBand Gold Distribution)的sRP Initiator,作为Initiator服务器;Target安装IBA驱动程序OFED(OpenFabrics En-terprise Distribution)的SRP Target,作为Target服务器。本课题依据GPFS支持的直接连接、网络连接两个模式,分别对读写性能进行比较。
直接连接:使用SRP协议.只要求在Initiator01、02、03服务器上安装GPFS,Target上不安装GPFS,Initiator服务器由1B网络通过SRP Target获得RAID存储设备信息,即可对其进行直接挂载、读写操作。
网络连接:不使用SRP协议.使用IPoIB协议。要求在每个服务器上都安装GPFS,Initiator服务器不能通过SRP协议获取Target服务器上RAID存储设备的信,g。Initiator只能通过IPoIB与Target联系,通过Target服务器上的GPFS文件系统对存储设备进行共享访问。
3.2 实验结果
下表为实验结果,IPoIB为GPFS的网络连接模式,IB-SRP为GPFS的直接连接模式:
(1)Initiator01、02、03同时对Target的RAID设备进行读写操作(如表1)。设置测试的空间大小为10 G,一次读写操作的块大小分别为64 k,128 k,256 k,速度以K/s为单位。
(2)Initiator01对Target的RAID设备单独进行读写测试(如表2)。
3.3 结果分析
实验结果表明,在IBA网络中使用SRP协议的Initiator和Target模块进行数据传输的速度比单纯使用IBA网络进行数据传输的速度高出很多。
使用SRP协议进行数据传输时,Initiator服务器向Tar—get服务器的RAID设备传输数据,是直接与Target内存进行数据传输,然后由Target的内存将数据传递给RAID设备。在此时,Target系统并不执行数据的拷贝动作,不经过内核的调用,减少了处理网络通信时在内核空间和用户空间上下文切换的次数,消除了在应用内存与内核内存之间复制数据的需要,减少了CPU的负载。绕过内核可使应用程序不必执行内核调用就可以直接发出命令。减少了延迟时间,能腾出总线空间和CPU周期用于改进应用系统性能。然而只利用IBA网络进行数据传输时。Target系统要进行数据的拷贝.内核的调用,增大了CPU的负载.性能相对下降。所以基于SRP的读写速度性能会更高。
4 结束语
本文介绍了实现SRP Target的过程.对各个独立功能部分的工作原理、工作机制以及工作流程进行了分析。并给出了IBA存储网络分别使用IPOIB协议和SRP协议读写性能的测试结果,对于设计实现基于IBA的存储网络有着重要的参考价值。