存储方法以及存储系统与流程

文档序号:14594920发布日期:2018-06-05 05:06阅读:140来源:国知局
本发明涉及计算机存储
技术领域
,特别涉及一种存储方法以及存储系统。
背景技术
:对象存储是一种海量、弹性、高可用、高性价比的云存储服务。在对象存储系统中,数据一般要以多个副本的形式存储在不同的磁盘上。对于有一定规模的存储集群来说,如何管理集群中的磁盘,对数据的可靠性、整个系统的性能和运营成本有着至关重要的影响。技术实现要素:本发明所要实现的一个目的是:提出一种新的存储方法,对存储集群中的磁盘进行有效的管理。根据本发明的一个方面,提供的一种存储方法,包括:为欲写入的存储对象从磁盘矩阵中随机选取一个虚拟磁盘;将欲写入的存储对象的各个副本分别写入虚拟磁盘对应的各个物理磁盘中;其中,同一虚拟磁盘对应的各个物理磁盘是从存储集群中各个服务器的物理磁盘中随机选取的。在一个实施例中,该方法还包括:统计故障物理磁盘在磁盘矩阵中出现的各个位置;为每个位置的故障物理磁盘从存储集群中随机选取一个替代物理磁盘,其中,每个位置的替代磁盘与该位置的故障物理磁盘所属的虚拟磁盘所对应的正常物理磁盘属于不同的物理磁盘;将每个位置的故障物理磁盘所属的虚拟磁盘所对应的存储对象的副本,恢复到该位置的替代物理磁盘中。在一个实施例中,该方法还包括:选取磁盘矩阵的每列中出现次数最多的物理磁盘确定为高频率物理磁盘;将高频率物理磁盘按照预设比例替换为新的物理磁盘。在一个实施例中,将高频率物理磁盘按照预设比例替换为新的物理磁盘包括:按照预设比例在磁盘矩阵的每列中选取高频率物理磁盘的替换位置;将高频率物理磁盘在替换位置对应的存储对象的副本,恢复到新的物理磁盘中。在一个实施例中,该方法还包括:确定磁盘矩阵的行数和列数,每行设置一个虚拟磁盘;为每个虚拟磁盘从存储集群中随机选取物理磁盘放入该虚拟磁盘所在行的列中;建立每一行的各个物理磁盘与该行的虚拟磁盘的对应关系,以形成磁盘矩阵。根据本发明的另一个方面,提供的一种存储系统,包括:虚拟磁盘选取模块,用于为欲写入的存储对象从磁盘矩阵中随机选取一个虚拟磁盘;副本写入模块,用于将欲写入的存储对象的各个副本分别写入虚拟磁盘对应的各个物理磁盘中;其中,同一虚拟磁盘对应的各个物理磁盘是从存储集群中各个服务器的物理磁盘中随机选取的。在一个实施例中,该系统还包括:故障磁盘替换模块,用于统计故障物理磁盘在磁盘矩阵中出现的各个位置,为每个位置的故障物理磁盘从存储集群中随机选取一个替代物理磁盘,其中,每个位置的替代磁盘与该位置的故障物理磁盘所属的虚拟磁盘所对应的正常物理磁盘属于不同的物理磁盘,将每个位置的故障物理磁盘所属的虚拟磁盘所对应的存储对象的副本,恢复到该位置的替代物理磁盘中。在一个实施例中,该系统还包括:新磁盘上线模块,用于选取磁盘矩阵的每列中出现次数最多的物理磁盘确定为高频率物理磁盘,将高频率物理磁盘按照预设比例替换为新的物理磁盘。在一个实施例中,新磁盘上线模块,用于按照预设比例在磁盘矩阵的每列中选取高频率物理磁盘的替换位置,将高频率物理磁盘在替换位置对应的存储对象的副本,恢复到新的物理磁盘中。在一个实施例中,该系统还包括:磁盘矩阵构建模块,用于确定磁盘矩阵的行数和列数,每行设置一个虚拟磁盘,为每个虚拟磁盘从存储集群中随机选取物理磁盘放入该虚拟磁盘所在行的列中,建立每一行的各个物理磁盘与该行的虚拟磁盘的对应关系,以形成磁盘矩阵。本发明中通过虚拟磁盘可以实现对存储集群中属于不同服务器的物理磁盘进行统一管理,进行对象存储时采用随机选取虚拟磁盘的方式,并且由于虚拟磁盘对应的物理磁盘也是随机选取的,使得所有服务器有均等的机会被写入数据,数据均匀地被存储到所有服务器上,保证了各台服务器的负载均衡,实现了对存储集群中磁盘的有效管理,此外,由于同一对象的不同副本存储在不同的服务器上,还可以避免由于某台服务器的损坏造成某些对象的副本全部丢失无法恢复的问题。通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出本发明的一个实施例的存储方法的流程示意图。图2示出本发明的另一个实施例的存储方法的流程示意图。图3示出本发明的又一个实施例的存储方法的流程示意图。图4示出本发明的一个实施例的存储系统的结构示意图。图5示出本发明的另一个实施例的存储系统的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提出了一种新的存储方法,能够实现对存储集群中的磁盘的有效管理。下面结合图1描述本发明的存储方法。图1为本发明存储方法一个实施例的流程图。如图1所示,该实施例的方法包括:步骤S102,为欲写入的存储对象从磁盘矩阵中随机选取一个虚拟磁盘。其中,磁盘矩阵的设置是为了便于管理存储集群中的各个物理磁盘,通过矩阵的形式可以更加直观的表示出虚拟磁盘包括哪些物理磁盘,以及属于同一虚拟磁盘的各个物理磁盘对应的存储对象。磁盘矩阵的一种形式例如表1中所示,其中,每一行表示对应同一虚拟磁盘的不同的物理磁盘。虚拟磁盘第1列第2列第3列……虚拟磁盘0物理磁盘1物理磁盘2物理磁盘3……虚拟磁盘1物理磁盘2物理磁盘3物理磁盘1……虚拟磁盘2物理磁盘3物理磁盘2物理磁盘1………………………………表1磁盘矩阵的构建可以通过以下方法:确定磁盘矩阵的行数和列数,每行设置一个虚拟磁盘,为每个虚拟磁盘从存储集群中随机选取物理磁盘放入该虚拟磁盘所在行的列中,建立每一行的各个物理磁盘与该行的虚拟磁盘的对应关系,以形成磁盘矩阵。其中,可以根据存储对象的副本数确定磁盘矩阵的列数,根据各个物理磁盘的存储容量以及物理磁盘的数量确定虚拟磁盘的个数即磁盘矩阵的行数。确定行数与列数之后,在每一个位置随机选取存储集群的一个物理磁盘放入该位置,并且保证磁盘矩阵同一行的各个物理磁盘不能重复,由此,在很大概率上对应同一虚拟磁盘的物理磁盘属于不同的服务器,同时,同一存储对象的多个副本不会存储在一个物理磁盘上,当一个物理磁盘损坏时,最多丢失存储对象的一个副本。步骤S104,将欲写入的存储对象的各个副本分别写入虚拟磁盘对应的各个物理磁盘中。其中,同一虚拟磁盘对应的各个物理磁盘是从存储集群中各个服务器的物理磁盘中随机选取的。将各个存储对象写入虚拟磁盘后,即建立了存储对象与虚拟磁盘的映射关系,进一步通过磁盘矩阵可以更加简单快速的获知存储对象所在的物理磁盘。上述方法的一个应用例:需要存储一个对象的3个副本,从表1中随机选取了虚拟磁盘2,则将该对象的第一个副本写入物理磁盘3,第二个副本写入物理磁盘2,第三个副本写入物理磁盘1。上述实施例的方法,通过虚拟磁盘可以实现对存储集群中属于不同服务器的物理磁盘进行统一管理,进行对象存储时采用随机选取虚拟磁盘的方式,并且由于虚拟磁盘对应的物理磁盘也是随机选取的,使得所有服务器有均等的机会被写入数据,数据均匀地被存储到所有服务器上,保证了各台服务器的负载均衡,实现了对存储集群中磁盘的有效管理,此外还可以避免由于某台服务器的损坏造成某些对象的副本全部丢失无法恢复的问题。现有技术中,在某台服务器出现磁盘损坏时,将数据恢复到同一台服务器的其它物理磁盘上去。这样恢复出的数据都会集中到一台服务器上,造成某些服务器上的物理磁盘可用空间明显低于其它服务器,进而使得整个集群的有效空间成倍减少。此外,这种方法还会导致数据恢复时单台服务器的负载较高。针对这一问题,本发明还提出一种故障物理磁盘的处理方案,下面结合图2进行描述。图2为本发明存储方法另一个实施例的流程图。如图2所示,在步骤S104之后本发明的方法还包括:步骤S206,统计故障物理磁盘在磁盘矩阵中出现的各个位置。通过确定故障物理磁盘在磁盘矩阵中的位置,可以确定故障物理磁盘所属的虚拟磁盘,进而确定故障物理磁盘存储的对象。步骤S208,为每个位置的故障物理磁盘从存储集群中随机选取一个替代物理磁盘。其中,每个位置的替代磁盘与该位置的故障物理磁盘所属的虚拟磁盘所对应的正常物理磁盘属于不同的物理磁盘,即替代磁盘放入磁盘矩阵后不能与同一行的其他磁盘重复。步骤S210,将每个位置的故障物理磁盘所属的虚拟磁盘所对应的存储对象的副本,恢复到该位置的替代物理磁盘中。对于一个故障物理磁盘,其在磁盘矩阵中会出现在多个不同的位置,在每个位置对应的存储对象都不同,并且选取的替代物理磁盘也是多个,也就是将故障物理磁盘的存储的内容分别恢复到不同的替代物理磁盘中,由于替代物理磁盘是随机选取的,在很大概率上属于不同的服务器,因此,将故障物理磁盘的存储的内容分别恢复到不同的服务器中。恢复时可以将与故障物理磁盘属于同一虚拟磁盘即位于磁盘矩阵同一行的其他正常磁盘在该虚拟磁盘中对应的存储对象的副本恢复到替代物理磁盘上。下面结合表2和表3描述上述方法的一个应用例。存储集群中包括10台服务器,每台服务器有60块磁盘。集群使用三副本的模式来存储对象,将磁盘矩阵设置成3列,6000行。如表2中所示为构建好的磁盘矩阵。表2在后续的运行过程中,物理磁盘1出现故障,此时需要执行故障磁盘的替换流程。对比表2和表3所示,第1列中,虚拟磁盘0中的物理磁盘1被随机选取的物理磁盘78所替换,可以将物理磁盘2或3在虚拟磁盘0对应的存储对象的副本恢复至物理磁盘78中;虚拟磁盘3中的物理磁盘1被随机选取的物理磁盘2所替换,可以将物理磁盘622或124在虚拟磁盘3对应的存储对象的副本恢复至物理磁盘2中;虚拟磁盘4中的物理磁盘1被随机选取的物理磁盘181所替换,可以将物理磁盘8或99在该行对应的存储对象的副本恢复至物理磁盘2中,同理,第2列和第3列中的物理磁盘1采用同样的方法进行替换。虚拟磁盘第1列第2列第3列虚拟磁盘0物理磁盘78物理磁盘2物理磁盘3虚拟磁盘1物理磁盘2物理磁盘3物理磁盘99虚拟磁盘2物理磁盘3物理磁盘2物理磁盘127虚拟磁盘3物理磁盘2物理磁盘62物理磁盘124虚拟磁盘4物理磁盘181物理磁盘8物理磁盘99虚拟磁盘5物理磁盘544物理磁盘4物理磁盘58……………………表3上述实施例的方法,从存储集群中随机选取多个替代物理磁盘替换故障物理磁盘,将故障物理磁盘存储的内容分别恢复至多个替代物理磁盘上,由于替代物理磁盘是随机选取的,各台服务器被选中的机会是均等的,保证了数据恢复时各台服务器的负载均衡,避免了单台服务器上的磁盘负载过高。此外,由于替代物理磁盘与故障物理磁盘对应的虚拟磁盘中的其他物理磁盘是不同的,所以当一块磁盘损坏时,一个对象至多只会丢失一个副本。故障物理磁盘下线后,会有新的物理磁盘加入存储集群中,下面结合图3描述本发明新的物理磁盘上线的过程。图3为本发明存储方法又一个实施例的流程图。如图3所示,在步骤S210之后本发明的方法还包括:步骤S312,选取磁盘矩阵的每列中出现次数最多的物理磁盘确定为高频率物理磁盘。在构建磁盘矩阵时,各个物理磁盘是均匀分布在各列的,由于故障物理磁盘被替换,会导致某些物理磁盘在磁盘矩阵中出现的次数变多,进而导致这些物理磁盘的负载较重,因此选择这些出现频率较高的物理磁盘进行替换能够保证各个磁盘的负载均衡。步骤S314,将高频率物理磁盘按照预设比例替换为新的物理磁盘。具体的,按照预设比例在磁盘矩阵的每列中选取高频率物理磁盘的替换位置,将高频率物理磁盘在替换位置对应的存储对象的副本恢复到新的物理磁盘中。例如,从每一列高频率物理磁盘出现的第一个位置开始,依次利用新的磁盘进行替换,直到高频率物理磁盘和新的物理磁盘次数相等或相差1,对于每一列的高频率物理磁盘都用新的物理磁盘替换一遍,如果有多个新的物理磁盘,则按照上述步骤,利用每个新的物理磁盘对磁盘矩阵中的磁盘进行一次替换。下面结合表3和表4描述上述方法的一个应用例。新的物理磁盘为601,如表4所示,第1列中,物理磁盘2出现次数最多,因此,在第1列中有预设比例的物理磁盘2被替换成物理磁盘601,第2列中,物理磁盘4出现次数最多,因此,在第2列中有预设比例的物理磁盘4被替换成物理磁盘601,第3列中,物理磁盘99出现次数最多,但是,由于属于虚拟磁盘1的物理磁盘2已被替换为物理磁盘601,所以第3列中,虚拟磁盘1的物理磁盘99不能被替换为物理磁盘601,而选取其他行的物理磁盘99进行替换。虚拟磁盘第1列第2列第3列虚拟磁盘0物理磁盘78物理磁盘2物理磁盘3虚拟磁盘1物理磁盘601物理磁盘3物理磁盘99虚拟磁盘2物理磁盘3物理磁盘2物理磁盘127虚拟磁盘3物理磁盘601物理磁盘62物理磁盘124虚拟磁盘4物理磁盘181物理磁盘8物理磁盘601虚拟磁盘5物理磁盘544物理磁盘601物理磁盘58……………………表4上述实施例的方法,利用新的物理磁盘替换磁盘矩阵中每列出现次数最多的物理磁盘,可以使得各个磁盘的负载更加均衡,此外,由于替代物理磁盘与故障物理磁盘对应的虚拟磁盘中的其他物理磁盘是不同的,所以当一块磁盘损坏时,一个对象至多只会丢失一个副本。本发明还提供一种存储系统,下面结合图4进行描述。图4为本发明存储系统一个实施例的结构图。如图4所示,该系统40包括:虚拟磁盘选取模块402,用于为欲写入的存储对象从磁盘矩阵中随机选取一个虚拟磁盘。副本写入模块404,用于将欲写入的存储对象的各个副本分别写入虚拟磁盘对应的各个物理磁盘中。其中,同一虚拟磁盘对应的各个物理磁盘是从存储集群中各个服务器的物理磁盘中随机选取的。本发明的存储系统还可以实现故障物理磁盘的替换以及新物理磁盘的上线过程,下面结合图5进行描述。图5为本发明存储系统另一个实施例的结构图。如图5所示,该系统40还包括:故障磁盘替换模块506,用于统计故障物理磁盘在磁盘矩阵中出现的各个位置,为每个位置的故障物理磁盘从存储集群中随机选取一个替代物理磁盘,其中,每个位置的替代磁盘与该位置的故障物理磁盘所属的虚拟磁盘所对应的正常物理磁盘属于不同的物理磁盘,将每个位置的故障物理磁盘所属的虚拟磁盘所对应的存储对象的副本,恢复到该位置的替代物理磁盘中。在一个实施例中,存储系统40还包括:新磁盘上线模块508,用于选取磁盘矩阵的每列中出现次数最多的物理磁盘确定为高频率物理磁盘,将高频率物理磁盘按照预设比例替换为新的物理磁盘。具体的,新磁盘上线模块508,用于按照预设比例在磁盘矩阵的每列中选取高频率物理磁盘的替换位置,将高频率物理磁盘在替换位置对应的存储对象的副本,恢复到新的物理磁盘中。在一个实施例中,存储系统40还包括:磁盘矩阵构建模块510,用于确定磁盘矩阵的行数和列数,每行设置一个虚拟磁盘,为每个虚拟磁盘从存储集群中随机选取物理磁盘放入该虚拟磁盘所在行的列中,建立每一行的各个物理磁盘与该行的虚拟磁盘的对应关系,以形成磁盘矩阵。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1