CN101291347B - 一种网络存储系统 - Google Patents
一种网络存储系统 Download PDFInfo
- Publication number
- CN101291347B CN101291347B CN2008101144989A CN200810114498A CN101291347B CN 101291347 B CN101291347 B CN 101291347B CN 2008101144989 A CN2008101144989 A CN 2008101144989A CN 200810114498 A CN200810114498 A CN 200810114498A CN 101291347 B CN101291347 B CN 101291347B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- memory node
- redundancy
- redundancy management
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种网络存储系统,包括应用服务器、数据存储节点,还包括用于管理存储资源的地址映射关系的资源分配管理器,以及用于管理数据存储节点间的数据冗余关系的冗余管理节点;其中,所述的应用服务器直接访问所述的数据存储节点,所述的冗余管理节点分别连接到各个数据存储节点的后端,由所述冗余管理节点实现对所述数据存储节点的冗余管理。本发明将冗余管理节点从数据通道的前端转移到存储设备的后端,使得应用服务器上的读写请求可以直接访问存储节点,解决了现有技术中前端集中冗余管理的控制节点的性能瓶颈问题;本发明冗余管理节点先缓存数据然后在系统空闲时计算冗余数据,减少了冗余计算对系统写性能的影响。
Description
技术领域
本发明涉及计算机存储领域,特别涉及一种网络存储系统。
背景技术
在以数据为中心的信息时代,如何妥善有效地保护数据是存储系统的核心问题之一。人们可以忍受计算机异常宕机、所有应用程序重新启动甚至硬件损坏,但是他们要求信息永远不会丢失。存储系统最重要的任务是不论发生什么故障,都要保证存储的信息不能丢失,并且尽力不间断地提供高质量的数据服务。数据信息的毁坏和丢失不但影响到企业的业务连续性,甚至极大地威胁到一个机构的生存。
为了保证存储在磁盘中的数据的安全性,本领域的技术人员提出了独立冗余磁盘阵列(RAID)技术,该技术将多个磁盘组合成一个磁盘阵列,并在各个磁盘中存储其它磁盘的冗余信息,使得当阵列中的某个磁盘发生故障后,可以根据阵列中其它磁盘所存储的冗余信息恢复故障磁盘上的数据。RAID根据实现原理可分为不同的级别,分别用RAID0-RAID7表示。不同级别的RAID系统的工作模式存在较大的差异。
在网络存储系统中同样可以采用上述的RAID技术,无论是何种RAID级别的网络存储系统,从功能上都可以分为控制管理节点和数据存储节点。在图1中给出了现有的网络存储系统的结构图,从图中可以看出,该系统中的控制管理节点在数据存储节点之前,所述的控制管理节点不仅要将数据从应用服务器转发到相应的数据存储节点,而且要对各个数据存储节点的冗余关系进行管理。这种模式的网络存储系统被称为冗余管理前端集中的网络存储系统。这种网络存储系统的优点是实现和管理简单,数据冗余一致性语义易于保证。但该系统也存在着明显的缺点,包括:
1、控制管理节点在数据存储节点之前,导致IO吞吐率受限于控制管理节点的接口带宽和处理能力;
2、控制管理节点转发数据所造成的转发延迟导致IO响应时间增加,不能充分发挥多个数据存储节点并发通讯和并行存储的能力;
3、在控制管理节点中实现的集中式冗余计算也会导致控制管理节点性能的下降;
4、数据小写更新问题还会增加控制管理节点和数据存储节点间的数据块传输负担。
发明内容
本发明的目的是克服现有的网络存储系统由于冗余管理在前端集中所造成的性能缺陷,从而提供一种在后端实现冗余管理的网络存储系统。
为了实现上述目的,本发明提供了一种网络存储设备,包括应用服务器、数据存储节点,还包括用于管理存储资源的地址映射关系的资源分配管理器,以及用于管理数据存储节点间的数据冗余关系的冗余管理节点;其中,
所述的应用服务器通过对所述资源分配管理器的查询得到资源映射地址,并缓存映射关系,在对所述数据存储节点进行数据读写时,根据映射关系直接访问所述的数据存储节点,而不需要经过所述的资源分配管理器(302);所述的冗余管理节点分别连接到各个数据存储节点的后端,由所述冗余管理节点实现对所述数据存储节点的冗余管理。
上述技术方案中,所述数据存储节点包括用于存储原始数据的逻辑卷、用于存储冗余数据的校验卷,访问其他节点数据的网络虚拟磁盘,以及用于与所述冗余管理节点进行数据交换的数据收发单元。
上述技术方案中,所述的冗余管理节点包括用于接收来自所述数据存储节点的拷贝数据的数据接收单元,用于缓存数据的缓存单元,以及用于根据所缓存的数据计算相应冗余数据的冗余数据计算单元。
上述技术方案中,所述的缓存单元由磁盘构成。
上述技术方案中,所述的冗余数据计算单元在所述的冗余管理节点空闲时才对由所述磁盘构成的缓存单元中的数据进行冗余计算,并将冗余计算的结果发送到所述的数据存储节点上。
上述技术方案中,所述的数据存储节点将写请求的数据块以RAID1方式拷贝到所述的冗余管理节点的缓存单元中。
上述技术方案中,所述的冗余管理节点采用RAID 4或RAID 5或RAID 6方式计算冗余数据。
上述技术方案中,所述数据存储节点上还包括冗余组的初始化位图表,所述的冗余组的初始化位图表通过对逻辑卷和校验卷做清零操作来完成冗余组同步。
上述技术方案中,所述数据存储节点上还包括数据块更新位图表,所述的数据块更新位图表记录了数据块在所述的冗余管理节点上是否存在数据块的镜像。
上述技术方案中,所述数据存储节点上还包括冗余组的重构位图表,所述的冗余组的重构位图表用于记录哪些数据块已经被重构。
上述技术方案中,所述冗余管理节点还包括缓存数据块索引表,所述的缓存数据块索引表记录了冗余节点的磁盘缓存了哪些数据块和校验块,以及对应的数据块是否进行了冗余计算。
本发明还提供了一种在所述网络存储设备上存储数据的方法,用于RAID状态为正常状态或重构状态下数据块已被重构完的情况,该方法包括以下步骤:
步骤1)、所述的应用服务器向一个数据存储节点发送所要存储的数据;
步骤2)、所述的数据存储节点将所要存储的数据分别存储在数据存储节点本身以及冗余管理节点上,组成镜像冗余;
步骤3)、所述的冗余管理节点先在磁盘上缓存数据,然后在设备空闲或冗余管理节点上的磁盘剩余空间不足时,根据所要存储的数据计算相应的冗余数据,并存储到所述的数据存储节点上。
本发明还提供了一种在所述网络存储设备上存储数据的方法,用于RAID状态为降级状态或重构状态下数据块未被重构的情况,该方法包括以下步骤:
步骤1)、所述的应用服务器向一个数据存储节点发送所要存储的数据;
步骤2)、所述的数据存储节点将所要存储的数据拷贝到冗余管理节点上;
步骤3)、所述的冗余管理节点对所要存储的数据同步计算相应的冗余数据,并存储到所述的数据存储节点上。
本发明又提供了一种在所述网络存储设备上读取数据的方法,用于RAID状态为正常状态或重构状态下数据块已被重构完的情况,该方法包括:所述的应用服务器从所要读取数据所在的数据存储节点上直接读取数据并返回。
本发明还提供了一种在所述网络存储设备上读取数据的方法,用于RAID状态为降级状态或重构状态下数据块未被重构的情况,该方法包括:
步骤1)、所述的应用服务器向所要读取数据所在的数据存储节点发出读请求,若所要读取的数据在所述数据存储节点的缓存中,则直接读取并返回,否则执行下一步;
步骤2)、所述的数据存储节点将读请求转发给冗余管理节点,若所要读取的数据在所述冗余管理节点的缓存中,则直接读取并返回,否则从其它的数据存储节点上读取相关的冗余数据,然后根据所述冗余数据计算得到所要读取的数据,最后返回该数据。
本发明的优点在于:
1、本发明将冗余管理节点从数据通道的前端转移到存储设备的后端,使得读写请求可以直接访问存储节点,解决了现有技术中前端集中冗余管理的控制节点的性能瓶颈问题。
2、本发明将写请求数据由存储节点镜像到冗余管理节点,缓存到磁盘中,并在系统空闲时计算冗余数据,减少了冗余计算对系统写性能的影响。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1为现有的网络存储系统的结构图;
图2为本发明的网络存储系统的一个具体实施例的结构图;
图3为本发明的网络存储系统在正常状态下的写操作的流程示意图;
图4为本发明的网络存储系统在降级状态下的写操作的流程示意图;
图5为本发明的网络存储系统在降级状态下的读操作的流程示意图;
图6为本发明的网络存储系统在重构状态下的写操作的流程示意图;
图7为本发明的网络存储系统在重构状态下的读操作的流程示意图;
图8为本发明的网络存储系统在重构状态下恢复丢失数据的流程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步说明。
在图2中给出了本发明的网络存储系统的一个实施例,从该实施例中可以看出,除了网络存储系统中常见的应用服务器300以及数据存储节点301外,还包括有用于管理存储资源的地址映射关系的资源分配管理器302、以及用于管理数据存储节点间的数据冗余关系的冗余管理节点304;其中,所述的资源分配管理器302采用带外存储管理机制,即控制命令和数据传输通道相分离,应用服务器300通过对资源分配管理器302的查询得到资源映射地址,并缓存映射关系,在对数据存储节点302进行数据读写时,根据映射关系直接访问数据存储节点301,而不需要经过资源分配管理器302。所述的冗余管理节点304位于数据通道的后端,即冗余管理节点304分别连接到各个数据存储节点301的后端,由该冗余管理节点304实现对各个数据存储节点301的后端集中冗余管理。
在上述系统中,数据存储节点301包括有逻辑卷、校验卷、虚拟磁盘以及数据收发单元。在逻辑卷上存储实际的用户数据,在校验卷上存储与冗余相关的校验块数据,假设在本实施例中,采用RAID5方式存储冗余数据,则所述的校验块数据是RAID5冗余组的校验块数据。数据收发单元用于实现与应用服务器300间直接的数据交换。
冗余管理节点304中包括数据接收单元、缓存单元以及冗余数据计算单元。数据接收单元接收来自数据存储节点的拷贝数据,然后将数据存储到缓存单元中,冗余数据计算单元则从缓存单元中取出数据,根据这些数据计算相应的冗余数据,最后将相应的计算结果返回到数据存储节点301的校验卷中。本发明中的缓存单元由磁盘构成,与现有技术中常见的Cache相比,由磁盘构成的缓存单元所缓存的数据量更大,使得冗余管理节点304在计算冗余数据时,不需要因为Cache容量有限的原因而定时计算,可以在冗余管理节点空闲的时候才进行相应的计算,降低了该节点的工作负载,提高了工作效率。此外,冗余管理节点304还提供了两种冗余数据管理方式,其中,冗余管理节点304中的缓存利用RAID1方式对数据存储节点中的数据块做数据镜像操作,然后通过RAID5方式对所缓存的数据进行后台的冗余计算,最后将冗余计算的结果返回到相应的数据存储节点上。本领域的普通技术人员应当了解,虽然在本实施例中所提到的两种冗余数据管理方式为RAID1方式和RAID5方式,但在其它实施例中可以改用其它的冗余数据管理方式,如RAID1方式和RAID4方式,RAID0方式和RAID5方式等。
在上述的数据存储节点301和冗余管理节点304中存储有网络存储系统的元数据,所述元数据包括对系统启动时的状态进行记录的元数据,以及系统运行过程中记录数据块的状态的元数据。其中,与系统状态相关的元数据记录了组成网络存储系统的各个数据存储节点的名称,逻辑卷和校验卷的大小、创建时间,网络接口等。这些元数据信息存储在数据存储节点的逻辑卷和校验卷的保留区域内以及冗余管理节点上。当系统重新启动时,各个数据存储节点分别从各自的逻辑卷和校验卷上读取与系统状态信息相关的元数据,然后在冗余管理节点上比对这些元数据,如果元数据一致,则系统启动正常,进入工作状态;如果不一致,则系统检查元数据信息,并重新同步不匹配的信息,如果多组元数据不一致性,将导致网络存储系统不能启动。
系统运行过程中记录数据块的状态的元数据包括:数据存储节点上的RAID5初始化位图表、数据块更新位图表和RAID5重构位图表,还有冗余管理节点上的缓存数据块索引表。下面分别对这些元数据的作用进行相应的说明。
数据存储节点上:
(1)、RAID5初始化位图表(冗余组初始化位图表)
当网络RAID设备刚创建后,需要同步RAID5条带数据,在数据存储节点上记录RAID5初始化位图表,对逻辑卷和校验卷做清零操作来完成RAID5同步。和集中计算RAID5校验和的同步方法比,能够更大地发挥多个存储节点并发读写能力。
(2)、数据块更新位图表
在数据存储节点上,所述的元数据采用数据更新位图(bitmap)表的形式,该表中记录了数据块在冗余管理节点上是否存在旧数据块的镜像。如果没有,则在数据存储节点上的数据块被覆盖写前,要拷贝数据到冗余管理节点上,每次旧数据块拷贝后,bitmap表对应位置1;如果bitmap表对应位为1,只需拷贝新数据块到冗余管理节点。当冗余管理节点对该数据块完成RAID5计算后,要释放冗余管理节点上数据块占用的空间时,需要再将数据存储节点bitmap表对应位重置为0。
(3)、RAID5重构位图表(冗余组重构位图表)
当网络RAID设备数据重构时,需要记录哪些数据块已经重构,在存储节点和冗余管理节点上分别记录重构块表,存储节点上的重构块表用来指示是从本地读写,还是从冗余管理节点。
冗余管理节点上的缓存数据块索引表:
该缓存数据块表以地址为索引的B+树记录了冗余节点的磁盘缓存了哪些数据块和校验块,以及对应的数据块是否进行了RAID5计算。当数据存储节点镜像写数据块到冗余管理节点时,增加数据块索引项;当冗余管理节点进行后台RAID5计算时,从缓存索引表中选择数据块进行RAID5更新。当释放数据块后,删除掉对应的数据块索引项。降级和重构状态读数据时,也要查询缓存索引表是否在冗余管理节点的磁盘上缓存了请求的数据。
通过上述的各种元数据以及数据结构,可以实现对本发明的网络存储系统的操作。在网络存储系统中,RAID包括正常、降级、重构和失效四种状态。其中的正常是指系统的各部件无故障;降级是指有一个部件故障,但丢失数据可以由其他节点上的数据重构得到;重构是指故障修复后,用其他节点上的数据重构恢复丢失数据到新节点上;降级和重构状态数据都不会丢失。失效是指多个节点故障,超出了系统冗余能力,导致数据丢失。下面对前面的三种状态下,本发明的网络存储系统所要完成的读写操作的具体过程进行说明。
1、正常状态下的数据写
图3出示正常状态下的数据写流程以及冗余管理节点缓存写请求数据和计算RAID5流程。
(1)、应用服务器上的应用程序向应用服务器上的网络虚拟磁盘发起写请求;
(2)、网络虚拟磁盘将写请求通过网络数据传输协议传给数据存储节点;
(3)、根据冗余协议将写请求数据记录在数据存储节点和冗余管理节点上,组成RAID1镜像冗余;具体包括:
(3.1)、数据存储节点将写请求数据转发给数据存储节点的底层磁盘设备;
(3.2)、数据存储节点将写请求数据转发给冗余管理节点;
(3.3)、步骤(3.1)和(3.2)中所述的写请求完成后,分别返回写请求完成信息;如果冗余管理节点上,没有与写请求相关数据块的旧数据块(参与RAID5计算的数据块),需要先读取存储节点上的旧数据块传输到冗余管理节点上;
(4)、将镜像写请求完成信息返回给应用服务器;
(5)、应用服务器上的网络虚拟磁盘返回写请求完成信息给上层存储应用。
在上述的步骤(3)中,写请求数据写到冗余管理节点后,首先存储在冗余管理节点的内存缓存中,内存缓存对写请求数据的管理步骤如下:
{1}、缓存由数据存储节点传输的数据块,再将多个数据块顺序写到磁盘上;
{2}、数据块写到磁盘后,返回写操作完成信息。
在冗余管理节点上,存储在内存缓存中的写请求数据并非即时写到磁盘中,而是当系统空闲或者磁盘剩余空间超过指定阈值时,才需要计算多个存储节点的RAID5校验数据,进而释放RAID1镜像数据。具体步骤如下:
[1]、从冗余管理节点的磁盘上读取数据块和其旧数据块,再从对应存储节点上读取旧校验块,根据RAID5公式计算得到新的校验和;
[2]、发起新的校验和的写请求到这个RAID5条带对应的存储节点上;
[3]、存储节点接到的写请求转发给底层磁盘设备;
[4]、存储节点的磁盘设备返回写请求完成信息;
[5]、冗余管理节点接收新校验和的写请求完成信息,根据系统空间占用和数据活跃度的情况决定是否释放RAID1镜像数据。
2、正常状态下的数据读
在正常状态下读取数据时,应用服务器从数据存储节点上直接读取所请求的数据,读请求对冗余管理节点透明。数据读过程较为简单,此处不再做重复性说明。
3、降级状态下的数据写
当某个数据存储节点出现故障时,系统进入降级状态,对故障的数据存储节点上的数据写操作如附图4所示,与正常状态下的数据写操作相比,在降级状态下的数据写操作由于存储节点的磁盘故障取消请求的磁盘写操作,为保证有一份数据存储到持久设备上,将冗余管理节点上的在空闲时间或者资源达到阈值后所发起的后台写磁盘操作变为同步操作,直到数据写到磁盘上才返回写确认。
4、降级状态下的数据读
在降级状态下,对发生故障的数据存储节点上的数据读操作如附图5所示,包括以下步骤:
(1)、应用服务器上的应用程序向应用服务器的网络虚拟磁盘发起读请求;
(2)、网络虚拟磁盘将磁盘读请求通过网络数据传输协议传给数据存储节点;
(3)、数据存储节点判断缓存中是否存在对应的读请求块,如果存在则执行步骤(6),如果不存在,则将读请求转发给冗余管理节点;
(4)、判断冗余管理节点的缓存中是否存在对应的读请求块,若存在则执行步骤(5),否则执行以下步骤:
(4.1)、在冗余管理节点的磁盘上查询是否存储有该读请求块信息,如果不存在则执行步骤(4.3),否则从磁盘上读取该请求块;
(4.2)、当读请求完成后,返回请求块信息,然后执行步骤(5);
(4.3)、冗余管理节点向读请求块组成RAID5冗余条带的多个数据存储节点设备发起相关块读请求;
(4.4)、数据存储节点查询内存中是否缓存读请求的数据块,是则执行步骤(4.6),否则将读请求转发给底层的磁盘设备;
(4.5)、当从磁盘设备上获取实际的读请求信息后,返回读请求完成信息;
(4.6)、将读请求的数据返回给冗余管理节点;
(4.7)、当多个相关存储节点的所有读请求都返回后,根据RAID5恢复算法计算得到故障的存储节点上丢失的数据块;
(5)、冗余管理节点将重构得到读请求的数据返回给故障的存储节点;
(6)、故障的存储节点将读请求的数据返回给应用服务器上的网络虚拟磁盘;
(7)、网络虚拟磁盘返回读请求完成信息和实际的读请求数据。
5、重构状态下的数据写
当故障的数据存储节点修复后,系统进入重构状态,冗余管理节点启动重构进程,重构丢失的数据,在刚修复的数据存储节点上的数据写操作的步骤如附图6所示。
和降级状态写流程区别是增加了查询存储节点上磁盘是否已经重构完了写请求的数据块。如果重构完,按照正常状态的写请求进行数据镜像;如果没有,则按照降级状态的写操作处理,具体可参见附图6中的(3.1)和(3.2)。
6、重构状态下的数据读
在重构状态下,在刚修复的数据存储节点上的数据读操作的步骤如附图7所示:与降级状态下的读操作流程的区别在于,在存储节点上增加查询其磁盘设备上是否已经重构完读请求需要的数据块,如果重构完,按照正常状态的读请求直接从磁盘上读取数据;如果没有,则按照降级状态的读协议操作,具体可参见附图7中的(3)和(4)。
7、重构状态下对丢失数据的恢复
冗余管理节点是系统中数据冗余关系的集中管理点,当存储节点故障修复后,由冗余管理节点来完成丢失数据的重构,具体步骤如附图8所示,包括:
(1)、读取冗余管理节点的磁盘上所缓存的数据;
(2)、返回磁盘上缓存的数据,查询冗余关系记录表,对已经完成RAID5同步的数据执行步骤(4),对没有完成RAID5同步的数据要先完成RAID5同步,然后执行转到(3);
(3)、恢复故障的数据存储节点上所丢失的数据,具体包括:
(3.1)、向组成RAID5条带的多个数据存储节点设备发起读请求;
(3.2)、每个数据存储节点设备将读请求转发给底层磁盘设备;
(3.3)、当从磁盘设备上获取实际的读请求信息后,返回读请求完成信息;
(3.4)、将读请求的数据返回给冗余管理节点;
(3.5)、当多个相关存储节点设备的所有读请求都返回后,根据RAID5恢复算法计算得到故障的存储节点上丢失的数据块;
(4)、将重构完的数据块以写请求方式传送给刚修复的数据存储节点设备;
(5)、刚修复的数据存储节点设备将数据写到磁盘设备上;
(6)、刚修复的数据存储节点设备的磁盘设备完成写操作;
(7)、数据存储节点设备通知冗余管理节点重构写请求完成。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (15)
1.一种网络存储设备,包括应用服务器(300)、数据存储节点(301),其特征在于,还包括用于管理存储资源的地址映射关系的资源分配管理器(302),以及用于管理数据存储节点间的数据冗余关系的冗余管理节点(304);其中,
所述的应用服务器(300)通过对所述资源分配管理器(302)的查询得到资源映射地址,并缓存映射关系,在对所述数据存储节点(301)进行数据读写时,根据映射关系直接访问所述的数据存储节点(301),而不需要经过所述的资源分配管理器(302);所述的冗余管理节点(304)分别连接到各个数据存储节点(301)的后端,由所述冗余管理节点(304)实现对所述数据存储节点(301)的冗余管理。
2.根据权利要求1所述的网络存储设备,其特征在于,所述数据存储节点(301)包括用于存储原始数据的逻辑卷、用于存储冗余数据的校验卷,访问其他节点数据的网络虚拟磁盘,以及用于与所述冗余管理节点(304)进行数据交换的数据收发单元。
3.根据权利要求1所述的网络存储设备,其特征在于,所述的冗余管理节点(304)包括用于接收来自所述数据存储节点(301)的拷贝数据的数据接收单元,用于缓存数据的缓存单元,以及用于根据所缓存的数据计算相应冗余数据的冗余数据计算单元。
4.根据权利要求3所述的网络存储设备,其特征在于,所述的缓存单元由磁盘构成。
5.根据权利要求4所述的网络存储设备,其特征在于,所述的冗余数据计算单元在所述的冗余管理节点空闲时才对由所述磁盘构成的缓存单元中的数据进行冗余计算,并将冗余计算的结果发送到所述的数据存储节点(301)上。
6.根据权利要求3所述的网络存储设备,其特征在于,所述的数据存储节点(301)将写请求的数据块以RAID1方式拷贝到所述的冗余管理节点的缓存单元中。
7.根据权利要求3所述的网络存储设备,其特征在于,所述的冗余管理节点(304)采用RAID 4或RAID 5或RAID 6方式计算冗余数据。
8.根据权利要求2所述的网络存储设备,其特征在于,所述数据存储节点(301)上还包括冗余组的初始化位图表,所述的冗余组的初始化位图表通过对逻辑卷和校验卷做清零操作来完成冗余组同步。
9.根据权利要求2所述的网络存储设备,其特征在于,所述数据存储节点(301)上还包括数据块更新位图表,所述的数据块更新位图表记录了数据块在所述的冗余管理节点(304)上是否存在数据块的镜像。
10.根据权利要求2所述的网络存储设备,其特征在于,所述数据存储节点(301)上还包括冗余组的重构位图表,所述的冗余组的重构位图表用于记录哪些数据块已经被重构。
11.根据权利要求3所述的网络存储设备,其特征在于,所述冗余管理节点(304)还包括缓存数据块索引表,所述的缓存数据块索引表记录了冗余节点的磁盘缓存了哪些数据块和校验块,以及对应的数据块是否进行了冗余计算。
12.一种在权利要求1-11所述网络存储设备上存储数据的方法,用于RAID状态为正常状态或重构状态下数据块已被重构完的情况,该方法包括以下步骤:
步骤1)、所述的应用服务器(300)向一个数据存储节点(301)发送所要存储的数据;
步骤2)、所述的数据存储节点(301)将所要存储的数据分别存储在数据存储节点(301)本身以及冗余管理节点(304)上,组成镜像冗余;
步骤3)、所述的冗余管理节点(304)先在磁盘上缓存数据,然后在设备空闲或冗余管理节点(304)上的磁盘剩余空间不足时,根据所要存储的数据计算相应的冗余数据,并存储到所述的数据存储节点(301)上。
13.一种在权利要求1-11所述网络存储设备上存储数据的方法,用于RAID状态为降级状态或重构状态下数据块未被重构的情况,该方法包括以下步骤:
步骤1)、所述的应用服务器(300)向一个数据存储节点(301)发送所要存储的数据;
步骤2)、所述的数据存储节点(301)将所要存储的数据拷贝到冗余管理节点(304)上;
步骤3)、所述的冗余管理节点(304)对所要存储的数据同步计算相应的冗余数据,并存储到所述的数据存储节点(301)上。
14.一种在权利要求1-11所述网络存储设备上读取数据的方法,用于RAID状态为正常状态或重构状态下数据块已被重构完的情况,该方法包括:所述的应用服务器(300)从所要读取数据所在的数据存储节点(301)上直接读取数据并返回。
15.一种在权利要求1-11所述网络存储设备上读取数据的方法,用于RAID状态为降级状态或重构状态下数据块未被重构的情况,该方法包括:
步骤1)、所述的应用服务器(300)向所要读取数据所在的数据存储节点(301)发出读请求,若所要读取的数据在所述数据存储节点(301)的缓存中,则直接读取并返回,否则执行下一步;
步骤2)、所述的数据存储节点(301)将读请求转发给冗余管理节点(304),若所要读取的数据在所述冗余管理节点(304)的缓存中,则直接读取并返回,否则从其它的数据存储节点上读取相关的冗余数据,然后根据所述冗余数据计算得到所要读取的数据,最后返回该数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101144989A CN101291347B (zh) | 2008-06-06 | 2008-06-06 | 一种网络存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101144989A CN101291347B (zh) | 2008-06-06 | 2008-06-06 | 一种网络存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101291347A CN101291347A (zh) | 2008-10-22 |
CN101291347B true CN101291347B (zh) | 2010-12-22 |
Family
ID=40035416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101144989A Active CN101291347B (zh) | 2008-06-06 | 2008-06-06 | 一种网络存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101291347B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491360A (zh) * | 2017-07-21 | 2017-12-19 | 山东九州信泰信息科技股份有限公司 | 对数据表中记录进行分级别冗余存储的方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488104B (zh) * | 2009-02-26 | 2011-05-04 | 北京云快线软件服务有限公司 | 一种实现高效安全存储的系统和方法 |
CN101645038A (zh) * | 2009-05-20 | 2010-02-10 | 中国科学院声学研究所 | 基于彼特森的网络存储结构的数据存储方法 |
CN101741866B (zh) * | 2010-02-01 | 2012-12-12 | 浪潮(北京)电子信息产业有限公司 | 一种在线存储系统及方法 |
US9571576B2 (en) * | 2010-11-30 | 2017-02-14 | International Business Machines Corporation | Storage appliance, application server and method thereof |
CN102053802B (zh) * | 2010-12-31 | 2012-09-05 | 中国科学院计算技术研究所 | 网络独立冗余磁盘阵列系统 |
CN102136003A (zh) * | 2011-03-25 | 2011-07-27 | 上海交通大学 | 大规模分布式存储系统 |
CN102999399B (zh) * | 2012-11-13 | 2016-08-03 | 浙江宇视科技有限公司 | 一种jbod阵列自动恢复存储的方法和装置 |
CN103207762B (zh) * | 2013-04-23 | 2016-03-23 | 深圳市京华科讯科技有限公司 | 存储虚拟化系统 |
CN103608784B (zh) * | 2013-06-26 | 2015-06-10 | 华为技术有限公司 | 网络卷创建方法、数据存储方法、存储设备和存储系统 |
CN103488772A (zh) * | 2013-09-27 | 2014-01-01 | 珠海金山网络游戏科技有限公司 | 一种通过外存对文件进行缓存的方法、系统及设备 |
WO2016051512A1 (ja) * | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
CN106201328B (zh) * | 2015-05-29 | 2019-02-26 | 中国移动通信集团浙江有限公司 | 一种管理存储节点的磁盘空间的方法、装置和服务器 |
CN105183666B (zh) * | 2015-09-14 | 2018-04-27 | 浪潮(北京)电子信息产业有限公司 | 一种调度控制方法、装置及系统 |
CN106940700B (zh) * | 2016-01-05 | 2021-11-12 | 南京中兴新软件有限责任公司 | 分布式文件系统的覆盖写方法、装置及系统 |
CN106227464B (zh) * | 2016-07-14 | 2019-03-15 | 中国科学院计算技术研究所 | 一种双层冗余存储系统及其数据写入、读取及恢复方法 |
CN107181826A (zh) * | 2017-07-14 | 2017-09-19 | 长沙开雅电子科技有限公司 | 一种新型集群存储缓存数据同步实现方法 |
WO2019127021A1 (zh) * | 2017-12-26 | 2019-07-04 | 华为技术有限公司 | 存储系统中存储设备的管理方法及装置 |
CN108874314A (zh) * | 2018-05-31 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种独立冗余磁盘阵列的重构方法及装置 |
JP7316242B2 (ja) * | 2020-03-18 | 2023-07-27 | 株式会社日立製作所 | ストレージシステムおよびデータ転送方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652090A (zh) * | 2005-02-23 | 2005-08-10 | 北京邦诺存储科技有限公司 | 网络存储系统中的数据管理方法及其构建的网络存储系统 |
CN1812345A (zh) * | 2006-03-08 | 2006-08-02 | 杭州华为三康技术有限公司 | 虚拟化网络存储系统及其网络存储设备 |
-
2008
- 2008-06-06 CN CN2008101144989A patent/CN101291347B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652090A (zh) * | 2005-02-23 | 2005-08-10 | 北京邦诺存储科技有限公司 | 网络存储系统中的数据管理方法及其构建的网络存储系统 |
CN1812345A (zh) * | 2006-03-08 | 2006-08-02 | 杭州华为三康技术有限公司 | 虚拟化网络存储系统及其网络存储设备 |
Non-Patent Citations (1)
Title |
---|
张建中等.一种基于SAN 架构的存储网络系统的设计与实现.《中南大学学报(自然科学版)》.2008,第39卷(第2期),350-355. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491360A (zh) * | 2017-07-21 | 2017-12-19 | 山东九州信泰信息科技股份有限公司 | 对数据表中记录进行分级别冗余存储的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101291347A (zh) | 2008-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101291347B (zh) | 一种网络存储系统 | |
CN103761058B (zh) | Raid1和raid4混合结构网络存储系统及方法 | |
US9026696B1 (en) | Using I/O track information for continuous push with splitter for storage device | |
US9235481B1 (en) | Continuous data replication | |
US6912669B2 (en) | Method and apparatus for maintaining cache coherency in a storage system | |
US9317375B1 (en) | Managing cache backup and restore for continuous data replication and protection | |
US6408400B2 (en) | Disk array device | |
US9003138B1 (en) | Read signature command | |
US8583885B1 (en) | Energy efficient sync and async replication | |
US7159150B2 (en) | Distributed storage system capable of restoring data in case of a storage failure | |
US8060772B2 (en) | Storage redundant array of independent drives | |
US8010837B2 (en) | Storage sub system and data restoration method thereof | |
US8706700B1 (en) | Creating consistent snapshots across several storage arrays or file systems | |
JP4124348B2 (ja) | 記憶システム | |
US9946655B2 (en) | Storage system and storage control method | |
US8356292B2 (en) | Method for updating control program of physical storage device in storage virtualization system and storage virtualization controller and system thereof | |
CN102053802B (zh) | 网络独立冗余磁盘阵列系统 | |
US20060212644A1 (en) | Non-volatile backup for data cache | |
US20130103650A1 (en) | Storage array snapshots for logged access replication in a continuous data protection system | |
US20040044705A1 (en) | Optimized disk repository for the storage and retrieval of mostly sequential data | |
JP2000099282A (ja) | ファイル管理システム | |
CN101436149B (zh) | 磁盘阵列数据重建方法 | |
JP2009501382A (ja) | マルチライタシステムにおける書き込み順序忠実性の維持 | |
CN107329708A (zh) | 一种分布式存储系统实现缓存数据的方法及系统 | |
CN106227464B (zh) | 一种双层冗余存储系统及其数据写入、读取及恢复方法 |
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 |