基于磁盘进行I/O请求缓存的方法和装置以及SAN存储设备制造方法及图纸

技术编号:2823201 阅读:249 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于磁盘进行I/O请求缓存的方法和装置,适用于包括多个磁盘的SAN存储设备。该方法包括:为存储设备的每一个磁盘建立一个I/O请求缓存队列,并记录各磁盘与逻辑卷之间的地址映射关系;当接收到客户端I/O请求时,执行以下步骤:提取该I/O请求所携带的逻辑卷标识和逻辑卷地址;根据所记录的地址映射关系,查找获得对应的磁盘和磁盘地址;按照预设的磁盘地址排序方式,将该I/O请求插入到该磁盘的I/O请求缓存队列中。本发明专利技术还公开了一种SAN存储设备。通过本发明专利技术,在一定程度上保证了I/O请求磁盘处理的顺序性;提高了磁盘接口的I/O处理能力;提高了存储设备的性能。

【技术实现步骤摘要】

本专利技术涉及存储区域网络
,尤其涉及一种基于磁盘进行I/O请 求缓存的方法和装置,还涉及一种SAN存储设备。尿忮不SAN (Storage Area Network,存储区域网络)是一种通过专用光纤通道 网络或者IP网络将一个或多个网络存储设备与客户端连接起来的专用存储 系统,用于提供客户端与存储系统之间的数据传输。SAN的工作原理为存 储设备为客户端分配块存储资源,客户端和存储设备基于存储协议,如FC (Fibre Channel,光纤通道)、iSCSI(internet Small Computer System Interface, Internet小型计算机系统接口)进行通信,实现存储资源的数据读写操作。其中,存储设备的基础存储单元是磁盘,而且出于可靠性、大容量等方 面的考虑,存储设备往往会使用多块磁盘进行数据存储。如图1所示,显示 了存储设备上的一种资源管理模型存储设备使用RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)策略,如RAIDO、 RAIDl、 RAID5 等,将多块磁盘构成一个阵列;在阵列上创建LV (Logical Volume,逻辑巻); 之后基于存储协议把LV共享给客户端,图中以iSCSI协议为例。客户端通过在分配给它的LV上进行数据读写操作实现在存储设备 上的数据存储。但限于存储设备自身的处理能力,或者磁盘接口的处理 能力,对于客户端的I/0 (Input & Output,读/写操作)请求往往无法做 到100%的及时响应和处理,因此必须先对客户瑞的I/0请求进行队列缓 存,之后加以调度处理。现有技术中,1/0请求缓存技术是基于客户端或者说LV进行的存 储设备基于LV为I/O请求建立缓存队列;在接收到客户端的I/O请求时, 把不同LV的1/0请求分别放入不同的缓存队列中;再由CPU轮询不同 缓存队列,按先进先出的原则调度处理。这种基于LV进行I/0请求缓存的缺陷在于导致了磁盘I/O操作的随机性。为了便于描述,在此基于图1所示的资源管理模型提供一个资源管理示例以4块磁盘(标记为Disk 0/Disk 1/Disk 2/Disk 3)创建一个RAID0 阵列(标记为Array 0),之后在Array 0上创建3个逻辑巻(标记为LV 0, LV 1和LV2)。由于磁盘和LV的基本存储单位是扇区(每扇区固 定512Byte),如果按照通常的以多个(2的整数次方,如4K个)扇区 为单位进行空间管理,那么在每块磁盘的地址空间为0 16384的情况下, 阵列Army 0的地址空间就是0 65535;则可以分配LV 0的地址空间为 0 32767, LV 1禾Q LV 2的地址空间均为0~16383。本示例中LV、阵列和 磁盘之间的映射关系如表1所示<table>table see original document page 6</column></row><table>表1在表1示例的基础上,假定存储设备把LV 0, LV 1禾B LV 2分别分 配给三个客户端,则这三个客户端挂载磁盘后开始进行数据的读写操作。 其中,以Write (LVID, Address, Data, Length)来描述一个写请求,以Read (LVID, Address, Length)来描述一个读请求,LV ID标识一个逻辑巻,Address标识开始写入数据的起始地址空间,Data标识要写入的数据内容,Length标识要写入的数据长度。如果存储设备以时间顺序收到以下I/O请求Write(LV 0, 0, data, 4096); Write(LV2, 0, data, 4096); Write(LV 0, 16384, data, 4096); Write(LV 1, 0, data, 4096); Read(LV 2, 0, 4096); Read(LV 0, 0, 4096); Read(LV 1, 0, 4096); Write(LV 0, 16384, data, 4096);......则根据表1的映射关系可以看出,这些I/O请求实际都是在DiskO 上进行数据读写。但如果按照现有技术进行I/O请求缓存并按照先进先 出的原则进行顺序处理的话,上述I/O请求将被分配进入不同的I/O缓存 队列,并在磁盘DiskO上按照以下起始地址进行I/O操作0 — >12288 — >4096 — >8192 — >12288 — 〉0 — >8192 — 〉4096,具有相当大的随机性。对于磁盘接口而言,1/0请求的地址越有顺序,磁盘接口的性能就越 高;反之,1/0请求的地址越随机无序,磁盘接口的性能就越低。显然, 现有技术中并未将磁盘、RAID阵列和LV关联起来,在缓存和调度I/0 请求时没有考虑到磁盘因素,因此导致磁盘上的I/O操作随机性很高, 磁盘磁头需要频繁跳转,并由此导致磁盘接口的性能严重下降。由于磁 盘接口性能,或者说磁盘接口的I/O处理能力,是影响存储设备读写性 能的一个重要因素,因此现有的进行I/O请求缓存的方案无疑导致了存 储设备性能的下降。特别是随着存储技术的发展,SAN的应用领域日益广泛,比如在监 控应用中,编码设备不断采集图像生成媒体数据,而且这些媒体数据需 要长时间持续不断地写入到存储设备中保存起来,以支持后续的点播回 放。这类应用表现出的特点是(1)每路图像数据读写所占用的带宽小, 但平稳、持续时间长;(2)每路图像数据需要的存储空间一般较小,一 块磁盘的空间可能存储几十路媒体流录像;(3)每次读写的数据量都比较大。在上述应用场合下,1/0请求的随机性表现的更为明显,磁盘接口的 I/O处理能力将严重下降,成为存储设备的性能瓶颈。
技术实现思路
本专利技术的实施例旨在提供能够基于磁盘进行I/O请求缓存的技术方案, 以提高对同一块磁盘的I/O请求的执行顺序性,从而提高磁盘接口的I/O处理能力,进而提高存储设备的性能。为实现上述目的,本专利技术的实施例提供了一种基于磁盘进行I/O请求缓 存的方法,适用于包括多个磁盘的SAN存储设备,包括为存储设备的每一 个磁盘建立一个I/O请求缓存队列,并记录各磁盘与逻辑巻之间的地址映射 关系;当接收到客户端I/0请求时,执行以下步骤51、 提取该I/0请求所携带的逻辑巻标识和逻辑巻地址;52、 根据所记录的地址映射关系,查找获得对应的磁盘和磁盘地址;53、 按照预设的磁盘地址排序方式,将该I/O请求插入到该磁盘的 1/0请求缓存队列中。本专利技术的实施例还提供r -种基于磁盘进行I/O请求缓存的装置,应用 于包括多个磁盘的SAN存储设备,包括缓存队列建立单元,用于为存储设备的每一个磁盘建立一个I/0请求缓存队列;1/0请求缓存队列,由该缓存 队列建立单元所建立,分别与SAN存储设备每一个磁盘对应;映射关系记 录单元,用于记录磁盘与逻辑巻之间的地址映射关系;逻辑巻信息提取单元, 用于提取客户端I/O请求所携带的逻辑巻标识和逻辑巻地址;磁盘及地址获取单元,与该逻辑巻信息提取单元和映射关系记录单元连接,用于根据所记本文档来自技高网
...

【技术保护点】
一种基于磁盘进行I/O请求缓存的方法,适用于包括多个磁盘的SAN存储设备,其特征在于,包括为存储设备的每一个磁盘建立一个I/O请求缓存队列,并记录各磁盘与逻辑卷之间的地址映射关系;当接收到客户端I/O请求时,执行以下步骤:    S1、提取所述I/O请求所携带的逻辑卷标识和逻辑卷地址;    S2、根据所记录的地址映射关系,查找获得对应的磁盘和磁盘地址;    S3、按照预设的磁盘地址排序方式,将所述I/O请求插入到所述磁盘的I/O请求缓存队列中。

【技术特征摘要】

【专利技术属性】
技术研发人员:张晓琳
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1