CN101727299A - 连续数据存储中面向raid5的写操作优化设计方法 - Google Patents
连续数据存储中面向raid5的写操作优化设计方法 Download PDFInfo
- Publication number
- CN101727299A CN101727299A CN201019185012A CN201019185012A CN101727299A CN 101727299 A CN101727299 A CN 101727299A CN 201019185012 A CN201019185012 A CN 201019185012A CN 201019185012 A CN201019185012 A CN 201019185012A CN 101727299 A CN101727299 A CN 101727299A
- Authority
- CN
- China
- Prior art keywords
- raid
- write
- data
- residual
- bufsend
- 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.)
- Granted
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提出了一种连续数据存储中面向RAID5的写操作优化设计方法。在连续数据存储应用中,在内存缓冲区内保存应用程序发出的写数据块,并构造一个与RAID 5的完整条带长度相等的对齐数据块,之后,使对齐数据块在RAID5上恰好占满整个条带,再发送给RAID5,以实现对RAID5的整条写。这样写入的数据块恰好占满RAID5的整个条带,从而避免了重构写、读改写等生成校验的开销,数据块的连续性避免了磁头的寻道开销,提高了存储系统的吞吐能力。同时,对向RAID5写入的数据块进行排序,使它们连续地写入相邻的条带,由此实现RAID 5的连续I/O传输。本发明同样适用于RAID6。
Description
技术领域
本发明属于计算机数据存储技术领域,涉及一种在连续数据存储中面向RAID 5的写操作优化设计方法。
背景技术
RAID(Redundant Array of Independent Disk,独立冗余磁盘阵列)技术,是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。
RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID 5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,冗余校验数据均衡分布于所有磁盘中。当RAID 5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
当构造冗余校验数据时,如果写入的数据正好是RAID 5的一个条带,则直接从这些数据计算出一个校验块,否则就要使用重构写或读改写。其中,重构写是读取未修改磁盘的数据块,与要写入的数据块一起计算得到校验块;读改写是读取需要修改磁盘的旧数据块和旧的校验块计算得到校验块。为计算校验块,重构写或读改写需要额外的I/O开销和延时,这就降低了RAID 5的吞吐能力。
另一方面,当向RAID 5写入的数据块不连续(随机写)时,磁盘就需要寻道到新的数据块位置,此时,随机I/O传输性能是连续I/O传输性能的35%甚至更低。
因此,如何避免重构写或读改写的开销,并保持数据块的连续性,避免磁盘寻道开销,成为亟待解决的问题。
发明内容
本发明的目的是为解决上述技术问题,提出一种连续数据存储中面向RAID5的写操作优化设计方法。
本发明方法所采用的技术方案如下:
在连续数据存储应用中,通过在计算机上运行一个聚合驱动程序,对应用程序的写数据块进行聚合重组,即,在连续数据存储时,在内存缓冲区内保存应用程序发出的写数据块,并构造一个与RAID 5的完整条带长度相等的对齐数据块,之后,使对齐数据块在RAID 5上恰好占满整个条带,再发送给RAID 5,以实现对RAID 5的整条写;同时,对向RAID 5写入的数据块进行排序,使它们连续地写入相邻的条带,由此实现RAID 5的连续I/O传输;
其中,所述聚合驱动程序位于应用程序和RAID 5之间,包括两个线程和一个队列Q;两个线程中,一个是接收线程,其完成如下工作:监控和接收应用程序发送给RAID 5的写请求,并把接收到的写请求加入到队列Q;另一个是发送线程,其完成如下工作:当队列Q不为空时,从队列Q中取出并处理写请求。
该方法同样适用于RAID 6。
下面对其进行具体说明:
首先,获取RAID 5磁盘阵列的参数,包括:条带长度(Stripe Length,一个条带在单块磁盘上的占用区域的大小,以字节为单位),条带深度(Stripe Depth,组成RAID 5的磁盘数目)。
其中,一个完整的条带长度(Full Stripe Length)等于条带长度乘以条带深度。
上述两个参数可通过人工指定,或者调用API接口函数,或者运行测试程序等方式获得。
其次,在计算机上运行一个聚合驱动程序,该程序位于应用程序和RAID 5之间。
所述聚合驱动程序包括两个线程和一个队列Q。两个线程中,一个是接收线程,其完成如下工作:监控和接收应用程序发送给RAID 5的写请求,并把接收到的写请求加入到队列Q。另一个是发送线程,其完成如下工作:当队列Q不为空时,从队列Q中取出并处理写请求。
设写请求具有如下格式:
ssize_t write(struct file*filp,const char*buf,size_t cnt,loff_t*off)其中,filp为设备文件指针,指一个打开的设备,例如RAID 5磁盘阵列;buf为用户空间缓冲区指针,指向待写数据的起始地址;cnt为写数据块的大小;off是偏移量,也就是用户数据写入设备文件的起始位置,RAID 5会将其转换为对应的LBA。为方便说明,将写请求记作(buf,cnt,off)。
在上述基础上,进行以下操作:
对于每一路数据,当应用程序提交写请求时,每次写入数据块的起始逻辑块地址LBA与前一次写操作的末尾LBA是相邻的,即数据被存储到连续的逻辑块中。如果为每一路数据分别建立一个RAID 5,可以简化聚合驱动程序的设计,但这样需要更多的磁盘个数,校验数据需占据更多的存储空间。因此,将多路数据存储在一个RAID 5中。
应用程序把N路数据块依次发送给RAID 5,由接收线程接收后将其加入到队列Q。设定每次采集并写入的数据块大小相等,D(i,j)表示第i路采集到的第j项数据,0≤i≤N-1,0≤j。
对于每一路数据,发送线程为它创建一个发送缓冲区,记作bufsend[i](0≤i≤N-1),其中,缓冲区大小为RAID 5的完整条带长度Full Stripe Length,简记为fullstripelen。缓冲区缓存的字节数记为filled[i],缓冲区空闲的字节数记为residual[i]。filled[i]+residual[i]=fullstripelen。
发送线程从队列Q中取出写请求,设该请求对应于第i路数据,将其发送到对应的发送缓冲区bufsend[i]。对于bufsend[i],初始其residual[i]为fullstripelen,offsend[i]=i*fullstripelen。设bufsend[i]接收到的写请求表示为(buf,cnt,off)。bufsend[i]处理写请求的流程如下:
1)接收第i路数据的写请求(buf,cnt,off);
2)判断bufsend[i]是否可容纳该写请求的数据块,即,比较cnt和residual[i]。如果cnt小于residual[i],转到3);否则转到6);
3)从该写请求的数据缓冲区复制cnt个字节到bufsend[i];
4)修改residual[i]为residual[i]-cnt;
5)在队列Q中删除该写请求,然后转到1)执行;
6)把该写请求的前residual[i]个字节复制到bufsend[i];
7)将该写请求修改为(buf+residual[i],cnt-residual[i],off+residual[i])。即,修改buf为buf+residual[i],修改cnt为cnt-residual[i],修改off为off+residual[i];
8)由于经步骤6)已将bufsend[i]填满,此时,发送线程将bufsend[i]中的数据写入RAID 5,其偏移量为offsend[i],长度为fullstripelen。
9)偏移量指针offsend[i]增加N*fullstripelen,并设置residual[i]为fullstripelen。
10)判断cnt是否为零,若cnt=0,表明该写请求的数据已经发送完毕,转到5)执行,否则,转到2)执行。
由于应用程序设定每路数据块的大小相等,所以N个发送缓冲区是依次顺序填满的。当缓冲区bufsend[0]至bufsend[N-1]依次填满后,发送线程就会把这N个缓冲区中的数据逐个发送给RAID 5,并被顺序写入到RAID 5的第kN到第(kN)+N-1条带中,这里k=0,1,2,...。由此实现了对RAID 5条带的整条写,避免了重构写或读改写。由于对条带的写入同时也是连续的,对RAID 5表现为顺序写,避免了随机写操作所需的磁头寻道。
按照如上方法存储的数据,第i路数据存储在第i、N+i、2N+i,...,kN+1,...个条带中。读取每一路数据时,LBA线性增加,磁头顺序移动,磁头寻道开销将比随机读要低。
为了保证应用程序重启后,bufsend[i]写入的整条数据仍然与RAID 5的条带边界对齐,聚合驱动程序需要监控应用程序对设备文件的打开与关闭操作。当应用程序关闭设备文件,发送线程最后一次向RAID 5写数据时,缓冲区bufsend[i]可能没有填满,因此需要记录当前offsend[i]及缓存字节数filled[i](fullstripelen-residual[i])的值后,再把bufsend[i]中的数据写入RAID 5;当设备文件再次打开时,首先根据记录的offsend[i]及filled[i],在RAID 5中从offsend[i]位置开始,读出filled[i]个字节到bufsend[i]后,再进入正常工作状态。
对于连续数据保护系统(CDP),本发明同样适用。块级CDP系统需要将捕获的磁盘数据块写操作保存在CDP日志中,由于日志区中的数据是连续写入的,并且每一个日志数据项(磁盘块数据)都具有相同的大小,因此同样适合使用本方法进行优化,每一个要保护的磁盘相当于一路数据。
有益效果
本发明方法具有以下优点:
1)实现了RAID 5条带的整条写。本发明通过缓冲组合应用程序发出的写数据块,每次向RAID 5写入一个完整的条带,避免了构造RAID 5校验数据所需的重构写或读改写的开销。
2)实现了多个条带的连续写。本发明通过设置多个缓冲区,使多路数据组合后的完整的条带连续地写入到RAID 5中,实现了RAID 5的连续写,避免了磁盘寻道开销。
3)通过RAID 5条带的整条写和多个条带的连续写,降低了RAID 5系统的I/O开销,提高了它的吞吐能力。
该发明同样适用于RAID 6。
附图说明
图1为向N个发送缓冲区分发队列Q中写请求的示意图;
图2为写请求的处理流程图;
图3为视频监控数据在RAID 5条带中的存储情况;
图4为本发明实施例的写操作示意图。
具体实施方式
下面结合附图及实施例,对本发明方法做进一步详细说明。
结合基于块级的多路视频监控,详细阐述本方法的工作流程。
对于每一路监控数据,当视频监控程序提交写请求时,每次写入数据块的起始逻辑块地址LBA与前一次写操作的末尾LBA是相邻的,即数据被存储到连续的逻辑块中。如果为每一路监控数据分别建立一个RAID 5,可以简化聚合驱动程序的设计,但这样需要更多的磁盘个数,校验数据需占据更多的存储空间。因此,可将多路视频监控数据存储在一个RAID 5中。
视频监控程序把N路采集数据依次发送给RAID 5,由接收线程接收后将其加入到队列Q。设定每次采集并写入的数据块大小相等,D(i,j)表示第i路视频采集到的第j项数据,0≤i≤N-1,0≤j。
对于每一路数据,发送线程为它创建一个发送缓冲区,记作bufsend[i](0≤i≤N-1),其中,缓冲区大小为RAID 5的完整条带长度Full Stripe Length,简记为fullstripelen,缓冲区缓存的字节数记为filled[i],缓冲区空闲的字节数记为residual[i]。filled[i]+residual[i]=fullstripelen。
发送线程从队列Q中取出写请求,设该请求对应于第i路视频数据,将其发送到对应的发送缓冲区bufsend[i],如图1所示。对于缓冲区bufsend[i],初始其residual[i]为fullstripelen,offsend[i]=i*fullstripelen,设bufsend[i]接收到的写请求表示为(buf,cnt,off)。bufsend[i]处理写请求的工作流程如图2所示,过程如下:
1)接收第i路数据写请求(buf,cnt,off);
2)判断bufsend[i]缓冲区是否可容纳该写请求的数据块,即,比较cnt和residual[i]。如果cnt小于residual[i],转到3);否则转到6);
3)从该写请求的数据缓冲区复制cnt个字节到bufsend[i];
4)修改residual[i]为residual[i]-cnt;
5)在队列Q中删除该写请求,转到1)执行;
6)把该写请求的前residual[i]个字节复制到bufsend[i];
7)将该写请求修改为(buf+residual[i],cnt-residual[i],off+residual[i])。即修改buf为buf+residual[i],修改cnt为cnt-residual[i],修改off为off+residual[i];
8)由于经步骤6)已将bufsend[i]填满,此时,发送线程将bufsend[i]中的数据写入RAID 5(偏移量为offsend[i],长度为fullstripelen)。
9)偏移量指针offsend[i]增加N*fullstripelen,设置residual[i]为fullstripelen。
10)判断cnt是否为零,若cnt=0,表明该写请求的数据已经发送完毕,转到5)执行,否则,转到2)执行。
由于应用程序设定每路数据块的大小相等,所以N个发送缓冲区是依次顺序填满的。当缓冲区bufsend[0]至bufsend[N-1]依次填满后,发送线程就会把这N个缓冲区中的数据逐个发送给RAID 5,并被顺序写入到RAID 5的第kN到第(kN)+N-1条带中,这里k=0,1,2,…,见图3。由此实现了对RAID 5条带的整条写,避免了重构写或读改写;由于对条带的写入同时也是连续的,对RAID 5表现为顺序写,避免了随机写操作所需的磁头寻道。
按照如上方法存储的视频数据,第i路视频数据存储在第i、N+i、2N+i,…,kN+1,…个条带中,读取每一路视频数据时,LBA线性增加,磁头顺序移动,磁头寻道开销将比随机读要低。
为了保证应用程序重启后,bufsend[i]写入的整条数据仍然与RAID 5的条带边界对齐,聚合驱动程序需要监控应用程序对设备文件的打开与关闭操作。当应用程序关闭设备文件,发送线程最后一次向RAID 5写数据时,缓冲区bufsend[i]可能没有填满,因此需要记录当前offsend[i]及缓存字节数filled[i](fullstripelen-residual[i])的值后,再把bufsend[i]中的数据写入RAID 5;当设备文件再次打开时,首先根据记录的offsend[i]及filled[i],在RAID 5中从offsend[i]位置开始,读出filled[i]个字节到bufsend[i]后,再进入正常工作状态。
实施例
如图4所示,设2路视频监控应用程序,每次发送的写数据块大小为4KB,RAID 5条带长度fullstripelen=10KB(5个数据磁盘,1个校验磁盘,每个数据块大小为2KB),第0路、第1路数据的发送缓冲区分别为bufsend[0]和bufsend[1],初始变量residual[0]=residual[1]=fullstripelen=10KB,offsend[0]=0,offsend[1]=fullstripelen。
接收线程接收到应用程序发出的6个写请求,分别来自于第0路、第1路视频监控,见图4(a),放入队列Q中。发送线程向bufsend[0]和bufsend[1]分发写请求,见图4(b)。
发送线程进行如下操作,见图4(c)。对于每一路数据,前2个写请求的数据块被复制到缓冲区中,第3个写请求数据块的前面2KB将缓冲区填满,该写请求被修改为2KB。
大小为10KB的缓冲区填满后,被写入RAID 5,正好是RAID 5的一个条带,RAID 5可以直接计算校验数据,而不需要从磁盘上读取旧的数据块或校验块;而图中的2个条带在RAID 5中的地址又是连续的,见图4(d),由RAID 5作为顺序的写操作来处理,不需要磁盘寻道。
本发明利用缓冲区对多路数据进行重组聚合,在视频监控、连续数据保护等连续数据存储应用中,构造出连续的、完整的条带写操作,提高RAID 5的吞吐能力。
对于RAID 6系统,本发明同样适用。完整的条带写操作可以使RAID 6不需读取磁盘数据块或校验块就可以计算出校验数据,而连续的条带写操作可以节省磁盘的寻道开销。
Claims (2)
1.一种连续数据存储中面向RAID 5的写操作优化设计方法,其特征在于,在连续数据存储应用中,通过在计算机上运行一个聚合驱动程序,对应用程序的写数据块进行聚合重组,即,在连续数据存储时,在内存缓冲区内保存应用程序发出的写数据块,并构造一个与RAID 5的完整条带长度相等的对齐数据块,之后,使对齐数据块在RAID 5上恰好占满整个条带,再发送给RAID 5,以实现对RAID 5的整条写;同时,对向RAID 5写入的数据块进行排序,使它们连续地写入相邻的条带,由此实现RAID 5的连续I/O传输;
其中,所述聚合驱动程序位于应用程序和RAID 5之间,包括两个线程和一个队列Q;两个线程中,一个是接收线程,其完成如下工作:监控和接收应用程序发送给RAID 5的写请求,并把接收到的写请求加入到队列Q;另一个是发送线程,其完成如下工作:当队列Q不为空时,从队列Q中取出并处理写请求;
同时,聚合驱动程序要监控应用程序对设备文件的打开与关闭操作。
2.如权利要求1所述的一种连续数据存储中面向RAID 5的写操作优化设计方法,其特征在于,所述对RAID 5的整条写的实现过程如下:
应用程序把N路数据块依次发送给RAID 5,由接收线程接收后将其加入到队列Q;设定每次采集并写入的数据块大小相等,D(i,j)表示第i路采集到的第j项数据,0≤i≤N-1,0≤j;
对于每一路数据,发送线程为它创建一个发送缓冲区,记作bufsend[i](0≤i≤N-1),其中,缓冲区大小为RAID 5的完整条带长度Full Stripe Length,简记为fullstripelen;缓冲区缓存的字节数记为filled[i],缓冲区空闲的字节数记为residual[i];filled[i]+residual[i]=fullstripelen;
发送线程从队列Q中取出写请求,设该请求对应于第i路数据,将其发送到对应的发送缓冲区bufsend[i];对于bufsend[i],初始其residual[i]为fullstripelen,offsend[i]=i*fullstripelen;设bufsend[i]接收到的写请求表示为(buf,cnt,off);bufsend[i]处理写请求的流程如下:
1)接收第i路数据的写请求(buf,cnt,off);
2)判断bufsend[i]是否可容纳该写请求的数据块,即,比较cnt和residual[i];如果cnt小于residual[i],转到3);否则转到6);
3)从该写请求的数据缓冲区复制cnt个字节到bufsend[i];
4)修改residual[i]为residual[i]-cnt;
5)在队列Q中删除该写请求,然后转到1)执行;
6)把该写请求的前residual[i]个字节复制到bufsend[i];
7)将该写请求修改为(buf+residual[i],cnt-residual[i],off+residual[i]),即,修改buf为buf+residual[i],修改cnt为cnt-residual[i],修改off为off+residual[i];
8)由于经步骤6)已将bufsend[i]填满,此时,发送线程将bufsend[i]中的数据写入RAID 5,其偏移量为offsend[i],长度为fullstripelen;
9)偏移量指针offsend[i]增加N*fullstripelen,并设置residual[i]为fullstripelen;
10)判断cnt是否为零,若cnt=0,表明该写请求的数据已经发送完毕,转到5)执行,否则,转到2)执行;
由于应用程序设定每路数据块的大小相等,所以N个发送缓冲区是依次顺序填满的;当缓冲区bufsend[0]至bufsend[N-1]依次填满后,发送线程就会把这N个缓冲区中的数据逐个发送给RAID 5,并被顺序写入到RAID 5的第kN到第(kN)+N-1条带中,这里k=0,1,2,...;
为保证应用程序重启后,bufsend[i]写入的整条数据仍然与RAID 5的条带边界对齐,聚合驱动程序需要监控应用程序对设备文件的打开与关闭操作:
当应用程序关闭设备文件,发送线程最后一次向RAID 5写数据时,需要记录当前offsend[i]及缓存字节数filled[i](fullstripelen-residual[i])的值后,再把bufsend[i]中的数据写入RAID 5;当设备文件再次打开时,首先根据记录的offsend[i]及filled[i],在RAID 5中从offsend[i]位置开始,读出filled[i]个字节到bufsend[i]后,再进入正常工作状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010191850125A CN101727299B (zh) | 2010-02-08 | 2010-02-08 | 连续数据存储中面向raid5的写操作优化设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010191850125A CN101727299B (zh) | 2010-02-08 | 2010-02-08 | 连续数据存储中面向raid5的写操作优化设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727299A true CN101727299A (zh) | 2010-06-09 |
CN101727299B CN101727299B (zh) | 2011-06-29 |
Family
ID=42448240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010191850125A Active CN101727299B (zh) | 2010-02-08 | 2010-02-08 | 连续数据存储中面向raid5的写操作优化设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101727299B (zh) |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976175A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN101976177A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种垂直型分组并行集中校验的磁盘阵列的构建方法 |
CN102096558A (zh) * | 2011-01-20 | 2011-06-15 | 杭州华三通信技术有限公司 | 一种数据的存储方法和装置 |
CN102185929A (zh) * | 2011-06-02 | 2011-09-14 | 杭州华三通信技术有限公司 | 一种基于san资源的视频监控数据存储方法及其装置 |
CN102270102A (zh) * | 2011-04-29 | 2011-12-07 | 华中科技大学 | 一种raid6磁盘阵列写性能的优化方法 |
CN102722340A (zh) * | 2012-04-27 | 2012-10-10 | 华为技术有限公司 | 数据处理方法、装置及系统 |
CN102819406A (zh) * | 2012-07-04 | 2012-12-12 | 浙江宇视科技有限公司 | 一种前端数据存储方法及装置 |
CN103314361A (zh) * | 2010-10-01 | 2013-09-18 | 净睿存储股份有限公司 | 具有动态几何的raid阵列中的重构读取 |
CN103631624A (zh) * | 2013-11-29 | 2014-03-12 | 华为技术有限公司 | 读写请求的处理方法和装置 |
CN103645995A (zh) * | 2013-12-04 | 2014-03-19 | 华为技术有限公司 | 写数据的方法及装置 |
CN103713854A (zh) * | 2012-10-08 | 2014-04-09 | 国际商业机器公司 | 实现自加密驱动的动态绑定 |
CN103729149A (zh) * | 2013-12-31 | 2014-04-16 | 创新科存储技术有限公司 | 一种存储数据的方法 |
CN104050090A (zh) * | 2013-03-15 | 2014-09-17 | 希捷科技有限公司 | 中间存储中的停留所排序数据 |
CN104102724A (zh) * | 2014-07-22 | 2014-10-15 | 浪潮电子信息产业股份有限公司 | 一种基于视频监控数据的写入方法 |
CN104793903A (zh) * | 2015-04-20 | 2015-07-22 | 浪潮电子信息产业股份有限公司 | 一种基于io排序的视频数据写入方法、装置及系统 |
WO2016082550A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN105739915A (zh) * | 2014-12-29 | 2016-07-06 | 三星电子株式会社 | 存储系统中执行的条带重建方法和存储系统 |
CN105824583A (zh) * | 2016-04-18 | 2016-08-03 | 北京鲸鲨软件科技有限公司 | 纠删码集群文件系统提高顺序写效率的处理方法及装置 |
CN106469119A (zh) * | 2015-08-10 | 2017-03-01 | 北京忆恒创源科技有限公司 | 一种基于nvdimm的数据写缓存方法及其装置 |
CN106886368A (zh) * | 2016-12-30 | 2017-06-23 | 北京同有飞骥科技股份有限公司 | 一种块设备写io整形和多控制器同步系统及同步方法 |
CN107168892A (zh) * | 2017-03-29 | 2017-09-15 | 联想(北京)有限公司 | 一种数据的写入方法及装置 |
CN107203330A (zh) * | 2016-03-17 | 2017-09-26 | 北京忆恒创源科技有限公司 | 一种面向读写数据流的闪存数据分布方法 |
CN107220004A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种固态硬盘中写buffer的方法及装置 |
CN107277128A (zh) * | 2017-06-15 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种分布式存储协议中请求处理保序的方法及装置 |
CN107329694A (zh) * | 2017-06-22 | 2017-11-07 | 苏州交运电子科技有限公司 | 数据存储控制方法、控制装置及存储设备 |
CN107832007A (zh) * | 2017-10-25 | 2018-03-23 | 记忆科技(深圳)有限公司 | 一种提高ssd综合性能的方法 |
CN108762685A (zh) * | 2018-06-04 | 2018-11-06 | 平安科技(深圳)有限公司 | Io挂死识别方法、装置、计算机装置及存储介质 |
CN111007991A (zh) * | 2015-08-13 | 2020-04-14 | 北京忆恒创源科技有限公司 | 基于nvdimm分离读写请求的方法及其计算机 |
CN111399765A (zh) * | 2019-12-31 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN111435288A (zh) * | 2019-01-14 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 数据的处理方法和装置 |
CN111625180A (zh) * | 2019-02-27 | 2020-09-04 | 英韧科技(上海)有限公司 | 数据写入方法及装置、存储介质 |
CN114363131A (zh) * | 2022-01-17 | 2022-04-15 | 中国人民解放军国防科技大学 | 用于多模式信道的物理编码子层极性推断与自动翻转方法及装置 |
CN116564374A (zh) * | 2023-07-07 | 2023-08-08 | 长鑫存储技术有限公司 | 驱动控制电路及存储器 |
CN116820333A (zh) * | 2023-06-12 | 2023-09-29 | 青海师范大学 | 一种基于多线程的ssdraid-5持续写入方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100827677B1 (ko) * | 2006-06-20 | 2008-05-07 | 한국과학기술원 | 행렬 스트라이프 캐쉬를 이용한 raid 시스템의 입출력성능 향상 방법 |
CN101625880B (zh) * | 2009-08-14 | 2011-07-20 | 杭州华三通信技术有限公司 | 实现磁盘冗余阵列之间数据复制的控制方法和装置 |
-
2010
- 2010-02-08 CN CN2010191850125A patent/CN101727299B/zh active Active
Cited By (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976175A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN101976177A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种垂直型分组并行集中校验的磁盘阵列的构建方法 |
CN101976175B (zh) * | 2010-08-19 | 2011-12-14 | 北京同有飞骥科技股份有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN103314361A (zh) * | 2010-10-01 | 2013-09-18 | 净睿存储股份有限公司 | 具有动态几何的raid阵列中的重构读取 |
CN103314361B (zh) * | 2010-10-01 | 2016-06-01 | 净睿存储股份有限公司 | 具有动态几何的raid阵列中的重构读取 |
CN102096558A (zh) * | 2011-01-20 | 2011-06-15 | 杭州华三通信技术有限公司 | 一种数据的存储方法和装置 |
CN102270102A (zh) * | 2011-04-29 | 2011-12-07 | 华中科技大学 | 一种raid6磁盘阵列写性能的优化方法 |
CN102185929A (zh) * | 2011-06-02 | 2011-09-14 | 杭州华三通信技术有限公司 | 一种基于san资源的视频监控数据存储方法及其装置 |
CN102722340A (zh) * | 2012-04-27 | 2012-10-10 | 华为技术有限公司 | 数据处理方法、装置及系统 |
CN102819406A (zh) * | 2012-07-04 | 2012-12-12 | 浙江宇视科技有限公司 | 一种前端数据存储方法及装置 |
CN103713854B (zh) * | 2012-10-08 | 2017-05-10 | 国际商业机器公司 | 实现自加密驱动的动态绑定 |
CN103713854A (zh) * | 2012-10-08 | 2014-04-09 | 国际商业机器公司 | 实现自加密驱动的动态绑定 |
CN104050090A (zh) * | 2013-03-15 | 2014-09-17 | 希捷科技有限公司 | 中间存储中的停留所排序数据 |
CN104050090B (zh) * | 2013-03-15 | 2017-08-25 | 希捷科技有限公司 | 中间存储中的停留排序数据 |
CN103631624A (zh) * | 2013-11-29 | 2014-03-12 | 华为技术有限公司 | 读写请求的处理方法和装置 |
CN103645995B (zh) * | 2013-12-04 | 2016-12-07 | 华为技术有限公司 | 写数据的方法及装置 |
CN103645995A (zh) * | 2013-12-04 | 2014-03-19 | 华为技术有限公司 | 写数据的方法及装置 |
CN103729149A (zh) * | 2013-12-31 | 2014-04-16 | 创新科存储技术有限公司 | 一种存储数据的方法 |
CN104102724A (zh) * | 2014-07-22 | 2014-10-15 | 浪潮电子信息产业股份有限公司 | 一种基于视频监控数据的写入方法 |
WO2016082550A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN105739915A (zh) * | 2014-12-29 | 2016-07-06 | 三星电子株式会社 | 存储系统中执行的条带重建方法和存储系统 |
CN105739915B (zh) * | 2014-12-29 | 2020-01-07 | 三星电子株式会社 | 存储系统中执行的条带重建方法和存储系统 |
CN104793903A (zh) * | 2015-04-20 | 2015-07-22 | 浪潮电子信息产业股份有限公司 | 一种基于io排序的视频数据写入方法、装置及系统 |
CN106469119A (zh) * | 2015-08-10 | 2017-03-01 | 北京忆恒创源科技有限公司 | 一种基于nvdimm的数据写缓存方法及其装置 |
CN111007991A (zh) * | 2015-08-13 | 2020-04-14 | 北京忆恒创源科技有限公司 | 基于nvdimm分离读写请求的方法及其计算机 |
CN111007991B (zh) * | 2015-08-13 | 2024-01-26 | 北京忆恒创源科技股份有限公司 | 基于nvdimm分离读写请求的方法及其计算机 |
CN113377695A (zh) * | 2016-03-17 | 2021-09-10 | 北京忆恒创源科技有限公司 | 读写分离的固态存储设备的数据分布方法 |
CN107203330B (zh) * | 2016-03-17 | 2021-03-23 | 北京忆恒创源科技有限公司 | 一种面向读写数据流的闪存数据分布方法 |
CN107203330A (zh) * | 2016-03-17 | 2017-09-26 | 北京忆恒创源科技有限公司 | 一种面向读写数据流的闪存数据分布方法 |
CN113377695B (zh) * | 2016-03-17 | 2024-04-12 | 北京忆恒创源科技股份有限公司 | 读写分离的固态存储设备的数据分布方法 |
CN105824583A (zh) * | 2016-04-18 | 2016-08-03 | 北京鲸鲨软件科技有限公司 | 纠删码集群文件系统提高顺序写效率的处理方法及装置 |
CN106886368B (zh) * | 2016-12-30 | 2019-08-16 | 北京同有飞骥科技股份有限公司 | 一种块设备写io整形和多控制器同步系统及同步方法 |
CN106886368A (zh) * | 2016-12-30 | 2017-06-23 | 北京同有飞骥科技股份有限公司 | 一种块设备写io整形和多控制器同步系统及同步方法 |
US11119919B2 (en) | 2017-03-29 | 2021-09-14 | Lenovo (Beijing) Limited | Method and apparatus with improved speed in data write-in |
WO2018176804A1 (zh) * | 2017-03-29 | 2018-10-04 | 联想(北京)有限公司 | 数据的写入方法及装置 |
CN107168892A (zh) * | 2017-03-29 | 2017-09-15 | 联想(北京)有限公司 | 一种数据的写入方法及装置 |
CN107220004A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种固态硬盘中写buffer的方法及装置 |
CN107220004B (zh) * | 2017-05-27 | 2020-03-24 | 郑州云海信息技术有限公司 | 一种固态硬盘中写buffer的方法及装置 |
CN107277128A (zh) * | 2017-06-15 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种分布式存储协议中请求处理保序的方法及装置 |
CN107277128B (zh) * | 2017-06-15 | 2020-09-22 | 苏州浪潮智能科技有限公司 | 一种分布式存储协议中请求处理保序的方法及装置 |
CN107329694A (zh) * | 2017-06-22 | 2017-11-07 | 苏州交运电子科技有限公司 | 数据存储控制方法、控制装置及存储设备 |
CN107832007A (zh) * | 2017-10-25 | 2018-03-23 | 记忆科技(深圳)有限公司 | 一种提高ssd综合性能的方法 |
CN108762685B (zh) * | 2018-06-04 | 2021-06-22 | 平安科技(深圳)有限公司 | Io挂死识别方法、装置、计算机装置及存储介质 |
CN108762685A (zh) * | 2018-06-04 | 2018-11-06 | 平安科技(深圳)有限公司 | Io挂死识别方法、装置、计算机装置及存储介质 |
CN111435288A (zh) * | 2019-01-14 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 数据的处理方法和装置 |
CN111435288B (zh) * | 2019-01-14 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 数据的处理方法和装置 |
CN111625180B (zh) * | 2019-02-27 | 2021-05-28 | 英韧科技(上海)有限公司 | 数据写入方法及装置、存储介质 |
US11188263B2 (en) | 2019-02-27 | 2021-11-30 | Innogrit Technologies Co., Ltd. | Method of writing data to a storage device using aggregated queues |
CN111625180A (zh) * | 2019-02-27 | 2020-09-04 | 英韧科技(上海)有限公司 | 数据写入方法及装置、存储介质 |
CN111399765A (zh) * | 2019-12-31 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN111399765B (zh) * | 2019-12-31 | 2022-11-01 | 杭州海康威视系统技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN114363131A (zh) * | 2022-01-17 | 2022-04-15 | 中国人民解放军国防科技大学 | 用于多模式信道的物理编码子层极性推断与自动翻转方法及装置 |
CN114363131B (zh) * | 2022-01-17 | 2024-05-10 | 中国人民解放军国防科技大学 | 用于多模式信道的物理编码子层极性推断与自动翻转方法及装置 |
CN116820333A (zh) * | 2023-06-12 | 2023-09-29 | 青海师范大学 | 一种基于多线程的ssdraid-5持续写入方法 |
CN116820333B (zh) * | 2023-06-12 | 2024-02-23 | 青海师范大学 | 一种基于多线程的ssdraid-5持续写入方法 |
CN116564374B (zh) * | 2023-07-07 | 2023-11-14 | 长鑫存储技术有限公司 | 驱动控制电路及存储器 |
CN116564374A (zh) * | 2023-07-07 | 2023-08-08 | 长鑫存储技术有限公司 | 驱动控制电路及存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN101727299B (zh) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101727299B (zh) | 连续数据存储中面向raid5的写操作优化设计方法 | |
CN102023809B (zh) | 存储系统、从存储系统读取数据的方法及写入数据的方法 | |
CN104246707B (zh) | 存储系统和存储装置 | |
CN102520883B (zh) | 一种数据存取方法及其装置 | |
US9116638B2 (en) | Method and apparatus for reading and writing data in file system | |
CN104765575B (zh) | 信息存储处理方法 | |
US9372743B1 (en) | System and method for storage management | |
US9465561B2 (en) | Storage system and storage control method | |
CN103049222A (zh) | 一种raid5的写io优化处理方法 | |
US20100299491A1 (en) | Storage apparatus and data copy method | |
CN103970487A (zh) | 一种独立磁盘冗余阵列及实现方法 | |
US20090265578A1 (en) | Full Stripe Processing for a Redundant Array of Disk Drives | |
KR20090095641A (ko) | 데이터 파이프라인을 이용한 데이터 관리 장치, 시스템 및 방법 | |
CN104407813A (zh) | 一种基于固态存储介质的raid系统及方法 | |
CN102722340A (zh) | 数据处理方法、装置及系统 | |
Jin et al. | RAID6L: A log-assisted RAID6 storage architecture with improved write performance | |
CN104765574A (zh) | 数据云端存储方法 | |
CN103049220A (zh) | 存储控制方法、存储控制装置和固态存储系统 | |
CN102177496A (zh) | 用于针对当前数据和回放数据在不同raid数据存储类型之间转移数据的系统和方法 | |
CN103019893A (zh) | 一种多盘容错的二维混合盘raid4系统架构及其读写方法 | |
EP2979191B1 (en) | Coordinating replication of data stored in a non-volatile memory-based system | |
US8949528B2 (en) | Writing of data of a first block size in a raid array that stores and mirrors data in a second block size | |
CN104778100A (zh) | 一种安全备份数据的方法 | |
CN102883143B (zh) | 一种调整raid阵列缓存的方法 | |
US20120030385A1 (en) | Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |