CN101241420A - 用于提高写地址非连续的数据存储效率的方法和存储设备 - Google Patents
用于提高写地址非连续的数据存储效率的方法和存储设备 Download PDFInfo
- Publication number
- CN101241420A CN101241420A CNA2008101023344A CN200810102334A CN101241420A CN 101241420 A CN101241420 A CN 101241420A CN A2008101023344 A CNA2008101023344 A CN A2008101023344A CN 200810102334 A CN200810102334 A CN 200810102334A CN 101241420 A CN101241420 A CN 101241420A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- storage
- write address
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种用于提高写地址非连续的数据存储效率的方法。在本发明中,RAID中的控制器和物理磁盘之间具有缓存,控制器先将写地址对应不同存储区域的待存储数据、即写地址非连续的数据写入至缓存,然后将缓存中写地址对应不同存储区域的待存储数据分次刷新至对应的存储区域,且每次仅刷新写地址对应相同存储区域的待存储数据、即写地址连续的数据,从而能够大大减少物理磁盘的寻道时间,以提高数据存储效率。本发明还公开了一种用于提高写地址非连续的数据存储效率的存储设备。
Description
技术领域
本发明涉及数据存储技术,特别涉及一种用于提高写地址非连续的数据存储效率的方法、以及一种用于提高写地址非连续的数据存储效率的存储设备。
背景技术
独立冗余磁盘阵列(RAID)中包括控制器和多个物理磁盘,该控制器将待存储数据按一定规则分段后,分别存储于RAID中的多个物理磁盘,以利用多个物理磁盘的并行存取、并行传输来匹配带宽来提高数据存储的效率。另外,RAID中的各物理磁盘还存储有用于数据恢复的冗余数据,例如镜像数据或冗余校验信息,从而提高数据存储的可靠性。
其中,RAID目前分为7个等级:第0等级RAID(RAID0)~第6等级RAID(RAID6)。图1为现有第5等级RAID(RAID5)中的数据分布示意图。如图1所示,以包括4个物理磁盘的第5等级RAID(RAID5)为例,该RAID整体上可看作一逻辑磁盘,逻辑磁盘中的数据被分为15个段并分别存储于4个物理磁盘,即图1中的物理磁盘0~物理磁盘3,每一段称为一个条块(Strip),即图1中的D0~D14;各物理磁盘中处于如图1所示的同一行的条块组合为条带(Stripe),即图1中的条带0~条带4,条带中的条块容量称之为条带深度;而且,每个条带中还包括冗余数据,即图1中的P0~P4。
虽然RAID可整体上看作一逻辑磁盘,但其最终的存储载体是各物理磁盘中的盘片。在将待存储数据存储至物理磁盘的盘片之前,控制器首先需要根据待存储数据的写地址确定盘片中对应的磁道,并向物理磁盘发出指令。物理磁盘根据控制器的指令控制磁头从当前所在磁道移动至控制器所确定的对应磁道,物理磁盘移动磁头的过程称为寻道。
对于写地址连续的待存储数据,磁头在存储过程中移动的距离较短,使得所耗费的寻道时间较短;而对于写地址非连续的待存储数据,磁头在存储过程中移动的距离则相对较长,使得耗费的寻道时间较长,从而降低存储效率。
以包括RAID的存储设备应用于视频监控为例,多个摄像头拍摄到的视频数据包作为待存储数据,同时连续不断地输入至同一台存储设备。对于存储设备来说,从每个摄像头连续接收到的视频数据包的写地址是连续的,即来自同一摄像头的视频数据包的写地址对应RAID中的同一存储区域、而来自不同摄像头的视频数据包的写地址分别对应RAID中的不同存储区域。
其中,本文所述的每个存储区域中的物理地址均是连续的,即连续的至少两个写地址对应同一存储区域。这里所述的连续可以是绝对的连续,也可以是相对的连续。例如,写地址1、2对应存储区域1,即绝对连续的写地址对应同一存储区域。再例如,写地址5、7对应存储区域2,写地址11、13对应存储区域3,即相比于存储区域3所对应的各写地址11和13,存储区域2中的写地址5和7为相对连续。
由于多个摄像头同时将拍摄到的视频数据包输入至存储设备,因而存储设备从多个摄像头连续接收到的视频数据包的写地址是非连续的。这样,RAID中的控制器,在将写地址对应不同存储区域的视频数据包写入至物理磁盘的过程中,不得不控制RAID中对应物理磁盘的反复寻道,从而耗费了较多的寻道时间。
可见,现有写地址非连续的数据存储效率较低。
发明内容
有鉴于此,本发明提供了一种用于提高写地址非连续的数据存储效率的方法、以及一种用于提高写地址非连续的数据存储效率的存储设备,能够提高对写地址非连续的数据的存储效率。
本发明提供的一种用于提高写地址非连续的数据存储效率的方法,该方法应用于独立磁盘冗余阵列RAID中,所述RAID包括控制器和物理磁盘,所述控制器和物理磁盘之间具有缓存、且所述物理磁盘包含至少两个存储区域,该方法包括:
控制器将接收到的待存储数据写入至所述缓存,并记录待存储数据的写地址所对应的存储区域;
控制器将缓存中写地址对应不同存储区域的待存储数据分次刷新至对应的存储区域,且每次仅刷新写地址对应相同存储区域的待存储数据。
所述缓存中包括多个缓存块,所述将接收到的待存储数据写入至所述缓存包括:将接收到的待存储数据直接写入至所述缓存中空闲的各缓存块;
所述记录待存储数据的写地址所对应的存储区域包括:记录待存储数据的写地址、待存储数据的写地址所对应的存储区域、以及该待存储数据所在缓存块之间的对应关系;
所述将缓存中写地址对应相同存储区域的待存储数据刷新至该存储区域包括:根据所述对应关系,将对应相同存储区域的所有非空闲缓存块中的待存储数据,按照对应的写地址刷新至该存储区域。
所述缓存块的大小为:所述待存储数据大小与所述RAID中条块大小的最大公约数。
每一存储区域分别对应一预设的编号;
所述将缓存中写地址对应不同存储区域的待存储数据分别刷新至对应的存储区域包括:按照各存储区域对应的编号排列顺序,循环地将缓存中写地址对应不同存储区域的待存储数据分别刷新至对应的存储区域。
所述接收到的待存储数据包括:来自不同摄像头的视频数据包,其中,来自同一摄像头的视频数据包的写地址,对应该摄像头的编号所对应的存储区域。
本发明提供的一种用于提高写地址非连续的数据存储效率的存储设备,该存储设备中具有独立磁盘冗余阵列RAID,所述RAID包括:控制器、以及包含多个存储区域的物理磁盘,
所述RAID在所述控制器和所述物理磁盘之间还包括缓存;
所述控制器将接收到的待存储数据写入至所述缓存,并记录待存储数据的写地址所对应的存储区域;将缓存中写地址对应不同存储区域的待存储数据分次刷新至对应的存储区域,且每次仅刷新写地址对应相同存储区域的待存储数据。
所述缓存中包括多个缓存块;
所述控制器将接收到的待存储数据直接写入至所述缓存中空闲的各缓存块,并记录待存储数据的写地址、待存储数据的写地址所对应的存储区域、以及该待存储数据所在缓存块之间的对应关系;根据所述对应关系,将对应相同存储区域的所有非空闲缓存块中的待存储数据,按照对应的写地址刷新至该存储区域。
所述缓存块的大小为:所述待存储数据大小与所述RAID中条块大小的最大公约数。
每一存储区域分别对应一预设的编号;
所述控制器按照各存储区域对应的编号排列顺序,循环地将缓存中写地址对应不同存储区域的待存储数据分别刷新至对应的存储区域。
所接收到的待存储数据包括:来自不同摄像头的视频数据包,其中,来自同一摄像头的视频数据包的写地址,对应该摄像头的编号所对应的存储区域。
本发明又提供了一种在网络存储设备上执行的数据存储控制方法,其中所述网络存储设备在应用时,位于物理磁盘以及需要存储服务的一个或多个节点之间,该方法包括以下步骤:
a.接收至少两个节点向物理磁盘写入数据的请求,连续来自同一节点的数据的写地址通常可以是连续的;
b.将待写入物理磁盘的数据存入缓存中;
c.记录每个节点数据在缓存中存放的地址信息;
d.在控制缓存向物理磁盘刷新数据时,根据已经记录的地址信息,以节点为单位,依次将各个节点的数据向物理磁盘刷新,也就是说,可以每次仅刷新写地址连续的数据。
所述节点为摄像头,步骤c具体实现方式可以为:从摄像头的写入请求中获得摄像头唯一标识,建立各个摄像头标识与数据在缓存中存放地址之间的对应关系。
步骤d每次向物理磁盘刷新数据的程度可以是全部刷新。
本发明还提供了一种在网络存储设备上执行的数据存储控制方法,其中所述网络存储设备在应用时,位于物理磁盘以及需要存储服务的节点之间,该方法包括以下步骤:
a.将需要写入物理磁盘的数据存入缓存中;
b.根据数据的写地址,将写地址连续的数据划分到同一组中,记录每个组数据在缓存中存放地址;
c.在控制缓存向物理磁盘刷新数据时,根据各个组数据在缓存中的存放地址,以组为单位依次将各组中的数据向物理磁盘刷新。
由上述技术方案可见,在本发明中,RAID中的控制器和物理磁盘之间具有缓存,控制器先将写地址对应不同存储区域的待存储数据、即写地址非连续的数据写入至缓存,然后将缓存中写地址对应不同存储区域的待存储数据分次刷新至对应的存储区域,且每次仅刷新写地址对应相同存储区域的待存储数据、即写地址连续的数据,从而能够大大减少物理磁盘的寻道时间,以提高数据存储效率。
附图说明
图1为现有第5等级RAID中的数据分布示意图。
图2为本发明中用于提高写地址非连续的数据存储效率的存储设备的示例性结构示意图。
图3为本发明中用于提高写地址非连续的数据存储效率的方法流程示意图。
图4为传统组相联地址映像方式的示意图。
图5为本发明实施例中地址映像方式的示意图。
图6a~图6c为基于传统替换方式的刷新过程示意图。
图7a~图7c为基于本发明实施例中替换方式的刷新过程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图2为本发明中用于提高写地址非连续的数据存储效率的存储设备的示例性结构示意图。如图2所示,本发明的存储设备中,RAID包括控制器、以及包含多个存储区域的物理磁盘。在RAID中的控制器和物理磁盘之间具有缓存(Cache),本文所述的Cache是指例如物理内存等不需要寻道的存储介质。当然,有些RAID本身就具有Cache,这种情况下,图2所示的Cache则是RAID原有的,而无需再额外增加。
这样,控制器先将连续接收到的待存储数据均写入至Cache,连续接收到的各待存储数据的写地址可以是连续的、也可以是非连续的,然后在每次刷新时,再将Cache中写地址对应不同存储区域的待存储数据分次刷新至物理磁盘中对应的存储区域,且每次仅刷新写地址对应相同存储区域的待存储数据、即写地址连续的数据。
图3为本发明中用于提高写地址非连续的数据存储效率的方法流程示意图。如图3所示,该方法包括:
步骤300,在RAID的控制器和物理磁盘之间设置Cache,所述物理磁盘包含多个存储区域。
实际应用中,本步骤为一预先执行的步骤。
步骤301,控制器将接收到的待存储数据写入至Cache,并记录待存储数据的写地址所对应的存储区域。
实际应用中,本步骤为一实时执行的步骤。
步骤302,在预设的刷新时刻到来时,控制器将缓存中写地址对应相同存储区域的待存储数据刷新至该存储区域。
实际应用中,本步骤为一周期性执行的步骤,且与步骤301之间不存在固定不变的执行顺序。
也就是说,周期性执行的步骤302所构成的处理过程为:控制器将缓存中写地址对应不同存储区域的待存储数据分次刷新至对应的存储区域,且每次仅刷新写地址对应相同存储区域的待存储数据。
至此,本流程结束。
上述存储设备的工作原理、以及方法的处理流程均可看作:控制器通过Cache,将写地址非连续的数据整理为写地址连续的数据,然后再将写地址连续的数据写入至物理磁盘。
例如3个待存储数据的写地址分别为0x111122、0x888899、0x111123,如果直接写入物理磁盘,则需要先将磁头从当前磁道移动至0x111122对应的磁道、然后移动至0x888899对应的磁道、再移动至0x111123对应的磁道。而如果通过Cache进行整理,将写地址为0x111122和0x111123的2个待存储数据同时写入物理磁盘,之后再将写地址为0x888899的待存储数据写入物理磁盘,则先将磁头从当前磁道移动至0x111122对应的磁道、然后移动至0x111123对应的磁道、再移动至0x888899对应的磁道,由于0x111122和0x111123为连续的地址,因而将磁头从0x111122对应的磁道移动至0x111123对应的磁道所需的寻道时间非常短、甚至0x111122与0x111123对应同一磁道而不需要寻道,从而降低了总的寻道时间。
可见,通过Cache将写地址非连续的数据整理为写地址连续的数据,能够减少寻道时间,从而提高数据存储效率。
具体来说,将待存储数据写入至Cache的过程,涉及Cache的地址映像方式;将Cache中的数据刷新至物理磁盘,涉及Cache替换方式。
目前常用的Cache的地址映像方式、以及Cache替换方式,考虑的主要因素通常都是如何提高Cache的命中率,但在本发明中所采用的Cache的地址映像方式、以及Cache替换方式,考虑的主要因素则可以是存储效率、而非Cache的命中率。
下面,以包括RAID的存储设备应用于视频监控为例,对本发明用于提高写地址非连续的数据存储效率的方法和存储设备中,所采用的Cache的地址映像方式和Cache替换方式进行详细说明。
需要说明的是,在视频监控中,来自同一摄像头的视频数据包的写地址对应相同的至少一个存储区域、且来自不同摄像头的视频数据包的写地址所对应的存储区域互不相同,即来自每一摄像头的视频数据在物理磁盘中分别集中存放。
1、Cache的地址映像方式。
Cache通常包括多个缓存块,而Cache的地址映像方式则决定着写入Cache的数据存放在Cache中的哪一个缓存块中。
目前存在3种传统的地址映像方式均针对如何提高Cache的命中率:全相联(Fully associative)、直接映射(Direct mapped)、以及组相联(Setassociative),其中最常用的一种是组相联。
图4为组相联地址映像方式的示意图。如图4所示,以8个缓存块、每个存储区域由4个连续物理地址构成为例,组相联的地址映像方式中,预先按照物理地址将8个缓存块划分为4个组,即图4中所示的组0~组3,组0~组3中的各缓存块分别固定不变地对应存储区域0~存储区域n中的第0~第3个物理地址,n为大于1的正整数。
这样,如果采用组相联地址映像方式,则控制器首先需要根据视频数据包的写地址确定对应的物理地址,然后,再查找该物理地址所在存储区域所对应的缓存块,之后,才能够将该视频数据包写入至查找到的缓存块。
由图4可见,目前的组相联地址映像方式显然能够提高Cache的命中率,但由于视频监控具有如下特点,提高Cache的命中率显然毫无意义:
Cache中存储的来自摄像头的视频数据包、即待存储数据,几乎不可能在短时间内被重写,即对Cache的写命中率应当为0%。
可见,如果采用常用的组相联的地址映像方式,则只会在将待存储数据写入到Cache的过程中花费更多的时间来查找对应的缓存块,从而造成存储效率的降低。
因此,较佳地,在本实施例中并不按照物理地址预先将Cache中的缓存块划分为多个组,即Cache中的每个缓存块并不固定地对应存储区域中的某一具体物理地址。
这样,控制器能够将接收到的待存储数据直接写入至Cache中的任意空闲缓存块,从而无需根据写地址确定物理地址、也无需进行任何查找,即可将连续接收到的待存储数据随机或顺序地直接写入到Cache中的各空闲缓存块中,并在写入的过程中实时记录每个待存储数据的写地址所对应的存储区域。
由于记录了各缓存块中的待存储数据的写地址所对应的存储区域,因而能够确定各缓存块所对应的存储区域,从而形成了对应不同存储区域的逻辑上的多个缓存块组,即每个缓存块所对应的存储区域取决于该缓存块中的待存储数据的写地址所对应的存储区域、而非预先确定。
具体来说,在本实施例中,控制器只需按照视频数据包的接收顺序,将接收自各摄像头的视频数据包顺序或随机地直接写入至Cache中空闲的各缓存块,同时,将每个视频数据包的写地址、每个视频数据包的写地址所对应的存储区域、以及每个视频数据包所在缓存块之间的对应关系,记录在Cache中预设的对应关系列表内,从而形成对应不同存储区域的逻辑上的多个组。
实际应用中,可为每一个摄像头分别设置了一个编号,例如,3个摄像头的编号依次为1、2、3。由于来自同一摄像头的视频数据在物理磁盘中集中存放,因此,每个摄像头的编号还可表示:来自该摄像头的视频数据包的写地址所对应的存储区域。
这样,记录于对应关系列表内的每个视频数据包的写地址所对应的存储区域即可用对应摄像头的编号来表示,相应地,摄像头的编号即可看作对应存储区域的缓存块组的组标识。
图5为本发明实施例中地址映像方式的示意图。如图5所示,以视频监控采用编号依次为1、2、3的3个摄像头、Cache中包括8个缓存块、每个存储区域由4个连续物理地址构成为例,本实施例中来自摄像头1~3的视频数据的写地址包分别对应于存储区域1~3,将来自摄像头1~3的视频数据包直接写入至Cache中、并同时记录每个视频数据包的写地址、该视频数据包所来自的摄像头的编号、以及该视频数据包所在缓存块之间的对应关系,从而形成了图5中分别对应摄像头1~3的各缓存块所构成的3个缓存块组,这3个缓存块组中的各缓存块分别对应于存储区域1~3,而每个缓存块所对应的具体物理地址则取决于该缓存块中的视频数据包的写地址。
可见,由于本实施例采用了如上所述的地址映像方式,因而相比于传统的地址映像方式,将待存储数据写入至Cache的过程更加快捷,能够提高数据存储效率。
2、Cache替换方式
Cache替换方式决定着将Cache中的数据刷新至物理磁盘的规则。
通常情况下,一般会在Cache中未刷入物理磁盘的数据比例达到一个上限额度以后(例如80%),按传统Cache替换算法,例如先进先出(FIFO)算法和近期最少使用(LRU)算法,选择一定量的数据刷入物理磁盘,使得未刷入物理磁盘的数据比例又降到一个下限额度(例如40%),如此反复。
图6a~图6c为基于传统替换方式的刷新过程示意图。以视频监控采用2个摄像头、摄像头1对应存储区域1、摄像头2对应存储区域2、Cache中包括5个缓存块为例。
参见图6a,采用本发明实施例中的地址映像方式将来自摄像头1的视频数据包1和视频数据包2、来自摄像头2的视频数据包1和视频数据包2写入至Cache中之后,Cache中未刷入物理磁盘的视频数据包比例达到预设上限额度80%。
此后,参见图6b,将来自摄像头1的视频数据包1、来自摄像头2的视频数据包1分别刷新至物理磁盘的存储区域1、存储区域2,使得Cache中未刷入物理磁盘的视频数据包比例降至预设下限额度40%。
然后,参见图6c,采用本发明实施例中的地址映像方式,再将来自摄像头1的视频数据包3、来自摄像头2的视频数据包3写入至Cache中,Cache中未刷入物理磁盘的视频数据包比例再次达到预设上限额度80%,从而开始下一次刷新。
如前所述,Cache中存储的来自摄像头的视频数据包几乎不可能在短时间内被重写,因而对于视频监控来说,本实施例中所采用的Cache替换方式主要针对如何在一次刷新时,尽可能地将写地址连续、即对应统一存储区域的待存储数据刷新至物理磁盘,以减少物理磁盘的寻道时间、提高存储效率。
首先,在本实施例中,每次刷新时,根据本实施例中在地址映像时所建立的每个视频数据包的写地址、每个视频数据包的写地址所对应的存储区域、以及每个视频数据包所在缓存块之间的对应关系,将对应相同存储区域的所有缓存块中的视频数据包,按照对应的写地址刷新至该存储区域,而不是像传统方式那样仅刷新一部分数据而使得未刷入物理磁盘的数据比例降到一个下限额度。
其次,本实施例中,按照摄像头编号,循环地逐一将Cache中对应每一摄像头编号的存储区域所对应的所有缓存块中的视频数据包刷新至物理磁盘,而不再按照LRU算法等传统Cache替换算法决定将数据刷入物理磁盘的顺序。例如,先刷新对应摄像头1的存储区域所对应的所有缓存块中的视频数据包,然后将对应摄像头2的存储区域所对应的所有缓存块中的视频数据包,依次类推,当刷新对应最后一个摄像头的存储区域所对应的所有缓存块中的视频数据包之后,再刷新对应摄像头1的存储区域所对应的所有缓存块中的视频数据包,即循环执行上述刷新过程。
第三,只要Cache中存有视频数据包、即存在非空闲的缓存块,上述循环刷新的过程就一直进行,而不在像传统方式那样等到Cache中未刷入物理磁盘的数据比例达到一个额度以后开始刷新。
图7a~图7c为基于本发明实施例中替换方式的刷新过程示意图。仍以视频监控采用2个摄像头、摄像头1对应存储区域1、摄像头2对应存储区域2、Cache中包括6个缓存块为例。
参见图7a,采用本发明实施例中的地址映像方式将来自摄像头1的视频数据包1和视频数据包2、来自摄像头2的视频数据包1和视频数据包2写入至Cache中。
此后,参见图7b,不论Cache中未刷入物理磁盘的视频数据包比例是否达到预设上限额度80%,只要Cache中存有视频数据包,就执行刷新。在图7b中,将来自摄像头1的视频数据包1和视频数据包2、即来自摄像头1的所有视频数据包均刷新至物理磁盘的存储区域1,而至于Cache中未刷入物理磁盘的视频数据包比例是否降至预设下限额度则无需考虑。由于图7b所示的刷新过程中,来自摄像头1的视频数据包1和视频数据包2的写地址连续,因而该刷新过程所需寻道时间,远远少于如图6b所示的刷新过程。
然后,参见图7c,采用本发明实施例中的地址映像方式,再将来自摄像头1的视频数据包3、来自摄像头2的视频数据包3写入至Cache中。
之后,无需考虑Cache中未刷入物理磁盘的视频数据包比例是否达到预设上限额度80%,而继续执行刷新,按照如图7b所示的原理,再将来自摄像头2的视频数据包1和视频数据包2、即来自摄像头2的所有视频数据包均刷新至物理磁盘的存储区域2,然后,再循环执行上述过程。
可见,由于本实施例采用了如上所述的Cache替换方式,因而相比于传统的Cache替换方式,将待存储数据刷新至物理磁盘的过程所需寻道时间更短,能够更提高数据存储效率。
3、缓存块的大小
除了对地址映像方式和Cache替换方式进行了改进,本实施例中针对视频监控领域的特点,对Cache中的缓存块大小也进行了设置。
通常情况下,Cache中通常会包括至少两个缓存块,且Cache中的缓存块大小主要根据RAID的实际使用情况而定,通常每个缓存块的大小设为8K~128K,缓存块的大小也可以在使用过程中动态地根据实际应用情况进行调整。
在Cache容量一定的前提下,缓存块如果太大,则可供使用的缓存块总数就比较少,同一时刻能处理的读写任务就比较少,在单位读写数据量比较小的情况下,还会造成缓存块的利用率较低。
在Cache容量一定的前提下,缓存块如果太小,则可供使用的缓存块总数就比较多,一方面保存缓存块附加信息量、例如如前所述的对应关系相关信息量就比较大,另一方面数据传输总线的使用效率也较低。
考虑到视频数据包一般都比较大,通常为128KB~1MB,因此,本实施例中将缓存块设置得大一些,便于管理和传输。另一方面,一般来说缓存块的大小都小于RAID的条带深度、即每个条块的容量,以便于降低RAID中的控制器对Cache的管理难度。
基于上述原因,较佳地,本实施例中将缓存块大小设置为:视频数据包大小与条带深度的最大公约数、即一个待存储数据大小与条带深度的最大公约数,且能够在使用过程中动态地根据实际应用情况进行调整。
以上是以包括RAID的存储设备应用于视频监控为例,并针对Cache的地址映像方式、Cache替换方式、缓存块容量对本发明用于提高写地址非连续的数据存储效率的方法和存储设备的详细说明。
下面,再举一实例对本发明用于提高写地址非连续的数据存储效率的方法和存储设备所能够产生的技术效果进行进一步的说明。
假设存储设备中位于RAID的控制器和物理磁盘之间的Cache容量为1G、该RAID的顺序写性能为200MBps、每发生一次随机写平均需要多消耗0.01s的寻道时间、每路摄像头的视频数据包流入的流量为1MBps、每个视频数据包的大小为1MB。
1)如果控制器不将视频数据包写入Cache、而直接将视频数据包写入至RADI中的物理磁盘,则每个视频数据包从流入控制器到写入物理磁盘的总传输时间t1=(1MB/200MBps)+0.01s=0.015s,即该存储设备所能支持的最大摄像头数量约为67路。
2)如果控制器将视频数据包先写入Cache、但刷新时使用传统的Cache替换方式,假设Cache中未刷入物理磁盘的视频数据包比例仍达到预设上限额度80%时开始刷新、降至预设下限额度60%时停止、根据LRU或者FIFO算法每次从Cache中刷入200MB的视频数据包、存储设备所能支持的最大摄像头数量约为X2路,则:
200MB的视频数据包从流入控制器到写入物理磁盘的总传输时间t2=(200MB/200MBps)+0.01s×X2;
所以在这段总传输时间内新写入Cache的视频数据包总量W2=X2×t2;
显然要保证视频数据包都能够顺利写入Cache,则要求W2≤200MB;
取极限值W2=200MB可以计算出X2=100,即该存储设备所能支持的最大摄像头数量约为100路。
3)如果控制器将视频数据包先写入Cache、且使用本发明实施例中的Cache替换方式,假设根据本发明实施例中的Cache替换方式每次从Cache中刷入1GB的视频数据包、存储设备所能支持的最大摄像头数量约为X3路,则:
200MB的视频数据包从流入控制器到写入物理磁盘的总传输时间t3=(1GB/200MBps)+0.01s×X3;
所以在这段总传输时间内新写入Cache的视频数据包总量W3=X3×t3;
显然要保证视频数据包都能够顺利写入Cache,则要求W3≤1GB;
取极限值W3=1GB可以计算出X3≈153,即该存储设备所能支持的最大摄像头数量约为153路。
可见,采用本发明的技术方案、并采用本发明实施例中的地址映像方式、Cache替换方式,能够同时支持更多摄像头的视频数据包的存储,从而提高了写地址非连续的视频数据包的存储效率。
当然,以上均是以视频监控为例,实际应用中,将本发明应用于其他技术领域,基于同样的原理,也能够提高写地址非连续的数据存储效率。
而且,本发明的技术方案也不仅限于RAID中,而是可以扩展至涉及各种网络存储设备、网络控制设备的存储控制。
比如说,本领域技术人员可基于本发明的上述实施例,将用于提高写地址非连续的数据存储效率的方法扩展为一种在网络存储设备上执行的数据存储控制方法,其中的网络存储设备在应用时,位于物理磁盘以及需要存储服务的一个或多个节点之间,该方法包括以下步骤:
a.接收至少两个节点向物理磁盘写入数据的请求,如以视频监控为例,则每个摄像头可看作为一个节点;
b.将待写入物理磁盘的数据存入缓存中;
c.记录每个节点数据在缓存中存放的地址信息;
d.在控制缓存向物理磁盘刷新数据时,根据已经记录的地址信息,以节点为单位,依次将各个节点的数据向物理磁盘刷新。
如果上述节点为摄像头,则步骤c具体实现方式可以为:从摄像头的写入请求中获得摄像头唯一标识,建立各个摄像头标识与数据在缓存中存放地址之间的对应关系。
步骤d中,每次向物理磁盘刷新数据的程度是全部刷新。
再比如,本领域技术人员可基于本发明的上述实施例,将用于提高写地址非连续的数据存储效率的方法扩展为一种在网络存储设备上执行的数据存储控制方法,其中的网络存储设备在应用时,位于物理磁盘以及需要存储服务的节点之间,该方法包括以下步骤:
a.将需要写入物理磁盘的数据存入缓存中;
b.根据数据的写地址,将写地址连续的数据划分到同一组中;记录每个组数据在缓存中存放地址;也就是说,不论数据来自网络中需要服务的哪个节点,只要写地址连续就划分到同一组;
c.在控制缓存向物理磁盘刷新数据时,根据各个组数据在缓存中的存放地址,以组为单位依次将各组中的数据向物理磁盘刷新。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (14)
1、一种用于提高写地址非连续的数据存储效率的方法,该方法应用于独立磁盘冗余阵列RAID中,所述RAID包括控制器和物理磁盘,所述控制器和物理磁盘之间具有缓存、且所述物理磁盘包含至少两个存储区域,其特征在于,该方法包括:
控制器将接收到的待存储数据写入至所述缓存,并记录待存储数据的写地址所对应的存储区域;
控制器将缓存中写地址对应不同存储区域的待存储数据分次刷新至对应的存储区域,且每次仅刷新写地址对应相同存储区域的待存储数据。
2、如权利要求1所述的方法,其特征在于,所述缓存中包括多个缓存块,所述将接收到的待存储数据写入至所述缓存包括:将接收到的待存储数据直接写入至所述缓存中空闲的各缓存块;所述记录待存储数据的写地址所对应的存储区域包括:记录待存储数据的写地址、待存储数据的写地址所对应的存储区域、以及该待存储数据所在缓存块之间的对应关系;
所述每次仅刷新写地址对应相同存储区域的待存储数据包括:根据所述对应关系,每次仅将对应相同存储区域的所有非空闲缓存块中的待存储数据,按照对应的写地址刷新至该存储区域。
3、如权利要求2所述的方法,其特征在于,所述缓存块的大小为:所述待存储数据大小与所述RAID中条块大小的最大公约数。
4、如权利要求1所述的方法,其特征在于,每一存储区域分别对应一预设的编号;
所述将缓存中写地址对应不同存储区域的待存储数据分别刷新至对应的存储区域包括:按照各存储区域对应的编号排列顺序,循环地将缓存中写地址对应不同存储区域的待存储数据分别刷新至对应的存储区域。
5、如权利要求4所述的方法,其特征在于,所述接收到的待存储数据包括:来自不同摄像头的视频数据包,其中,来自同一摄像头的视频数据包的写地址,对应该摄像头的编号所对应的存储区域。
6、一种用于提高写地址非连续的数据存储效率的存储设备,该存储设备中具有独立磁盘冗余阵列RAID,所述RAID包括:控制器、以及包含多个存储区域的物理磁盘,其特征在于,
所述RAID在所述控制器和所述物理磁盘之间还包括缓存;
所述控制器将接收到的待存储数据写入至所述缓存,并记录待存储数据的写地址所对应的存储区域;将缓存中写地址对应不同存储区域的待存储数据分次刷新至对应的存储区域,且每次仅刷新写地址对应相同存储区域的待存储数据。
7、如权利要求6所述的存储设备,其特征在于,所述缓存中包括多个缓存块;
所述控制器将接收到的待存储数据直接写入至所述缓存中空闲的各缓存块,并记录待存储数据的写地址、待存储数据的写地址所对应的存储区域、以及该待存储数据所在缓存块之间的对应关系;根据所述对应关系,将对应相同存储区域的所有非空闲缓存块中的待存储数据,按照对应的写地址刷新至该存储区域。
8、如权利要求7所述的存储设备,其特征在于,所述缓存块的大小为:所述待存储数据大小与所述RAID中条块大小的最大公约数。
9、如权利要求6所述的存储设备,其特征在于,每一存储区域分别对应一预设的编号;
所述控制器按照各存储区域对应的编号排列顺序,循环地将缓存中写地址对应不同存储区域的待存储数据分别刷新至对应的存储区域。
10、如权利要求9所述的存储设备,其特征在于,所接收到的待存储数据包括:来自不同摄像头的视频数据包,其中,来自同一摄像头的视频数据包的写地址,对应该摄像头的编号所对应的存储区域。
11、一种在网络存储设备上执行的数据存储控制方法,其中所述网络存储设备在应用时,位于物理磁盘以及需要存储服务的一个或多个节点之间,其特征在于,该方法包括以下步骤:
a.接收至少两个节点向物理磁盘写入数据的请求;
b.将待写入物理磁盘的数据存入缓存中;
c.记录每个节点数据在缓存中存放的地址信息;
d.在控制缓存向物理磁盘刷新数据时,根据已经记录的地址信息,以节点为单位,依次将各个节点的数据向物理磁盘刷新。
12、如权利要求11所述的数据存储控制方法,其特征在于,其中所述节点为摄像头,而步骤c具体实现方式为:从摄像头的写入请求中获得摄像头唯一标识,建立各个摄像头标识与数据在缓存中存放地址之间的对应关系。
13、如权利要求11所述的数据存储控制方法,其特征在于,所述步骤d每次向物理磁盘刷新数据的程度是全部刷新。
14、一种在网络存储设备上执行的数据存储控制方法,其中所述网络存储设备在应用时,位于物理磁盘以及需要存储服务的节点之间,其特征在于,该方法包括以下步骤:
a.将需要写入物理磁盘的数据存入缓存中;
b.根据数据的写地址,将写地址连续的数据划分到同一组中;记录每个组数据在缓存中存放地址;
c.在控制缓存向物理磁盘刷新数据时,根据各个组数据在缓存中的存放地址,以组为单位依次将各组中的数据向物理磁盘刷新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101023344A CN101241420A (zh) | 2008-03-20 | 2008-03-20 | 用于提高写地址非连续的数据存储效率的方法和存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101023344A CN101241420A (zh) | 2008-03-20 | 2008-03-20 | 用于提高写地址非连续的数据存储效率的方法和存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101241420A true CN101241420A (zh) | 2008-08-13 |
Family
ID=39932980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101023344A Pending CN101241420A (zh) | 2008-03-20 | 2008-03-20 | 用于提高写地址非连续的数据存储效率的方法和存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101241420A (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520883A (zh) * | 2011-12-12 | 2012-06-27 | 杭州华三通信技术有限公司 | 一种数据存取方法及其装置 |
CN102063264B (zh) * | 2009-11-18 | 2012-08-29 | 成都市华为赛门铁克科技有限公司 | 一种处理数据的方法、设备及系统 |
CN102880428A (zh) * | 2012-08-20 | 2013-01-16 | 华为技术有限公司 | 分布式独立磁盘冗余阵列的创建方法及装置 |
CN103530319A (zh) * | 2013-09-16 | 2014-01-22 | 华为技术有限公司 | 一种操作请求的处理方法和装置 |
CN103593307A (zh) * | 2013-11-25 | 2014-02-19 | 湖南强军科技有限公司 | 一种电磁法勘探系统处理采集数据的方法和装置 |
CN104137069A (zh) * | 2012-02-28 | 2014-11-05 | 科空软件株式会社 | 网络启动系统 |
WO2016082550A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN105721839A (zh) * | 2016-04-27 | 2016-06-29 | 王正作 | 一种高效无人机视频传输方法 |
CN105763857A (zh) * | 2016-04-27 | 2016-07-13 | 王正作 | 一种无人机视频传输系统 |
CN105791702A (zh) * | 2016-04-27 | 2016-07-20 | 王正作 | 一种无人机航拍音视频实时同步传输系统 |
CN106843765A (zh) * | 2017-01-22 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种磁盘管理方法及装置 |
CN107122141A (zh) * | 2017-05-08 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种磁盘流量的控制方法和装置 |
CN107220004A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种固态硬盘中写buffer的方法及装置 |
CN107291396A (zh) * | 2017-06-27 | 2017-10-24 | 北京华云网际科技有限公司 | 分布式块存储系统中的io数据的写入方法和装置 |
CN109062499A (zh) * | 2018-06-28 | 2018-12-21 | 平安科技(深圳)有限公司 | 写数据方法、装置、计算机装置及存储介质 |
CN109144963A (zh) * | 2017-06-26 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种重做日志持久化方法及设备 |
CN109359063A (zh) * | 2018-10-15 | 2019-02-19 | 郑州云海信息技术有限公司 | 面向存储系统软件的缓存置换方法、存储设备及存储介质 |
CN109446110A (zh) * | 2018-10-16 | 2019-03-08 | 西安邮电大学 | 可实现数据地址连续的U型布局tile缓存方法 |
CN110023915A (zh) * | 2016-11-28 | 2019-07-16 | Arm有限公司 | 数据移动引擎 |
CN110018784A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及计算设备 |
CN111427859A (zh) * | 2020-03-25 | 2020-07-17 | 京东数字科技控股有限公司 | 一种消息处理方法、装置、电子设备及存储介质 |
CN113434263A (zh) * | 2021-08-30 | 2021-09-24 | 云宏信息科技股份有限公司 | 虚拟机数据缓存方法和计算机可读存储介质 |
WO2022246727A1 (zh) * | 2021-05-27 | 2022-12-01 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
CN117499601A (zh) * | 2024-01-02 | 2024-02-02 | 上海励驰半导体有限公司 | 用于SoC的调用多摄像头数据的方法 |
-
2008
- 2008-03-20 CN CNA2008101023344A patent/CN101241420A/zh active Pending
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063264B (zh) * | 2009-11-18 | 2012-08-29 | 成都市华为赛门铁克科技有限公司 | 一种处理数据的方法、设备及系统 |
CN102520883B (zh) * | 2011-12-12 | 2015-05-20 | 杭州华三通信技术有限公司 | 一种数据存取方法及其装置 |
CN102520883A (zh) * | 2011-12-12 | 2012-06-27 | 杭州华三通信技术有限公司 | 一种数据存取方法及其装置 |
CN104137069A (zh) * | 2012-02-28 | 2014-11-05 | 科空软件株式会社 | 网络启动系统 |
CN104137069B (zh) * | 2012-02-28 | 2017-12-22 | 科空软件株式会社 | 网络启动系统 |
CN102880428A (zh) * | 2012-08-20 | 2013-01-16 | 华为技术有限公司 | 分布式独立磁盘冗余阵列的创建方法及装置 |
CN102880428B (zh) * | 2012-08-20 | 2015-09-09 | 华为技术有限公司 | 分布式独立磁盘冗余阵列的创建方法及装置 |
CN103530319B (zh) * | 2013-09-16 | 2017-12-15 | 华为技术有限公司 | 一种操作请求的处理方法和装置 |
CN103530319A (zh) * | 2013-09-16 | 2014-01-22 | 华为技术有限公司 | 一种操作请求的处理方法和装置 |
CN103593307A (zh) * | 2013-11-25 | 2014-02-19 | 湖南强军科技有限公司 | 一种电磁法勘探系统处理采集数据的方法和装置 |
CN103593307B (zh) * | 2013-11-25 | 2016-04-20 | 湖南强军科技有限公司 | 一种电磁法勘探系统处理采集数据的方法和装置 |
WO2016082550A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN105763857A (zh) * | 2016-04-27 | 2016-07-13 | 王正作 | 一种无人机视频传输系统 |
CN105721839A (zh) * | 2016-04-27 | 2016-06-29 | 王正作 | 一种高效无人机视频传输方法 |
CN105791702A (zh) * | 2016-04-27 | 2016-07-20 | 王正作 | 一种无人机航拍音视频实时同步传输系统 |
CN110023915A (zh) * | 2016-11-28 | 2019-07-16 | Arm有限公司 | 数据移动引擎 |
CN110023915B (zh) * | 2016-11-28 | 2023-03-07 | Arm有限公司 | 数据处理系统和方法 |
CN106843765A (zh) * | 2017-01-22 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种磁盘管理方法及装置 |
CN107122141A (zh) * | 2017-05-08 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种磁盘流量的控制方法和装置 |
CN107220004A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种固态硬盘中写buffer的方法及装置 |
CN107220004B (zh) * | 2017-05-27 | 2020-03-24 | 郑州云海信息技术有限公司 | 一种固态硬盘中写buffer的方法及装置 |
CN109144963A (zh) * | 2017-06-26 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种重做日志持久化方法及设备 |
CN107291396A (zh) * | 2017-06-27 | 2017-10-24 | 北京华云网际科技有限公司 | 分布式块存储系统中的io数据的写入方法和装置 |
CN110018784A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及计算设备 |
US11294592B2 (en) | 2018-01-09 | 2022-04-05 | Alibaba Group Holding Limited | Method and device for data processing, and computer device |
WO2019137322A1 (zh) * | 2018-01-09 | 2019-07-18 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及计算设备 |
CN110018784B (zh) * | 2018-01-09 | 2023-01-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及计算设备 |
CN109062499A (zh) * | 2018-06-28 | 2018-12-21 | 平安科技(深圳)有限公司 | 写数据方法、装置、计算机装置及存储介质 |
CN109359063A (zh) * | 2018-10-15 | 2019-02-19 | 郑州云海信息技术有限公司 | 面向存储系统软件的缓存置换方法、存储设备及存储介质 |
CN109446110A (zh) * | 2018-10-16 | 2019-03-08 | 西安邮电大学 | 可实现数据地址连续的U型布局tile缓存方法 |
CN111427859A (zh) * | 2020-03-25 | 2020-07-17 | 京东数字科技控股有限公司 | 一种消息处理方法、装置、电子设备及存储介质 |
CN111427859B (zh) * | 2020-03-25 | 2024-04-05 | 京东科技控股股份有限公司 | 一种消息处理方法、装置、电子设备及存储介质 |
WO2022246727A1 (zh) * | 2021-05-27 | 2022-12-01 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
CN113434263A (zh) * | 2021-08-30 | 2021-09-24 | 云宏信息科技股份有限公司 | 虚拟机数据缓存方法和计算机可读存储介质 |
CN113434263B (zh) * | 2021-08-30 | 2021-11-09 | 云宏信息科技股份有限公司 | 虚拟机数据缓存方法和计算机可读存储介质 |
CN117499601A (zh) * | 2024-01-02 | 2024-02-02 | 上海励驰半导体有限公司 | 用于SoC的调用多摄像头数据的方法 |
CN117499601B (zh) * | 2024-01-02 | 2024-04-05 | 上海励驰半导体有限公司 | 用于SoC的调用多摄像头数据的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101241420A (zh) | 用于提高写地址非连续的数据存储效率的方法和存储设备 | |
CN106708427B (zh) | 一种适用于键值对数据的存储方法 | |
JP3778980B2 (ja) | 保留された量の不使用の記憶スペースを使用する方法 | |
CN101458613B (zh) | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 | |
CN101095121B (zh) | 高速暂存区块 | |
US6941420B2 (en) | Log-structure array | |
JP6311195B2 (ja) | ストレージデバイスによってデータを記憶するための方法およびストレージデバイス | |
CN102087586B (zh) | 数据处理方法及装置 | |
US6341331B1 (en) | Method and system for managing a raid storage system with cache | |
CN109947363B (zh) | 一种分布式存储系统的数据缓存方法 | |
Sun et al. | DPPDL: a dynamic partial-parallel data layout for green video surveillance storage | |
ATE422688T1 (de) | Strategien zum lesen von informationen aus einem massenspeichermedium unter verwendung eines cachespeichers | |
CN101023412A (zh) | 半静态奇偶性分布技术 | |
CN105630423A (zh) | 一种基于数据缓存的纠删码集群存储扩容方法 | |
US9524238B2 (en) | Systems and methods for managing cache of a data storage device | |
CN108121503A (zh) | 一种NandFlash地址映射及块管理算法 | |
CN101539842A (zh) | 磁盘阵列系统的数据写入方法及磁盘阵列系统 | |
US20040088481A1 (en) | Using non-volatile memories for disk caching | |
CN102053802B (zh) | 网络独立冗余磁盘阵列系统 | |
CN102439572B (zh) | 控制缓存映射的方法及缓存系统 | |
CN106873912A (zh) | Tlc芯片固态硬盘的动态分区存储方法及装置、系统 | |
CN109739696B (zh) | 一种双控存储阵列固态硬盘缓存加速方法 | |
CN107515728A (zh) | 发挥闪存设备内部并发特性的数据管理方法和装置 | |
CN105630413B (zh) | 一种磁盘数据的同步回写方法 | |
US20100161890A1 (en) | Cache management method and cache device using sector set |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080813 |