冗余存储系统、冗余存储方法和冗余存储装置的制造方法

文档序号:10488688阅读:727来源:国知局
冗余存储系统、冗余存储方法和冗余存储装置的制造方法
【专利摘要】本发明实施例提供了一种冗余存储系统、冗余存储方法和冗余存储装置,解决了基于传统冗余存储系统结构容灾处理效率低的问题。该冗余存储系统包括:存储网络;至少两个存储节点,连接至所述存储网络;以及至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质;其中,每个所述存储节点通过所述存储网络访问至少两个存储设备,被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,所述存储块是一个完整的存储介质或者是一个存储介质的一部分。
【专利说明】
冗余存储系统、冗余存储方法和冗余存储装置
技术领域
[0001]本发明涉及数据存储技术领域,具体涉及一种冗余存储系统、冗余存储方法和冗余存储装置。
【背景技术】
[0002]随着计算机应用规模越来越大,对存储空间的需求也与日倶增。对应的,将复数设备的存储资源(比如存储介质)统合为一体作为一个存储池来提供存储服务成为了现在的主流。在传统的冗余存储系统中,该冗余存储系统通常是由TCP/IP网络连接多个分布式存储节点组成的。图1示出现有技术的冗余存储系统的架构示意图。如图1所示,在传统的冗余存储系统中,各存储节点S通过接入网交换机连接到TCP/IP网络(通过核心交换机实现)O每个存储节点都是单独一台物理服务器,每台服务器都有自己的若干存储介质。各存储节点通过如IP网络这样的存储网络连接起来,构成一个存储池。在核心交换机的另一侧,各计算节点C也通过接入网交换机连接到TCP/IP网络(通过核心网交换机实现),以通过TCP/IP网络访问整个存储池。
[0003]在该传统的冗余存储系统中,存储节点位于存储介质侧,存储介质是存储节点所在物理机的内置盘,存储节点相当于是本地物理机内所有存储介质的控制机,存储节点和本地物理机内的所有存储介质构成一个存储设备。虽然每个存储节点S下所挂载的磁盘之间可通过冗余存储的方式实现容灾处理,但当某个存储节点S发生故障后,挂载在该存储节点下的磁盘就都不能再被读写了,而恢复该失效存储节点S所挂载磁盘中的数据会严重影响整个冗余存储系统的工作效率。

【发明内容】

