分布式存储系统快速故障恢复的方法和系统技术方案

技术编号:25409299 阅读:24 留言:0更新日期:2020-08-25 23:11
提供了用于针对一个或多个节点的故障的分布式存储系统的快速故障恢复的方法和系统。

【技术实现步骤摘要】
【国外来华专利技术】分布式存储系统快速故障恢复的方法和系统优先权要求本申请要求2017年11月13日提交的题为“分布式存储系统快速故障恢复的方法和系统”的美国临时专利申请62/585,166以及2018年9月4日提交的题为“分布式存储系统快速故障恢复的方法和系统”的美国专利申请号16/121,491的优先权。
技术介绍
通过将这样的方法与参照附图在本公开的其余部分中阐述的本方法和系统的一些方面进行比较,数据存储的常规方法的局限性和缺点对于本领域技术人员将变得显而易见。相关申请的交叉引用题为“分布式擦除编码虚拟文件系统”的美国专利申请号15/243,519的全文通过将其整体引入而结合于本文中。
技术实现思路
提供了用于分布式存储系统中的快速故障恢复的方法和系统,该方法和系统基本上由至少一个附图示出和/或结合至少一个附图进行了描述,并在权利要求中更完整地阐述。附图说明图1示出根据本公开的方面的虚拟文件系统的各种示例配置。图2示出根据本公开的方面的虚拟文件系统节点的示例配置。图3示出根据本公开的示例实现方式的虚拟文件系统的另一种表示。图4示出根据本公开的示例实现的节点数与五元组数之间的关系的简化示例。图5示出根据本公开的示例实现的从单节点故障中恢复的示例方法的流程图。图6示出根据本公开的示例实现的从多节点故障中恢复的示例方法的流程图。图7示出其中两个分布式故障弹性地址空间驻留在多个固态存储盘上的示例实现方式。图8示出了根据本公开的示例实现方式的前向纠错方案,其可以用于保护存储到虚拟文件系统的非易失性存储器的数据。具体实施方式传统上,文件系统使用对元数据结构(例如,目录、文件、属性、文件内容)的集中控制。如果可以从单个服务器访问本地文件系统而该服务器发生故障,则由于没有进一步的保护,该文件系统的数据可能会丢失。为了增加保护,某些文件系统(例如,NetApp提供的文件系统)以主动-被动方式使用了一对或多对控制器,以跨两台或多台计算机复制元数据。其他解决方案以集群方式使用了多个元数据服务器(例如,由IBMGPFS,DellEMCIsilon,Lustre等提供)。但是,由于传统集群系统中的元数据服务器的数量被限制为少量,因此此类系统无法扩展。本公开中的系统适用于小型集群,并且还可以扩展到许多成千上万个节点。讨论了关于非易失性存储器(NVM)(例如,以固态驱动器(SSD)形式出现的闪存)的示例实施例。NVM可以分为4kB“块”(block)和128MB“组块”(chunk)。“扩展区”(extent)也可以存储在易失性存储器中,例如用于快速访问的RAM,也可以由NVM存储备份。扩展区可以存储块的指针,例如,指向存储在块中的1MB数据的256个指针。在其他实施例中,也可以使用更大或更小的存储器划分。本公开中的元数据功能可以有效地分布在许多服务器上。例如,在大的负荷指向文件系统名称空间的特定部分的“热点”的情况下,则此负荷可以分布在多个节点上。图1示出根据本公开的方面的虚拟文件系统(VFS)的各种示例配置。图1中所示的是局域网(LAN)102,其包括一个或多个VFS节点120(由1至J的整数索引,j≥1),并且可选地包括(虚线所示):一个或多个专用存储节点106(由1至M的整数索引,M≥1);一个或多个计算节点104(由1至N的整数索引,N≥1);和/或将LAN102连接到远程网络118的边缘路由器。远程网络118可选地包括一个或多个存储服务114(由1至K的整数索引,K≥1);和/或一个或多个专用存储节点115(由1至L的整数索引,对于L≥1)。每个VFS节点120j(j为整数,其中1≤j≤J)是网络计算设备(例如,服务器,个人计算机等),其包括用于运行VFS进程以及可选的客户端进程的电路(或者直接在设备104n的操作系统上和/或在设备104n中运行的一个或多个虚拟机中)。计算节点104是可以在没有VFS后端的情况下运行VFS前端的联网设备。计算节点104可以通过将SR-IOV放入NIC并使用完整的处理器内核来运行VFS前端。备选地,计算节点104可以通过经由Linux内核联网堆栈路由联网并且使用内核进程调度来运行VFS前端,因此不具有完整内核的要求。如果用户不想为VFS分配完整的核心,或者联网硬件与VFS要求不兼容,这将很有用。图2示出根据本公开的方面的VFS节点的示例配置。VFS节点包括VFS前端202和驱动器208、VFS存储器控制器204、VFS后端206和VFSSSD代理214。如本公开中所使用的,“VFS进程”是实现以下中的一个或多个的进程:VFS前端202、VFS存储器控制器204、VFS后端206和VFSSSD代理214。因此,在示例实现方式中,可以在客户端进程和VFS进程之间共享VFS节点的资源(例如,处理和存储器资源)。VFS的进程可以配置为要求相对少量的资源,以最大程度地减少对客户端应用程序的性能的影响。VFS前端202、VFS存储器控制器204和/或VFS后端206和/或VFSSSD代理214可以在主机201的处理器上或在网络适配器218的处理器上运行。对于多核处理器,不同的VFS进程可以在不同的内核上运行,并且可以运行服务的不同子集。从客户端进程212的角度来看,与虚拟文件系统的接口独立于运行VFS进程的特定物理机器。客户端进程只需要驱动器208和前端202存在就能为它们提供服务。VFS节点可以被实现为直接在操作系统上运行的单个租户服务器(例如,裸机),或者被实现为裸机服务器中的虚拟机(VM)和/或容器(例如Linux容器(LXC))。VFS可以在LXC容器中作为VM环境运行。因此,在VM内部,仅包含VFS的LXC容器可以运行。在经典的裸机环境中,存在用户空间应用程序,并且VFS在LXC容器中运行。如果服务器正在运行其他容器化的应用程序,则VFS可能在容器部署环境(例如Docker)的管理范围之外的LXC容器内运行。VFS节点可以由操作系统和/或虚拟机监视器(VMM)(例如,管理程序)服务。VMM可以用于在主机201上创建并运行VFS节点。多个内核可以驻留在运行VFS的单个LXC容器内,并且VFS可以使用单个Linux内核在单个主机201上运行。因此,单个主机201可以包括多个VFS前端202、多个VFS存储器控制器204、多个VFS后端206和/或一个或多个VFS驱动器208。VFS驱动器208可以在LXC容器的范围之外的内核空间中运行。单个根输入/输出虚拟化(SR-IOV)PCIe虚拟功能可用于在用户空间222中运行网络堆栈210。SR-IOV允许隔离PCIExpress,从而可以在虚拟环境上共享单个物理PCIExpress,并且可以向单个物理服务器计算机上的不同虚拟组件提供不同的虚拟功能。I/O堆栈210使VFS节点能够绕过标准TCP/IP堆栈220并直接与网络适配器218通信。可以通过无锁队列将用于uniX(POSIX)VFS功能的便携式操作系统接口提供给VFS驱本文档来自技高网...

