一种RAID系统的制作方法

文档序号:11917377阅读:246来源:国知局

本发明涉及服务器技术领域,特别是涉及一种RAID系统。



背景技术:

随着网络的不断发展,电子设备之间的数据传输也随之越来越复杂和繁重。

涉及到数据拷贝的操作每个字节都需要CPU的参与,这使得CPU开销非常大,对系统性能的影响非常大。随着网络带宽的不断提升,这种内存数据之间的拷贝操作也就越来越成为系统性能的瓶颈所在。RAID(独立冗余磁盘阵列)是一个复杂的系统,在Linux平台中,软RAID以块设备(/dev/md*)的形式提供用户读写和管理接口,在对RAID进行读操作时,需要从块设备缓冲区中将要读取的数据拷贝到相应的用户缓冲区,在进行RAID写操作时需要通过拷贝操作更新块设备缓冲区的内容,传统的RAID操作是利用数据内存的拷贝实现数据的传输的。这使得数据传输的效率较低,占用了大量的内存空间。

因此,如何提高数据传输的效率,节省内存空间,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种RAID系统,可以提高数据传输的效率,节省内存空间。

为解决上述技术问题,本发明提供了如下技术方案:

一种RAID系统,包括:交互模块、缓存模块、映射管理模块和磁盘模块;

其中,所述交互模块用于与外界服务器进行数据交互;

缓存模块,与所述交互模块连接,用于存储相应的交互数据;

映射管理模块,用于对所述缓存模块中的交互数据进行映射传输管理;

磁盘模块,用于与所述缓存模块进行数据映射传输。

优选地,所述缓存模块包括:

缓存单元,用于存储所述交互数据;

聚散列表单元,用于存放各所述交互数据对应的映射聚散列表。

优选地,所述交互模块为SCSI接口模块,用于通过DMA将外界服务器发出的交互数据存放至所述缓存模块。

优选地,还包括:IO调度模块,所述IO调度模块设置在所述映射管理模块和所述磁盘模块之间,用于对所述磁盘模块进行IO调度。

优选地,还包括:启动器,用于响应用户操作,启动所述RAID系统的运行。

与现有技术相比,上述技术方案具有以下优点:

本发明所提供的一种RAID系统,包括:交互模块、缓存模块、映射管理模块和磁盘模块;其中,交互模块用于与外界服务器进行数据交互;缓存模块,与交互模块连接,用于存储相应的交互数据;映射管理模块,用于对缓存模块中的交互数据进行映射传输管理;磁盘模块,用于与缓存模块进行数据映射传输。在本技术方案中,当外界的服务器和该RAID系统中的磁盘模块进行数据交互时,当服务器写入数据时,缓存模块对该写入数据进行缓存,此时并不直接将缓存的写入数据复制至磁盘模块,而是由映射管理模块控制缓存模块将写入数据以映射的方式将写入数据的信息传输至磁盘模块,从而实现数据在RAID内的零拷贝,从而提高数据传输的效率,节省内存空间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种具体实施方式所提供的RAID系统结构示意图。

具体实施方式

本发明的核心是提供一种RAID系统,可以提高数据传输的效率,节省内存空间。

为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施的限制。

请参考图1,图1为本发明一种具体实施方式所提供的RAID系统结构示意图。

本发明的一种具体实施方式提供了一种RAID系统,包括:交互模块1、缓存模块2、映射管理模块3、磁盘模块4;其中,交互模块1用于与外界服务器进行数据交互;缓存模块2,与交互模块1连接,用于存储相应的交互数据;映射管理模块3,用于对缓存模块2中的交互数据进行映射传输管理;磁盘模块4,用于与缓存模块2进行数据映射传输。

在本实施方式中,当外界的服务器和该RAID系统中的磁盘模块进行数据交互时,当服务器写入数据时,缓存模块对该写入数据进行缓存,此时并不直接将缓存的写入数据复制至磁盘模块,而是由映射管理模块控制缓存模块将写入数据以映射的方式将写入数据的信息传输至磁盘模块,从而实现数据在RAID内的零拷贝,从而提高数据传输的效率,节省内存空间。

在本发明的一种实施方式中,优选缓存模块包括:缓存单元,用于存储交互数据;聚散列表单元,用于存放各交互数据对应的映射聚散列表。交互模块为SCSI接口模块,用于通过DMA将外界服务器发出的交互数据存放至缓存模块。该系统还包括:IO调度模块,IO调度模块设置在映射管理模块和磁盘模块之间,用于对磁盘模块进行IO调度。启动器,用于响应用户操作,启动RAID系统的运行。

在本实施方式中,利用了PCI设备的DMA的聚散缓冲区来实现数据在RAID内的零拷贝。通过创建一个全局的缓冲区即本实施方式中的缓存单元,并利用聚散列表来描述缓冲区内,SCSI接口模块通过DMA(直接内存存取)将数据放到缓冲区,聚散列表存放的是缓冲区中数据的对应关系,聚散列表可以看做是缓冲区中数据的指针。在RAID内的各模块之间进行传递的是描述缓冲区数据的聚散列表,而不是实际的数据,不涉及内存拷贝操作,读写操作所请求的数据最后可以通过mmap传递到用户空间,中间不涉及数据拷贝操作,即实现了零拷贝。在很大程度上提高了数据的传输效率,而且零拷贝方式还减少了数据在不同缓冲区中的副本数量,节省了内存空间。IO调取模块的设置,使得RAID直接进行IO调度。

综上所述,本发明所提供的RAID系统,通过零拷贝的方式实现RAID核心模块之间数据的传输,提高了数据传输的效率,节省内存空间。

以上对本发明所提供的一种RAID系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1