[0004]有鉴于此,本发明实施例提供了一种冗余存储系统、冗余存储方法和冗余存储装置,解决了基于传统冗余存储系统结构容灾处理效率低的问题。
[0005]本发明一实施例提供一种冗余存储系统,包括:
[0006]存储网络;
[0007]至少两个存储节点,连接至所述存储网络;以及
[0008]至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质;
[0009]其中,每个所述存储节点通过所述存储网络访问至少两个存储设备,被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,所述存储块是一个完整的存储介质或者是一个存储介质的一部分。
[0010]本发明一实施例还提供一种冗余存储方法,所适用的冗余存储系统包括:存储网络;至少两个存储节点,连接至所述存储网络;以及至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质;其中,每个所述存储节点通过所述存储网络访问至少两个存储设备;所述方法包括:
[0011]在被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,所述存储块是一个完整的存储介质或者是一个存储介质的一部分。
[0012]本发明一实施例还提供一种冗余存储装置,所适用的冗余存储系统包括:存储网络;至少两个存储节点,连接至所述存储网络;以及至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质;其中,每个所述存储节点通过所述存储网络访问至少两个存储设备;所述冗余存储装置包括:
[0013]冗余存储模块,配置为在被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,所述存储块是一个完整的存储介质或者是一个存储介质的一部分。
[0014]本发明一实施例还提供一种在计算机可读存储介质中实现的计算机程序产品,所述计算机可读存储介质具有存储于其中的计算机可读程序代码部分,所述计算机可读程序代码部分被配置为执行如前所述的冗余存储方法。
[0015]本发明实施例提供的一种冗余存储系统、冗余存储方法和冗余存储装置,存储节点和存储设备是各自独立接入存储网络的,每个存储节点可通过存储网络访问多个存储设备,且被同一个存储节点访问的多个存储设备之间是冗余存储的。这样即使一个存储设备出现故障,该存储设备中的数据仍能通过其他正常工作的存储设备而快速恢复,大大提高了整个冗余存储系统容灾处理效率。
【附图说明】
[0016]图1所示为传统存储系统的架构示意图。
[0017]图2所示为根据本发明一实施例所提供的存储系统的架构示意图。
[0018]图3所示为根据本发明另一实施例所提供的存储系统的架构示意图。
[0019]图4所示为本发明一实施例所提供的采用冗余存储的存储池的结构示意图。
[0020]图5所示为本发明另一实施例所提供的采用冗余存储的存储池的结构示意图。
【具体实施方式】
[0021]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]图2所示为根据本发明一实施例所提供的存储系统的架构示意图。如图2所示。该存储系统包括:存储网络;至少两个存储节点,连接至所述存储网络;以及至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质。在本发明实施例中,存储节点是一种提供存储服务的软件模块,而非通常意义上的包含存储介质在内的硬件服务器。后续的实施例描述中的存储节点也指代相同的概念,因此不再赘述。
[0023]在本发明一实施例中,每个存储节点通过存储网络访问至少两个存储设备,被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,存储块是一个完整的存储介质或者是一个存储介质的一部分。由此可见,由于数据是以冗余存储的方式存储在了不同存储设备的存储块中,因此该存储系统为一种冗余存储系统。
[0024]在传统存储系统结构中,存储节点位于存储介质侧,或者严格来说,存储介质是存储节点所在物理机的内置盘。而在本发明实施例中,存储节点所在的物理机独立于存储设备,存储设备更多作为连接存储介质与存储网络的一个通道,存储节点和存储设备是各自独立接入存储网络的,每个存储节点可通过存储网络访问多个存储设备,且被同一个存储节点访问的多个存储设备之间是冗余存储的,由此实现了同一存储节点下跨存储设备进行的冗余存储。这样即使一个存储设备出现故障,该存储设备中的数据仍能通过其他正常工作的存储设备而快速恢复,大大提高了整个存储系统容灾处理效率。
[0025]这样的方式,使得在需要进行动态平衡时,无需将物理数据在不同的存储介质中进行迀移,只需要通过配置平衡不同的存储节点所管理的存储介质即可。
[0026]在本发明一实施例中,存储网络被配置为使得每一个存储节点都能够无需借助其他存储节点而访问所有存储介质。由此使得本发明所有的存储介质都可被所有的存储节点共享,存储系统中的所有存储介质实际上构成了一个可被所有存储节点访问的全局存储池。
[0027]在本发明另一实施例中,存储节点侧进一步包括计算节点,并且计算节点和存储节点设置在一台物理服务器中,该物理服务器通过存储网络与存储设备连接。利用本发明实施方式所构建的将计算节点和存储节点位于同一物理机的聚合式存储系统,从整体结构而言,可以减少所需物理设备的数量,从而降低成本。同时,计算节点也可以在本地访问到其希望访问的存储资源。另外,由于将计算节点和存储节点聚合在同一台物理服务器上,两者之间数据交换可以简单到仅仅是共享内存,性能特别优异。
[0028]本发明实施例提供的存储系统中,计算节点到存储介质之间的I/O数据路径长度包括:(I)存储介质到存储节点;以及(2)存储节点到聚合在同一物理服务器的计算节点(CPU总线通路)。而相比之下,图1所示现有技术的存储系统,其计算节点到存储介质之间的I/O数据路径长度包括:(I)存储介质到存储节点;(2)存储节点到存储网络接入网交换机;
(3)存储网络接入网交换机到核心网交换机;(4)核心网交换机到计算网络接入网交换机;以及(5)计算网络接入网交换机到计算节点。显然,本发明实施方式的存储系统的总数据路径只接近于传统存储系统的第(I)项。即,本发明实施例提供的存储系统,通过对I/O数据路径长度的极致压缩能够极大地提高了存储系统的I/O通道性能,其实际运行效果非常接近于读写本地硬盘的I/O通道。
[0029]在本发明一实施例中,存储节点可以是物理服务器的一个虚拟机、一个容器、直接运行在服务器的物理操作系统上的一个模块或者上述组合(例如存储节点的一部分在扩展卡上的firmware,另一部分在物理操作系统的一个模块,还有一部分在虚拟机);计算节点也可以是同一个物理机服务器的一个虚拟机、一个容器、直接运行在所述服务器的物理操作系统上的一个模块或者上述组合。在一个实施例中,每个存储节点可以对应一个或多个计算节点。
[0030]具体而言,可以将一台物理服务器分成多个虚拟机,其中一台虚拟机做存储节点用,其它虚拟机做计算节点用;也可是利用物理OS上的一个模块做存储节点用,以便实现更好的性能。[0031 ] 在本发明一实施例中,形成虚拟机的虚拟化技术可以是KVM或Zen或VMware或Hyper-V虚拟化技术,形成所述容器的容器技术可以是Docker或Rockett或Odin或Chef■或LXC 或 Vagrant 或 Ansib Ie或 Zone或 Jai I 或Hyper-V容器技术。
[0032]在本发明一实施例中,各个存储节点同时只负责管理固定的存储介质,并且一个存储介质不会同时被多个存储节点进行写入,以避免数据冲突,从而能够实现每一个存储节点都能够无需借助其他存储节点而访问由其管理的存储介质,并且能够保证存储系统中存储的数据的完整性。
[0033]在本发明一实施例中,可以将系统中所有的存储介质按照存储逻辑进行划分,具体而言,可以将整个系统的存储池划分为存储区域、存储组、存储块这样的逻辑存储层级架构,其中,存储块为最小存储单位。在本发明一实施例中,可以将存储池划分成至少两个存储区域。
[0034]在本发明一实施例中,每一个存储区域可以分为至少一个存储组。在一个较优的实施例中,每个存储区域至少被划分为两个存储组。
[0035]在一些实施例中,存储区域和存储组是可以合并的,从而可以在该存储层级架构中省略一个层级。
[0036]在本发明一实施例中,每个存储区域(或者存储组)可以由至少一个存储块组成,其中存储块可以是一个完整的存储介质、也可以是一个存储介质的一部分。为了在存储区域内部构建冗余存储,每个存储区域(或者存储组)可以由至少两个存储块组成,当其中任何一个存储块出现故障时,可以从该组中其余存储块中计算出完整的被存储数据。冗余存储方式可以为多副本模式、独立冗余磁盘阵列(RAID)模式、纠删码(erase code)模式。在本发明一实施例中,冗余存储方式可以通过ZFS文件系统建立。在本发明一实施例中,为了对抗存储设备/存储介质的硬件故障,每个存储区域(或者存储组)所包含的多个存储块不会位于同一个存储介质中,甚至也不位于同一个存储设备中。在本发明一实施例中,每个存储区域(或者存储组)所包含的任何两个存储块都不会位于同一个存储介质/存储设备中。在本发明另一实施例中,同一存储区域(或者存储组)中位于同一存储介质/存储设备的存储块数量最好小于或等于冗余存储的冗余度。举例说明,当存储冗余采取的RAID5方式时,其冗余存储的冗余度为I,那么位于同一存储设备的同一存储组的存储块数量最多为I;对RAID6,其冗余存储的冗余度为2,那么位于同一存储设备的同一存储组的存储块数量最多为2。
[0037]由于存储组中的存储块实际来自不同的存储设备,存储池的容错级别是与存储组中冗余存储的容错级别有关的,因此在本发明一实施例中,该存储系统进一步包括一个容错级别调整模块,配置为通过调整存储组中允许同时故障的存储块数和/或从存储池的至少两个存储设备中各自选取用于聚合成同一个存储组的存储块数量便可调整存储池的容错级别。具体而言,若以D表示所述存储组中允许同时故障的存储块数,以N表示从所述存储池的至少两个存储设备中各自选取用于聚合成同一个所述存储组的存储块数量,以M表示存储池中允许同时故障的存储设备数量。则该容错级别调整模块所确定的存储池的容错级另IJ为M = D/N,D/N仅取整数位。通过这种方式可根据实际需要而实现不同容错级别的存储系统。
[0038]在本发明一实施例中,每个存储节点都只能读和写自己管理的存储区域。由于多个存储节点对同一个存储块的读操作并不会互相冲突,而多个存储节点同时写一个存储块容易发生冲突,因此,在另一个实施例中,可以是每个存储节点只能写自己管理的存储区域,但是可以读自己管理的存储区域以及其它存储节点管理的存储区域,即写操作是局域性的,但读操作可以是全局性。
[0039]在一个实施方式中,存储系统还可以包括存储控制节点,其连接至存储网络,用于确定每个存储节点管理的存储区域。在另一个实施方式中,每个存储节点可以包括存储分配模块,用于确定该存储节点所管理的存储区域,这可以通过每个存储节点所包括的各个存储分配模块之间的通信和协调处理算法来实现,该算法可以例如以使得各个存储节点之间的负载均衡为原则。
[0040]在一个实施例中,在监测到一个存储节点发生故障时,可以对其他部分或全部存储节点进行配置,使得这些存储节点接管之前由所述发生故障的存储节点管理的存储区域。例如,可以由其中一个存储节点接管出现故障的存储节点管理的存储区域,或者,可以由其它至少两个存储节点进行接管,其中每个存储节点接管出现故障的存储节点管理的部分的存储区域,比如其他至少两个存储节点分别接管该存储区域内的不同存储组。
[0041 ] 在一个实施例中,存储介质可以包括但不限于硬盘、闪存、SRAM、DRAM、NVME或NVRAM等其它形式,存储介质的访问接口可以包括但不限于SAS接口、SATA接口、PCI/e接口、DIMM接口、NVMe接口、SCSI接口、AHCI接口。
[0042]在本发明一实施例中,存储网络可以包括至少一个存储交换设备,通过其中包括的存储交换设备之间的数据交换来实现存储节点对存储介质的访问。具体而言,存储节点和存储介质分别通过存储通道与存储交换设备连接。
[0043]在本发明一实施例中,存储交换设备可以是SAS交换机或PCI/e交换机,对应地,存储通道可以是SAS (串行连接SCSI)通道或PCI/e通道。
[0044]以SAS通道为例,相比传统的基于IP协议的存储方案,基于SAS交换的方案,拥有着性能高,带宽大,单台设备磁盘数量多等优点。在与主机适配器(HBA)或者服务器主板上的SAS接口结合使用后,SAS体系所提供的存储能够很容易的被连接的多台服务器同时访问。
[0045]具体而言,SAS交换机到存储设备之间通过一根SAS线连接,存储设备与存储介质之间也是由SAS接口连接,比如,存储设备内部将SAS通道连到每个存储介质(可以在存储设备内部设置一个SAS交换芯片)。由于SAS网络的带宽可以达到24Gb或48Gb,是千兆以太网的几十倍,以及昂贵的万兆以太网的数倍;同时在链路层SAS比IP网有大约一个数量级的提升,在传输层,由于TCP协议三次握手四次关闭,开销很高且TCP的延迟确认机制和慢启动有时会导致100毫秒级的延时,SAS协议的延时只有TCP的几十分之一,性能有更大的提升。总之,SAS网络比基于以太网的TCP/IP在带宽、延时性方面具有巨大优势。本领域技术人员可以理解,PCI/e通道的性能也可以适应系统的需求。
[0046]在本发明一实施例中,存储网络可以包括至少两个存储交换设备,所述每个存储节点都可以通过任意一个存储交换设备连接到任何一个存储设备,进而连接至存储介质。当任何一个存储交换设备或连接到一个存储交换设备的存储通道出现故障时,存储节点通过其它存储交换设备读写存储设备上的数据。
[0047]参考图3,其示出了根据本发明一个实施方式所构建的一个具体的存储系统30。存储系统30中的存储设备被构建成多台JB0D307-310,分别通过SAS数据线连接至两个SAS交换机305和306,这两个SAS交换机构成了存储系统所包括的存储网络的交换核心。前端为至少两个服务器301和302,每台服务器通过HBA设备(未示出)或主板上SAS接口连接至这两个SAS交换机305和306。服务器之间存在基本的网络连接用来监控和通信。每台服务器中都有一个存储节点,利用从SAS链路获取的信息,管理所有JBOD磁盘中的部分或全部磁盘。具体而言,可以利用本申请文件以上描述的存储区域、存储组、存储块来将JBOD磁盘划分成不同的存储组。每个存储节点都管理一组或多组这样的存储组。当每个存储组内部采用冗余存储的方式时,可以将冗余存储的元数据存在于磁盘之上,使得冗余存储能够被其他存储节点直接从磁盘识别。
[0048]在所示的示例性存储系统30中,存储节点可以安装监控和管理模块,负责监控本地存储和其它服务器的状态。当某台JBOD整体异常,或者JBOD上某个磁盘异常时,数据可靠性由冗余存储来确保。当某台服务器故障时,另一台预先设定好的服务器上的存储节点中的管理模块,将按照磁盘上的数据,在本地识别并接管原来由故障服务器的存储节点所管理的磁盘。故障服务器的存储节点原本对外提供的存储服务,也将在新的服务器上的存储节点得到延续。至此,实现了一种全新的高可用的全局存储池结构。
[0049]可见,所构建的示例性存储系统30提供了一种多点可控的、全局访问的存储池。硬件方面使用多台服务器来对外提供服务,使用JBOD来存放磁盘。将多台JBOD各自连接两台SAS交换机,两台交换机再分别连接服务器的HBA卡,从而确保JBOD上所有磁盘,能够被所有服务器访问。SAS冗余链路也确保了链路上的高可用性。
[0050]在每台服务器本地,利用冗余存储技术,从每台JBOD上选取磁盘组成冗余存储,避免单台JBOD的损失造成数据不可用。当一台服务器失效时,对整体状态进行监控的模块将调度另一台服务器,通过SAS通道访问失效服务器的存储节点所管理的磁盘,快速接管对方负责的这些磁盘,实现高可用的全局存储。
[0051]虽然在图3中是以JBOD存放磁盘为例进行了说明,但是应当理解,如图3所示的本发明的实施方式还支持JBOD以外的存储设备。另外,以上是以一块存储介质(整个的)作为一个存储块为例,也同样适用于将一个存储介质的一部分作为一个存储块的情形。
[0052]本发明一实施例还提供一种冗余存储方法,所适用的存储系统包括:存储网络;至少两个存储节点,连接至存储网络;以及至少两个存储设备,连接至存储网络,每个存储设备包括至少一个存储介质;其中,每个存储节点通过存储网络访问至少两个存储设备;方法包括:
[0053]在被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,存储块是一个完整的存储介质或者是一个存储介质的一部分。
[0054]在本发明一实施例中,该存储系统中的所有存储介质构成一个存储池,且该存储池为如前所述的全局存储池,即存储池中所有的存储介质都可被存储系统中所有的存储节点共享,每一个存储节点都能够无需借助其他存储节点而访问存储池中的所有存储介质。
[0055]具体而言,基于该全局存储池的冗余存储方法可通过如下过程实现:先是从存储池中选取多个存储设备,然后再从该选取的多个存储设备中的每个存储设备中各选取至少一个存储块,将通过以上过程选取的所有存储块聚合成存储组。这样在该存储组中,数据以冗余存储的方式存储于该存储组的所有存储块中。当该存储组中的某个存储块出现故障时,便可利用该存储组中的其他存储块中的数据获取该故障存储块中的数据。
[0056]应当理解,一个存储组中的存储块并不一定来自存储池中所有存储设备,同时存储池中的存储设备也并不一定全部用于进行冗余存储,对于未被选取用于冗余存储的存储设备和存储块,可作为平常不使用的热备设备。
[0057]应当理解,存储组中存储块之间冗余存储的方式可具体通过多副本模式、RAID模式或纠删码模式来实现,本发明对存储组中存储块之间的冗余存储的具体方式不做限定。
[0058]在本发明一实施例中,为了满足根据存储的具体内容而进行的更灵活存储设置,还可以将多个存储组聚合成存储区域。
[0059]如前所述,由于存储组中的存储块实际来自不同的存储设备,存储池的容错级别是与存储组中冗余存储的容错级别有关的,因此存储池的容错级别可通过调整存储组中允许同时故障的存储块数和/或从存储池的至少两个存储设备中各自选取用于聚合成同一个存储组的存储块数量便而进行调整。具体的调整方式可与前述存储系统中容错级别调整模块所执行的方法相同,在此不再赘述。
[0060]由此可见,通过采用本发明实施例所提供的应用于存储系统的冗余冗余存储方法,可通过调整存储组的容错级别以及存储组中存储块的选用策略来实现存储池的不同容错级别,以适应不同程度的实际存储需求。
[0061]图4所示为本发明一实施例所提供的采用冗余存储的存储池的结构示意图。如图4所示,该存储池40包括5个存储设备JBODl?JB0D5,每个存储设备包括5个存储块。该存储池40中的5个存储设备JBODl?JB0D5均被用于冗余存储,且每个存储设备中各选取了一个存储块以纠删码的方式聚合成了存储组。例如,存储块Dl?D5被聚合成了一个存储组Pl,D11?D15可被聚合成另一个存储组。在存储组Pl中,数据以纠删码的方式存储在存储块Dl?D5中,纠删码的校验级别为2,即存储组Pl中允许同时故障的存储块数为2,则该存储池40中允许同时故障的存储设备数量也为2。
[0062]图5所示为本发明另一实施例所提供的采用冗余存储的存储池的结构示意图。如图5所示,该存储池50中的5个存储设备JBODl?JB0D5也均被用于冗余存储,但每个存储设备中各选取了两个存储块以纠删码的方式聚合成了存储组。例如,存储块Dl?D15被聚合成了一个存储组P2,存储块D21?D35则可被聚合成另一个存储组。在存储组P2中,纠删码的校验级别为3,即存储组P2中允许同时故障的存储块数为3个,则该存储池50中允许同时故障的存储设备数量为3/2取整数位=I,即该存储池50中允许同时故障的存储设备数量仅为一个。
[0063]本发明一实施例还提供一种冗余存储装置,所适用的存储系统包括:存储网络;至少两个存储节点,连接至所述存储网络;以及至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质;其中,每个所述存储节点通过所述存储网络访问至少两个存储设备;冗余存储装置包括:
[0064]冗余存储模块,配置为在被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,所述存储块是一个完整的存储介质或者是一个存储介质的一部分。应当理解,该冗余存储模块所执行的方法与前述的冗余存储方法相同,所能实现的功能效果也相同,在此不再赘述。
[0065]本发明一实施例还提供一种计算机可读存储介质的计算机程序产品,包括计算机程序代码,当计算机程序代码由处理器执行时,其使得处理器能够按照本发明实施方式的方法来实现如本文实施方式的冗余存储方法。计算机存储介质可以为任何有形媒介,例如软盘、CD-ROM、DVD、硬盘驱动器、甚至网络介质等。
[0066]应当理解,虽然以上描述了本发明实施方式的一种实现形式可以是计算机程序产品,但是本发明的实施方式的方法或装置可以被依软件、硬件、或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和设备可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的方法和装置可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0067]还应当理解,为了不模糊本发明的实施方式,说明书仅对一些关键、未必必要的技术和特征进行了描述,而可能未对一些本领域技术人员能够实现的特征做出说明。
[0068]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
【主权项】
1.一种冗余存储系统,其特征在于,包括: 存储网络; 至少两个存储节点,连接至所述存储网络;以及 至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质; 其中,每个所述存储节点通过所述存储网络访问至少两个存储设备,被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,所述存储块是一个完整的存储介质或者是一个存储介质的一部分。2.根据权利要求1所述的冗余存储系统,其特征在于,所述存储网络被配置为使得每一个存储节点都能够无需借助其他存储节点而访问所有存储介质。3.根据权利要求2所述的冗余存储系统,其特征在于,所述冗余存储系统所包括的所有存储介质构成一个存储池,将所述存储池划分成至少两个存储区域,每个存储节点负责管理零到多个存储区域。4.根据权利要求3所述的冗余存储系统,其特征在于,每个所述存储区域包括至少两个存储块,组成所述每个存储区域的至少两个存储块被划分为一个或多个存储组,每个存储组内的存储块之间以冗余存储方式保存数据。5.根据权利要求4所述的冗余存储系统,其特征在于,一个所述存储组中位于同一存储设备的存储块数量小于或等于冗余存储的冗余度。6.根据权利要求4所述的冗余存储系统,其特征在于,进一步包括: 容错级别调整模块,配置为通过调整所述存储组中允许同时故障的存储块数和/或从所述存储池的至少两个存储设备中各自选取用于聚合成同一个存储组的存储块数量来调整所述存储池的容错级别。7.根据权利要求6所述的冗余存储系统,其特征在于,以D表示所述存储组中允许同时故障的存储块数,以N表示从所述存储池的至少两个存储设备中各自选取用于聚合成同一个所述存储组的存储块数量,以M表示存储池中允许同时故障的存储设备数量;则所述容错级别调整模块所确定的所述存储池的容错级别为M=D/N,D/N仅取整数位。8.根据权利要求4所述的冗余存储系统,其特征在于,一个存储组在一个存储设备中最多只有一个存储块。9.根据权利要求1至8中任一所述的冗余存储系统,其特征在于,所述冗余存储方式为RAID、纠删码或者多副本模式;或 所述存储设备为JBOD;和/或,所述存储介质是硬盘、闪存、DRAM或NVRAM;和/或所述存储介质的接口是SAS接口、SATA接口、PCI/e接口、DHM接口、NVMe接口、SCSI接口、或AHCI接□ O10.根据权利要求1至8中任一所述的冗余存储系统,其特征在于,所述存储节点是以下几项中的一项或多项的结合:所述服务器的一个虚拟机、一个容器和直接运行在所述服务器的物理操作系统上的一个模块。11.一种冗余存储方法,其特征在于,所适用的冗余存储系统包括:存储网络; 至少两个存储节点,连接至所述存储网络;以及至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质;其中,每个所述存储节点通过所述存储网络访问至少两个存储设备;所述方法包括: 在被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,所述存储块是一个完整的存储介质或者是一个存储介质的一部分。12.根据权利要求11所述的方法,其特征在于,在被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据包括: 将被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块以冗余存储的方式聚合成存储组。13.根据权利要求12所述的方法,其特征在于,所述存储网络被配置为使得每一个存储节点都能够无需借助其他存储节点而访问所有存储介质,所述冗余存储系统所包括的所有存储介质构成一个存储池,其中,所述方法进一步包括: 通过调整所述存储组中允许同时故障的存储块数和/或从所述存储池的至少两个存储设备中各自选取用于聚合成同一个存储组的存储块数量来调整所述存储池的容错级别。14.根据权利要求13所述的方法,其特征在于,通过调整所述存储组中允许同时故障的存储块数和/或从所述存储池的至少两个存储设备中各自选取用于聚合成同一个存储组的存储块数量来调整所述存储池的容错级别包括: 以D表示所述存储组中允许同时故障的存储块数,以N表示从所述存储池的至少两个存储设备中各自选取用于聚合成同一个所述存储组的存储块数量,以M表示存储池中允许同时故障的存储设备数量;则M=D/N,D/N仅取整数位。15.根据权利要求11至14中任一所述的方法,其特征在于,进一步包括:将多个所述存储组聚合成存储区域。16.—种冗余存储装置,其特征在于,所适用的冗余存储系统包括:存储网络;至少两个存储节点,连接至所述存储网络;以及至少两个存储设备,连接至所述存储网络,每个所述存储设备包括至少一个存储介质;其中,每个所述存储节点通过所述存储网络访问至少两个存储设备;所述冗余存储装置包括: 冗余存储模块,配置为在被同一个存储节点访问的至少两个存储设备中的每个存储设备的至少一个存储块间以冗余存储的方式保存数据,其中,所述存储块是一个完整的存储介质或者是一个存储介质的一部分。
【文档编号】G06F11/18GK105843557SQ201610176288
【公开日】2016年8月10日
【申请日】2016年3月24日
【发明人】王东临, 金友兵, 莫仲华
【申请人】天津书生云科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1