【技术保护点】
1.一种从服务器故障中恢复的方法,包括:/n确定第一服务器不可访问;/n当读取请求被定向到不可访问的所述第一服务器时,执行降级模式读取;/n当写入请求被定向到所述不可访问的所述第一服务器时,将所述写入请求重定向到另一服务器;/n确定从确定所述第一服务器不可访问以来是否已经经过等待时间;/n在等待时间过去之后,重建所述不可访问的所述第一服务器中的数据块,其中,所述等待时间在确定所述第一服务器不可访问时开始;/n选择替换所述不可访问的所述第一服务器的第二服务器;以及/n将重建的数据块移至所述第二服务器。/n

【技术特征摘要】
【国外来华专利技术】20171113 US 62/585,166;20180904 US 16/121,4911.一种从服务器故障中恢复的方法,包括:
确定第一服务器不可访问;
当读取请求被定向到不可访问的所述第一服务器时,执行降级模式读取;
当写入请求被定向到所述不可访问的所述第一服务器时,将所述写入请求重定向到另一服务器;
确定从确定所述第一服务器不可访问以来是否已经经过等待时间;
在等待时间过去之后,重建所述不可访问的所述第一服务器中的数据块,其中,所述等待时间在确定所述第一服务器不可访问时开始;
选择替换所述不可访问的所述第一服务器的第二服务器;以及
将重建的数据块移至所述第二服务器。


2.根据权利要求1所述的方法,其中,如果对所述第一服务器的写访问失败,则确定所述第一服务器不可访问。


3.根据权利要求1所述的方法,其中,所述降级模式读取包括:
使用与第一数据块相关联的条带数据块重建所述不可访问的所述第一服务器中的第一数据块,其中,每个所述条带数据块位于与所述第一服务器不同的唯一服务器中;以及
在读取高速缓存中填充所述重建的第一数据块。


4.根据权利要求3所述的方法,其中,所述条带数据块被并行读取。


5.根据权利要求3所述的方法,其中,由所述读取高速缓存服务于对所述第一数据块的读取访问请求。


6.根据权利要求1所述的方法,其中,重定向所述写入请求包括将所述写入请求重定向到与所述写入请求所针对的数据块相关联的另一服务器。


7.根据权利要求1所述的方法,其中:
在所述等待时间过去之前,针对指向所述不可访问的所述第一服务器的每个读取请求执行降级模式读取;以及
在所述等待时间过去之前,指向所述不可访问的所述第一服务器的每个写入请求都将重定向到另一服务器。


8.根据权利要求1所述的方法,其中,重建所述不可访问的所述第一服务器中的所述数据块包括:对于所述不可访问的所述第一服务器中的每个数据块,使用与所述不可访问的所述第一服务器中的所述每个数据块相关联的条带数据块来重建所述每个数据块。


9.根据权利要求8所述的方法,包括并行读取所有所述条带数据块。


10.根据权利要求1所述的方法,包括:当所述第一服务器是不可访问的多个服务器之一时,对所述不可访问的所述第一服务器上待重建的数据块进行优先级排序。


11.根据权利要求10所述的方法,其中,优先级排序包括首先重建受所述不可访问的多个服务器影响最大的数据块。


12.根...

【专利技术属性】
技术研发人员:马奥尔·本达扬奥姆里·帕尔蒙利兰·兹维贝
申请(专利权)人:维卡艾欧有限公司
类型:发明
国别省市:以色列;IL

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1