CN102043687A - 实现数据快照的首写拷贝装置及控制方法 - Google Patents
实现数据快照的首写拷贝装置及控制方法 Download PDFInfo
- Publication number
- CN102043687A CN102043687A CN2009102363600A CN200910236360A CN102043687A CN 102043687 A CN102043687 A CN 102043687A CN 2009102363600 A CN2009102363600 A CN 2009102363600A CN 200910236360 A CN200910236360 A CN 200910236360A CN 102043687 A CN102043687 A CN 102043687A
- Authority
- CN
- China
- Prior art keywords
- buffer memory
- data block
- book
- head
- 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.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种实现数据快照的首写拷贝装置及控制方法。本发明在I/O缓存中存放刚刚从数据卷读取和向数据卷写入的数据块,并待数据卷中的该数据块在拍照时间段内被第一次写操作之前,直接将I/O缓存中存放的对应数据块作为第一次改变之前的数据卷中的该数据块写入至快照卷,因而能够在很大程度上减少对数据卷的一次读操作,从而从根本上减少首写拷贝所需的I/O操作,进而能够减少首写拷贝对数据卷写性能的影响。而且,通过减少I/O操作还能够减少物理磁盘的磁头往复运动、以保护磁盘性能并延长磁盘寿命。同时,本发明也不需要额外增加非易失性的缓冲区或其它存储介质。
Description
技术领域
本发明涉及快照备份技术,特别涉及一种实现数据快照的首写拷贝(Copy On First Write)系统、以及一种实现数据快照的首写拷贝控制方法。
背景技术
本文所述的快照是指:在预订时间对存储存储系统物理磁盘中的数据卷状态进行备份。现有快照通常都是首写拷贝技术来实现的,采用首写拷贝实现快照首先需要在物理磁盘中为数据卷分配对应的快照卷,然后在当前拍照点开始之后至下一个拍照点开始之前的拍照时间段内,只要有数据卷内任意位置的数据块发生第一次改变,则将该数据卷发生第一次改变之前的该数据块备份至快照卷中。
采用首写拷贝方式得到的快照实际上可看作是一个虚拟映像卷,如图1所示,可看作虚拟映像卷的快照表示为虚线框,该快照包含两部分,其中一部分是位于数据卷中的在快照时间段内未改变的数据块(即数据卷中阴影所示的部分,而数据卷中的空白部分则表示由于写操作而导致改变的数据块),另一部分则是位于快照卷中的在第一次发生改变之前备份而来的数据块(即快照卷中如阴影所示的部分,该部分是由于数据卷中如空白部分所示数据块在第一次改变之前备份而来)。
进一步说,采用首写拷贝实现快照,在每次对数据卷执行用于改变数据块的写操作之前,均需要先后插入用于复制该数据块的一次读操作和一次写操作。如图2a所示,在对数据卷中任意位置的数据块进行写操作(图2a中空白框所示部分为待写入数据)以改变该数据块之前,首先需要从数据卷中读取发生第一次改变之前的该数据块存放至内存中;如图2b所示,然后将读取的该数据块写入至数据卷、以实现复制备份;如图2c所示,最后才可以执行用于改变该数据块的写操作。
由上述首写拷贝过程可以看出,为了采用首写拷贝实现快照,原本写数据卷所需的一次输入/输出(I/O)操作增至了一读两写共三次I/O操作,且为了在完成数据块复制后在写入改变该数据块的写数据、以确保数据的完整性,这三次I/O操作需串行执行。同时,由于首写拷贝时对数据卷同一数据块读取后又立即写入,使磁头从数据卷该数据块对应位置刚刚移动至快照卷对应位置、又立即返回至数据卷该数据块对应位置,从而易造成物理磁盘的磁头往复运动,尤其是在复制数据块需跨越多个磁道的情况下。
而且,为了记录快照卷中的每个快照备份了哪些数据卷中哪些位置的数据块,还需要在快照卷中写入例如索引表、位图等快照管理信息,这无疑又增加了额外的I/O操作,更易导致物理磁盘的磁头往复运动。
如此一来,就严重影响了对数据卷的写性能及磁盘寿命,极端情况下,利用上述方式的首写拷贝实现快照会使数据卷的写性能降至正常情况的30%。
为了解决上述问题,现有技术中还提出了一种改进方案,该方案通过延迟如图2b所示的写快照卷来减轻首写拷贝对数据卷的写性能及磁盘寿命的影响。具体说,该方案按照如图2a所示的方式从数据卷中读取发生第一次改变之前的该数据块存放至内存中,但并不立即按照如图2b所示的方式将读取的数据块写入至快照卷,而是将读取的数据块先放入至一个缓冲区,然后直接按照如图2c所示方式执行用于改变该数据块的写操作,此后,待缓冲区中的数据块累计到预定数量后再批量写入至快照卷。
然而,该方案虽然看似改变了一读两写的首写拷贝方式,但其实质上仍旧是一读两写、需要对数据卷同一数据块读取后又立即写入,因而并没有改进磁头针对数据卷的往复运动,进而该方案对快照卷执行批量的写操作、使得对数据卷同一数据块读取后又立即写入的操作更加密集,实质上还加剧了物理磁盘的磁头往复运动;而且,为保证快照卷的数据一致性,该方案中使用的缓冲区需要由非易失性存储介质、或是比快照卷更高速的存储介质来实现,从而额外增添了硬件设置。因此,鉴于该方案存在的弊端,其并未解决现有如图2a~图2c所示首写拷贝方式存在的问题。
可见,现有首写拷贝方式会造成写性能的下降、同时还易降低物理磁盘寿命。
发明内容
有鉴于此,本发明提供了一种实现数据快照的首写拷贝装置、以及一种实现数据快照的首写拷贝控制方法,能够减轻首写拷贝对写性能的影响。
本发明提供的一种实现数据快照的首写拷贝装置,包括:
I/O缓存模块,用于传递对数据卷的读写I/O命令,并将从数据卷读回的数据块、以及写入至数据卷的数据块以内存页面形式加入至I/O缓存中;
快照配置模块,用于配置数据卷的快照卷、以及拍照时间段等配置信息;
首写拷贝模块,用于依据I/O缓存模块传递的读I/O命令从数据卷中读回对应数据块,并通过读返回命令将读回的对应数据块传递至I/O缓存模块;依据配置的快照时间段、以及由I/O缓存模块传递的写I/O命令对数据卷进行首写拷贝,且在每次首写拷贝时优先从I/O缓存中读取需备份至快照卷的对应数据块。
所述I/O缓存模块进一步管理I/O缓存中的内存页面,以保证在任意时刻有足够的内存页面存放从数据卷读回的数据块、以及写入至数据卷的数据块。
I/O缓存是从系统内存中划分出的部分内存空间。
对于当前写I/O命令,所述I/O缓存模块进一步判断I/O缓存中已分配的内存页面是否达到将满阈值,如果达到将满阈值,则先释放未被访问时间最长、且与当前写I/O命令写地址不重叠的数据块所在内存页面,然后将当前写I/O命令的数据块以内存页面形式加入至I/O缓存中;否则,直接将当前写I/O命令的数据块以内存页面形式加入至I/O缓存中;
对于当前读返回命令,I/O缓存模块进一步判断I/O缓存中是否存在与当前读返回命令读地址重叠的数据块所在内存页面,如果存在,则先释放该内存页面、并判断I/O缓存中已分配的内存页面是否达到将满阈值,否则直接判断I/O缓存中已分配的内存页面是否达到将满阈值;如果达到将满阈值,则先释放未被访问时间最长的内存页面,然后将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中,否则直接将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中。
首写拷贝模块通过I/O缓存模块查找I/O缓存中是否存有需从该数据卷读出的对应数据块,如果有,则直接读取I/O缓存中的对应数据块,否则再从该数据卷读出的对应数据块。
所述I/O缓存模块中进一步记录有I/O缓存中所存储数据块在数据卷所处位置;所述首写拷贝模块将进一步依据需首写拷贝数据块在数据卷中所处位置进行所述查找。
本发明提供的一种实现数据快照的首写拷贝控制方法,包括:
将读返回命令返回的从数据卷读回的数据块以内存页面形式加入至I/O缓存中;
依据写I/O命令进行首写拷贝后向数据卷中写入对应数据块,并将写入至数据卷的数据块以内存页面形式加入至I/O缓存中;且在每次首写拷贝时优先从I/O缓存中读取需备份至快照卷的对应数据块。
该首写拷贝控制方法进一步管理I/O缓存中的内存页面,以保证在任意时刻有足够的内存页面存放从数据卷读回的数据块、以及写入至数据卷的数据块。
该首写拷贝控制方法从系统内存中划分出部分内存空间作为I/O缓存。
所述管理I/O缓存中的内存页面包括:
对于当前写I/O命令,判断I/O缓存中已分配的内存页面是否达到将满阈值,如果达到将满阈值,则先释放未被访问时间最长、且与当前写I/O命令写地址不重叠的数据块所在内存页面,然后将当前写I/O命令的数据块以内存页面形式加入至I/O缓存中;否则,直接将当前写I/O命令的数据块以内存页面形式加入至I/O缓存中;
对于当前读返回命令,判断I/O缓存中是否存在与当前读返回命令读地址重叠的数据块所在内存页面,如果存在,则先释放该内存页面、并判断I/O缓存中已分配的内存页面是否达到将满阈值,否则直接判断I/O缓存中已分配的内存页面是否达到将满阈值;如果达到将满阈值,则先释放未被访问时间最长的内存页面,然后将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中,否则直接将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中。
所述优先从I/O缓存中读取需备份至快照卷的对应数据块包括:
查找I/O缓存中是否存有需从该数据卷读出的对应数据块,如果有,则直接读取I/O缓存中的对应数据块,否则再从该数据卷读出的对应数据块。
该首写拷贝控制方法进一步记录有I/O缓存中所存储数据块在数据卷所处位置,并进一步依据需首写拷贝数据块在数据卷中所处位置进行所述查找。
由上述技术方案可见,本发明在I/O缓存中存放从数据卷读取和向数据卷写入的数据块,并待数据卷中的该数据块在拍照时间段内被第一次写操作之前,直接将I/O缓存中存放的对应数据块作为第一次改变之前的数据卷中的该数据块写入至快照卷,因而能够在很大程度上(取决于I/O缓存的命中率,对于数据读写具有局部性、且先读后写的情况,IO缓存的命中率会比较高)减少对数据卷的一次读操作,从而减少首写拷贝所需的I/O操作,进而能够减少首写拷贝对数据卷写性能的影响,且通过减少I/O操作还能够减少物理磁盘的磁头往复运动、以保护磁盘性能并延长磁盘寿命。同时本发明也不需要额外增加非易失性的缓冲区或其它存储介质。
附图说明
图1为现有首写拷贝技术实现快照的原理示意图;
图2a~图2c为现有首写拷贝过程中的读写操作过程示意图;
图3为本发明实施例中首写拷贝装置的逻辑结构示意图;
图4为本发明实施例中首写拷贝控制方法处理写I/O命令的示例性流程图;
图5为本发明实施例中首写拷贝控制方法处理读返回命令的示例性流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
考虑到应用程序对数据块读写的聚合性,该聚合性也是存储系统中读写缓存(Cache)实现的基本依据,即刚刚读取的数据块很有可能被修改后立即写回、刚刚被写过的数据块很可能继续被频繁写入,本发明实施例针对现有首写拷贝技术存在的问题,在I/O缓存中存放从数据卷读取和向数据卷写入的数据块,并待数据卷中的该数据块在拍照时间段内被第一次写操作之前,直接将I/O缓存中存放的对应数据块作为第一次改变之前的数据卷中的该数据块写入至快照卷,从而减少对数据卷的一次读操作,进而从根本上减少首写拷贝所需的I/O操作、并避免使用非易失性的缓冲区。
图3为本发明实施例中首写拷贝装置的逻辑结构示意图。如图3所示,本实施例中的首写拷贝装置包括:
I/O缓存模块,用于传递对数据卷的读写I/O命令,并将预设缓存时间段内从数据卷读回的数据块、以及写入至数据卷的数据块以内存页面形式加入至I/O缓存中;其中,本实施例中的I/O缓存可以是从系统内存中划分出的部分内存空间;
快照配置模块,用于配置数据卷的快照卷、以及拍照时间段等配置信息;
首写拷贝模块,用于依据I/O缓存模块传递的读I/O命令从数据卷中读回对应数据块,并通过读返回命令将读回的对应数据块传递至I/O缓存模块;依据配置的快照时间段、以及由I/O缓存模块传递的写I/O命令对数据卷进行首写拷贝,且在每次首写拷贝时优先从I/O缓存中读取需备份至快照卷的对应数据块。
其中,图3中还示出了读Cache和写Cache,首写拷贝模块可通过读Cache和写Cache对数据卷和快照卷进行读写操作。
具体说,为了优先从I/O缓存中读取需备份至快照卷的对应数据块,首写拷贝模块依据I/O缓存模块传递的写I/O命令(例如写I/O命令中的写地址)确定数据卷中对应位置的数据块需要首写拷贝,并通过I/O缓存模块查找I/O缓存中是否存有需从该数据卷读出的对应数据块,如果有,则直接将I/O缓存中的对应数据块写入至快照卷、再依据写I/O命令对该数据块进行写操作,如果没有,则从该数据卷读出的对应数据块、再将读出的数据块写入至快照卷后、然后依据写I/O命令对该数据块进行写操作。其中,I/O缓存模块中可利用索引表、位图等方式,记录有I/O缓存中所存储数据块在数据卷所处位置,首写拷贝模块可依据需首写拷贝数据块在数据卷中所处位置进行查找;当然,本领域技术人员还可以利用其他查找方式,在此不再一一列举。
此外,实际应用中的I/O缓存空间容量,可能仅能够存储很短时间内从数据卷读回的数据块、以及写入至数据卷的数据块。这种情况下,就需要I/O缓存模块进一步管理I/O缓存中的内存页面,以保证在任意时刻有足够的内存页面存放从数据卷读回的数据块、以及写入至数据卷的数据块。
具体说,对于当前写I/O命令,I/O缓存模块需要进一步判断I/O缓存中已分配的内存页面是否达到将满阈值,如果达到将满阈值,则先释放未被访问时间最长、且与当前写I/O命令写地址不重叠的数据块所在内存页面(由于与当前写I/O命令写地址重叠的数据块属于需备份、但未备份至快照卷的数据块,因而此时不得将该数据块所在内存页面释放),然后将当前写I/O命令中待写入至数据卷的数据块以内存页面形式加入至I/O缓存中;否则,直接将当前写I/O命令中待写入至数据卷的数据块以内存页面形式加入至I/O缓存中。
对于当前读返回命令,I/O缓存模块需要进一步判断I/O缓存中是否存在与当前读返回命令读地址重叠的数据块所在内存页面,如果存在,则先释放该内存页面(由于与当前读返回命令写地址重叠的数据块,属于依据当前读返回命令读回数据块的原始数据块,下一拍照时间段内一定是使用依据当前读返回命令读回的新数据块,因此可将依据当前读返回命令读回数据块的原始数据块所在内存页面释放),并判断I/O缓存中已分配的内存页面是否达到将满阈值,否则直接判断I/O缓存中已分配的内存页面是否达到将满阈值;如果达到将满阈值,则先释放未被访问时间最长的内存页面,然后将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中,否则直接将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中。
以上是对本实施例中首写拷贝装置的详细说明。下面,再对本实施例中的首写拷贝控制方法进行详细说明。
本实施例中的首写拷贝控制方法包括对读返回命令的处理、以及对写I/O命令的处理:
将读返回命令返回的从数据卷读回的数据块以内存页面形式加入至I/O缓存中;其中,该数据块是依据之前的读I/O命令从数据卷中读回的;
依据写I/O命令进行首写拷贝后向数据卷中写入对应数据块,并将写入至数据卷的数据块以内存页面形式加入至I/O缓存中;且在每次首写拷贝时优先从I/O缓存中读取需备份至快照卷的对应数据块、即对快照卷和对数据卷的两写,而不是每次首写拷贝均按照现有方式那样执行包含对数据卷读操作的一读两写方式。
具体说,为了优先从I/O缓存中读取需备份至快照卷的对应数据块,可以依据写I/O命令(例如写I/O命令中的写地址)确定数据卷中对应位置的数据块需要首写拷贝,并查找I/O缓存中是否存有需从该数据卷读出的对应数据块,如果有,则直接将I/O缓存中的对应数据块写入至快照卷、再依据写I/O命令对该数据块进行写操作,如果没有,则从该数据卷读出的对应数据块、再将读出的数据块写入至快照卷后、然后依据写I/O命令对该数据块进行写操作。其中,该首写拷贝控制方法进一步记录有I/O缓存中所存储数据块在数据卷所处位置,并进一步依据需首写拷贝数据块在数据卷中所处位置进行所述查找。
此外,实际应用中的I/O缓存空间容量,可能仅能够存储很短时间内从数据卷读回的数据块、以及写入至数据卷的数据块。这种情况下,该首写拷贝控制方法进一步管理I/O缓存中的内存页面,以保证在任意时刻有足够的内存页面存放从数据卷读回的数据块、以及写入至数据卷的数据块。
具体说,管理I/O缓存中的内存页面的方式可以包括:
对于当前写I/O命令,判断I/O缓存中已分配的内存页面是否达到将满阈值,其中,已分配的内存页面中包括已存储于I/O缓存中数据块所占用的内存页面、以及为当前写I/O命令中所有数据块分配的内存页面;
如果达到将满阈值,则由于与当前写I/O命令写地址重叠的数据块属于需备份、但未备份至快照卷的数据块,因而此时不得将该数据块所在内存页面释放,进而先释放未被访问时间最长、且与当前写I/O命令写地址不重叠的数据块所在内存页面,然后将当前写I/O命令中写入至数据卷的数据块以内存页面形式加入至I/O缓存中;
否则,直接将当前写I/O命令中写入至数据卷的数据块以内存页面形式加入至I/O缓存中。
对于当前读返回命令,判断I/O缓存中是否存在与当前读返回命令读地址重叠的数据块所在内存页面,其中,已分配的内存页面中包括已存储于I/O缓存中数据块所占用的内存页面、以及为当前读返回命令中所有数据块分配的内存页面;
如果存在,则由于与当前读返回命令写地址重叠的数据块,属于依据当前读返回命令读回数据块的原始数据块,下一拍照时间段内一定是使用依据当前读返回命令读回的新数据块,因此可将依据当前读返回命令读回数据块的原始数据块所在内存页面释放,进而先释放该内存页面、并判断I/O缓存中已分配的内存页面是否达到将满阈值,否则直接判断I/O缓存中已分配的内存页面是否达到将满阈值;
如果达到将满阈值,则先释放未被访问时间最长的内存页面,然后将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中增加内存页面、用以存放依据,否则直接将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中。
图4为本发明实施例中首写拷贝控制方法处理写I/O命令的示例性流程图。如图4所示,本实施例中首写拷贝控制方法针对当前写I/O命令执行如下步骤:
步骤401,判断I/O缓存中已分配的内存页面是否达到将满阈值,如果是,则执行步骤402,否则直接执行步骤403。
步骤402,释放未被访问时间最长、且与当前写I/O命令写地址不重叠的数据块所在内存页面,然后执行步骤403。
步骤403,将当前写I/O命令中写入至数据卷的数据块以内存页面形式加入至I/O缓存中,然后执行步骤404。
步骤404,判断写I/O命令所针对的数据卷中的每一对应位置数据块是否已经过首写拷贝,对于已经过首写拷贝的数据块,直接执行步骤409,而对于未经首写拷贝的数据块,则确定写I/O命令所针对的数据卷中对应位置的数据块需要首写拷贝,并继续执行步骤405。
也就是说,对于一个写I/O命令来说,其要写入数据卷的所有数据块有可能全部已经过首写拷贝、也有可能全部未经过首写拷贝、还有可能一部分已经过首写拷贝而另一部分未经过首写拷贝,那么,对于第一种可能,针对所有数据块均直接执行步骤409,对于第二种可能,针对所有数据块执行步骤405,而对于第三种情况,则针对一部分数据块直接执行步骤409的同时、还针对另一部分数据块执行步骤405。
步骤405,判断I/O缓存中是否存有需从该数据卷读出的对应数据块,如果是,则执行步骤406,否则执行步骤407。
步骤406,直接将I/O缓存中的对应数据块写入至快照卷、再依据写I/O命令对该数据块进行写操作,然后执行步骤408。
步骤407,从数据卷读取对应数据块写入至快照卷,再依据写I/O命令对该数据块进行写操作,然后执行步骤408。
步骤408,将依据写I/O命令执行写操作的数据块记录为已首写拷贝,然后结束本流程。
本步骤中,可利用索引表、位图等方式记录已首写拷贝的数据块,并在每到达下一个拍照点时将所有记录清空。
步骤409,依据写I/O命令对该数据块进行写操作,然后结束本流程。
至此,本流程结束。
图5为本发明实施例中首写拷贝控制方法处理读返回命令的示例性流程图。如图5所示,本实施例中首写拷贝控制方法针对当前读返回命令执行如下步骤:
步骤501,通过读返回命令返回从数据卷中对应位置读回的数据块,然后执行步骤502。
步骤502,判断I/O缓存中是否存在与当前读返回命令中各读地址重叠的数据块所在内存页面,对于存在读地址重叠内存页面的各数据块,执行步骤503,对于不存在读地址重叠内存页面的各数据块则直接执行步骤504。
也就是说,对于一个读返回命令来说,其读回的所有数据块有可能全部存在读地址重叠的内存页面、也有可能全部未存在读地址重叠的内存页面、还有可能一部分存在读地址重叠的内存页面而另一部分未存在读地址重叠的内存页面,那么,对于第一种可能,针对所有数据块均执行步骤503,对于第二种可能,针对所有数据块均直接执行步骤504,而对于第三种情况,则针对一部分数据块执行步骤503的同时、还针对另一部分数据块直接执行步骤504。
步骤503,释放与当前读返回命令读地址重叠的数据块所在该内存页面,然后执行步骤504。
本步骤中,如果当前读返回命令中的所有数据块,在I/O缓存中均存在读地址重叠的数据块,则本步骤中释放的内存页面容量等于当前读返回命令中所有数据块所需的存储空间综合;如果当前读返回命令中,只有部分数据块在I/O缓存中均存在读地址重叠的数据块,则本步骤中释放的内存页面容量并不足以存放当前读返回命令中所有数据块,此时,就需要继续执行下述步骤504。
步骤504,判断I/O缓存中已分配的内存页面是否达到将满阈值,如果是则执行步骤505,否则直接执行步骤506。
需要说明的是,步骤503中所释放的内存页面并不一定就足以存放读回的所有数据块,且由于已分配的内存页面中包括已存储于I/O缓存中数据块所占用的内存页面、以及为当前读返回命令中所有数据块分配的内存页面,因此,虽然在本步骤之前,可能在步骤503已有内存页面被释放,但是,对于步骤503中所释放内存页面不足以存放读回的所有数据块的情况,仍可能存在I/O缓存中已分配的内存页面达到将满阈值的可能。
步骤505,释放未被访问时间最长的内存页面,然后执行步骤506。
步骤506,将读返回命令返回的从数据卷中对应位置读回的数据块以内存页面形式加入至I/O缓存中,然后结束本流程。
至此,本流程结束。
如前所述,本实施例中的首写拷贝装置和方法在I/O缓存中存放从数据卷读取和向数据卷写入的数据块,并待数据卷中的该数据块在拍照时间段内被第一次写操作之前,直接将I/O缓存中存放的对应数据块作为第一次改变之前的数据卷中的该数据块写入至快照卷,因而能够减少对数据卷的一次读操作,从而从根本上减少首写拷贝所需的I/O操作,进而能够减少首写拷贝对数据卷写性能的影响,且通过减少I/O操作还能够减少物理磁盘的磁头往复运动、以保护磁盘性能并延长磁盘寿命。同时本实施例中的首写拷贝装置和方法也不需要额外增加非易失性的缓冲区或其它存储介质。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种实现数据快照的首写拷贝装置,其特征在于,包括:
I/O缓存模块,用于传递对数据卷的读写I/O命令,并将从数据卷读回的数据块、以及写入至数据卷的数据块以内存页面形式加入至I/O缓存中;
快照配置模块,用于配置数据卷的快照卷、以及拍照时间段等配置信息;
首写拷贝模块,用于依据I/O缓存模块传递的读I/O命令从数据卷中读回对应数据块,并通过读返回命令将读回的对应数据块传递至I/O缓存模块;依据配置的快照时间段、以及由I/O缓存模块传递的写I/O命令对数据卷进行首写拷贝,且在每次首写拷贝时优先从I/O缓存中读取需备份至快照卷的对应数据块。
2.如权利要求1所述的首写拷贝装置,其特征在于,所述I/O缓存模块进一步管理I/O缓存中的内存页面,以保证在任意时刻有足够的内存页面存放从数据卷读回的数据块、以及写入至数据卷的数据块。
3.如权利要求2所述的首写拷贝装置,其特征在于,I/O缓存是从系统内存中划分出的部分内存空间。
4.如权利要求2所述的首写拷贝装置,其特征在于,
对于当前写I/O命令,所述I/O缓存模块进一步判断I/O缓存中已分配的内存页面是否达到将满阈值,如果达到将满阈值,则先释放未被访问时间最长、且与当前写I/O命令写地址不重叠的数据块所在内存页面,然后将当前写I/O命令的数据块以内存页面形式加入至I/O缓存中;否则,直接将当前写I/O命令的数据块以内存页面形式加入至I/O缓存中;
对于当前读返回命令,I/O缓存模块进一步判断I/O缓存中是否存在与当前读返回命令读地址重叠的数据块所在内存页面,如果存在,则先释放该内存页面、并判断I/O缓存中已分配的内存页面是否达到将满阈值,否则直接判断I/O缓存中已分配的内存页面是否达到将满阈值;如果达到将满阈值,则先释放未被访问时间最长的内存页面,然后将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中,否则直接将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中。
5.如权利要求1至4中任一项所述的首写拷贝装置,其特征在于,首写拷贝模块通过I/O缓存模块查找I/O缓存中是否存有需从该数据卷读出的对应数据块,如果有,则直接读取I/O缓存中的对应数据块,否则再从该数据卷读出的对应数据块。
6.如权利要求5所述的首写拷贝装置,其特征在于,
所述I/O缓存模块中进一步记录有I/O缓存中所存储数据块在数据卷所处位置;
所述首写拷贝模块将进一步依据需首写拷贝数据块在数据卷中所处位置进行所述查找。
7.一种实现数据快照的首写拷贝控制方法,其特征在于,包括:
将读返回命令返回的从数据卷读回的数据块以内存页面形式加入至I/O缓存中;
依据写I/O命令进行首写拷贝后向数据卷中写入对应数据块,并将写入至数据卷的数据块以内存页面形式加入至I/O缓存中;且在每次首写拷贝时优先从I/O缓存中读取需备份至快照卷的对应数据块。
8.如权利要求7所述的首写拷贝控制方法,其特征在于,该首写拷贝控制方法进一步管理I/O缓存中的内存页面,以保证在任意时刻有足够的内存页面存放从数据卷读回的数据块、以及写入至数据卷的数据块。
9.如权利要求8所述的首写拷贝控制方法,其特征在于,该首写拷贝控制方法从系统内存中划分出部分内存空间作为I/O缓存。
10.如权利要求8所述的首写拷贝控制方法,其特征在于,所述管理I/O缓存中的内存页面包括:
对于当前写I/O命令,判断I/O缓存中已分配的内存页面是否达到将满阈值,如果达到将满阈值,则先释放未被访问时间最长、且与当前写I/O命令写地址不重叠的数据块所在内存页面,然后将当前写I/O命令的数据块以内存页面形式加入至I/O缓存中;否则,直接将当前写I/O命令的数据块以内存页面形式加入至I/O缓存中;
对于当前读返回命令,判断I/O缓存中是否存在与当前读返回命令读地址重叠的数据块所在内存页面,如果存在,则先释放该内存页面、并判断I/O缓存中已分配的内存页面是否达到将满阈值,否则直接判断I/O缓存中已分配的内存页面是否达到将满阈值;如果达到将满阈值,则先释放未被访问时间最长的内存页面,然后将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中,否则直接将当前读返回命令读回的数据块以内存页面形式加入至I/O缓存中。
11.如权利要求7至10中任一项所述的首写拷贝控制方法,其特征在于,所述优先从I/O缓存中读取需备份至快照卷的对应数据块包括:
查找I/O缓存中是否存有需从该数据卷读出的对应数据块,如果有,则直接读取I/O缓存中的对应数据块,否则再从该数据卷读出的对应数据块。
12.如权利要求11所述的首写拷贝控制方法,其特征在于,该首写拷贝控制方法进一步记录有I/O缓存中所存储数据块在数据卷所处位置,并进一步依据需首写拷贝数据块在数据卷中所处位置进行所述查找。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102363600A CN102043687B (zh) | 2009-10-20 | 2009-10-20 | 实现数据快照的首写拷贝装置及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102363600A CN102043687B (zh) | 2009-10-20 | 2009-10-20 | 实现数据快照的首写拷贝装置及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043687A true CN102043687A (zh) | 2011-05-04 |
CN102043687B CN102043687B (zh) | 2012-07-25 |
Family
ID=43909840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102363600A Expired - Fee Related CN102043687B (zh) | 2009-10-20 | 2009-10-20 | 实现数据快照的首写拷贝装置及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043687B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150232A (zh) * | 2013-02-01 | 2013-06-12 | 浪潮(北京)电子信息产业有限公司 | 存储快照创建方法和装置 |
CN103412798A (zh) * | 2013-07-18 | 2013-11-27 | 记忆科技(深圳)有限公司 | 混合存储快照的实现方法及系统 |
CN103645996A (zh) * | 2013-12-09 | 2014-03-19 | 龙芯中科技术有限公司 | 内存拷贝的方法、装置和片上系统 |
CN104166606A (zh) * | 2014-08-29 | 2014-11-26 | 华为技术有限公司 | 文件备份方法和主存储设备 |
CN105144105A (zh) * | 2013-02-27 | 2015-12-09 | 网络存储技术公司 | 用于可扩展的崩溃一致的快照操作的系统和方法 |
CN105159842A (zh) * | 2015-08-31 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 存储系统数据写时拷贝的处理方法和处理装置 |
CN107515883A (zh) * | 2016-06-17 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种运行任务的方法和设备 |
CN109491605A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种基于cow的数据存储方法、装置和介质 |
CN109597707A (zh) * | 2018-10-25 | 2019-04-09 | 平安科技(深圳)有限公司 | 克隆卷数据拷贝方法、装置及计算机可读存储介质 |
CN109710498A (zh) * | 2017-10-26 | 2019-05-03 | 华为技术有限公司 | 一种管理日志的方法和装置 |
CN114816250A (zh) * | 2022-04-15 | 2022-07-29 | 北京志凌海纳科技有限公司 | 分布式存储系统下持续数据保护方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061770A (en) * | 1997-11-04 | 2000-05-09 | Adaptec, Inc. | System and method for real-time data backup using snapshot copying with selective compaction of backup data |
CN101140542A (zh) * | 2007-10-19 | 2008-03-12 | 华中科技大学 | 一种缩短写时拷贝快照写响应时间的方法 |
CN101499073B (zh) * | 2008-01-29 | 2011-10-12 | 国际商业机器公司 | 基于访问频率的连续存储数据的存储管理方法和系统 |
CN101482838A (zh) * | 2009-02-06 | 2009-07-15 | 杭州华三通信技术有限公司 | 基于写时拷贝的数据写入方法及设备 |
-
2009
- 2009-10-20 CN CN2009102363600A patent/CN102043687B/zh not_active Expired - Fee Related
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150232B (zh) * | 2013-02-01 | 2016-06-01 | 浪潮(北京)电子信息产业有限公司 | 存储快照创建方法和装置 |
CN103150232A (zh) * | 2013-02-01 | 2013-06-12 | 浪潮(北京)电子信息产业有限公司 | 存储快照创建方法和装置 |
CN105144105B (zh) * | 2013-02-27 | 2019-04-19 | Netapp股份有限公司 | 用于可扩展的崩溃一致的快照操作的系统和方法 |
CN105144105A (zh) * | 2013-02-27 | 2015-12-09 | 网络存储技术公司 | 用于可扩展的崩溃一致的快照操作的系统和方法 |
CN103412798A (zh) * | 2013-07-18 | 2013-11-27 | 记忆科技(深圳)有限公司 | 混合存储快照的实现方法及系统 |
CN103645996A (zh) * | 2013-12-09 | 2014-03-19 | 龙芯中科技术有限公司 | 内存拷贝的方法、装置和片上系统 |
CN103645996B (zh) * | 2013-12-09 | 2016-07-06 | 龙芯中科技术有限公司 | 内存拷贝的方法、装置和片上系统 |
CN104166606A (zh) * | 2014-08-29 | 2014-11-26 | 华为技术有限公司 | 文件备份方法和主存储设备 |
CN104166606B (zh) * | 2014-08-29 | 2018-01-09 | 华为技术有限公司 | 文件备份方法和主存储设备 |
CN105159842A (zh) * | 2015-08-31 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 存储系统数据写时拷贝的处理方法和处理装置 |
CN105159842B (zh) * | 2015-08-31 | 2018-03-27 | 浪潮(北京)电子信息产业有限公司 | 存储系统数据写时拷贝的处理方法和处理装置 |
CN107515883A (zh) * | 2016-06-17 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种运行任务的方法和设备 |
CN109710498A (zh) * | 2017-10-26 | 2019-05-03 | 华为技术有限公司 | 一种管理日志的方法和装置 |
CN109710498B (zh) * | 2017-10-26 | 2020-09-29 | 华为技术有限公司 | 一种管理日志的方法和装置 |
CN109597707A (zh) * | 2018-10-25 | 2019-04-09 | 平安科技(深圳)有限公司 | 克隆卷数据拷贝方法、装置及计算机可读存储介质 |
CN109597707B (zh) * | 2018-10-25 | 2024-04-23 | 平安科技(深圳)有限公司 | 克隆卷数据拷贝方法、装置及计算机可读存储介质 |
CN109491605A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种基于cow的数据存储方法、装置和介质 |
CN114816250A (zh) * | 2022-04-15 | 2022-07-29 | 北京志凌海纳科技有限公司 | 分布式存储系统下持续数据保护方法 |
CN114816250B (zh) * | 2022-04-15 | 2022-10-25 | 北京志凌海纳科技有限公司 | 分布式存储系统下持续数据保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102043687B (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043687B (zh) | 实现数据快照的首写拷贝装置及控制方法 | |
CN102576293B (zh) | 固态存储设备和分层存储系统中的数据管理 | |
US8117374B2 (en) | Flash memory control devices that support multiple memory mapping schemes and methods of operating same | |
US6571326B2 (en) | Space allocation for data in a nonvolatile memory | |
US7877569B2 (en) | Reduction of fragmentation in nonvolatile memory using alternate address mapping | |
CA2673434C (en) | Memory device performance enhancement through pre-erase mechanism | |
KR101717644B1 (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
EP0770960B1 (en) | Flash translation layer block indication map revision method | |
US8489850B2 (en) | Memory apparatus and memory control method | |
US20090193182A1 (en) | Information storage device and control method thereof | |
US20180232314A1 (en) | Method for storing data by storage device and storage device | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
US9122586B2 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
CN101727395A (zh) | 闪存设备的管理系统、方法及闪存设备 | |
CN110515550B (zh) | 一种sata固态硬盘冷热数据分离的方法及其装置 | |
US9176866B2 (en) | Active recycling for solid state drive | |
CN103544110A (zh) | 一种基于固态盘的块级连续数据保护方法 | |
CN102012873B (zh) | Nand闪存的缓存系统及缓存方法 | |
CN109558335B (zh) | 一种基于Nor Flash存储器的嵌入式系统的文件存储格式 | |
US20100318726A1 (en) | Memory system and memory system managing method | |
US20100180072A1 (en) | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
KR20090042077A (ko) | 파일 관리 시스템 및 방법 | |
CN113190180A (zh) | 一种基于混合介质的存储装置及分布式存储系统 | |
US20110047409A1 (en) | Storage device supporting auto backup function |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120725 Termination date: 20201020 |