CN113039514A - 分布式文件系统中的数据迁移 - Google Patents
分布式文件系统中的数据迁移 Download PDFInfo
- Publication number
- CN113039514A CN113039514A CN201980056627.XA CN201980056627A CN113039514A CN 113039514 A CN113039514 A CN 113039514A CN 201980056627 A CN201980056627 A CN 201980056627A CN 113039514 A CN113039514 A CN 113039514A
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- stripe
- memory
- storage
- 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.)
- Pending
Links
- 230000005012 migration Effects 0.000 title claims description 24
- 238000013508 migration Methods 0.000 title claims description 24
- 230000015654 memory Effects 0.000 claims description 62
- 238000000034 method Methods 0.000 claims description 44
- 238000012937 correction Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 239000002184 metal Substances 0.000 description 3
- 238000013403 standard screening design Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- VQLYBLABXAHUDN-UHFFFAOYSA-N bis(4-fluorophenyl)-methyl-(1,2,4-triazol-1-ylmethyl)silane;methyl n-(1h-benzimidazol-2-yl)carbamate Chemical compound C1=CC=C2NC(NC(=O)OC)=NC2=C1.C=1C=C(F)C=CC=1[Si](C=1C=CC(F)=CC=1)(C)CN1C=NC=N1 VQLYBLABXAHUDN-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
多个计算装置经由网络彼此通信地耦接,并且多个计算装置中的每个计算装置可操作地耦接至多个存储装置中的一个或多个。多个故障容错地址空间跨多个存储装置分布,使得多个故障容错地址空间中的每个跨越多个存储装置。多个计算装置维护将每个故障容错地址空间映射至多个计算装置中的一个的元数据。元数据分组到桶中。每个桶存储在计算装置的后端中。可以使用索引节点存根将数据从外部文件系统迁移至多个存储装置,以表示外部文件系统的目录和文件。在复制外部文件系统的内容时,用真实索引节点替换索引节点存根。
Description
优先权要求
本申请要求于2018年6月29日提交的题为“Data Migration in a DistributiveFile System”的美国临时专利申请第62/691,732号、以及2019年2月12日提交的题为“DataMigration in a Distributive File System”的美国专利申请第16/273,762号的优先权。
背景技术
通过参照附图将关于数据存储的传统方法与在本公开的其余部分中阐述的本方法和系统的一些方面进行比较,关于数据存储的传统方法的限制和缺点,对本领域技术人员来说将变得显而易见。
通过引用并入
题为“Coded Virtual File System”的美国专利申请第15/243,519号,其全部内容通过引用并入本文。
发明内容
基本上如通过结合至少一个附图所示出和/或描述的,如在权利要求中更全面地阐述的,提供了用于分布式文件系统中的数据迁移的方法和系统。
附图说明
图1示出根据本公开的方面的分布式文件系统的各种示例配置。
图2示出根据本公开的方面的分布式文件系统节点的示例配置。
图3示出根据本公开的示例实现方式的分布式文件系统的另一表示。
图4A示出根据本公开的示例实现方式的外部文件系统和内部文件系统的示例。
图4B示出根据本公开的示例实现方式的数据从外部文件系统迁移至内部文件系统的示例。
图4C示出根据本公开的示例实现方式的在数据迁移后的内部文件系统的示例。
图5是示出根据本公开的用于数据迁移至分布式文件系统的示例方法的流程图。
图6示出两个分布式故障容错地址空间驻留在多个固态存储盘上的示例性实现方式。
图7示出根据本公开的示例实现方式的可以用于保护存储至虚拟文件系统的非易失性存储器的数据的前向纠错方案。
具体实施方式
传统地,文件系统使用对元数据结构(例如,目录、文件、属性、文件内容)的集中控制。如果本地文件系统可从单个服务器接入并且该服务器发生故障,则如果不存在进一步的保护,文件系统的数据可能丢失。为了添加保护,一些文件系统(例如,如由NetApp提供)以主动-被动(active-passive)的方式使用一对或多对控制器以跨两个或更多个计算机复制元数据。其他的解决方案以集群方式使用多个元数据服务器(例如,如由IBM GPFS、DellEMC Isilon、Lustre等提供)。然而,因为传统的集群系统中的元数据服务器的数量受限于数量小,所以这样的系统不能规模化。
本公开中的系统可应用于小集群,并且也可以规模化至许多、数千个节点。讨论关于非易失性存储器(NVM)的示例性实施方式,例如,以固态驱动器(SSD)的形式出现的闪存。NVM可以被划分成4kB块和128MB区块。盘区(extent)可以存储在易失性存储器(例如,用于快速接入的RAM)中,以及由NVM存储器备份。盘区可以存储用于区块的指针,例如,存储在块中的1MB数据的256个指针。在其他实施方式中,还可以使用更大或更小的内存划分。本公开中的元数据功能可以有效地跨许多服务器分布。例如,在其中大负荷的目标为文件系统命名空间的具体部分的“热点”的情况下,该负荷可以跨多个节点分布。
图1示出根据本公开的方面的分布式文件系统的各种示例配置。图1中示出的是局域网(LAN)102,该局域网(LAN)102包括一个或多个节点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)。
每个节点120j(j是整数,其中1≤j≤J)是联网计算装置(例如,服务器、个人计算机等),该联网计算装置包括用于直接在装置104n的操作系统上和/或在装置104n中运行的一个或多个虚拟机中运行进程(例如,客户端进程)的电路。
计算节点104是可以在没有虚拟后端的情况下运行虚拟前端的联网装置。计算节点104可以通过将单根输入/输出虚拟化(SR-IOV)纳入网络接口卡(NIC)中并且消耗完整的处理器核来运行虚拟前端。可替代地,计算节点104可以通过经由Linux内核网络堆栈路由网络并且使用内核进程调度来运行虚拟前端,因此不存在对全核的要求。如果用户不想为文件系统分配完整核或者如果网络硬件与文件系统要求不兼容,则这是有用的。
图2示出根据本公开的方面的节点的示例配置。节点包括前端202和驱动器208、内存控制器204、后端206和SSD代理214。前端202可以是虚拟前端;内存控制器204可以是虚拟内存控制器;后端206可以是虚拟后端;以及驱动器208可以是虚拟驱动器。如本公开中使用的,虚拟文件系统(VFS)进程是实现前端202、内存控制器204、后端206和SSD代理214中的一个或多个的进程。因此,在示例实现方式中,节点的资源(例如,处理和内存资源)可以在客户端进程和VFS进程当中共享。VFS的进程可以被配置为要求相对少量的资源以最小化对客户端应用的性能的影响。前端202、内存控制器204和/或后端206和/或SSD代理214可以在主机201的处理器上或在网络适配器218的处理器上运行。对于多核处理器,不同的VFS进程可以在不同的核上运行,并且可以运行服务的不同子集。就客户端进程212而言,与虚拟文件系统的接口独立于其上运行VFS进程的具体的物理机。客户端进程仅需要驱动器208和前端202存在,以便服务该客户端进程。
节点可以实现为直接在操作系统上运行的单个租户服务器(例如,裸机(bare-metal))或者实现为裸机服务器内的虚拟机(VM)和/或容器(例如,Linux容器(LXC))。VFS可以在LXC容器内作为VM环境运行。因此,在VM内部,可以运行的唯一事物是包括VFS的LXC容器。在传统的裸机环境中,存在用户空间应用并且VFS在LXC容器中运行。如果服务器正在运行其他容器化应用,则VFS可以在处于容器部署环境(例如,Docker)的管理范围之外的LXC容器的内部运行。
节点可以由操作系统和/或虚拟机监视器(VMM)(例如,管理程序)服务。VMM可以用于在主机201上创建和运行节点。多个核可以驻留在运行VFS的单个LXC容器内,并且VFS可以使用单个Linux内核在单个主机201上运行。因此,单个主机201可以包括多个前端202、多个内存控制器204、多个后端206和/或一个或多个驱动器208。驱动器208可以在LXC容器的范围之外的内核空间的内部运行。
SR-IOV PCIe虚拟函数可以用于在用户空间222中运行网络堆栈210。SR-IOV允许PCI快速(PCI Express)的隔离,使得单个物理PCI快速可以在虚拟环境上共享,并且不同的虚拟功能可以提供至单个物理服务器机器上的不同虚拟部件。I/O堆栈210使VFS节点能够绕过标准TCP/IP堆栈220并且直接与网络适配器218通信。可以通过无锁队列将用于uniX(POSIX)VFS功能性的便携式操作系统接口提供至VFS驱动器208。SR-IOV或完整PCIe物理功能地址还可以用于在用户空间222中运行非易失性存储器快速(non-volatile memoryexpress(NVMe))驱动器214,从而完全绕过Linux IO堆栈。NVMe可以用于接入经由PCI快速(PCIe)总线附接的非易失性存储装置216。非易失性存储装置220可以是例如以固态驱动器(SSD)的形式出现的闪存或可以以SSD或存储器模块(DIMM)的形式出现的存储级存储器(SCM)。其他示例可以包括存储级存储器技术,诸如,3D-XPoint。
通过将物理SSD 216与SSD代理214和网络210耦接,SSD可以实现为联网装置。可替代地,通过使用诸如NVMe-oF(NVMe over Fabrics(全闪存阵列的架构))的网络协议,SSD可以实现为网络附接的NVMe SSD 242或NVMe SSD 244。NVMe-oF可以允许使用冗余网络链路以接入NVMe装置,从而提供更高级别或容错。网络适配器226、网络适配器228、网络适配器230和网络适配器232可以包括用于连接至NVMe SSD 242和NVMe SSD 244以将该NVMe SSD242和NVMe SSD 244转换成联网的NVMe-oF装置而无需使用服务器的硬件加速。NVMe SSD242和NVMe SSD 244均可以包括两个物理端口,并且所有数据可以通过这些端口中的任一个来接入。
每个客户端进程/应用212可以直接在操作系统上运行,或者可以在由操作系统和/或管理程序服务的虚拟机和/或容器中运行。客户端进程212可以在执行其主要功能的过程中从存储器读取数据和/或将数据写入存储器。然而,客户端进程212的主要功能与存储无关(即,进程仅关注该进程的数据被可靠地存储并且在需要时可检索,并且不关注数据在何处存储、数据在何时存储或如何存储数据)。引起这样的进程的示例应用包括:电子邮件服务器、web服务器、办公生产力应用、客户关系管理(CRM)、动画视频渲染、基因组计算、芯片设计、软件构建和企业资源规划(ERP)。
客户端应用212可以对与VFS驱动器208通信的内核224进行系统调用。VFS驱动器208将对应的请求放在VFS前端202的队列上。如果存在若干VFS前端,则驱动器可以加载对不同前端的平衡接入,以确保总是经由同一前端接入单个文件/目录。这可以通过基于文件或目录的ID对前端分片化来完成。VFS前端202提供用于基于负责该操作的桶将文件系统请求路由至适当的VFS后端的接口。适当的VFS后端可以在同一主机上或可以在另一主机上。
VFS后端206托管若干桶,该若干桶中的每个桶服务于文件系统请求其接收并执行任务,从而以其他方式管理虚拟文件系统(例如,负荷平衡、记日志、维护元数据、高速缓存、在层之间移动数据、去除过期数据、校正损坏的数据等)。
VFS SSD代理214处理与相应存储装置216的交互。这可以例如包括转换地址、以及生成(例如,通过SATA、SAS、PCIe或其他合适的总线)发布到存储装置的命令。因此,VFS SSD代理214作为存储装置216与虚拟文件系统的VFS后端206之间的中间物进行操作。SSD代理214还可以与支持诸如NVMe-oF(NVMe over Fabrics)的标准协议的标准网络存储装置通信。
图3示出根据本公开的示例实现方式的分布式文件系统的另一表示。在图3中,元件302表示各种节点(计算、存储和/或VFS)的内存资源(例如,DRAM和/或其他短期内存)和处理(例如,x86处理器、ARM处理器、NIC、ASIC、FPGA等)资源,诸如上面关于图2描述的虚拟文件系统驻留在这些节点上。元件308表示提供虚拟文件系统的长期存储的一个或多个物理存储装置216。
如图3所示,物理存储器组织成多个分布式故障容错地址空间(DFRAS)318。该多个分布式故障容错地址空间(DFRAS)318中的每个包括多个区块310,该区块310进而包括多个块312。在一些实现方式中,块312组织成区块310仅是为了便利,并且在所有实现方式中,块312可以不组织成区块310。每个块312存储已提交的数据316(其可以采取各种状态,如下所讨论的)和/或描述或参考已提交的数据316的元数据314。
存储器308组织成多个DFRAS使从虚拟文件系统的许多(或许所有)节点实现高性能并发提交(例如,图1的所有节点1041至节点104N、节点1061至节点106M和节点1201至节点120J可以并行地执行并发提交)。在示例实现方式中,虚拟文件系统的每个节点可以拥有多个DFRAS中的相应一个或多个并且具有对该节点所拥有的DFRAS的排他性读取/提交接入。
每个桶拥有DFRAS,并且因此在向该桶写入时不需要与任何其他节点协作。每个桶可以跨许多不同SSD上的许多不同区块构建条带,因此每个桶及该桶的DFRAS可以基于许多参数来选择当前要写入什么“区块条带”,并且一旦区块被分配给该桶,就不需要为了这样做而进行协作。所有桶能够有效地写入所有SSD。而不需要任何协作。
仅由在具体节点上运行的每个DFRAS的所有者桶拥有并可接入的每个DFRAS允许VFS的每个节点控制存储器308的一部分,而不必与任何其他节点协作(在初始化期间或在节点出现故障之后对保持DFRAS的桶的[重新]分配期间除外,例如,这可以异步执行以实际读取/提交存储器308)。因此,在这样的实现方式中,在不需要在读取和提交到存储器308时达到任何一致性的情况下,每个节点可以独立于其他节点正在做什么而读取/提交至该每个节点的桶的DFRAS。此外,在特定节点故障的情形下,特定节点拥有多个桶的事实允许将该具体节点的工作加负荷更智能和更有效地重新分布到其他节点(相反,整个工作负荷必须分配给单个节点,这可以创建“热点”)。在该方面,在一些实现方式中,桶的数量相对于系统中的节点的数量可以更大,使得任一桶可以是放置在另一个节点上的相对较小的负荷。这允许根据其他节点的能力和容量对故障的节点的负荷进行细粒性重新分布(例如,具有更大的能力和容量的节点可以被给予更高百分比的故障的节点桶)。
为了允许这样的操作,可以维护将每个桶映射到该每个桶的当前拥有节点的元数据,使得对存储器308的读取和提交可以被重新定向到适当的节点。
因为整个文件系统元数据空间(例如,目录、文件属性、文件中的内容范围等)可以被分割(例如,被切分或分片)成小的、统一的片(例如,“碎片”),所以负荷分布是可以的。例如,具有30k个服务器的大型系统可以将元数据空间切分成128k或256k碎片。
每个这样的元数据碎片可以维持在“桶”中。每个VFS节点可以负责若干桶。当给定后端上的桶服务于元数据碎片时,桶被认为是“活跃的”或该桶的“主导者”。通常,存在比VFS节点多得多的桶。例如,具有6个节点的小型系统可以具有120个桶,以及具有1,000个节点的较大系统可以具有8k个桶。
每个桶在小的节点集合(通常为5个节点,该5个节点形成该桶的五元组(penta-group))上可以是活跃的。集群配置保持最新的关于用于每个桶的五元组分配的所有参与节点。
每个五元组监测其自身。例如,如果集群具有10k个服务器,并且每个服务器具有6个桶,则每个服务器将仅需要与30个(6个桶将具有6个五元组,因此6*5=30)不同的服务器交谈以维持该服务器的桶的状态。这是比集中式实体必须监视所有节点并且保持集群范围状态的情况小得多的数量。因为当集群大小增加时节点不执行更多的工作,所以五元组的使用允许以更大的集群规模化性能。这可能造成以下缺点:在“哑(dumb)”模式中,小的集群实际上可以生成比物理节点更多的通信,但是可以通过利用两个服务器共享的所有桶在该两个服务器之间仅发送单个心跳来克服这个缺点(随着集群增长,这将改变成只有一个桶,但是如果你具有小的5个服务器的集群,则该5个服务器的集群仅将所有桶包括在所有消息中并且每个服务器将仅与其他4个服务器对话)。五元组可以使用与Raft共识算法类似的算法来决定(即,达到共识)。
每个桶可以具有可以运行它的一组计算节点。例如,五个VFS节点可以运行一个桶。然而,组中的节点中的仅一者在任何给定时刻是控制器/主导者。此外,对于足够大的集群,没有两个桶共享同一组。如果集群中仅存在5个或6个节点,则大多数桶可以共享后端。在相当大的集群中,存在许多不同的节点组。例如,对于26个节点,存在超过64,000个可能的五节点组(即,五元组)。
组中的所有节点知道并同意(即,达成共识)哪个节点是该桶的实际活动控制器(即,主导者)。接入桶的节点可以记住(“高速缓存”)作为组的针对该桶的(例如,五个)成员中的主导者的最后一个节点。如果它接入桶主导者,则桶主导者执行所请求的操作。如果它接入作为非当前的主导者的节点,则该节点指示出主导者节点以“重新定向”接入。如果存在接入所高速缓存的主导者节点超时,则联系节点可以尝试同一五元组的不同节点。集群中的所有节点共享集群的共同的“配置”,这允许节点知道哪个服务器可以运行每个桶。
每个桶可以具有负荷/使用值,该负荷/使用值指示桶由在文件系统上运行的应用使用的程度。例如,即使所使用的桶的数量将存在不平衡,但具有11个被轻度使用桶的服务器节点可以接收元数据的另一桶,以在具有9个被高度使用桶的服务器之前运行。可以根据平均响应延迟时间、并发运行的操作的数量、消耗的内存或其他度量来确定负荷值。
即使在VFS节点未发生故障时,也可以发生重新分配。如果系统基于所跟踪的负荷度量确定一个节点比其他节点更忙,则系统可以将该节点的桶中的一个桶移动(即,“故障转移”)至不太忙的另一服务器。然而,在实际上将桶重新定位至不同主机之前,可以通过转移写入和读取来实现负荷平衡。由于每次写入可以结束于在由DFRAS决定的节点的不同组上,所以具有较高负荷的节点可能不会被选择在处于正被写入数据的条带中。系统还可以选择不对从高度负荷的节点的读取进行服务。例如,可以执行“降级模式读取”,其中,从同一条带的其他块中重构高负荷节点中的块。降级模式读取是经由同一条带中的其余节点执行的读取,并且数据经由故障保护重构。因为读取的发起者可以假定该节点已故障,所以降级模式读取可以在读取延迟时间太高时执行。如果负荷足够高而创建了更高的读取延迟时间,则集群可以恢复到从其他节点读取该数据并且使用降级模式读取来重构所需的数据。
每个桶管理其自己的分布式擦除编码实例(即,DFRAS 518),并且不需要与其他桶合作以执行读取或写入操作。潜在地存在数千个并发分布式擦除编码实例并发地工作,该分布式擦除编码实例中的每个针对不同的桶。这是对性能规模化的主要部分,由于它有效地允许任何大型文件系统被划分成不需要协作的独立片,因此不管如何规模化都可以提供高性能。
每个桶处理落入其碎片中的全部文件系统操作。例如,目录结构、文件属性和文件数据范围将落入特定桶的管辖区域中。
从任何前端完成的操作开始于找出拥有该操作的桶。然后,确定用于该桶的后端主导者和节点。该确定可以通过尝试最后获知的主导者来执行。如果最后获知的主导者不是当前主导者,则该节点可以获知哪个节点是当前主导者。如果最后获知的主导者不再是桶的五元组的部分,则该后端将让前端知道该前段应返回到配置以找到桶的五元组的成员。操作的分布允许由多个服务器而不是由标准系统中的单个计算机来处理复杂的操作。
如果集群的大小较小(例如,5个)并且使用了五元组,则将存在共享同一组的桶。随着集群大小增加,桶重新分布,使得没有两组是相同的。
图4A示出根据本公开的示例实现方式的集群427和外部文件系统421的示例。集群427包括可以驻留在一个或多个网络接口卡(NIC)上的内部文件系统。外部文件系统421包括外部客户端423和外部存储器。
为了说明,如所示出的,集群427包括两个计算装置403和413以及四个存储装置409a、409b、409c和409d。在不偏离本公开的情况下,可以使用不同数量的计算装置(例如,基于CPU的服务器)和存储装置(例如,SSD)。计算装置403和计算装置413以及存储装置409a、以及存储装置409b、以及存储装置409c和以及存储装置409d可以经由一个或多个NIC可操作地耦接。例如,计算装置403和计算装置413中的每个可以在单独的NIC上,并且存储装置409a、存储装置409b、存储装置409c和存储装置409d可以在一个或多个NIC上。
计算装置401包括前端403和后端405。后端405包括至少一个桶407。计算装置411包括前端413和后端415。后端415包括至少一个桶417。
后端中的每个桶可操作以构建包括多个块的一个或多个故障容错条带。例如,对于10个块,可以用2个错误保护/纠错块来保护8个数据块(即,使用8+2条带)。同样,对于10个故障域,可以用4个错误保护/纠错块来保护6个数据块(即,使用6+4条带)。
桶407可操作以构建包括块a1、块a2和块a3的故障容错条带419。通常,特定故障容错(或故障保护)条带中的多个存储块中的每个可以位于多个存储装置中的不同存储装置中。可替代地,故障容错条带的多个存储块可以跨多个存储装置中的至少两个存储装置分布。
桶407可以经由索引节点和一个或多个盘区生成、管理并且控制故障容错条带419。索引节点是存储文件或目录的命名和其实际数据之外的关于文件或目录的所有信息的数据结构。文件中的每个4k块可以由被称为盘区的对象来处理。盘区ID可以基于索引节点ID和文件内的偏移量(例如,1MB)。并且,盘区ID由桶管理。盘区可以存储在每个桶的注册表中。盘区范围可以由读写锁保护。每个盘区可以通过管理负责1MB数据的多达256个4k块的指针,来管理用于文件的连续1MB的内容。在其他实施方式中,还可以使用更大或更小的内存划分。盘区也可以存储在易失性存储器(例如,用于快速接入的RAM)中,也由NVM存储器备份。
图4B示出根据本公开的示例实现方式的将数据从外部文件系统421迁移至集群427中的内部文件系统的示例。迁移大的文件系统可以是非常漫长的处理,尤其是如果用户对多个文件系统分层。此外,在可以完成迁移之前,用户还可能需要接入外部文件系统。
在迁移期间,外部文件系统421可以改变或可以不改变。迁移包括映射处理,以遍历外部存储器425的命名空间并且创建具有存根索引节点(例如,存根索引节点431)的目录层次结构。存根索引节点431是实际节点的替代,该是实际节点经由一个或多个盘区433耦接至存储器409a至存储器409d。存根索引节点431可以快速允许接入预先存在的外部存储器425,同时在后端将数据迁移至存储器409a至存储器409d。映射处理可以生成用于目录以及文件的索引节点存根。
当整个迁移处理完成时可以通知用户。一旦完成,所有的存根索引节点将被实际节点替换。可替代地,在数据迁移时,每个存根索引节点将由实际节点替换。可以运行opendir函数以阻止对特定目录上的文件的接入操作,直到后端处理完成整个目录迁移。对于目录,opendir可以阻止接入,直到生成所有包含的文件存根和目录存根。此后,opendir将返回并且readdir可以开始。
当文件索引节点存根(或目录索引节点存根)打开时,系统可以暂停直到该文件(或目录)从文件夹(filer)拉出。当文件索引节点存根打开时,迁移可以根据相关联的外部文件创建可能的所有盘区。这些盘区433与盘区条带437中的位置相关联。
后端处理可以遍历所有存根的队列并且继续创建命名空间429和复制文件。后端处理可以遍历所有目录索引节点存根,并且然后遍历所有文件索引节点存根。在创建所有(或每个)文件索引节点之后,它们可以被转换成真实索引节点,并且外部文件的内容可以下载到盘区。
系统可以维持迁移状态并且可以能够通知用户何时所有文件已被复制至集群系统427。每个迁移处理可以需要知道相应的命名空间429是否仍具有一些存根(索引节点或盘区)或者所有存根是否已被转换。
即使外部文件系统421很大,数据迁移对于重启和故障也是有容错的。不可能接入命名空间429的根直到根目录的所有文件已经迁移。
数据迁移可以从若干节点并发运行。每个后端将负责其自己的目录和文件。如果一个计算装置节点411不能直接挂载迁移的外部文件系统421并且另一计算装置节点401能够直接挂载迁移的外部文件系统421,则可以从该一个计算装置节点411的后端415到该另一计算装置节点401的后端405生成隧道435。
在迁移期间,可以指示进度(例如,移动的文件的数量或容量方面)。可以维护待提取的盘区和待转换成真实目录/文件的索引节点存根的状态。迁移可以在整个桶故障转移期间继续运行,并且系统重启。
图4C示出根据本公开的示例实现方式的在数据迁移之后的集群427的内部文件系统的示例。在图4C的示例中,条带437已经由块b1和块b2填充。外部文件已迁移至块bl。块b2包括可以用于恢复块bl的数据。稀疏文件指示外部文件系统所需的空间少于分配的空间。如果在读取外部文件时,盘区读取满0秒,则盘区将被删除以创建稀疏文件。与稀疏文件相对应的盘区可以经由注册表中的标签添加至队列。
图5是示出根据本公开的用于将数据从外部文件系统迁移至内部分布式文件系统的的示例方法的流程图。在框501中,为外部文件系统的文件和目录生成索引节点存根。例如,计算装置后端中的桶可以生成这些存根索引节点数据结构。
在框503中,分配一个或多个条带。这些条带跨内部文件系统中的多个存储装置,并且每个条带包括多个存储块。每个条带可以由计算装置后端中的桶生成。
在框505中,外部文件系统的文件和目录的内容被迁移到条带的存储块中。在迁移期间,可以经由存根索引节点从外部存储器接入数据。在迁移特定文件时,接入可以被打开命令阻止。
在框507中,根据迁移的数据为每个条带生成一个或多个纠错数据块。该纠错数据被存储在对应的条带中。在一个或多个存储装置上的数据不可用的降级读取期间,纠错数据与可用的数据结合使用以重新生成不可用的数据。多个存储块中的一存储块被指定为稀疏文件,该稀疏文件不用于迁移的数据或相关联的纠错数据。
图6示出两个分布式故障容错地址空间驻留在多个固态存储盘上的示例性实现方式。
区块9101,1至区块910D,C可以组织成多个区块条带9201至920S(S是整数)。在示例实现方式中,使用前向纠错(例如,纠删编码)单独地保护每个区块条带920s(s是整数,其中1≤s≤S)。任何特定区块条带920s中的块910d,c的数量因此可以基于所期望的数据保护级别来确定。
为了说明的目的,假设每个区块条带920s包括N=M+K(其中N、M和K中的每个是整数)个区块910d,c,则N个区块910d,c中的M个区块910d,c可以存储数据数位(通常为当前存储装置的二进制数位或“位”),并且N个区块910d,c中的K个区块910d,c可以存储保护数位(同样,通常为位)。然后,虚拟文件系统可以向每个条带920s分配来自N个不同故障域的N个区块910d,c。
如本文所使用的,“故障域”是指一组部件,在该组部件中,部件中的任何单个部件的故障(部件断电、变得无响应等)可以导致所有部件的故障。例如,如果机架具有单个架顶式交换机,则该交换机的故障将使到该机架上的所有部件(例如,计算、存储和/或VFS节点)的连接中断。因此,对于系统的其余部分,这等同于如果该机架上的所有部件一起发生故障。根据本公开的虚拟文件系统可以包括比区块910更少的故障域。
在虚拟文件系统的节点以每个这样的节点只有单个存储装置906的完全冗余的方式连接并且供电的示例实现方式中,故障域可以仅是该单个存储装置906。因此,在示例实现方式中,每个区块条带920s包括驻留在N个存储装置9061至906D中的每个上的多个区块910d,c,(因此D大于或等于N)。在图9中示出的这样的实现方式的示例。
在图6中,D=7,N=5,M=4,K=1,并且存储器被组织成两个DFRAS。这些数字仅仅用于说明而非旨在限制。为了说明,任意地调用第一DFRAS的三个区块条带920。第一区块条带9201由区块9101,1、9102,2、9103,3、9104,5和9105,6组成;第二区块条带9202由区块9103,2、9104,3、9105,3、9106,2和9107,3组成;并且第三区块条带9203由区块9101,4、9102,4、9103,5、9105,7和9107,5组成。
尽管在图6的简单示例中D=7和N=5,但是在实际实现方式中,D可以远大于N(例如,大于1的整数的倍数并且可以与多个数量级一样高),并且可以选择两个值,以使得单个DFRAS的任意两个区块条带920驻留在N个存储装置906的相同一集合上(或者更一般地,在N个故障域的同一集合上)的概率低于期望阈值。以这样的方式,任何单个存储装置906d(或更一般地,任何单个故障域)的故障将导致丢失任何特定条带920s中的至多一个区块910b,c(期望的统计很可能基于下列项确定:D与N的选择值、N个存储装置906的大小、以及故障域的布置)。更进一步,双重故障将导致大多数的条带丢失至多单个区块910b,c,并且仅少量的条带(基于D和N的值确定)丢失任何特定条带920s中的两个区块(例如,两个故障条带的数量可以呈指数地小于一个故障条带的数量)。
例如,如果每个存储装置906d是1TB,并且每个区块是128MB,则存储装置906d的故障将导致7812(=1TB/128MB)个区块条带920丢失一个区块910(期望的统计很可能基于下列项确定:D与N的选择值、N个存储装置906的大小、以及故障域的布置)。对于每个这样的受影响的区块条带920s,可以使用适当的前向纠错算法和区块条带920s中的其他N-1个区块来对丢失的区块910d,c进行快速重构。此外,由于受影响的7812个区块条带均匀地分布在所有存储装置9061至存储装置906D上,所以对丢失的7812个区块910d,c进行重构将涉及(期望的统计很可能基于下列项确定:D与N的选择值、N个存储装置906的大小、以及故障域的布置)从存储装置9061至存储装置906D中的每个读取相同数量的数据(即,重构丢失数据的负担跨所有存储装置9061至存储装置906D均匀地分布,以便从故障非常快速恢复)。
接着,转向存储装置9061至存储装置906D中的两个出现并发故障(或更一般地,两个故障域的并发故障)的情况,由于每个DFRAS的区块条带9201至区块条带920S在所有存储装置9061至存储装置906D上的均匀分布,所以仅非常少量的区块条带9201至区块条带920S丢失其N个区块中的两个区块。虚拟文件系统可以操作以基于指示区块条带9201至区块条带920S与存储装置9061至存储装置906D之间的映射的元数据来快速识别这样的两个丢失的区块条带。一旦识别这样的两个丢失的区块条带,虚拟文件系统则可以在开始对一个丢失区块条带进行重构之前优先对这两个丢失的区块条带进行重构。剩余的区块条带将仅具有单个丢失的区块,并且对于它们(大多数受影响的区块条带),两个存储装置906d的并发故障与仅一个存储装置906d的故障相同。类似的原理适用于第三并发故障(具有三个故障区块的区块条带的数量甚至小于在两个并发故障场景中具有两个故障块的数量),等等。在示例实现方式中,可以基于区块条带920s中的丢失数量来控制执行区块条带920s的重构的速率。这可以通过例如控制执行针对重构的读取和提交的速率、执行针对重构的FEC计算的速率、传送针对重构的网络消息的速率等来实现。
图7示出根据本公开的示例实现方式的可以用于保护存储至虚拟文件系统的非易失性存储器的数据的前向纠错方案。示出了DFRAS的块条带9301至块条带9304的存储块9021,1至存储块9027,7。在图7的保护方案中,每个条带的五个块用于存储数据数位,并且每个条带的两个块用于存储保护数位(即,M=5并且K=2)。在图7中,使用以下公式(1)至公式(9)计算保护数位:
因此,图7中的四个条带9301至9304是多个条带(在该情况下,四个条带)FEC保护域的一部分,并且可以使用以上述公式(1)至公式(9)的各种组合恢复任何块条带9301至块条带9304中的任两个或更少块的丢失。为了比较,单个条带保护域的示例将如D11、D22、D33、D44、D54仅由P1保护,并且D11、D22、D33、D44、D54和P1全部被写入条带9301(9301是单个条带FEC保护域)。
根据本公开的示例实现方式,多个计算装置经由网络通信地耦接至彼此,并且该多个计算装置中的每个包括多个存储装置中的一个或多个。多个故障容错地址空间跨多个存储装置分布,使得多个故障容错地址空间中的每个故障容错地址空间跨多个存储装置。多个故障容错地址空间中的每个组织成多个条带(例如,图6和图7中的多个930)。多个条带中的每个或多个条带是多个前向纠错(FEC)保护域(例如,诸如图6中的多个条带FEC域)中的相应一个的一部分。多个条带中的每个可以包括多个存储块(例如,多个912)。多个条带中的特定条带的每个块可以驻留在多个存储装置中的一个不同的存储装置上。多个存储块的第一部分(例如,由图7的条带9301中的9021,2至9021,6构成的五个的数量)可以用于存储数据数位,并且多个存储块的第二部分(例如,图7的条带9301中的两个9021,1和9021,7的数量)可以用于存储至少部分基于数据数位计算出的保护数位。
多个计算装置可以操作以对多个条带排序。排序可以用于选择多个条带中的哪个带用于多个故障容错地址空间中的一个故障容错地址空间的下一提交操作。排序可以基于多个条带中的每个条带中存在多少受保护和/或未受保护存储块。对于多个条带中的任一特定条带,排序可以基于存储在具有多个条带中的一特定条带的多个存储装置上的位图。排序可以基于多个条带中的每个条带中当前存在有多少存储数据的块。排序可以基于提交到多个条带中的每个条带的读取和写入开销。在任何给定时间,故障容错地址空间中的每个可以仅由多个计算装置中的一个拥有,并且多个故障容错地址空间中的每个可以仅由其拥有者读取和写入。每个计算装置可以拥有多个故障容错地址空间。多个存储装置可以组织成多个故障域。多个条带中的每个可以跨多个故障域。故障容错地址空间中的每个可以跨多个故障域中的全部,使得在多个故障域中的任一特定故障域出现故障时,将用于重构丢失数据的工作负荷分布在多个故障域中的每个其他故障域当中。多个条带可以跨多个故障域分布,使得在多个故障域中的两个出现并发故障的情况下,多个条带中的任一特定条带的两个块驻留在多个故障域中的故障的两个故障域上的机会呈指数地小于多个条带中的任何特定条带的仅一个块驻留在故障的多个故障域中的两个上的机会。
多个计算装置可以操作以首先对具有两个故障的块的多个条带中的任何条带进行重构,并且然后,对仅具有一个故障块的多个条带中的任何条带进行重构。多个计算装置可以操作用于以比仅具有一个故障块的多个条带的重构速率更高的速率(例如,以专用于重构的CPU时钟循环的更大百分比、专用于重构的网络传输几率的更大百分比等)来对具有两个故障的块的多个条带执行重构。在故障域中的一个或多个发生故障的情况下,多个计算装置可以操作以基于多个条带中的同一条带的多少其他块已经丢失来确定对任何特定丢失块重构的速率。其中,多个故障域中的一个或多个包括多个存储装置。多个FEC保护域中的每个可以跨多个条带中的多条带。
多个条带可以组织成多个组(例如,如图6中的区块条带9201至区块条带920S),其中多个组中的每个包括多个条带中的一个或多个,并且,针对各个组,多个计算装置可以操作以对组中的多个条带中的一个或多个进行排序。多个计算装置可以操作以:对多个组中的所选择的一个组执行连续提交操作,直到组中的多个条带中的一个或多个条带不再满足确定标准,并且一旦多个组中所选择的一个组不再满足确定标准时,则选择多个组中的不同的组。标准可以基于有多少块可用于待写入的新数据。
尽管已经参考某些实现方式描述了本方法和/或系统,但本领域技术人员应理解,在不背离本方法和/或系统的范围的情况下,可以做出各种改变并且可以用等同物取代。此外,在不背离本公开的范围的情况下,可以做出许多修改以使具体情况或材料适应本公开的教导。因此,本方法和/或系统不旨在限于公开的具体实现方式,而是本方法和/或系统包括落入所附权利要求的范围内的所有实现方式。
如本文中使用的,术语“电路(circuit)”和“电路(circuitry)”是指物理电子部件(即,硬件)以及可以配置硬件、由硬件执行和/或以其他方式与硬件相关联的任何软件和/或固件(“代码”)。如本文中使用的,例如,具体处理器和内存在执行第一一行或多行代码时,可以包括第一“电路”,并且在执行第二一行或多行代码时,可以包括第二“电路”。如本文所使用的,“和/或”是指由“和/或”连接的列表中的任一项或多项。作为示例,“x和/或y”是指三元素集合{(x),(y),(x,y)}中的任何元素。换句话说,“x和/或y”是指“x和y中的一者或两者”。作为又一示例,“x、y、和/或z”是指七个元素集合{(x),(y),(z),(x,y),(x,z),(y,z),(x,y,z)}中的任何元素。换句话说,“x、y和/或z”是指“x、y和z中的一者或多者”。如本文中使用的,术语“示例性”指用作非限制性示例、实例或者说明。如本文中使用的,术语“例如(e.g.)”和“例如(for example)”阐述了一种或者多种非限制性示例、实例或者说明的列表。如本文中所利用的,每当电路包括用于执行功能的必要硬件和代码(如果有必要)时,电路“可操作”以执行功能,而不管功能的性能(例如,通过用户可配置设定、工厂修剪等)是否处于被禁用或未被启用。
Claims (20)
1.一种系统,包括:
多个存储装置;以及
计算装置,包括后端,其中:
所述后端包括桶,所述桶能够操作以生成第一数据结构类型的第一数据结构和第二数据结构类型的第二数据结构,
所述第一数据结构能够操作以引导数据接入至位于所述多个存储装置外部的外部存储器,并且
所述第二数据结构能够操作以引导数据接入至故障保护条带,所述故障保护条带包括所述多个存储装置中的多个存储块。
2.根据权利要求1所述的系统,其中,所述故障保护条带的所述存储块跨所述多个存储装置中的至少两个存储装置分布。
3.根据权利要求1所述的系统,其中,所述故障保护条带的所述多个存储块中的至少一个存储块被保留以用于纠错数据,所述纠错数据与所述故障保护条带的所述多个存储块中的其他存储块相关联。
4.根据权利要求1所述的系统,其中,所述第二数据结构包括指向所述故障保护条带的所述多个存储块的索引节点和一个或多个盘区。
5.根据权利要求1所述的系统,其中,当数据从所述外部存储器复制至所述多个存储装置时,使用所述第一数据结构类型。
6.根据权利要求5所述的系统,其中,在所述数据已经从所述外部存储器复制至所述多个存储装置之后,使用所述第二数据结构。
7.根据权利要求5所述的系统,其中,在所述数据从所述外部存储器迁移至所述多个存储装置之前,确定所述多个存储装置中的所述多个存储块,并且其中,所述多个存储块中的一存储块被指定为稀疏文件,所述稀疏文件不用于迁移的数据或相关联的纠错数据。
8.根据权利要求1所述的系统,其中,所述第一数据结构包括存根索引节点。
9.根据权利要求8所述的系统,其中,所述存根索引节点与所述外部存储器中的文件相对应。
10.根据权利要求8所述的系统,其中,所述存根索引节点与所述外部存储器中的目录相对应。
11.一种方法,包括:
由计算装置后端中的桶生成包括第一数据结构,所述第一数据结构包括存根索引节点;
由所述计算装置后端中的所述桶指定条带,所述条带包括多个存储装置中的多个存储块;
将数据从外部存储器迁移至所述多个存储装置中的一个或多个存储块,其中,数据迁移包括生成并且存储与来自所述外部存储器的所述数据相关联的纠错数据;
在数据迁移期间经由所述第一数据结构中的所述存根索引节点从所述外部存储器接入所述数据;并且
在数据迁移之后经由第二数据结构从所述条带接入所述数据。
12.根据权利要求11所述的方法,其中,所述条带是故障保护条带。
13.根据权利要求11所述的方法,其中,所述条带的所述多个存储块跨所述多个存储装置中的至少两个存储装置分布。
14.根据权利要求11所述的方法,其中,所述条带的所述多个存储块中的至少一存储块被保留以用于纠错数据块,所述纠错数据块根据所述条带的所述多个存储块中的其他存储块生成。
15.根据权利要求11所述的方法,其中,所述第二数据结构包括指向所述条带的所述多个存储块的索引节点和一个或多个盘区。
16.根据权利要求11所述的方法,其中,所述多个存储块中的一存储块被指定为稀疏文件,所述稀疏文件不用于迁移的数据或相关联的纠错数据。
17.根据权利要求11所述的方法,其中,所述存根索引节点与所述外部存储器中的文件相对应。
18.根据权利要求11所述的方法,其中,所述存根索引节点与所述外部存储器中的目录相对应。
19.根据权利要求11所述的方法,其中,所述计算装置后端在网络接口卡(NIC)上。
20.根据权利要求1所述的系统,其中,所述系统包括网络接口卡(NIC)。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862691732P | 2018-06-29 | 2018-06-29 | |
US62/691,732 | 2018-06-29 | ||
US16/273,762 US11169961B2 (en) | 2018-06-29 | 2019-02-12 | Data migration in a distributive file system |
US16/273,762 | 2019-02-12 | ||
PCT/IB2019/000736 WO2020002987A2 (en) | 2018-06-29 | 2019-06-05 | Data migration in a distributive file system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113039514A true CN113039514A (zh) | 2021-06-25 |
Family
ID=68985928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980056627.XA Pending CN113039514A (zh) | 2018-06-29 | 2019-06-05 | 分布式文件系统中的数据迁移 |
Country Status (4)
Country | Link |
---|---|
US (4) | US11169961B2 (zh) |
EP (1) | EP3814882A4 (zh) |
CN (1) | CN113039514A (zh) |
WO (1) | WO2020002987A2 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11042661B2 (en) * | 2018-06-08 | 2021-06-22 | Weka.IO Ltd. | Encryption for a distributed filesystem |
US11169961B2 (en) | 2018-06-29 | 2021-11-09 | Weka.IO Ltd. | Data migration in a distributive file system |
US11403134B2 (en) * | 2020-01-31 | 2022-08-02 | Hewlett Packard Enterprise Development Lp | Prioritizing migration of data associated with a stateful application based on data access patterns |
US11556254B2 (en) * | 2020-02-28 | 2023-01-17 | Cohesity, Inc. | Providing a distributed and replicated data store in a heterogeneous cluster |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154174A (zh) * | 2002-06-24 | 2008-04-02 | 网络装置公司 | 在raid数据重建和转移中使用文件系统信息 |
CN103458023A (zh) * | 2013-08-30 | 2013-12-18 | 清华大学 | 分布式闪存存储系统 |
US9448887B1 (en) * | 2015-08-22 | 2016-09-20 | Weka.IO Ltd. | Distributed erasure coded virtual file system |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960169A (en) * | 1997-02-27 | 1999-09-28 | International Business Machines Corporation | Transformational raid for hierarchical storage management system |
US6487636B1 (en) | 2000-04-24 | 2002-11-26 | Hewlett-Packard Co. | Method and apparatus for mapping data in a heterogeneous disk array storage system |
US7685126B2 (en) * | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US6748488B2 (en) * | 2001-09-28 | 2004-06-08 | Sun Microsystems, Inc. | Storage array having multiple erasure correction and sub-stripe writing |
US7328225B1 (en) | 2002-03-27 | 2008-02-05 | Swsoft Holdings, Ltd. | System, method and computer program product for multi-level file-sharing by concurrent users |
US7681072B1 (en) | 2004-08-13 | 2010-03-16 | Panasas, Inc. | Systems and methods for facilitating file reconstruction and restoration in data storage systems where a RAID-X format is implemented at a file level within a plurality of storage devices |
US7480780B2 (en) * | 2005-04-19 | 2009-01-20 | Hitachi, Ltd. | Highly available external storage system |
US7447839B2 (en) | 2005-09-13 | 2008-11-04 | Yahoo! Inc. | System for a distributed column chunk data store |
US7870356B1 (en) | 2007-02-22 | 2011-01-11 | Emc Corporation | Creation of snapshot copies using a sparse file for keeping a record of changed blocks |
US7809868B1 (en) * | 2007-04-23 | 2010-10-05 | Network Appliance, Inc. | System and method for filtering information in a data storage system |
US7793146B1 (en) | 2007-08-07 | 2010-09-07 | Panasas, Inc. | Methods for storing data in a data storage system where a RAID-X format or formats are implemented at a file level |
US8473466B1 (en) * | 2007-12-31 | 2013-06-25 | Teradata Us, Inc. | Systems and methods for storing data, such as storing data based on storage classes |
US8645749B2 (en) | 2009-02-04 | 2014-02-04 | Micron Technology, Inc. | Systems and methods for storing and recovering controller data in non-volatile memory devices |
US8458287B2 (en) | 2009-07-31 | 2013-06-04 | Microsoft Corporation | Erasure coded storage aggregation in data centers |
US8176360B2 (en) * | 2009-08-11 | 2012-05-08 | Texas Memory Systems, Inc. | Method and apparatus for addressing actual or predicted failures in a FLASH-based storage system |
US8266501B2 (en) * | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
US8417987B1 (en) | 2009-12-01 | 2013-04-09 | Netapp, Inc. | Mechanism for correcting errors beyond the fault tolerant level of a raid array in a storage system |
US9323758B1 (en) * | 2009-12-22 | 2016-04-26 | Emc Corporation | Efficient migration of replicated files from a file server having a file de-duplication facility |
US8856073B2 (en) * | 2010-12-14 | 2014-10-07 | Hitachi, Ltd. | Data synchronization among file storages using stub files |
US8560772B1 (en) * | 2010-12-29 | 2013-10-15 | Datadirect Networks, Inc. | System and method for data migration between high-performance computing architectures and data storage devices |
US8601220B1 (en) * | 2011-04-29 | 2013-12-03 | Netapp, Inc. | Transparent data migration in a storage system environment |
US20140222866A1 (en) * | 2013-02-01 | 2014-08-07 | Google Inc. | Accessing objects in hosted storage |
US9087012B1 (en) | 2014-06-04 | 2015-07-21 | Pure Storage, Inc. | Disaster recovery at high reliability in a storage cluster |
US9582363B2 (en) | 2014-06-09 | 2017-02-28 | International Business Machines Corporation | Failure domain based storage system data stripe layout |
US9921910B2 (en) | 2015-02-19 | 2018-03-20 | Netapp, Inc. | Virtual chunk service based data recovery in a distributed data storage system |
US10402109B2 (en) * | 2015-09-08 | 2019-09-03 | OverNest, Inc. | Systems and methods for storing data blocks using a set of generated logical memory identifiers |
US10783049B2 (en) * | 2018-02-26 | 2020-09-22 | International Business Machines Corporation | Virtual storage drive management in a data storage system |
US11074668B2 (en) * | 2018-06-19 | 2021-07-27 | Weka.IO Ltd. | GPU based server in a distributed file system |
US11169961B2 (en) | 2018-06-29 | 2021-11-09 | Weka.IO Ltd. | Data migration in a distributive file system |
-
2019
- 2019-02-12 US US16/273,762 patent/US11169961B2/en active Active
- 2019-06-05 WO PCT/IB2019/000736 patent/WO2020002987A2/en active Application Filing
- 2019-06-05 CN CN201980056627.XA patent/CN113039514A/zh active Pending
- 2019-06-05 EP EP19824474.1A patent/EP3814882A4/en active Pending
-
2021
- 2021-10-08 US US17/496,924 patent/US11693818B2/en active Active
-
2023
- 2023-05-10 US US18/314,879 patent/US12038871B2/en active Active
-
2024
- 2024-05-31 US US18/680,128 patent/US20240320188A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154174A (zh) * | 2002-06-24 | 2008-04-02 | 网络装置公司 | 在raid数据重建和转移中使用文件系统信息 |
CN103458023A (zh) * | 2013-08-30 | 2013-12-18 | 清华大学 | 分布式闪存存储系统 |
US9448887B1 (en) * | 2015-08-22 | 2016-09-20 | Weka.IO Ltd. | Distributed erasure coded virtual file system |
CN107924351A (zh) * | 2015-08-22 | 2018-04-17 | 维卡艾欧有限公司 | 分布式纠删编码虚拟文件系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2020002987A3 (en) | 2020-06-25 |
WO2020002987A2 (en) | 2020-01-02 |
US20240320188A1 (en) | 2024-09-26 |
US20230273899A1 (en) | 2023-08-31 |
EP3814882A4 (en) | 2022-08-03 |
US20220027309A1 (en) | 2022-01-27 |
US11169961B2 (en) | 2021-11-09 |
US11693818B2 (en) | 2023-07-04 |
US20200004723A1 (en) | 2020-01-02 |
US12038871B2 (en) | 2024-07-16 |
EP3814882A2 (en) | 2021-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111587428B (zh) | 分布式存储系统中的元数据日志 | |
CN111587418B (zh) | 分布式存储系统的目录结构 | |
CN111587423B (zh) | 分布式存储系统的分层数据策略 | |
US20240061812A1 (en) | Metadata control in a load-balanced distributed storage system | |
CN111587425B (zh) | 分布式存储系统中的文件操作 | |
JP7512472B2 (ja) | 複数の故障ドメインに及ぶストレージシステム | |
US11693818B2 (en) | Data migration in a distributive file system | |
CN112262407A (zh) | 分布式文件系统中基于gpu的服务器 | |
CN111587420A (zh) | 分布式存储系统快速故障恢复的方法和系统 | |
CN111587421B (zh) | 分布式存储系统电源故障阻抗的方法和系统 | |
CN112292661B (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 |