CN110825543B - 在故障存储设备上快速恢复数据的方法 - Google Patents

在故障存储设备上快速恢复数据的方法 Download PDF

Info

Publication number
CN110825543B
CN110825543B CN201810904110.9A CN201810904110A CN110825543B CN 110825543 B CN110825543 B CN 110825543B CN 201810904110 A CN201810904110 A CN 201810904110A CN 110825543 B CN110825543 B CN 110825543B
Authority
CN
China
Prior art keywords
storage device
management module
data
osd
copy
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
Application number
CN201810904110.9A
Other languages
English (en)
Other versions
CN110825543A (zh
Inventor
胡顺荣
张彩红
许大可
商小乐
王兆丽
顾丽珺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Enterprise Solutions Singapore Pte Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Enterprise Solutions Singapore Pte Ltd filed Critical Lenovo Enterprise Solutions Singapore Pte Ltd
Priority to CN201810904110.9A priority Critical patent/CN110825543B/zh
Priority to US16/536,669 priority patent/US11023159B2/en
Publication of CN110825543A publication Critical patent/CN110825543A/zh
Application granted granted Critical
Publication of CN110825543B publication Critical patent/CN110825543B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Abstract

本发明公开了一种用于在故障存储设备上恢复数据的方法。该方法包括检测第一存储设备发生故障的步骤;创建链接到第二存储设备的模拟管理模块;将存储在第一存储设备中的至少一些数据的副本写入第二存储设备;创建永久管理模块;以及删除模拟管理模块。该方法避免了节点之间的数据复制,其消耗了集群网络的带宽,并且还提高了复制效率,同时保持大多数集群结构不变。

Description

在故障存储设备上快速恢复数据的方法
技术领域
本发明涉及使用计算机网络的分布式数据存储技术,尤其涉及分布式数据存储系统中的故障数据存储设备的恢复。
背景技术
当今的企业和消费者面临着在诸如硬盘驱动器的非易失性数据存储系统上存储和管理不断增加的数据量的问题。计算机存储系统中一个有前景的解决方向是利用大规模商用计算机的集体存储容量来形成大型分布式数据存储系统。商业上可用的分布式数据存储系统的示例包括Ceph,其能够进行块、对象和文件存储,并且使得多个Ceph存储节点(服务器)能够协作以呈现容易处理许多拍字节的单个存储系统,并且同时提高性能和容量。另一示例是机架规模设计(RSD),它是一种分解硬件逻辑架构,例如计算,存储和网络资源,来自预配置的服务器,并将它们部署在可共享的资源池中。
在设计这种分布式数据存储系统时,要考虑的一个重要因素是数据可靠性。一旦存储了数据,用户通常不希望或不能丢失任何存储的数据。遗憾的是,数据管理链在各种链路上容易出现故障,这可能导致永久性数据丢失或数据暂时不可用。例如,大规模分布式数据存储系统的许多单独组件中的任何一个可能由于各种原因而故障。硬盘故障、计算机主板故障、内存问题、网络电缆问题、连接松动(例如松散的硬盘驱动器电缆、内存电缆或网络电缆)、电源问题等都可能发生,导致数据无法访问。
因此,针对一个或多个存储设备发生故障的可能性,已经开发了用于分布式数据存储系统的各种数据恢复机制,而不管它是物理设备还是虚拟设备都无关紧要。一种典型的数据恢复方法以下列方式工作:当磁盘发生故障时,坏磁盘从分布式数据存储系统中的集群中取出,系统开始重新平衡并将故障磁盘中的数据副本复制到整个存储器集群中的其他可用存储设备。更换新的存储设备后,分布式数据存储系统将再次执行重新平衡,以保持集群中的所有磁盘均等利用。这种方法的带宽效率和处理能效低,因为它需要很长时间并且需要大量的网络带宽来执行两次重新平衡。这严重影响了整个存储器群集的性能。
发明内容
因此,在一个方面,本发明是一种用于在故障存储设备上恢复数据的方法。该方法包括检测第一存储设备发生故障的步骤;创建链接到第二存储设备的模拟管理模块;将存储在第一存储设备中的至少一些数据副本写入第二存储设备;创建永久管理模块;以及删除模拟管理模块。
重要的是,当存储设备发生故障时,本发明提供的实施例减少了数据存储系统的存储集群中所需的重新平衡量。在一些实施例中,重新平衡过程可以在对整个集群性能的干扰小得多的情况下完成,因为对故障设备的I/O请求将经由虚拟指针被引导到其他设备,并且只有当集群负载不高时才会进行将数据回填到替换存储设备。在一些其他实施例中,绑定到物理存储设备的虚拟磁盘可以在不同的恢复过程时间安装到不同的虚拟磁盘管理器,使得不是在集群中的不同节点之间进行数据传输,而是仅在相同的节点,例如通过本地计算机总线进行数据传输,这节省了网络带宽并导致更快的操作。最后,所提出的方法使用简单的方法,这些方法不太可能导致系统冲击和故障。集群的映射以及虚拟磁盘管理器都保持相同,这避免了额外的,不必要的计算和数据移动。
附图说明
从以下优选实施例的描述中,本发明的上述和进一步的特征将变得显而易见,所述优选实施例仅通过示例的方式结合附图提供,其中:
图1示出了根据本发明一个实施例的分布式数据存储系统的架构。
图2示出了图1的分布式数据存储系统中包含OSD和PG的主机的结构。
图3示出了指向外部主机中的资源的图2的主机中的模拟OSD中的虚拟指针的图示。
图4示出了图3中的虚拟指针从外部主机逐渐回填的图示。
图5示出了模拟OSD与图5的主机内的新OSD之间的数据复制以及来自外部主机的回填。
图6示出了一旦新的OSD填充了所有数据,就删除图5的主机中的模拟OSD。
图7示出了如图3-6所示的模拟OSD如何回填的方法流程。
图8示出了如何安装新OSD并用来自模拟OSD的数据填充的方法流程,如图3-6所示。
图9示出了根据本发明另一实施例的分布式数据存储系统的架构,并且一个OSD由于PD的故障而产生故障。
图10示出了图9的分布式数据存储系统中的数据流,其涉及新的VD、新的OSD和临时OSD。
图11示出了图10中的数据流的简化图示。
图12示出了图10-11所示系统中的数据恢复方法的流程图。
图13示出了根据本发明另一实施例的分布式数据存储系统中的数据流,其中一个OSD由于PD的故障而故障。
图14示出了图13中的数据流的简化图示。
图15示出了图13-14所示系统中的数据恢复方法的流程图。
图16示出了根据本发明另一实施例的分布式数据存储系统中的数据流,其中一个OSD由于PD的故障而故障。
图17-18示出了说明图16中所示系统中的数据恢复方法的流程图。
在附图中,在本文描述的若干实施例中,相同的数字表示相同的部件。
具体实施方式
现在转到图1,其总体示出了根据本发明实施例的一种类型的分布式数据存储系统的架构。具有类似于图1所示结构的商业上可获得的系统的一个示例是Ceph。在图1中,顶层数据存储是文件40,其中每个文件40是连续数据的集合,这从分布式数据存储系统的客户端(未示出)的角度命名。然而,文件被拆分为对象42,对象42是分布式数据存储系统的最低级别的可管理单元。当对象42放置在群集中时,对象42被映射到放置组(PG)44,并且那些PG 44被映射到对象存储设备(OSD)48。该映射涉及将两个对象链接在一起以便它们被连接在数据传输方面。存储集群是计算和存储资源的异构组(例如,裸机服务器、虚拟机),其中集群的每个成员作为监视器(未示出)或OSD 48工作。OSD 48是分布式数据存储系统的对象存储守护进程,其负责将对象42存储在本地文件系统上并通过网络(未示出)提供对它们的访问。因此,OSD 48也称为管理模块,其链接到存储设备。通常,OSD 48对应于本地硬盘(未示出)。分布式数据存储系统还包含多个池46,每个池46是一组PG 44,其中分配了对象42。池46还可以被视为分布式数据存储系统的客户端可以用来保存其数据的虚拟化存储分区。最后,基础数据管理算法(未示出,例如Ceph中的CRUSH)构建群集的映射,并使用该映射在OSD 48中伪随机地存储和检索数据,其中数据在整个群集中均匀分布。该算法还智能地监视OSD故障,报告和更新映射。该算法在不同的故障域50之间分离对象42的副本,同时仍然保持所需的分布,并且在每个故障域50中存在多个OSD 48。分布式数据存储系统的上述体系结构对于本领域技术人员来说是公知的。这里将不再详细描述。
现在转向图2,其示出了包含一些类似于图1中所示的OSD和PG的主机52。主机52是计算设备,主机52包含三个运行于其上的OSD 48a、48b、48c。OSD 48a具有分配给它的四个PG,即PG 44a、PG 44b、PG 44c和PG 44d。OSD 48b具有分配给它的三个PG,即PG 44e、PG 44f和PG 44g。OSD 48c具有分配给它的三个PG,即PG 44h、PG 44i和PG 44j。注意,主机52不是分布式数据存储系统中的唯一主机,而是该系统中存在具有与主机52类似结构的其他主机。
图3-6示出了主机52中发生磁盘故障的组件的变化,并且相应的数据恢复机制在图7-8中示出。在图7中,当分布式数据存储系统检测到物理存储设备故障时,恢复过程在步骤62中开始。假设故障的物理存储设备与OSD 48a相关联,其中图3中的OSD 48a被示为禁用。当OSD 48a由于其相关的物理存储设备故障而故障时,在步骤64中,提示用户(未示出)选择模拟OSD选项。这样的用户可以是分布式数据存储设备的IT管理员。例如,可以通过屏幕上的通知来提示用户给出指令,或者用户的选择可以基于默认设置自动进行。如果用户不选择使用模拟OSD选项,则该方法前进到步骤68,其中以常规方式执行集群重新平衡,并且这里将不再进一步描述。
然而,如果用户在步骤64中选择模拟OSD选项,则该方法前进到步骤66,在该步骤中会模拟一个临时OSD,也就是图3中的SOSD 56。作为模拟管理模块的SOSD 56由主机52在非常短的时间内创建,例如几秒之内,并且它最初不包含任何实际数据,而只是几个虚拟指针vPG 54a、vPG 54b、vPG 54c和vPG 54d。因此,SOSD 56只包括非常小的数据体量,因为与传统的数据重新平衡恢复方案相比,上述的方法在一开始时不需要数据复制。应当注意的是,SOSD 56链接到物理的可用存储设备(未示出),使得存储在存储设备中的数据可以由SOSD 56链接和管理。另一方面,vPG 54a、vPG 54b、vPG 54c和vPG 54d分别与发生故障的OSD 48a中原先存在的PG相关联,即PG 44a、PG 44b、PG 44c和PG 44d。一旦创建了虚拟指针vPG 54a、vPG 54b、vPG 54c和vPG 54d,则由SOSD 56代替处理对先前OSD 48a的任何访问请求,并且vPG 54a、vPG 54b、vPG 54c和vPG 54d中的每一个可以指向与主机52不同的另一主机中的不同PG。例如,如图3所示,对于故障的OSD 48a中的PG 44a的任何访问请求由SOSD56处理,其中vPG 54a将这种访问请求指向主机58中的PG 44a。
在创建SOSD 56之后,作为下一步骤不会自动执行数据回填。相反,分布式数据存储系统必须在允许进行数据回填之前满足某些标准。这在图7中的步骤70中示出,其中第一个确定要做的是确定主机52中的可用空间是否大于或等于故障OSD 48a中的PG的大小。如上所述,这种可用空间可以由链接到SOSD 56的物理存储设备提供。如果主机52没有足够的存储空间用于来自外部主机(例如主机58)的实际PG的数据副本,则在安装替换OSD以替换故障的OSD 48a之前将不会进行数据回填。相反,图7中所示的方法将直接结束。应当注意,主机52没有足够的存储空间这一事实并不是永久性的,因为当在主机52中安装新的(替换的)存储设备以取代故障的存储设备的位置后,主机52将具有足够的空间用于数据回填,在这种情况下,可用空间由新的存储设备提供。取决于可用空间是否部分或全部在新的存储设备上,回填数据的指定将是不同的,稍后将更详细地描述。
如果主机52具有足够的存储空间用于来自外部主机(例如主机58)的实际PG的数据副本,则在步骤72中进行的第二确定是查看存储器集群的实时工作负载是否低于阈值。如果工作负载实际上等于或高于阈值,则意味着存储器集群太忙而无法执行任何数据回填,这不可避免地会影响集群性能。因此,存储器集群需要等待,直到工作负载低于阈值并且集群变为空闲为止,然后可以在步骤74中执行数据回填,以在SOSD 56中写入故障的OSD48a的PG 44a和PG 44b中的数据副本。图4中提供了数据回填的示意图,其中可以看到SOSD56中的之前的虚拟指针vPG 54a和vPG 54b已被PG 44a和PG 44b中的数据的实际副本替换,作为从外部主机迁移PG 44a和PG 44b的数据(它们是故障OSD 48a中的原始数据的副本)的结果。数据回填方向由箭头60指示。另一方面,在图4所示的时刻,虚拟指针vPG 54c和vPG54d尚未用实际数据回填。
在步骤74中的数据回填开始之后,系统然后需要等待故障的OSD 48a中的所有PG被填充到SOSD 56。在此期间,存储器群集的工作负载可能变得有可能再次变高,在这种情况下,必须暂停数据回填,直到工作负载变低。如果故障的OSD 48a中的所有PG都被填入SOSD 56,如步骤76中所确定的那样,则数据回填过程结束。否则,该方法返回到步骤70以当集群负载低时等待进一步的时间窗口以继续数据回填过程。
应当注意,至少部分回填到图4-5中的SOSD 56的数据基于主机52具有足够存储空间的条件,即使尚未安装用于替换故障OSD 48a的新OSD也是如此。换句话说,链接到SOSD56的上述物理存储设备具有足够的空间用于故障OSD 48a中的PG的至少一些副本。如果不是这种情况,并且任何数据回填都需要利用安装到主机52的新存储设备上的空间的话,则在安装新存储设备之后在新存储设备上执行步骤74。
转到图8,其示出了当在主机52中安装新的(替换的)物理存储设备以获取链接到故障OSD 48a的故障存储设备的位置时的数据迁移方法。注意,图8中的方法可以独立于图7中的方法运行,尽管这两者之间存在相互作用,并且某一些步骤也是相同的。作为第一步骤78,分布式数据存储系统检测何时将新的物理存储设备(例如,硬盘)插入主机52。然后,在步骤80中,分布式数据存储系统为新存储设备创建新的OSD,该OSD是预期将永久存在的,并且还使用图5中的附图标记48a指示新的OSD。接下来,在步骤82中,分布式数据存储系统检查主机52中是否已经存在模拟的OSD(即图3-5中的SOSD 56)。如果没有,那么这意味着用户没有选择模拟OSD选项,如关于图7的步骤64所解释的,并且该方法前进到步骤90,其中以常规方式执行群集再平衡而不会在这里有任何进一步的细节描述。如果在步骤82中确定已经创建了SOSD 56,则该方法继续进行到步骤84,在步骤84中,确定SOSD 56的大小是否小于或等于新存储的大小,其大小是新OSD 48a的大小。如果否(例如,在新OSD 48a与容量小于故障硬盘的容量的硬盘相关联的情况下),这意味着不可能将数据从SOSD 56迁移到新OSD48a,并且然后,方法转到步骤90,其中使用传统方法重新平衡集群中的整个存储空间。
然而,如果在步骤84中确定SOSD 56的大小小于或等于新OSD 48a的大小,则该方法前进到步骤86,其中SOSD 56中的所有PG和/或vPG被迁移到新的OSD 48a并最终迁移到新的存储设备。图5最佳地说明了这种迁移,其中SOSD 56中的PG 44a和PG 44b以及SOSD 56中的vPG 54c和vPG 54d都迁移到新的OSD 48a。应当注意,将PG和vPG从SOSD 56迁移到新的OSD 48a比主机间数据传输更快,因为后者需要网络并消耗带宽,而前者仅需要本地数据交换,例如通过PCIe控制器。一旦SOSD 56中的所有PG和/或vPG已经迁移到新的OSD 48a,则SOSD 56已完成其作业,并且在步骤88中,将从主机52删除SOSD 56。
接下来,在步骤92中,分布式数据存储系统检查新OSD 48a中是否存在需要从外部主机(例如,主机58)回填的任何剩余的vPG。在图5所示的情况下,新OSD 48a中的vPG 54c和vPG 54d仍然必须回填。如果新的OSD 48a中仍然存在要回填的vPG,则该方法进行到步骤94以在群集工作负载小于阈值时继续PG回填,如上所述。如果已回填所有vPG,则该方法将结束。步骤92和94与图7中的步骤76和74相同,或者至少是后者的一部分。不同之处在于图8中的步骤92和94涉及对新OSD 48a的数据回填的操作,但是在图7中,步骤76和74可以在SOSD56上或在新的OSD 48a上进行。这样,当数据复制发生在同一主机52中时,集群的映射,监视和OSD的映射都保持相同,这避免了额外的和不需要的计算和数据移动。
转到图9,在本发明的另一个实施例中,分布式数据存储系统将一个软件定义的分布式存储器(例如,如前所述的Ceph)与另一个(例如,Intel RSD架构)组合。RSD是一种软件定义的基础架构,可以跨计算,网络和存储资源动态配置,并且这些资源之间的切换使用PCTe交换机实现。PCTe交换机的上游端口连接到计算节点,PCTe交换机的下游端口连接到资源,例如在存储资源的情况下连接到物理硬盘。RSD的原理在本领域中是公知的,这里不再进一步详细描述。
如图9所示,分布式数据存储系统包括包含PG 144a、PG 144b、PG 144c和PG 144d的池146。PG 144a、PG 144b、PG 144c和PG 144d中的每一个涉及两个或更多OSD,包括主OSD和次级OSD,以及可选的第三OSD。特别地,PG 144a涉及节点152a中的OSD 148a和节点152b中的OSD 148e。PG 144b涉及节点152a中的OSD 148b和节点152b中的OSD 148f。PG 144c涉及节点152a中的OSD 148b和节点152c中的OSD 148g。在PG 144a的情况中,OSD 148a是主OSD,OSD 148e是次级OSD。节点152a、152b和152c中的每一个包含多个OSD,分别是148a-148c、148d-148f和148g-148i。可以看出,两个不同的PG 144b、144c同时使用相同的OSD148b,换句话说,OSD 148b托管多个PG。每个OSD都是底层OSD设备的守护进程,从这个意义上讲,OSD是底层OSD设备(如物理磁盘)的虚拟磁盘管理器。例如,OSD 148a是虚拟驱动器(VD)149a的守护进程。VD 149a-149i被创建并被托管在PCIe交换机151中。VD通过多个虚拟功能(VF,未示出)连接到上游OSD,并且VF允许VD的切换,使得一个或多个VD可以同时连接到任何OSD。在下游侧,每个VD连接到相应的物理磁盘(PD),例如VD 149a连接到PD 147a。在图10中总共有九个PD 147a-147i。然而,应该注意,在本实施例的变型中,根据PCIe交换机151中的存储配置,并且多个VD可以涉及相同的PD。
图9-11示出了发生磁盘故障的分布式数据存储系统中的组件的变化,并且图12中示出了相应的数据恢复机制。在图12中,当分布式数据存储系统检测到存储设备故障时,恢复过程在步骤162中开始。假设故障存储设备是PD 147e,其与VD 149e相关联,并且依次与节点152b中的OSD 148e相关联,所有这些都在图9中被示为禁用。当OSD 148e由于其关联的VD 149e和PD 147e故障而故障时,在步骤164中,分布式数据存储系统在PCIe交换机151中创建新的VD 145,如图10所示。新的VD 145与现有的和可用的物理磁盘,即图10中的PD147h相关联。
然后,在步骤166中,在节点152a中创建临时OSD143以临时用作新VD 145的守护进程。临时OSD143被创建为模拟管理模块。这里选择节点152a,因为它包含另一个健康的OSD148a,其属于与故障的OSD 148e所属的相同的PG 144a。然后在步骤168中,将新的VD 145映射到临时OSD 143。
之后,在步骤170中,存储在PD 147a中并因此存储在VD 149a中的数据通过OSD148a和临时OSD 143复制到新VD 145,并最终复制到PD 147h。VD 149a是PD 147a的现有管理模块。该过程在图11中最佳地示出。数据传输发生在节点152a内,因此它避免了将所有不同节点152a、152b和152c连接在一起的集群本地网络153上的潜在大量流量,该流量将导致传统重新平衡方法对集群性能的影响。OSD 148a与同一节点152a内的新OSD 143之间的数据复制也更快,因为数据传输仅通过本地PCIe交换机151。此外,集群的映射和OSD的映射可以保持稳定,而无需任何额外的,不需要的计算或数据移动。
一旦完成到新VD 145的数据复制,则新的VD 145将从节点152a取消映射,并且将在步骤172中稍后映射到目标节点。与此同时临时OSD即临时OSD 143被删除。目标节点是新OSD最终将驻留在其中的节点,并且在这种情况下,目标节点是节点152b,因为将在节点152b中创建新的OSD以替换先前故障的OSD 148e。然后,分布式数据存储系统检查在步骤174中是否在节点152b中创建了新的OSD。如果不是,则该方法前进到步骤176,其中在节点152b中创建新的OSD 141作为永久管理模块。这在图10中最佳地示出。如果是,则在步骤178中将新的VD 145映射到新的OSD 141,并且后者开始处理新的VD 145。当PG 144a现在恢复正常时,数据恢复方法然后结束。
现在转向图13和14,根据本发明的另一个实施例,分布式数据存储系统包括包含PG 244a、PG 244b、PG 244c和PG 244d的池246。PG 244a、PG 244b、PG 244c和PG 244d中的每一个涉及两个或更多OSD,包括主OSD和次级OSD,以及可选地其他第三OSD。特别地,PG244a涉及节点252a中的OSD 248a和节点252b中的OSD 248e。PG 244b涉及节点252a中的OSD248b和节点252b中的OSD 248f。PG 244c涉及节点252a中的OSD 248b和节点252c中的OSD248g。在PG 244a的情况下,OSD 248a是主OSD,OSD 248e是次级OSD。节点252a、252b和252c中的每一个包含多个OSD,分别是248a-248c、248d-248f和248g-248i。可以看到,两个不同的PG 244b、244c同时使用相同的OSD 248b,换句话说,OSD 248b同时托管多个PG。每个OSD是用于底层OSD设备的守护进程,例如OSD 248a是用于虚拟驱动器(VD)249a的守护进程。VD249a-249i被创建并托管在PCIe交换机251中。还有9个PD247a-247i分别对应于VD 249a-249i。
图13中的分布式数据存储系统的结构与图10中的相同。然而,不同的是进行故障磁盘恢复的方法步骤。具体地,参考图15,当分布式数据存储系统检测到存储设备故障时,恢复过程在步骤262中开始。假设故障存储设备是PD 247e,其与VD 249e和OSD 248e相关联,所有这些都在图13中示为禁用。当OSD 248e由于其相关联的存储设备故障而故障时,在步骤264中,分布式数据存储系统在PCIe交换机251中创建新的VD 245,如图13所示。新的VD145与现有的可用物理磁盘相关联,如图13中的PD 247h。
图15中所示的方法与图12中所示的方法的不同之处在于,在图15中,新的VD 245被映射到故障的OSD所在的同一节点。具体地,由于故障的OSD 248e驻留在节点252b,在步骤266中,在节点252b中创建新的OSD 241,其旨在是永久的。新的VD 245被映射到节点252b。新OSD 241负责新VD 245的数据复制,然后在步骤268中将新VD 245映射到新OSD241。因此,在同一节点252b中的步骤270中,创建临时OSD 243以暂时用作与VD 249a的故障OSD 248e相同的PG中的另一健康VD的守护进程。然后在步骤272中将VD 249a映射到临时OSD 243。然后,存储在PD 247a中并因此存储在VD 249a中的数据通过临时OSD 243和新的OSD 241被复制到新VD 245,并最终被复制到PD 247h。该过程在图14中最佳地示出。数据传输发生在节点252a内,因此它避免了将所有不同节点252a、252b和252c连接在一起的集群本地网络253上的潜在大量流量。
一旦完成到新VD 245的数据复制,则将从节点252b(即,从临时OSD 243)取消映射VD 249a。临时OSD即临时OSD 243同时被删除。新的VD 245可以映射回节点252a,但是这没有在图15中示出。另一方面,新的OSD 241开始处理新的VD 245,并且PG 244a恢复正常。然后数据恢复方法结束。
现在转到图16和17,根据本发明的另一个实施例,分布式数据存储系统包含池346,池346包含PG 344a、PG 344b、PG 344c和PG 344d。PG344a、PG 344b、PG 344c和PG 344d中的每一个涉及两个或更多OSD,包括主OSD和次级OSD,以及可选地其他第三OSD。具体地,PG 344a涉及节点352a中的OSD 348a以及节点352b中的OSD 348e。PG 344b涉及节点352a中的OSD 348b以及节点352b中的OSD 348f。PG 344c涉及节点352a中的OSD 348b和节点352c中的OSD 348g。在PG 344a的情况下,OSD 348a是主OSD,OSD 348e是次级OSD。节点352a、352b和352c中的每一个包含多个OSD,分别是348a-348c、348d-348f和348g-348i。可以看出,两个不同的PG 344b、344c同时使用相同的OSD 348b,换句话说,OSD 348b同时托管多个PG。每个OSD是底层OSD设备的守护进程,例如OSD 348a是虚拟驱动器(VD)349a的守护进程。VD 349a-349i被创建并托管在PCIe交换机351中。还有9个PD 347a-347i分别对应于VD349a-349i。
图13中的分布式数据存储系统的结构与图10中的相同。然而,不同的是进行故障磁盘恢复的方法步骤。具体地,参考图17,当分布式数据存储系统检测到存储设备故障时,恢复过程在步骤362中开始。假设故障存储设备是PD 347b,其与VD 349b和OSD 348b相关联,所有这些都在图16中示为禁用。应当注意,与图10和图13中的场景不同,图16中的OSD348b同时被多于一个PG使用,特别是PG 344c和PG 344b。当OSD 348b由于其相关联的存储设备故障而失败时,在步骤364中,分布式数据存储系统在PCIe交换机351中创建新的VD345,如图16所示。新的VD 345与现有的可用物理磁盘相关联,如图16中的PD 347h。
由于PG 344c和PG 344b同时使用了故障的OSD 348b,因此必须为PG 344c和PG344b中的每一个执行类似于先前实施例中的数据复制方法。在图17所示的方法中,首先处理PG 344b。在步骤366中,在节点352b中创建第一临时OSD 343a以暂时用作新VD 345的守护进程。这里选择节点352b,因为它包含属于PG 344b的另一个健康OSD 348f。然后在步骤368中,新VD 345被映射到节点352b,并且特别地映射到第一临时OSD 343a。然后,在步骤370中,存储在PD 347f中并因此存储在VD 349f中的数据通过OSD 348f和第一临时OSD343a复制到新VD 345,并最终复制到PD 347h。
一旦完成上述数据复制,则将处理PG 344c。在步骤372中,从第一临时OSD 343a取消映射新VD 345。第一临时OSD是同时被删除的临时OSD 343a。在步骤374中,在节点352c中创建第二临时OSD 343b以暂时用作新VD 345的守护进程。这里选择节点352c,因为它包含属于PG 344c的另一个健康OSD 348g。然后在步骤376中,新VD 345被映射到节点352c,并且特别是映射到第二临时OSD 343b。然后,在步骤378中,存储在PD 347g中并因此存储在VD349g中的数据通过OSD 348g和第二临时OSD 343b被复制到新VD 345,并最终被复制到PD347h。
在步骤378完成之后,新的VD 345现在包含来自OSD 348g和348f的数据。然后在步骤380中,新的VD 345将在步骤382中从节点352c取消映射,并且稍后将映射到目标节点。第二临时OSD是同时被删除的临时OSD 343b。目标节点是新OSD最终将驻留在其中的节点,并且在这种情况下,目标节点是节点352a,因为将在节点352a中创建新的OSD以替换先前故障的OSD 348b。然后,分布式数据存储系统检查在步骤382中是否在节点352a中创建了新的OSD。如果不是,则该方法前进到步骤386,其中创建新的OSD 341。这在图16中最佳地示出。如果是,则在步骤384中,新的VD 345被映射到新的OSD 341,后者开始处理新的VD 345。结果,PG 344b和344c都返回到正常状态。然后数据恢复方法结束。
因此,完整地描述了本发明的示例性实施例。尽管该描述涉及特定实施例,但是本领域技术人员将清楚,可以通过改变这些具体细节来实践本发明。因此,本发明不应被解释为限于这里阐述的实施例。
尽管已经在附图和前面的描述中详细图示和描述了本发明,但是同样地被认为是说明性的而不是限制性的,仅示出和描述了示例性实施例,并且不以任何方式限制本发明的范围。可以理解,本文描述的任何特征可以与任何实施例一起使用。说明性实施例不排除彼此或本文未列举的其他实施例。因此,本发明还提供了包括上述一个或多个说明性实施例的组合的实施方案。在不脱离本发明的精神和范围的情况下,可以对本文所述的本发明进行修改和变化,因此,仅应当如所附权利要求所示的那样施加这些限制。
例如,在上述实施例中,基于即使在其他物理磁盘发生故障之前存在的现有且可用的物理磁盘,在PCIe交换机中创建新的VD。但是,当然可以将新的物理磁盘插入系统并使新的VD基于新的物理磁盘。
另外,上述一些实施例示出了在目标节点中创建的临时OSD,其中最终将创建新OSD,和/或上述一些其他实施例示出了在故障的OSD所驻留的节点中创建的临时OSD。本领域技术人员应该理解,对于临时OSD的节点选择没有限制,因为它可以在任何节点中创建,并且始终可以在临时OSD和PCIe交换机中的任何VD之间创建链接。

Claims (14)

1.一种用于在故障存储设备上恢复数据的方法,所述方法包括以下步骤:
检测第一存储设备发生故障;
创建模拟管理模块,所述模拟管理模块与第二存储设备链接;
创建与所述模拟管理模块相关联的虚拟指针,该虚拟指针指向存储所述数据的副本的第三存储设备;
在创建了所述虚拟指针之后,将至少一些所述数据的副本写入第二存储设备,该至少一些所述数据是存储在所述第一存储设备中的;
创建永久管理模块;
如果与所述虚拟指针相关联的所述数据的所述副本的全部都已在所述写入步骤中被写入所述第二存储设备,则删除该虚拟指针;以及
删除所述模拟管理模块。
2.如权利要求1所述的方法,其特征在于,在所述写入步骤中,将来自所述第三存储设备的所述数据的所述副本写入所述第二存储设备。
3.如权利要求2所述的方法,其特征在于,仅当连接在所述第二存储设备和所述第三存储设备之间的通信网络的工作负载小于阈值时,才执行所述写入步骤。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述第二存储设备和所述第三存储设备位于存储器集群的不同主机中,而所述第一存储设备和所述第二存储设备位于同一主机中。
5.如权利要求1所述的方法,还包括将第四存储设备与所述永久管理模块链接的步骤。
6.如权利要求5所述的方法,还包括在已经开始将所述数据的所述副本写入所述第二存储设备的步骤之后,将所述数据的所述副本从所述第二存储设备迁移至所述第四存储设备的步骤。
7.如权利要求1所述的方法,其特征在于,所述模拟管理模块和所述永久管理模块对应于对象存储守护进程;所述第一存储设备和所述第二存储设备对应于放置组。
8.如权利要求1所述的方法,还包括创建与所述第二存储设备相关联的虚拟驱动器的步骤;其中写入所述数据的所述副本的步骤包括将存储在所述第三存储设备中的所述数据的所述副本经由所述模拟管理模块复制到所述虚拟驱动器,然后再复制到所述第二存储设备的步骤。
9.如权利要求8所述的方法,其特征在于,所述模拟管理模块和所述永久管理模块位于不同节点中;所述方法还包括:
将所述虚拟驱动器链接到所述模拟管理模块;以及
复制所述数据的所述副本的步骤还包括经由与所述第三存储设备相关联的现有管理模块将所述数据的所述副本从所述第三存储设备传输到所述虚拟驱动器,然后传输到所述模拟管理模块的步骤。
10.如权利要求9所述的方法,还包括在完成传输所述数据的所述副本的步骤之后,将所述虚拟驱动器与所述模拟管理模块断开链接的步骤。
11.如权利要求10所述的方法,还包括在完成所述断开链接步骤之后将所述虚拟驱动器链接到所述永久管理模块的步骤。
12.如权利要求8所述的方法,其特征在于,所述模拟管理模块和所述永久管理模块位于同一节点;所述该方法还包括:
将所述虚拟驱动器链接到所述永久管理模块;
将所述第三存储设备链接到所述模拟管理模块;以及
复制所述数据的所述副本的步骤还包括经由与所述第三存储设备相关联的所述模拟管理模块将所述数据的所述副本从所述第三存储设备传输到所述虚拟驱动器,然后传输到所述永久管理模块的步骤。
13.如权利要求12所述的方法,还包括在完成所述传输步骤之后将所述第三存储设备与所述模拟管理模块断开链接的步骤。
14.如权利要求10或13所述的方法,其特征在于,删除所述模拟管理模块的步骤在完成所述断开链接步骤之后进行。
CN201810904110.9A 2018-08-09 2018-08-09 在故障存储设备上快速恢复数据的方法 Active CN110825543B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810904110.9A CN110825543B (zh) 2018-08-09 2018-08-09 在故障存储设备上快速恢复数据的方法
US16/536,669 US11023159B2 (en) 2018-08-09 2019-08-09 Method for fast recovering of data on a failed storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810904110.9A CN110825543B (zh) 2018-08-09 2018-08-09 在故障存储设备上快速恢复数据的方法

Publications (2)

Publication Number Publication Date
CN110825543A CN110825543A (zh) 2020-02-21
CN110825543B true CN110825543B (zh) 2023-10-31

Family

ID=69405866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810904110.9A Active CN110825543B (zh) 2018-08-09 2018-08-09 在故障存储设备上快速恢复数据的方法

Country Status (2)

Country Link
US (1) US11023159B2 (zh)
CN (1) CN110825543B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11704039B2 (en) * 2021-05-06 2023-07-18 EMC IP Holding Company LLC Method for reassembling local disk managers and array groups
CN113254277B (zh) * 2021-06-15 2021-11-02 云宏信息科技股份有限公司 存储集群osd故障修复方法、存储介质、监视器及存储集群
CN113672435A (zh) * 2021-07-09 2021-11-19 济南浪潮数据技术有限公司 一种数据恢复方法、装置、设备及存储介质
CN116302673B (zh) * 2023-05-26 2023-08-22 四川省华存智谷科技有限责任公司 一种提高Ceph存储系统数据恢复速率的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176831A (zh) * 2011-12-22 2013-06-26 中国移动通信集团公司 一种虚拟机系统及其管理方法
CN104052576A (zh) * 2014-06-07 2014-09-17 华中科技大学 一种云存储下基于纠错码的数据恢复方法
US9021296B1 (en) * 2013-10-18 2015-04-28 Hitachi Data Systems Engineering UK Limited Independent data integrity and redundancy recovery in a storage system
CN106375463A (zh) * 2016-09-14 2017-02-01 郑州云海信息技术有限公司 一种基于存储虚拟化的数据迁移的方法和装置
CN108334427A (zh) * 2018-02-24 2018-07-27 腾讯科技(深圳)有限公司 存储系统中的故障诊断方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830240B2 (en) * 2015-05-14 2017-11-28 Cisco Technology, Inc. Smart storage recovery in a distributed storage system
US10387044B2 (en) * 2017-04-05 2019-08-20 Kaminario Technologies Ltd. Deduplication in a distributed storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176831A (zh) * 2011-12-22 2013-06-26 中国移动通信集团公司 一种虚拟机系统及其管理方法
US9021296B1 (en) * 2013-10-18 2015-04-28 Hitachi Data Systems Engineering UK Limited Independent data integrity and redundancy recovery in a storage system
CN104052576A (zh) * 2014-06-07 2014-09-17 华中科技大学 一种云存储下基于纠错码的数据恢复方法
CN106375463A (zh) * 2016-09-14 2017-02-01 郑州云海信息技术有限公司 一种基于存储虚拟化的数据迁移的方法和装置
CN108334427A (zh) * 2018-02-24 2018-07-27 腾讯科技(深圳)有限公司 存储系统中的故障诊断方法及装置

Also Published As

Publication number Publication date
US11023159B2 (en) 2021-06-01
US20200050373A1 (en) 2020-02-13
CN110825543A (zh) 2020-02-21

Similar Documents

Publication Publication Date Title
CN110825543B (zh) 在故障存储设备上快速恢复数据的方法
US9965203B1 (en) Systems and methods for implementing an enterprise-class converged compute-network-storage appliance
US9858322B2 (en) Data stream ingestion and persistence techniques
CN112099918A (zh) 容器化环境中的集群的实时迁移
US8037267B2 (en) Remote copy system and remote site power saving method
US7818515B1 (en) System and method for enforcing device grouping rules for storage virtualization
US7925852B2 (en) Storage controller and data management method
US7565501B2 (en) Storage controller and data management method
US8060703B1 (en) Techniques for allocating/reducing storage required for one or more virtual machines
CN102981929B (zh) 磁盘镜像的管理方法和系统
US10353872B2 (en) Method and apparatus for conversion of virtual machine formats utilizing deduplication metadata
US20100205390A1 (en) Methods and apparatus for migrating thin provisioning volumes between storage systems
JP2011516994A (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
EP1637987A2 (en) Operation environment associating data migration method
JP4693540B2 (ja) データベース再構成装置、およびデータベース再構成プログラム
US10810054B1 (en) Capacity balancing for data storage system
JPH08153014A (ja) クライアントサーバシステム
US11740925B2 (en) Method and apparatus for online migration of multi-disk virtual machine into different storage pools
US11250022B1 (en) Offline index builds for database tables
CN112181736A (zh) 分布式存储系统及分布式存储系统的配置方法
US10019182B2 (en) Management system and management method of computer system
US20150205531A1 (en) Adding Storage Capacity to an Object Storage System
US20200401313A1 (en) Object Storage System with Priority Meta Object Replication
US11093465B2 (en) Object storage system with versioned meta objects
CN111400098A (zh) 一种副本管理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant