CN109643259A - 快速系统状态克隆 - Google Patents
快速系统状态克隆 Download PDFInfo
- Publication number
- CN109643259A CN109643259A CN201780034622.8A CN201780034622A CN109643259A CN 109643259 A CN109643259 A CN 109643259A CN 201780034622 A CN201780034622 A CN 201780034622A CN 109643259 A CN109643259 A CN 109643259A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- computing system
- uncoded
- source computing
- 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
Classifications
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- 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/14—Error detection or correction of the data by redundancy in operation
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
- Power Sources (AREA)
- Transmission And Conversion Of Sensor Element Output (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
Abstract
用于创建源计算系统的克隆的系统和方法,该系统包括以下步骤:选择耦合到源计算系统的存储器空间;从所选择的存储器空间检索未编码的数据;通过使用在备份服务器上执行的基于比特标记的编码过程对未编码的数据进行编码;将编码的数据存储在耦合到备份服务器的受保护的存储器中,其中该受保护的存储器被保护免于断电;从受保护的存储器检索编码的数据;以及将编码的数据解码到目标计算系统上,其中该目标计算系统与源计算系统分离。
Description
相关申请的交叉引用
本申请要求于2016年4月4日提交的题为“FAST SYSTEM STATE CLONING”的美国专利申请序列号15/089,837的权益,其全部内容通过引用整体并入本文。
技术领域
本发明的实施例总体上涉及系统克隆,并且更特别地涉及克隆用于备份或复制的系统的快速装置和方法。
背景技术
在整个典型大型企业中使用具有不同范围或部署的计算机系统。企业级计算机系统是可以在整个企业中使用或支持企业关键功能的系统。例如,对于航空公司,预约和预订系统或航班调度系统可以是企业级系统。在较低的部署级别,其他系统(例如,部门级或功能级系统)可以支持部门级组织或支持有限的功能。例如,航空公司的部门级系统可以支持会计、销售和营销、工程、维护支持等中的一个。在甚至更低的级别,计算机系统(真实系统或诸如基于云的系统的虚拟系统)可以支持各个雇员。
计算机系统可以由其硬件和软件资产、状态、系统状态等来表征。硬件表征可以包括所使用的服务器、可用的存储器和存储器存储空间、可用的通信链路、路由器连接等的列表。软件资产的表征可以包括每个服务器上可用的操作系统和应用程序的列表。系统状态的表征可以包括在每个服务器上当前执行何种软件、每个软件的状态(例如,如有限状态机模型所示)、由每个软件可访问和/或使用的易失性和非易失性存储器中的数据等的列表。
有时,例如出于备份或容量的目的,有必要或期望克隆计算机系统。例如,可以通过克隆计算机系统的全部或部分来进行计算机系统的备份,例如,至少克隆系统状态但不必要克隆硬件表征。另一方面,当有必要快速提高处理容量或能力时,可以通过复制进行克隆。例如,在线零售商可能想要在感恩节到圣诞节时段期间暂时复制其专用于销售和营销的计算机系统,并且稍后发布这些资产。然而,在线零售商可能想要暂时复制其财政年度末专用于会计的计算机系统。
有时,有必要或根据从备份恢复计算机系统。例如,如果在线商家的销售系统或网站崩溃,则在销售系统或网站恢复之前商家可能没有任何销售。因此,需要尽可能快地从备份中恢复这样的系统。
用于克隆系统的现有方法遭受各种缺点。例如,热备用(例如,持续活动且对主系统的状态进行镜像的系统)在所需的硬件、所需软件许可和维护成本(例如,对于公用事业和工作人员)方面可能是昂贵的,特别是对于较大的系统。如果多个虚拟机和虚拟机管理程序(hypervisor)始终保持热备用,则它们在硬件和软件方面也可能是昂贵的。冷备用备份系统(诸如,仅在需要时,诸如在主系统故障时,联机的备份)可能花费不期望的长段时间来接管故障的系统,并且可能未反映主系统在故障之前的最近状态。
因此,需要提供一种快速但以成本低克隆计算机系统的系统和方法。
发明内容
在一个实施例中,通过使用本文描述的快速方法和架构复制应用服务器系统的全部或部分当前存储器内容来进行系统克隆。然后,系统克隆可以用作备份,以增加企业容量、重新利用(repurpose)计算资产等。
根据本公开的实施例的克隆源计算系统的方法可以包括以下步骤:选择耦合到源计算系统的存储器空间;从所选择的存储器空间检索未编码的数据;通过使用在备份服务器上执行的基于比特标记的编码过程对未编码的数据进行编码;将经编码的数据存储在耦合到备份服务器的受保护的存储器中,其中保护该受保护的存储器免于断电;从受保护的存储器检索经编码的数据;以及将经编码的数据解码到目标计算系统上,其中该目标计算系统与源计算系统分离。
根据本公开的实施例的克隆源计算系统的系统可以包括:耦合到存储器的处理器,该存储器为源计算系统提供存储器空间;通信接口,用于支持从存储器空间检索未编码的数据;编码器,用于通过使用在备份服务器上执行的基于比特标记的编码过程对未编码的数据进行编码;存储模块,用于将经编码的数据存储在耦合到备份服务器的受保护的存储器中,其中保护该受保护的存储器免于断电;通信接口,用于支持从受保护的存储器检索经编码的数据;以及解码器,用于将经编码的数据解码到目标计算系统上,其中该目标计算系统与源计算系统分离。
前面是本公开的实施例的简化概述,以提供对本公开的一些方面的理解。该概述既不是对本公开及其各种实施例的广泛概述也不是对本公开及其各种实施例的详尽概述。其既不旨在标识本公开的关键或重要要素,也不旨在描绘本公开的范围,而是以简化的形式呈现本公开的所选概念,作为对下面呈现的更详细描述的介绍。如将理解的,本公开的其他实施例可以单独地或组合地利用上面阐述的或下面详细描述的一个或多个特征。
附图说明
考虑到以下对本发明实施例的详细描述,特别是当结合附图时,本发明的上述和又另外特征和优点将变得显而易见,其中各附图中相同的附图标记用于表示相同的组件,并且其中:
图1示出了本领域已知的基于个人计算机(PC)的服务器的功能框图;
图2示出了根据本公开的实施例的基于PC的克隆服务器的功能框图;
图3A示出了根据本公开的实施例的系统;
图3B示出了根据本公开的实施例的另一系统;
图3C示出了根据本公开的实施例的具有虚拟服务器的系统;
图4示出了根据本公开的实施例的存储器模型;
图5A示出了根据本公开的实施例的编码数据的方法;
图5B示出了根据本公开的实施例的解码数据的方法;
图6A示出了根据本公开的实施例的执行源系统的闪烁备份的过程;和
图6B示出了根据本公开的实施例的从闪烁备份恢复系统的过程。
本文使用的标题仅用于组织目的,并不意味着用于限制说明书或权利要求的范围。如在整个本申请中所使用的,词语“可以”以允许的意义(即,意味着具有可能)而不是强制意义(即,意味着必须)使用。类似地,词语“包括(include)”、“包括(including)”和“包括(includes)”意味着包括但不限于。为了便于理解,在可能的情况下,使用了相同的附图标记来表示附图中公共的相同要素。除非使用的上下文另有说明,否则可使用短划线或虚线示出附图的可选部分。
具体实施方式
下面结合示例性使用情况、方法实施例和系统实施例来说明本公开。虽然非常适合与例如使用服务器、网络设备和/或专用仪器的系统一起使用,但是本公开不限于与任何特定类型的电子系统或系统元件的配置一起使用。本领域技术人员将认识到的是,所公开的技术可以用于任何期望复制、克隆、备份或恢复计算机系统的电子系统中。
将关于所关联的硬件来描述根据本公开的实施例。然而,为了避免不必要地模糊本公开,以下描述省略了公知的结构、组件和设备,其可以以框图的形式示出、是公知的或者以其他方式概括。还应注意的是,本文呈现的实施例不应被解释为限制本发明实施例的范围,这是因为其他等效的示例是可能的和很可能的。
如本文所使用的,术语“模块”通常指的是步骤、过程或组件的逻辑顺序或关联性。例如,软件模块可以包括计算机程序内的一组相关联的例程或子例程。可替选地,模块可以包括大致自包含(self-contained)的硬件设备。模块还可以包括与任何软件或硬件实施方式无关的逻辑进程集。
执行功能的模块也可以被称为被配置为执行功能,例如,接收数据的数据模块也可以被描述为被配置为接收数据。用于执行功能的配置可以包括诸如:提供和执行计算机代码,该计算机代码执行功能;提供可供应的配置参数,其控制、限制、启用或禁用模块的能力(诸如,设置标志、设置权限、设置在决策点处使用的阈值水平等);提供物理连接(诸如跳线)以选择选项或者启用/禁用选项;附接物理通信链接;启用无线通信链接;提供被设计为在不使用处理器的情况下诸如通过使用离散组件和/或非CPU集成的电路来执行功能的电路;对执行功能的电路供能(诸如,向收发器电路提供功率以便接收数据);等等。
本专利申请的母申请(美国专利申请序列号14/804,175,“‘175申请”)公开了一种用于高容量和快传输率数字存储的系统。‘175申请和本文中使用的比特标记技术在CIP母申请美国专利申请序列号13/908,239(“‘239申请)中进行了描述。当计算机系统可以至少部分地通过其软件资产、状态和系统状态的数字状态来表征时,则根据本公开的实施例可以使用母公开内容的系统以便非常快速地克隆数字状态。可以相当快地执行系统恢复。
在‘175申请中公开并且在本实施例中使用的方法、组件和系统包括管理程序、服务器处理器、定制操作系统和/或管理程序中的客户操作系统(OS)、与客户OS相关联的数据或驱动器。实施例能够经由网络组件(例如,以太网适配器)集成到大致任何网络中。实施例还可以包括常规的RAM易失性存储器,以及如'175申请中所公开的被保护免于数据丢失的非易失性DIMM存储器(NV-DIMM)。系统还可以包括PCIe、外围设备和结构。
被镜像和表示的数据可以包括存储在易失性RAM中的大致任何数据,例如数据库、应用程序、日志、专有数据等。应用程序可以包括:在操作系统级执行的各种服务,诸如防火墙服务、文档服务等;在用户级执行的各种软件,诸如电子表格、文字处理器、图形编辑、CAD/CAM软件、会计软件等;以及各种服务器,诸如web服务器、邮件服务器、数据库服务器等。
图1示出了本领域中已知的常规计算机系统100的功能框图。系统100可以用在例如基于兼容架构的计算机系统中。随着制造技术的进步,各种功能组件可以在不同的集成电路(IC)配置中制造,这取决于诸如芯片组的生成、目标客户的性价比、目标计算平台(诸如,移动设备、服务器等)等的因素。某些功能可以组合成各种配置,诸如在单个IC中,诸如IC 116。
系统100包括处理器102,其可以是通用处理器(诸如Intel Core )或者来自Advanced Micro(AMD)的处理器(诸如Athlon64)等。在其他实施例中,处理器102可以是图形处理单元(GPU)。在图1的功能框图中,本文使用的处理器102可以指的是处理器的功能,和/或指的是处理器的一个或多个硬件核。处理器102可以包括以多GHz速度操作的多个处理核。处理器102可以包括高速缓冲存储器103(例如,L1或L2高速缓存)。处理器102还可以被编程或配置为包括操作系统104。操作系统104的示例包括根据本公开的实施例的各种版本的Mac和/或操作系统或操作系统扩展等。注册商标Windows是Microsoft公司的商标。注册商标Mac OS是Apple公司的商标。注册商标Linux是根据LMI的从属许可使用的,LMI是Linus Torvalds在全世界范围内拥有该商标的独家授权方。操作系统104执行包括运行应用程序(图1中未示出)的常规功能。在功能上,操作系统104被示为处理器102的一部分,但是操作系统104的部分可以物理地驻留在未示出在图1中的非易失性存储器(例如,硬盘、固态驱动器(SSD)、闪存驱动器、NAND存储器、非易失性RAM等)中,并且操作系统104的至少部分可以根据需要被读入RAM存储器以供处理器102执行。
处理器102可以使用若干内部总线和外部总线来与各种功能组件接合。系统100包括将处理器102链接到存储器控制器106的通信总线105。存储器控制器106还可以称为北桥。通信总线105可以被实施为前端总线(FSB)、非统一存储器访问(NUMA)总线、EV6总线、外围组件互连(PCI)总线等中的一个。
系统100还包括耦合到处理器102的非易失性存储器122(例如,CMOS存储器)。CMOS存储器122可以包括帮助管理计算机组件之间的低级别通信的基本输入/输出系统(BIOS)124,并且可以包括对用于执行通电自检的计算机代码的存储。常规地,通电自检可以包括对安装的RAM的数据完整性的测试。
存储器控制器集线器106通常处理处理器102与各种高速功能组件(诸如经由通信总线107安装在双列直插式存储模块(DIMM)插槽108a、108b中的外部RAM存储器、以及经由通信总线109的视频图形卡110)之间的通信。通信总线107和109可以是高速接口,诸如外围组件互连高速(PCIe)或加速的图形端口(AGP)。存储器控制器集线器106还可以经由通信总线112处理处理器102和控制器集线器114之间的通信。控制器集线器114还可以称为其他名称,诸如南桥、I/O控制器集线器(ICH)、熔合控制器集线器(FCH)、平台控制器集线器(PCH)等。控制器集线器114进而管理与附加和/或较慢的I/O设备或接口(诸如USB端口131、具有标准接口的存储介质132(例如,ATA/SATA、mSATA、SAS等)、以太网收发器133、音频端口134、其他PCI设备135等)的进一步通信。
在系统100的一些配置(未示出)中,处理器102被设计为绕过存储器控制器106并经由直接媒体接口(DMI)来直接与控制器集线器114通信。这样的配置还可以将处理器102和存储器控制器106的功能集成到单个IC 116中。在这样的配置中,控制器集线器114通常是平台控制器集线器(PCH)。
尽管构成安装在DIMM插槽108a、108b中的RAM存储器的存储器芯片可以具有非常高的最大访问速度(例如,大约57GB/秒),但通信总线109通常无法支持这样快的速度。例如,16通道插槽中的PCIe 4.0的速度被限制为31.508GB/秒。AGP比PCIe更慢。因此,通信总线107是阻碍较快速的存储器访问的瓶颈。
存储器访问的瓶颈是常规技术的一个缺点。常规计算机的上述其他缺点包括RAM存储器大小(通常在数GB量级)与常规硬盘的存储大小(通常在数TB量级)之间的在存储大小方面的不匹配,以及RAM存储器的相对小的存储大小与常规硬盘的存储大小的不匹配。常规技术的另一个缺点是RAM存储器的易失性。
根据本公开的实施例打破了现今RAM具有的密度问题。根据本公开的实施例通过提供用于存储单元的新颖硬件接口和用于硬件接口的新颖驱动器接口来解决常规技术的这些缺点。
在CPU的外部,RAM是x86和x64计算系统中最快的元件,因此实施例允许利用实现高存储密度的新方法来对准现今的高速度RAM性能。当应用此效果时,它完全改变了成本范例,并允许低成本存储模块取代对高密度、高成本存储模块的需求。
剩余的问题是标准存储模块的易失性。由于所有RAM都是易失性的,因此它本身不适合成为长期存储介质。实施例类似于但不同于非易失性RAM(NVRAM)技术,其规避了标准DIMM设备中发现的易失性问题。
根据本公开的实施例使用可以由或CPU处理器供电的基本廉价的x64主板。该主板具有经过修改的CME和BIOS,其为该主板提供非易失性存储器感知所需的智能。此外,该主板向每个存储模块提供DC电源电压(例如,1.2v、1.35v、1.5v等),其可以被用于为环境安全的低负载、慢漏电容器充电。此设计允许关闭状态(例如,断电或安全关闭)以维持存储模块内的数据持久性,从而使存储模块成为可行的长期存储设备。
图2示出了根据本公开的实施例的计算机系统200的功能框图。计算机系统200在本文中也可以称为闪烁服务器(blink server)。在图1中已经描述的功能组件在图2中被分配与图1中所示的相同的附图标记。系统200包括存储器接口218,其可以通过使用诸如连接器的连接器208而被物理地耦合到DIMM插槽(例如,DIMM插槽108b)。存储器接口218通过使用通信总线107上的常规协议来通过DIMM插槽108b与处理器202通信。存储器接口218被物理地和通信地耦合到RAM存储单元220。存储器接口218的功能包括:将RAM存储单元220通信地耦合到通信总线107;监视像与RAM存储单元220相关的健康状态的某些事件、其他硬件事件;基于检测到的信号或硬件事件采取某些动作等等。存储器接口218的功能还可以包括简单的处理和管理(housekeeping functions)功能,诸如解析存储器地址、报告存储器大小、I/O控制、跟踪和报告总功率循环、在一小时内运行时间、报告DIMM的数量、报告状态诸如超电容器(CAP)电流电压、总线就绪、最后的恢复成功或失败、设备就绪、NAND区域的闪存状态、CAP连接、CAP充电状态、存在的有效映像(image)、执行的DIMM初始化、读取寄存器等等。NAND可以被称为一种类型的非易失性的基于IC的存储技术,其不需要功率来保持数据。
系统200还包括耦合到处理器202的非易失性存储器222(例如,CMOS存储器)。CMOS存储器222可以包括帮助管理计算机组件之间的低级别通信的基本输入/输出系统(BIOS)224,并且可以包括对用于执行通电自检的计算机代码的存储。常规地,通电自检可以包括对安装的RAM的数据完整性的测试。根据本公开的实施例可以包括经修改的通电自检(与BIOS 124的通电自检相比),使得例如在测试将与存储在预定存储模块中的数据的性质不兼容的情况下,通电自检可以跳过对至少一些预定存储模块的测试。
根据本公开的实施例还通过将能量源219与RAM存储单元220耦合来解决已知技术的RAM易失性缺点。能量源219可以与存储器接口218合并。能量源219是备用电力源,使得如果到RAM存储单元220的外部电力丢失(例如,通过影响整个计算系统200的AC电力故障、为移动系统200供电的电池的移除、主板故障等),能量源219可以提供足够的电力以便维持存储在RAM存储单元220中的数据的完整性。
根据本公开的实施例包括被组织为传统易失性存储器和非易失性RAM模块存储器(NV-DIMM)的组合的随机存取存储器(RAM)。在专利美国专利序列号14/804,175(“‘175申请”)中公开了例如作为RAM存储单元220的NV-DIMM存储器。安装在系统中的整体的每种类型的存储器的比例可以随系统而变化。例如,总存储器大小在安装时可以被选择为在8GB到160GB或更多的范围内,其被组织在八个存储体中,其中存储体中的两个被配置为常规RAM存储器并且六个存储体被配置为NV-DIMM。
根据本公开的实施例可以提供以两种模式操作的系统。在第一模式下,源系统(本系统或外部系统中的任一个)的常规易失性存储器的整个内容或地址范围可以被选择为通过使用'175申请中公开的方法来镜像和表示,并且该表示存储在NV-DIMM存储器中。此映像或表示也可以称为参考映像。实施例可以通过使用诸如符合IEEE 802.3ba-2010标准的100千兆比特以太网的高速通信链路而通信地耦合到外部系统。
在根据本公开的实施例的第二模式下,源系统的整个常规易失性存储器地址范围的子集可以被选择为被镜像和表示为例如正被运行在被镜像和表示的系统上的处理主动利用的常规易失性存储器的仅一部分。在此实施例的另一个变型中,整个常规易失性存储器地址范围的固定范围子集可以被镜像和表示。固定范围子集不一定需要是连续的。在此实施例的另一个变型中,被镜像和表示的地址范围的子集可以表示虚拟服务器。例如,如果单个物理服务器(例如,由商业企业使用的)托管多于一个虚拟服务器(例如,商业企业中的若干部门各一个),则实施例可以镜像并表示一些但不是所有的虚拟服务器。如果例如由不同服务器执行的功能具有不同的备份需求(例如,用于财务部门的虚拟服务器对用于客户支持部门的虚拟服务器),则这样的能力可以是有用的。
在一些实施例中,NV-DIMM可以充当储存库(repository)以存储表示例如单个系统随时间的或多个外部系统或其组合的多个参考映像。可以使用多个参考映像的NV-DIMM储存库来支持灾难恢复,例如,安全地存储多个企业的参考映像的场外位置。
在数据已被镜像、表示并存储在NV-DIMM存储器中之后,根据本公开的实施例可以提供“盒中基础设施”能力。例如,一旦已被镜像和表示的所有数据库、应用、日志、专有数据等都被复制到模仿原始硬件环境的目标硬件环境上,已被镜像和表示的系统就可以在原始系统的系统状态已被镜像和表示时与其一起被复制。
复制的副本可以用于快速恢复备份目的,或者能够对短通知提供扩展的容量。恢复是否被认为是快速的可以随使用领域的不同或内容的不同而变化。例如,CAD/CAM系统的快速恢复可能不被认为是对支持金融市场交易的计算系统而言的快速恢复。对于按需提供电影的视频分发的计算系统的快速恢复可能不被认为是对提供像超级碗的直播赛事的视频分发的计算系统而言的快速恢复。类似地,何种通知被认为是短通知可以随使用领域的不同或内容的不同而变化,并且对于支持金融市场交易的计算系统而言可以短至几秒或更短。在一些实施例中,短通知小于约五秒通知。在一些实施例中,可以在检测到恢复或接收执行恢复的命令的需要的大约十分钟内完成快速恢复。在其他实施例中,快速恢复可在大约三分钟内完成。在其他实施例中,快速恢复可以在十秒或更短内完成。
传统备份是相对不频繁发生事件(例如,每天一次、每周一次等),其中系统状态必须被冻结或者至少在传统备份过程期间应该使对系统状态的改变最小化(例如,通过用户保存他们的工作、退出应用等,所有这些导致中断)。相反,当可以更快地制作复制副本时,可以更快、更及时和更频繁地进行备份,从而在有必要恢复的情况下得到系统状态的较新近的(即,较不陈旧的)副本。频繁的备份开始类似于系统状态的快照。频繁备份在本文中可以称为“闪烁(blink)”备份。
在闪烁备份期间对系统状态的改变可以被减少,如下面参考图3C更详细地描述的。闪烁备份的频率可以由用户或系统管理员进行配置。
类似于摄影,传统备份就像正式的假日全家福,需要准备(例如,中断其他活动以便拍摄,以及登台-即特殊姿势、打光、道具等)。相反,实施例更像家庭的视频记录,其中视频的每个单独帧表示单独的闪烁备份(尽管与视频记录相比以相对慢的帧速率)。闪烁备份快速发生而不一定需要过度准备,并且因此可以频繁地进行而不中断系统闪烁的操作。
闪烁备份可以首先通过识别要备份的存储器资源来进行。例如,假设应用专用的服务器要被备份。例如,要备份的应用专用的服务器可以是专用于会计功能的虚拟服务器,虚拟服务器与分别专用于其他功能(诸如销售和营销、工程部分等)的其他虚拟服务器一起被托管在物理服务器上。要备份的服务器通常将保留自身上执行的应用程序的列表以及它们各自的系统资源使用。实施例可以识别由应用专用的服务器使用的所有系统资源,如由分配给当前运行在正被备份的应用专用的服务器上的所有应用程序或由其使用的RAM存储器范围、存储在非易失性存储器(例如,诸如硬盘、固态驱动器(SSD)、闪存驱动器、NAND存储器、非易失性RAM等的存储介质)中的程序代码的地址范围、操作系统配置等所指示的。实施例可以将此收集作为高优先级数据收集任务来执行,以便在进行收集的同时使对运行在应用专用的服务器上的其他应用程序的状态或数据改变最小化。数据收集任务不需要报告自己的存储器使用。
接下来,实施例可以检索由识别任务指示的存储器内容。然后,实施例可以根据图5A的过程500对存储器内容进行编码和存储,如下面更详细地描述。
在一些实施例中,可以通过来自被复制的系统外部的源的请求(例如,“拉取”基础)来生成复制的副本。在其他实施例中,可以在由被复制的系统确定的时间生成复制的副本(例如,“推送”基础)。推送基础类似于调度的备份。
根据本公开的实施例还提供了在短通知时重新利用计算机硬件架构的能力。例如,假设网络托管公司托管了若干不同的感兴趣的网站,例如像使用平均200个服务器的AmazonTM的电子商务网站、像使用平均100个服务器的E-TradeTM的在线交易网站等等。进一步假设它们使用由标准组件构造的相同或类似的计算机硬件架构。软件组件可以是不同的,例如,电子商务网站可以基于像LinuxTM的开源操作系统,而在线交易网站可以基于像Microsoft WindowsTM的商业操作系统。利用可以随时间变化,使得当一个系统被高度利用时,其他系统可以被轻度利用,并且反之亦然。在这样的情形下,实施例可以快速地将一些服务器从一个网站重新用于另一个网站。例如,如果在工作日的中午电子商务网站不繁忙但在线交易网站繁忙,则可以将一些数量的服务器(例如,40个服务器)从电子商务重新用于在线交易。相反,在工作日的晚上,当电子商务网站繁忙但在线交易网站不繁忙时,可以将一些数量的服务器(例如,50个服务器)从在线交易网站重新用于电子商务网站。重新利用也可以称为角色交换(personality swapping)。
对于从目的“A”重新用于目的“B”的服务器,重新利用可以涉及首先复制或克隆当前专用于目的“B”的服务器的系统状态。系统状态可以包括当前正在使用的所有存储器、当前正在执行的操作系统和所有软件等等。可选地,当前专用于目的“A”但其将被重新利用的服务器的当前系统状态可以被保存以用于稍后恢复。接下来,从目的“B”克隆的系统状态将被恢复在先前专用于目的“A”的服务器上,从而大致瞬时将该服务器重新用于目的“B”。
当重新利用时,目的“A”和目的“B”可以大致是用于相同企业或不同的企业的任何基于服务器的应用。例如,对于诸如主要玩具零售商的单个企业,目的“A”可以是在圣诞节之前最需要的销售系统,并且目的“B”可以是在财政年的结束时最需要的会计系统。
类似地,根据本公开的实施例可以通过将服务器从备用状态重新用于用于专用目的的活动状态来增加系统容量。备用状态可以是例如填充有硬件但没有安装可用软件或数据的空白系统。
根据本公开的实施例可以促进系统映像的组合。例如,基本系统映像可以表示操作系统和/或操作系统的某些计算基础设施,例如,诸如web服务器、邮件服务器等的非定制服务器。然后可以将基本系统映像与定制映像合并(即,组合),该定制映像可以表示对非定制服务器的系统专用的定制,例如,用户帐户、历史、偏好、宏、专用应用程序等。相反,系统闪烁可以能够使定制与基本系统映像分开地闪烁,从而允许定制被备份在不同的调度上或者与基本系统映像的备份相比具有更少的等待时间。
图3A示出了根据本公开的实施例的系统300。系统300可以被用于执行快速克隆。所示的系统300包括企业A 301-A、企业B 301-B和企业C 301-C。每个企业可以表示整个公司或组织,例如,游戏网络、在线商家、在线经纪、股票交易所等。系统300可以包括比图3A中描绘的更少或更多的企业网络。
每个企业301-n可以包括一个或多个服务器,例如,用于企业A 301-A的服务器303-A-1到303-A-n、用于企业B 301-B的服务器303-B-1到303-B-n以及用于企业C 301-C的服务器303-C-1到303-C-n。企业内的各个服务器可以由企业用于不同的功能。例如,如果企业A 301-A是在线商家,则服务器303-A-1可以是web服务器,服务器303-A-2可以专用于数据库和库存管理,服务器303-A-3可以专用于计费和会计等。
每个企业301-n可以通过通信网络308而通信地耦合到克隆服务器305。克隆服务器305可以是例如图2中所示的计算机系统200。在操作中,克隆服务器305可以在外部服务器303-m-n上执行本文描述的过程实施例。例如,克隆服务器305可以将服务器303-B-1复制到服务器303-B-2上,或者克隆服务器305可以进行对服务器303-C-1的闪烁备份等。
在一些实施例中,可选的单独的闪烁储存库306可以存储来自一个或多个服务器303的闪烁备份。在没有单独的闪烁储存库306的情况下,闪烁备份可以被存储在克隆服务器305的NV-DIMM存储器内。
图3B示出了根据本公开的实施例的系统350。系统350可以被用于在不需要通过网络进行外部访问的情况下执行对应用服务器351的快速克隆。系统350包括应用服务器351,其可以是普通功能,例如,web服务器,或者数据库服务器,或者会计服务器等。应用服务器351可以包括耦合到常规易失性RAM存储器353和存储介质354的处理器352以支持应用服务器351在其普通功能方面的操作。通信接口355可以提供应用服务器351和外部通信链路(例如,到WAN或LAN的以太网接口)之间的通信连接。
然而,应用服务器351还可以在其中嵌入克隆服务器355的功能,其由常规的易失性RAM存储器307和NV-DIMM 309支持。克隆服务器355可以是例如图2中所示的计算机系统200。在操作中,克隆服务器355可以在应用服务器351上执行本文描述的过程实施例。与系统300相比,系统350的优点在于系统350不一定需要访问诸如通信网络308的通信网络,这是因为克隆服务器355被嵌入在应用服务器351内。嵌入可以通过例如应用服务器351的处理器352来完成,处理器352执行应用服务器351和克隆服务器355两者的代码模块。
可替选地,应用服务器351可以使用计算机系统200作为起始点来实施,然后由操作系统204执行提供应用服务器351的功能的附加软件模块。
图3C示出了根据本公开的实施例的系统370。系统370包括物理服务器371,其进而可以包括克隆服务器375和应用服务器351的组件中的一个或多个(如由相同的附图标记所示)加上一个或多个虚拟服务器378a...378n(统称为虚拟服务器378)。虚拟服务器378中的单个但非专用的一个可以称为虚拟服务器378。在处理器352中操作的管理程序或其他虚拟机监视器可以管理物理服务器371及其资源,以便向远程用户(例如,通过通信接口355耦合的远程用户)提供虚拟服务器378的外观。虚拟服务器378可以提供相应的客户操作系统(“GOS”),例如,为了耦合到相应虚拟服务器378的用户(例如,远程用户)的权益,并且支持在虚拟服务器378上执行(一个或多个)应用程序。支持虚拟服务器378的存储器存储可以从RAM 353、存储介质354分配和/或由外部存储器设备(图3C中未示出)提供。
在一些实施例中,在发生闪烁备份时,虚拟服务器378、其相应的GOS、存储器资源和在GOS上运行的任何应用程序可以在其执行闪烁备份所花费的持续时间内暂时进入锁定或挂起状态。在闪烁备份发生时,锁定或挂起状态减少对系统状态或系统配置的改变。在闪烁备份结束时,进入锁定或挂起状态的元件可以自动返回其正常状态。
在一些实施例中,虚拟服务器378、其相应的GOS、存储器资源和在GOS上运行的任何应用程序可以在闪烁备份期间暂时进入静止状态。静止状态可以继续执行事务,但结果可以保存在驻留存储器中而不提交给存储介质。相反,处于休眠模式下的服务器可以将存储器映像保存到存储介质并在处于休眠模式下时关闭而不执行事务。在闪烁备份结束时,进入静止状态的元件可以自动返回其正常状态。
在一些实施例中,闪烁备份可以被存储在可经由通信接口355访问的外部闪烁储存库中,类似于闪烁存储库306。
图4示出了简化的平面物理地址空间模型。物理存储器的总量可以与图4中描绘的量不同。根据本公开的实施例能够使用本文描述的过程创建对整个地址空间403的快速克隆。其他实施例能够使用本文描述的过程来进行对简化的平面物理地址空间模型的一个或多个部分401a、401b的快速克隆。
图5A示出了根据本公开的实施例的编码过程500。过程500可以由操作系统204和数据适配模块211执行。
过程500开始于步骤501,在该处从意图存储原始数据的应用程序接收要存储的原始数据块。原始数据可以是文件、流媒体、固定大小或可变大小的数据块等的形式。
接下来,过程500转换到步骤503,在该处可以将在步骤501中接收到的原始数据的部分映射或匹配到原始数据的候选矢量。将原始数据与原始数据的较长候选矢量匹配应该比将原始数据与原始数据的较短候选矢量匹配产生更大的数据存储效率。候选矢量可以作为(标记,矢量)对的表被存储在常规存储器中。目标是通过至少一个矢量表示原始数据中的每个比特或字节。某些原始数据字节(如0×00或0×FF)可以被认为是默认值,并且对于等于默认值的任何原始数据字节,可选择用矢量表示等于该默认值的字节。
在步骤503中,最小阈值长度限制可以存在于将被映射到原始数据的候选矢量的原始数据中的一部分的长度上。例如,由仅单个字节组成的原始数据将太短而不能尝试匹配原始数据的候选矢量,这是因为到原始数据的矢量的指针将比原始数据本身更长。对于长度超过最小阈值的原始数据,如果原始数据与原始数据的现有候选矢量不匹配,则可以将原始数据添加为原始数据的新矢量。
接下来,过程500转换到步骤505,在该处可以将在步骤503中确定的矢量映射到来自(标记,矢量)对的表的相应比特标记。比特标记是引用相关联的矢量的简短方式。
接下来,过程500转换到步骤507,在该处来自(标记,矢量)对的表的比特标记被存储在诸如RAM存储单元220的存储器中。
图5B示出了根据本公开的实施例的解码过程550。过程550可以由操作系统204和数据适配模块211执行。
过程550开始于步骤551,在该处从诸如RAM存储单元220的存储器中读取要解码的编码数据块。如本领域技术人员所知,地址可以通过虚拟地址调整方法和表来管理。
接下来,过程550转换到步骤553,在该处从编码数据提取比特标记。
接下来,过程550转换到步骤555,在该处在(标记,矢量)对的表中搜索从步骤553提取的比特标记。
接下来,过程550转换到步骤557,在该处对应于从步骤553提取的比特标记而从(标记,矢量)对的表中的条目中提取原始数据矢量。
接下来,过程550转换到步骤559,在该处从步骤557提取的原始数据矢量被组合以形成重构的解码数据。如果组合的原始数据矢量不覆盖重构的解码数据的整个预期的地址范围内的所有地址,则未被覆盖的地址可以被认为取解码数据中的默认值,例如,0×00或0×FF字节。
图6A示出了根据本公开的实施例的执行源系统的闪烁备份的过程600。过程600可以由操作系统204和数据适配模块211执行。
过程600开始于步骤601,在该处识别要从源系统备份的存储器资源。例如,存储器资源可以对应于整个服务器,或者专用于专用功能或组的虚拟服务器(例如,会计功能),或者对应于另一个类似的计算系统。更特别地,存储器资源可以对应于在源系统(即,要备份的系统)上执行的一个或多个过程。虚拟服务器可以与分别专用于诸如销售和营销、工程部分等的其他功能的其他虚拟服务器一起被托管在物理服务器上。
接下来,过程600转换到步骤603,在该处从源系统(即,要备份的系统)检索在步骤601中识别的存储器内容。然后,过程600的控制可以转移到编码过程500以进行进一步处理。在步骤601中识别的存储器内容可以用作要由过程500编码的原始数据输入块。在转移到编码过程500之前,可以以大致任何方便的方式划分原始数据块。例如,原始数据块可以具有大致统一的块大小(例如,每原始数据块1兆字节),或者原始数据块可以对应于被备份的服务器的相应过程所使用的存储器空间,等等。在一些实施例中,‘175申请中描述的标记表可以由多于一个闪烁备份引用。
图6B示出了根据本公开的实施例的从闪烁备份恢复系统的过程650。闪烁备份也可以称为目标系统,因为它是进行闪烁备份时的备份目标。过程650可以由操作系统204和数据适配模块211执行。
过程650开始于步骤651,在该处实施例识别要恢复的系统。
接下来,过程650转换到步骤653,在该处从诸如NV-DIMM 309的编码存储器中检索与要恢复的服务器相对应的编码内容。
接下来,过程650转换到步骤655,在该处调用诸如解码过程550的解码过程,以便对从步骤653检索的编码内容进行解码。
接下来,过程650转换到步骤657,在该处将解码数据保存在目标系统的存储器空间中。解码数据可以被存储在与源系统上其占用的相同存储器地址处。
虽然前述内容针对本发明的实施例,但是在不脱离本发明的基本范围的情况下,可以设计出本发明的其他和另外的实施例。要理解的是,在不脱离本文所包含的范围的情况下,本文描述的各种实施方案可以与所描述的任何其他实施例组合使用。此外,前面的描述并非旨在是穷举性的或者将本发明限制于所公开的精确形式。修改和变型根据以上教导是可能的或者可以从本发明的实践获得。某些示例性实施例可以通过使用开放式列表来标识,该开放式列表包括用于指示列表项表示实施例的措辞,并且该列表不旨在表示排除另外实施例的封闭列表。这样的措辞可以包括“例如(e.g.)”、“等(etc.)”、“诸如”、“例如(forexample)”、“等等(and so forth)”、“等(and the like)”等,以及根据周围上下文将是显而易见的其他措辞。
除非明确地如此描述,否则在本申请的描述中使用的元件、动作或指令不应被解释为对本发明是关键或必要的。而且,如本文所使用的,冠词“a”旨在包括一个或多个项目。在旨在仅一个项目的情况下,使用术语“一个”或类似语言。此外,如本文所使用的术语“中的任何”之后是多个项目和/或多个项目类别的列表旨在包括单独地或与其他项目和/或其他项目类别结合的项目和/或项目类别“中的任何”、“中的任何组合”、“中的任何多个”和/或“中的多个的任何组合”。
此外,权利要求不应被解读为限于所描述的顺序或元件,除非声明该效果。此外,在任何权利要求中使用术语“装置”意图是调用并且没有“装置”词语的任何权利要求不这样意图。
Claims (26)
1.一种用于克隆源计算系统的方法,其包括以下步骤:
选择耦合到所述源计算系统的存储器空间;
从所选择的存储器空间检索未编码的数据;
通过使用在备份服务器上执行的基于比特标记的编码过程来对所述未编码的数据进行编码;
将编码的数据存储在耦合到所述备份服务器的受保护的存储器中,其中所述受保护的存储器被保护免于断电;
从所述受保护的存储器检索所述编码的数据;以及
将所述编码的数据解码到目标计算系统上,其中所述目标计算系统与所述源计算系统分离。
2.根据权利要求1所述的方法,其中,选择存储器空间包括:
识别在所述源计算系统上执行的一个或多个计算过程;和
选择由一个或多个所识别的计算过程中的每一个使用的存储器空间。
3.根据权利要求1所述的方法,其中,选择存储器空间包括所述源计算系统的整个易失性存储器地址范围。
4.根据权利要求1所述的方法,其中,选择存储器空间包括所述源计算系统的整个易失性存储器地址范围的固定范围子集。
5.根据权利要求1所述的方法,其中,所述源计算系统包括虚拟服务器。
6.根据权利要求1所述的方法,其中,耦合到所述备份服务器的所述受保护的存储器存储多个源计算系统参考映像。
7.根据权利要求6所述的方法,其中,所述多个源计算系统参考映像包括单个源计算系统随时间的映像。
8.根据权利要求6所述的方法,其中,所述多个源计算系统参考映像包括多个源计算系统的映像。
9.根据权利要求1所述的方法,其中,通过来自被克隆的所述源计算系统外部的源的请求来创建所述源计算系统的克隆。
10.根据权利要求1所述的方法,其中,在由被克隆的所述源计算系统确定的时间创建所述源计算系统的克隆。
11.根据权利要求1所述的方法,其中,克隆所述源计算系统是可操作的,以将所述目标计算系统重新用于不同的使用。
12.根据权利要求1所述的方法,其中,克隆所述源计算系统是可操作的,以将所述目标计算系统恢复到备份状态。
13.根据权利要求1所述的方法,其中,克隆所述源计算系统是可操作的,以将所述目标计算系统从备用状态重新用于活动状态。
14.根据权利要求1所述的方法,其中,选择存储器空间包括:
第一存储器空间,其包括非定制的服务器的基本系统映像;和
第二存储器空间,其包括所述非定制的服务器的系统专用的定制。
15.一种用于克隆源计算系统的系统,其包括:
耦合到存储器的处理器,所述存储器为所述源计算系统提供存储器空间;
支持从所述存储器空间检索未编码的数据的通信接口;
编码器,通过使用在备份服务器上执行的基于比特标记的编码过程来对所述未编码的数据进行编码;
存储模块,用于将编码的数据存储在耦合到所述备份服务器的受保护的存储器中,其中所述受保护的存储器被保护免于断电;
支持从所述受保护的存储器检索所述编码的数据的通信接口;和
解码器,用于将所述编码的数据解码到目标计算系统上,其中所述目标计算系统与所述源计算系统分离。
16.根据权利要求15所述的系统,其中,选择存储器空间包括所述源计算系统的整个易失性存储器地址范围。
17.根据权利要求15所述的系统,其中,选择存储器空间包括所述源计算系统的整个易失性存储器地址范围的固定范围子集。
18.根据权利要求15所述的系统,其中,所述源计算系统包括虚拟服务器。
19.根据权利要求15所述的系统,其中,耦合到所述备份服务器的所述受保护的存储器存储多个源计算系统参考映像。
20.根据权利要求19所述的系统,其中,所述多个源计算系统参考映像包括单个源计算系统随时间的映像。
21.一种用于编码系统状态数据的系统,其包括:
数据接口,用于接收未编码的系统状态数据的块,其中所述未编码的系统状态数据的块表示从由复合对象和多维数据对象组成的组中选择的一个;和
耦合到存储器的处理器,所述处理器被配置为:
将所述未编码的系统状态数据的块分解为默认数据和非默认数据;
将所述非默认数据映射到多个数据矢量;
将所述多个数据矢量中的每一个映射到相应的比特标记;以及
将所述相应的比特标记存储在所述存储器中以产生所述未编码的系统状态数据的编码表示。
22.一种用于编码系统状态数据的系统,其包括:
数据接口,用于接收未编码的系统状态数据的块;和
耦合到存储器的处理器,所述处理器被配置为:
将所述未编码的系统状态数据的块分解为默认数据和非默认数据;
将所述非默认数据映射到多个数据矢量;
将所述多个数据矢量中的每一个映射到相应的比特标记;以及
将所述相应的比特标记存储在所述存储器中以产生所述未编码的系统状态数据的编码表示,
其中所述比特标记包括从由以下组成的组中选择的一个:
种子值和复制规则,以及
多个其他比特标记和组合规则。
23.一种用于编码系统状态数据的系统,其包括:
数据接口,用于接收未编码的系统状态数据的块;和
耦合到存储器的处理器,所述处理器被配置为:
将所述未编码的系统状态数据的块分解为默认数据和非默认数据;
将所述非默认数据映射到多个数据矢量,其中所述数据矢量中的至少一个包括分形模式;
将所述多个数据矢量中的每一个映射到相应的比特标记;以及
将所述相应的比特标记存储在所述存储器中以产生所述未编码的系统状态数据的编码表示。
24.一种用于编码系统状态数据的系统,其包括:
数据接口,用于接收未编码的系统状态数据的块,其中所述未编码的系统状态数据的块表示从由复合对象和多维数据对象组成的组中选择的一个;和
耦合到存储器的处理器,所述处理器被配置为:
将所述未编码的系统状态数据的块分解为多个数据矢量;
将所述多个数据矢量中的每一个映射到相应的比特标记;以及
将所述相应的比特标记存储在所述存储器中以产生所述未编码的系统状态数据的编码表示,
其中,当表示所述未编码的系统状态数据的块时,所述多个数据矢量中的至少一些彼此重叠。
25.一种用于编码系统状态数据的系统,其包括:
数据接口,用于接收未编码的系统状态数据的块;和
耦合到存储器的处理器,所述处理器被配置为:
将所述未编码的系统状态数据的块分解为多个数据矢量;
将所述多个数据矢量中的每一个映射到相应的比特标记,其中所述相应的比特标记包括从由以下组成的组中选择的一个:
种子值和复制规则,以及
多个其他比特标记和组合规则;并且
将所述相应的比特标记存储在所述存储器中以产生所述未编码的系统状态数据的编码表示,
其中,当表示所述未编码的系统状态数据的块时,所述多个数据矢量中的至少一些彼此重叠。
26.一种用于编码系统状态数据的系统,其包括:
数据接口,用于接收未编码的系统状态数据的块;和
耦合到存储器的处理器,所述处理器被配置为:
将所述未编码的系统状态数据的块分解为多个数据矢量,其中所述数据矢量中的至少一个包括分形模式;
将所述多个数据矢量中的每一个映射到相应的比特标记;以及
将所述相应的比特标记存储在所述存储器中以产生所述未编码的系统状态数据的编码表示,
其中,当表示所述未编码的系统状态数据的块时,所述多个数据矢量中的至少一些彼此重叠。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/089,837 | 2016-04-04 | ||
US15/089,837 US9817728B2 (en) | 2013-02-01 | 2016-04-04 | Fast system state cloning |
PCT/US2017/024692 WO2017176523A1 (en) | 2016-04-04 | 2017-03-29 | Fast system state cloning |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109643259A true CN109643259A (zh) | 2019-04-16 |
Family
ID=60000675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780034622.8A Pending CN109643259A (zh) | 2016-04-04 | 2017-03-29 | 快速系统状态克隆 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP3440549A4 (zh) |
JP (1) | JP2019514146A (zh) |
KR (1) | KR20190013729A (zh) |
CN (1) | CN109643259A (zh) |
AR (1) | AR108087A1 (zh) |
TW (1) | TW201738759A (zh) |
WO (1) | WO2017176523A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061514B2 (en) | 2015-04-15 | 2018-08-28 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
US9390154B1 (en) | 2015-08-28 | 2016-07-12 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US10747753B2 (en) | 2015-08-28 | 2020-08-18 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
EP4027251A1 (en) | 2016-11-10 | 2022-07-13 | Swirlds, Inc. | Methods and apparatus for a distributed database including anonymous entries |
CN116820695A (zh) | 2016-12-19 | 2023-09-29 | 海德拉哈希图有限责任公司 | 用于启用事件删除的分布式数据库的方法和设备 |
US10375037B2 (en) | 2017-07-11 | 2019-08-06 | Swirlds, Inc. | Methods and apparatus for efficiently implementing a distributed database within a network |
CA3076257A1 (en) | 2017-11-01 | 2019-05-09 | Swirlds, Inc. | Methods and apparatus for efficiently implementing a fast-copyable database |
US10572186B2 (en) | 2017-12-18 | 2020-02-25 | Formulus Black Corporation | Random access memory (RAM)-based computer systems, devices, and methods |
TWI750425B (zh) * | 2018-01-19 | 2021-12-21 | 南韓商三星電子股份有限公司 | 資料儲存系統和用於寫入鍵值對的物件的方法 |
US10725853B2 (en) | 2019-01-02 | 2020-07-28 | Formulus Black Corporation | Systems and methods for memory failure prevention, management, and mitigation |
US11475150B2 (en) | 2019-05-22 | 2022-10-18 | Hedera Hashgraph, Llc | Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database |
KR102557352B1 (ko) | 2020-12-31 | 2023-07-19 | 스노우화이트팩토리(주) | 생열귀나무 추출물을 유효성분으로 포함하는 치주 질환의 예방 또는 치료용 조성물 |
TWI788084B (zh) * | 2021-11-03 | 2022-12-21 | 財團法人資訊工業策進會 | 運算裝置以及資料備份方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212644A1 (en) * | 2005-03-21 | 2006-09-21 | Acton John D | Non-volatile backup for data cache |
CN102073893A (zh) * | 2010-12-27 | 2011-05-25 | 陆宝武 | 一种防伪编码方法及解码装置 |
US20130283038A1 (en) * | 2012-04-23 | 2013-10-24 | Raghavendra Kulkarni | Seamless Remote Storage of Uniformly Encrypted Data for Diverse Platforms and Devices |
US20140223118A1 (en) * | 2013-02-01 | 2014-08-07 | Brian Ignomirello | Bit Markers and Frequency Converters |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806271B2 (en) * | 2008-12-09 | 2014-08-12 | Samsung Electronics Co., Ltd. | Auxiliary power supply and user device including the same |
US8055937B2 (en) * | 2008-12-22 | 2011-11-08 | QuorumLabs, Inc. | High availability and disaster recovery using virtualization |
JP2011039589A (ja) * | 2009-08-06 | 2011-02-24 | Fujitsu Ltd | 復元制御装置、復元制御方法、コンピュータ可読記憶媒体、及び、復元制御プログラム |
US20150163060A1 (en) * | 2010-04-22 | 2015-06-11 | Martin Tomlinson | Methods, systems and apparatus for public key encryption using error correcting codes |
US20120239860A1 (en) * | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
JP5976840B2 (ja) * | 2011-12-29 | 2016-08-24 | ヴイエムウェア インコーポレイテッドVMware,Inc. | デスクトップイメージのnウェイ同期化 |
US9467294B2 (en) * | 2013-02-01 | 2016-10-11 | Symbolic Io Corporation | Methods and systems for storing and retrieving data |
US9817728B2 (en) * | 2013-02-01 | 2017-11-14 | Symbolic Io Corporation | Fast system state cloning |
-
2017
- 2017-03-29 WO PCT/US2017/024692 patent/WO2017176523A1/en active Application Filing
- 2017-03-29 EP EP17779550.7A patent/EP3440549A4/en not_active Withdrawn
- 2017-03-29 JP JP2019503395A patent/JP2019514146A/ja active Pending
- 2017-03-29 KR KR1020187031993A patent/KR20190013729A/ko not_active Application Discontinuation
- 2017-03-29 CN CN201780034622.8A patent/CN109643259A/zh active Pending
- 2017-03-31 TW TW106111156A patent/TW201738759A/zh unknown
- 2017-04-04 AR ARP170100847A patent/AR108087A1/es unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212644A1 (en) * | 2005-03-21 | 2006-09-21 | Acton John D | Non-volatile backup for data cache |
CN102073893A (zh) * | 2010-12-27 | 2011-05-25 | 陆宝武 | 一种防伪编码方法及解码装置 |
US20130283038A1 (en) * | 2012-04-23 | 2013-10-24 | Raghavendra Kulkarni | Seamless Remote Storage of Uniformly Encrypted Data for Diverse Platforms and Devices |
US20140223118A1 (en) * | 2013-02-01 | 2014-08-07 | Brian Ignomirello | Bit Markers and Frequency Converters |
Also Published As
Publication number | Publication date |
---|---|
JP2019514146A (ja) | 2019-05-30 |
WO2017176523A1 (en) | 2017-10-12 |
KR20190013729A (ko) | 2019-02-11 |
TW201738759A (zh) | 2017-11-01 |
WO2017176523A8 (en) | 2018-10-25 |
EP3440549A1 (en) | 2019-02-13 |
AR108087A1 (es) | 2018-07-18 |
EP3440549A4 (en) | 2019-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109643259A (zh) | 快速系统状态克隆 | |
US9977719B1 (en) | Fast system state cloning | |
US20230305732A1 (en) | Replication Among Storage Systems Hosting An Application | |
US20240193182A1 (en) | Checkpoint-based data replication | |
US11513926B2 (en) | Systems and methods for instantiation of virtual machines from backups | |
CN106852175B (zh) | 可配置易失性存储器数据保存触发器 | |
Schulz | The green and virtual data center | |
CN106062742B (zh) | 用于改进快照性能的系统和方法 | |
US10229125B2 (en) | Remote data protection in a networked storage computing environment | |
US20220083245A1 (en) | Declarative provisioning of storage | |
US20220253254A1 (en) | Replication Between Virtual Storage Systems | |
WO2021011050A1 (en) | Virtual storage system architecture | |
CN103034453A (zh) | 管理虚拟机实例中预安装应用的持久数据的方法和装置 | |
CN103620599A (zh) | 云存储 | |
CN103140842A (zh) | 用于提供灵活存储和检索快照档案的系统和方法 | |
WO2011103537A1 (en) | Data synchronization between a data center environment and a cloud computing environment | |
US20220147490A1 (en) | Replica transitions for file storage | |
CN103460192A (zh) | 具有增强的需求-能力定义的资源消耗 | |
CN116760705A (zh) | 基于综合能源管理系统的多租户平台隔离管理系统及方法 | |
US20180307809A1 (en) | Analysis of output files | |
WO2023070025A1 (en) | Declarative provisioning of storage | |
US11803440B2 (en) | Automated methods and systems for troubleshooting and optimizing performance of applications running in a distributed computing system | |
US20220091744A1 (en) | Optimized Application Agnostic Object Snapshot System | |
Quintero et al. | IBM data engine for hadoop and spark | |
Wufka et al. | Overview of Cloud Computing |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190416 |
|
WD01 | Invention patent application deemed withdrawn after publication |