[go: up one dir, main page]

CN111858149B - 属于集群的系统、用于备份的方法和机器可读介质 - Google Patents

属于集群的系统、用于备份的方法和机器可读介质 Download PDF

Info

Publication number
CN111858149B
CN111858149B CN202010248020.6A CN202010248020A CN111858149B CN 111858149 B CN111858149 B CN 111858149B CN 202010248020 A CN202010248020 A CN 202010248020A CN 111858149 B CN111858149 B CN 111858149B
Authority
CN
China
Prior art keywords
backup
file system
dek
node
encrypted data
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
CN202010248020.6A
Other languages
English (en)
Other versions
CN111858149A (zh
Inventor
G·D·理查兹
G·S·沃特金斯
J·M·切尔科维奇
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN111858149A publication Critical patent/CN111858149A/zh
Application granted granted Critical
Publication of CN111858149B publication Critical patent/CN111858149B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

示例实施方式涉及对数据对象进行加密。在示例中,使用数据加密密钥对安全域所包含的文件系统实例的数据对象进行加密,所述数据加密密钥特定于所述安全域并且通过群集内专门共享的密钥加密密钥进行包装。在备份节点上创建所述文件系统实例的备份。所述备份包括经加密数据对象中的至少一些经加密数据对象。将所述DEK发送到所述备份节点。除非所述备份节点是所述集群的成员并且有权访问所述KEK以将所述DEK解包,否则所述备份节点无法对所述备份进行解密。

Description

属于集群的系统、用于备份的方法和机器可读介质
技术领域
本公开涉及文件系统实例的备份。
背景技术
计算系统可以存储数据。一些示例计算系统可以操作对数据如何存储进行控制的数据虚拟化平台。出于隐私和安全目的,可以对数据进行加密。计算系统可以创建数据备份以防止丢失。
发明内容
根据本公开的一方面,提供了一种属于集群的系统,所述系统包括:处理资源;以及机器可读介质,其存储指令,所述指令在由所述处理资源执行时使所述处理资源:将数据加密密钥(DEK)与文件系统相关联,其中所述文件系统与安全域对应;使用同一DEK对所述文件系统的文件系统实例的数据对象进行加密以生成经加密数据对象,所述DEK通过所述集群内专门共享的密钥加密密钥(KEK)进行包装,在备份节点上创建所述文件系统实例的备份,所述备份包括所述经加密数据对象中的至少一些经加密数据对象,以及将通过所述KEK包装的所述DEK发送到具有所述备份的所述备份节点,其中,除非所述备份节点属于所述集群并且有权访问所述KEK以将所述DEK解包,否则所述备份节点无法对所述备份进行解密,以及通过参考从所述经加密数据对象计算的签名,所述文件系统实例将位于叶级的所述经加密数据对象与根对象分层地相关。
根据本公开的另一方面,提供了一种用于备份的方法,包括:由集群中的节点的处理资源将文件系统与数据加密密钥(DEK)相关联,所述数据加密密钥与所述集群内的安全域对应;由所述处理资源使用同一DEK对所述文件系统的文件系统实例的数据对象进行加密,以生成经加密数据对象,其中,所述DEK通过所述集群中的节点所专门共享的密钥加密密钥(KEK)进行包装;由所述处理资源在备份节点上创建所述文件系统实例的备份,所述备份包括所述经加密数据对象中的至少一些经加密数据对象;以及由所述处理资源将通过所述KEK包装的所述DEK发送到所述备份节点,其中,除非所述备份节点是所述集群的成员并且有权访问所述KEK以将所述DEK解包,否则所述备份节点无法对所述备份进行解密。
根据本公开的又一方面,提供了一种非暂态机器可读介质,其存储能够由计算系统的处理资源执行的指令,所述非暂态机器可读介质包括:用于将文件系统与数据加密密钥(DEK)相关联的指令,所述文件系统与所述计算系统所属于的集群内的安全域对应;用于使用同一DEK对所述文件系统的文件系统实例的数据对象进行加密以生成经加密数据对象的指令,其中所述DEK通过所述集群中的计算系统所专门共享的密钥加密密钥(KEK)进行包装;用于在另一个计算系统上创建所述文件系统实例的备份的指令,所述备份包括所述经加密数据对象中的至少一些经加密数据对象;以及用于将通过所述KEK包装的所述DEK发送到具有所述备份的所述另一个计算系统的指令,其中,除非所述另一个计算系统属于所述集群并且有权访问所述KEK以将所述DEK解包,否则所述另一个计算系统无法对所述备份进行解密。
附图说明
下面将参考以下附图描述各种示例。
图1描绘了示例环境,其中,节点可以创建具有经加密数据对象的文件系统实例的备份。
图2描绘了示例文件系统实例,其中,使用数据加密密钥对数据对象进行加密。
图3描绘了具有机器可读介质的示例系统,所述机器可读介质包括用于使用数据加密密钥对数据对象进行加密和用于创建具有经加密数据对象的文件系统实例的备份的指令。
图4描绘了具有机器可读介质的示例系统,所述机器可读介质包括用于删除数据加密密钥以便以加密方式擦除文件系统实例和备份的指令。
图5描绘了包括创建具有经加密数据对象的文件系统实例的备份的示例方法。
图6描绘了包括删除数据加密密钥以便以加密方式擦除文件系统实例和备份的示例方法。
图7描绘了示例环境,其中,节点可以创建具有经加密数据对象的文件系统实例的备份。
图8描绘了具有机器可读介质的示例系统,所述机器可读介质包括用于使用元数据加密密钥对文件系统实例的根对象进行加密和用于创建文件系统实例的备份的指令。
图9描绘了具有机器可读介质的示例系统,所述机器可读介质包括用于验证未加密的重建的根对象的指令和用于删除元数据加密密钥以便以加密方式擦除所选备份的指令。
图10描绘了包括使用元数据加密密钥对根对象进行加密的示例方法。
图11描绘了包括验证重建的根对象的示例方法。
图12描绘了包括删除元数据加密密钥以便以加密方式擦除所选文件系统实例和备份的示例方法。
在整个附图中,相同的附图标记可以表示类似但不一定相同的元件。在整个附图中,附加在一些附图标记上的带连字符的索引号“N”可以理解为仅表示多个并且可以用整数代替以提供特定示例。另外,本文中在附图标记在其他地方与带连字符的索引号一起引用的情况下,这样的附图标记在没有带连字符的索引号的情况下的使用可以集体地或单个地概括指代对应的复数个元件。
具体实施方式
数据可以存储在如服务器、计算机设备、工作站、存储系统或存储阵列、聚合或超聚合系统等计算系统上。通过网络连接的计算系统还可以称为节点,并且反之亦然。为了存储数据,一些计算系统可以利用数据虚拟化平台,所述数据虚拟化平台将其中以物理方式存储数据的物理存储硬件的各方面(例如,如寻址、配置等方面)抽象化并向用户环境(例如,操作系统、应用程序、进程等)呈现虚拟化存储或逻辑存储。可以将虚拟化存储从多个存储硬件(例如,硬盘驱动器、固态驱动器等)汇集到数据存储库中,可以从所述数据存储库中提供虚拟化存储或逻辑存储。数据虚拟化平台还可以提供如去重复(deduplication)、压缩、复制等数据服务。
在一些实施方式中,数据虚拟化平台可以至少部分地由虚拟控制器实例化、维持和管理。虚拟控制器可以是利用专用处理器可执行指令在如处理器和存储器等硬件资源上执行以根据本文所描述的各种示例建立和维持虚拟化存储的虚拟机(VM)。在此类实例中,虚拟控制器可以与客户虚拟机(也称为客户端或用户虚拟机)一起并且在例如与客户虚拟机相同的管理程序或虚拟机管理器上操作。
在一些实例中,数据虚拟化平台可以是基于对象的。基于对象的数据虚拟化平台可以不同于块级存储(例如,在存储区域网络中实施并经由如iSCSI或光纤通道等存储协议呈现)和文件级存储(例如,管理文件分层结构中的数据并经由如NFS或SMB/CIFS等文件协议呈现的虚拟文件系统),但在一些实施方式中,基于对象的数据虚拟化平台可以是块或文件存储协议的基础。
除其他外,示例基于对象的数据虚拟化平台的部件可以包括平面对象存储库和一个或多个文件系统实例。数据可以作为对象存储在对象存储库中。例如,用户可访问的文件和目录可以由多个数据对象构成。如将在下文描述的,对象存储库还可以存储与数据虚拟化平台的操作有关的元数据对象。在示例中,对象可以在对象存储库中具有预定的固定大小(例如,数据对象为4kib或8kib并且元数据对象为1kib)。每个对象可以通过签名(也称为对象指纹)识别,在一些实施方式中,所述签名可以包括所述对象的内容的加密哈希摘要。对象索引可以将对象存储库中对象的签名与对象的内容的物理地址(即,如磁盘等存储硬件上的物理地址)相关。
文件系统实例可以指代将数据对象与根对象分层地相关的元数据对象和数据对象的组织。因此,文件系统实例可以通过其根对象识别。例如,文件系统实例可以是默克尔树或任何其他分层布置(例如,有向无环图等)。在分层默克尔树的情况下,数据对象可以位于任何分支的最低树级(即,距根对象最远)并且还可以称为叶数据对象。父对象包括子对象的签名作为其内容。例如,叶数据对象的父对象是存储其子叶数据对象的签名作为其内容的元数据对象。树的根对象和其他内部对象也可以是存储相应子对象的签名作为内容的元数据对象。元数据对象可以能够存储至少等于分层树的分支因子的多个签名,使得元数据对象可以保持其所有子对象的签名。
在示例实施方式中,一个或多个客户虚拟机的数据可以由一个或多个文件系统实例存储(例如,使用来自多个文件系统实例的存储的一个客户VM、使用来自文件系统实例的存储的许多客户VM或两者之间的任何变体)。在特定示例中,每个客户虚拟机可以一对一地与相应文件系统实例相关联。数据虚拟化平台可以导出文件协议安装点(例如,NFS或SMB安装点),客户虚拟机可以通过所述文件协议安装点访问由文件系统实例经由文件协议的名称空间提供的存储。在一些实施方式中,对象存储库中的对象可以在单个文件系统实例中被引用超过一次或者可以在各文件系统实例中被引用多次。因此,多次被引用的对象可以被存储一次但被引用多次以提供去重复。
文件系统实例及其数据对象可以从一个计算系统复制到另一计算系统以提供数据保护。复制数据的过程也可以称为将数据备份。例如,可以在集群中的两个或更多个节点之间复制数据,并且可以将此类复制视为本地备份。在另一个示例中,可以将数据从源节点复制到远程节点,并且可以将此类复制视为远程备份。远程节点可以是第三方备份服务处的节点、公共云中的节点或拥有源节点的同一实体所拥有的在地理位置上分离的节点。一系列快照可以在各个时间点捕获文件系统实例,并且可以将这些快照作为一系列备份进行备份。
可以对存储的数据进行加密以提供安全性、机密性和隐私性。可以使用加密算法和加密密钥对数据进行加密。在一些实例中,包括遵守政府标准或公司政策,删除经加密数据必须确保数据无法恢复。
因此,可以有用的是提供经加密数据的安全备份,同时仍根据去重复和压缩实现数据效率。本文描述的示例可以涉及被包含和隔离在安全域中的分层文件系统实例。通过使用特定于安全域的数据加密密钥(DEK)对构成的数据对象进行加密,可以使那些文件系统实例安全。DEK通过特定集群中的各节点所专门共享的密钥加密密钥(KEK)进行包装(wrap)(即,通过对称加密进行封装),这限制了受信任的节点访问安全数据。在一些实施方式中,对数据对象的加密还可以基于例如文件系统实例中数据对象的相应位置(例如,基于文件系统实例中的分层关系的位置)使用加密算法微调值,使得文件系统实例的树结构需要是已知的以对经加密数据对象进行解密。
通过将经加密数据对象复制到备份节点,可以在本地或远程备份节点上创建文件系统实例的安全备份。除非备份节点是集群的成员并且有权访问KEK以将DEK解包,否则备份节点无法对备份进行解密。通过特定于安全域的数据加密密钥以及集群及其节点所专用的密钥加密密钥,可以跨与同一安全域相关联的备份文件系统实例但无法跨与不同安全域相关联的文件系统实例执行对加密数据的去重复,从而防止了安全域外的数据混合。此外,可以删除DEK以便以高效的方式并且在不干扰其他安全域中任何未加密数据或任何文件系统实例和备份的情况下以加密方式擦除安全的经加密文件系统实例和所有相关的安全的经加密备份。因此,对于一系列备份,比如在文件系统的一系列快照中,可以实现安全性和去重复两者。
一些示例涉及使用不同的元数据加密密钥(MEK)对不同文件系统实例的根对象进行加密。通过删除所选的特定文件系统实例,可以在不干扰与安全域相关联的其他文件系统实例的情况下以加密方式擦除任何相关备份。例如,MEK可以可用于以加密方式擦除一系列快照中的特定快照。鉴于以下描述,其他优点将显而易见。
现在参考附图,图1图示了包括具有处理资源112和机器可读介质114的节点-1110的示例计算环境。节点-1 110还可以经由网络接口与有线和/或无线网络通信。图1还图示了节点-2 140和节点-3 160,所述节点中的每一个可以包括在许多方面与本文所描述的节点-1 110类似的结构和功能并且可以经由网络彼此之间通信并与节点-1 110通信。节点-1 110、节点-2 140和节点-3 160中的每一个也可以称为计算系统并且各自可以是服务器、计算机设备、工作站、存储系统、存储阵列、融合系统、超融合系统等。
处理资源112可以包括微控制器、微处理器、一个或多个中央处理单元核心、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。机器可读介质114可以是非暂态的(即,不包括暂态传播信号)并且可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、硬盘驱动器、固态硬盘等。处理资源112可以执行存储在机器可读介质114上的指令(即,编程或软件代码)。另外或可替代地,处理资源112可以包括用于执行本文所描述的指令和功能的电子电路。
数据虚拟化平台116可以在节点-1 110上操作。在一些实施方式中,数据虚拟化平台116可以由虚拟控制器(例如,虚拟机)实例化,所述虚拟控制器本身可以实施为例如编码在机器可读介质114上并由处理资源112执行的指令。如上文所描述的,数据虚拟化平台可以是基于对象的,其可以维持对象存储库120所支持的文件系统实例。文件系统实例可以向如客户VM、操作系统等客户端提供存储,其可以经由网络在节点-1 110上或在与节点-1110的数据虚拟化平台116通信的另一个计算系统上执行。在一些实施方式中,比如文件和导向器等客户VM数据可以作为数据对象存储在对象存储库120中,所述数据对象可通过基于内容的哈希签名识别并且在客户VM的呈分层布置(例如,默克尔树)的文件系统实例中与根对象相关。尽管本文描述的示例可以涉及客户VM数据,但是应当理解,本文描述的技术还可以支持其他客户端环境,包括非虚拟化环境。
节点-1 110可以与一个或多个其他节点分组在一起以形成集群。例如,节点-1110和节点-2 140在集群150中共享共同成员身份。集群150可以具有由所述集群150中的所有节点(包括节点-1 110和节点-2 140)共享的密钥加密密钥(KEK)152。在多个集群共存的环境中,每个集群可以与不同的KEK相关联。换句话说,给定的KEK对于相关联的集群和所述集群的节点来说是独有的。在一些实施方式中,集群150中的节点可以从可以生成密钥加密密钥的密钥管理系统(未示出)中取得KEK 152。在一些实施方式中,KEK可以是256位AES-256密钥。
集群150可以包含一个或多个安全域。安全域是一个或多个安全文件系统实例的容器。换句话说,一个或多个安全文件系统实例可以属于安全域。在一些示例中,安全域可以被认为是文件系统实例或与文件系统实例相关联的VM的特性。每个安全域与不同的数据加密密钥(DEK)相关联。DEK用于对相关联的安全域的文件系统实例的数据对象进行加密。当创建了安全域时,可以由数据虚拟化平台116(例如,数据虚拟化平台的控制平面)为所述安全域创建DEK。在一些实施方式中,DEK可以是512位XTS-AES-256密钥。DEK可以包装在包含安全域的集群的KEK下。例如,可以通过对称密钥封装算法来执行密钥包装,如由KEK对DEK的包装。
安全域中的文件系统实例可以是例如客户VM的数据在不同时间点的快照。在一些实施方式中,每个快照本身就是文件系统实例。在另一个示例中,安全域可以包含不同客户VM的文件系统实例,在另外的示例中,所述安全域还可以包括那些不同客户VM中的一个或多个客户VM的快照。安全域可以由用户或根据策略配置。可以理解,安全域是要通过同一DEK进行加密的文件系统实例的集合。
在图1的示例中,集群150包括安全域124,所述安全域包含文件系统实例122-1到122-N(也通常称为或统称为一个或多个文件系统实例122)。如安全域124下的堆栈所描绘的,其他安全域也可以在节点-1 110上可操作,并且节点-1 110可以为那些另外的安全域中的每一个保持不同的DEK。根据这里描述的技术,文件系统实例122是安全的,并且构成安全文件系统实例122的数据对象126用DEK 130进行加密。将一些数据对象126连接到一些文件系统实例122的线通过示例的方式图示了某些文件系统实例包括某些数据对象。在一些实施方式中,使用DEK和基于文件系统实例122内数据对象的位置(例如,基于索引节点号、索引节点树号、偏移量等的位置)的相应微调值对数据对象126进行加密,如将在下文进一步描述的。
如例如通过连接文件系统实例122-1和根对象128-1的线以及连接文件系统实例122-N和根对象128-N的线所图示,每个文件系统实例122-1到122-N可以通过相应的根对象128-1到128-N(也通常称为或统称为一个或多个根对象128)来识别。在示例实施方式中,根对象128可以在安全文件系统实例中保持未加密,而在下文所描述的其他实施方式中,根对象128可以被加密。文件系统实例122的根对象128可以通过内部元数据对象127与经加密数据对象126分层地相关,从而形成具有例如分支因子N的默克尔树。尽管一些内部元数据对象127形成了文件系统实例122的一部分,但是为清楚起见,在图1未画出线。在一些实施方式中,内部元数据对象127可以保持未加密。
在示例中,节点-1 110上的文件系统实例122各自可以是特定客户VM的数据的快照。在另一个示例中,文件系统实例122中的一些文件系统实例可以对应于不同的客户VM。
节点-1 110可以参与创建文件系统实例122到另一个节点的安全的经加密备份(在本文中也称为备份文件系统实例)。例如,可以在集群150中的节点-2 140(即,本地节点)上创建本地备份142,或者可以在节点-3 160(即,远程节点)上创建远程备份162。因为节点-2 140在集群150中,所以节点-2 140可以包括安全域124以包含文件系统实例122的安全备份,并且因此节点-2 140可以能够执行涉及访问至少KEK和DEK的另外的操作,比如备份恢复,例如,比如节点-3 160等不是集群150的一部分并且不包括安全域124的远程节点可能无法执行所述备份恢复。备份可以通过源自同一安全域来保留去重复和压缩,如将在下文描述的。源自安全域124的备份通常是指由安全域124中包含的文件系统实例122构成的备份。如果源自安全域124的备份在如节点-2 140等的本地节点上,则备份也可以包含在安全域124中,并且如果备份在如节点-3 160等的远程节点上,则可以不包含在安全域124中。节点-2 140和节点-3 160可以各自操作与数据虚拟化平台116类似的数据虚拟化平台以存储一个或多个备份。
例如,备份-1 144-1到备份-N 144-N(也通常称为或统称为一个或多个备份144)分别是文件系统实例-1 122-1到文件系统实例-N 122-N的备份或副本并且可以存储在节点-2 140、节点-3 160或节点-2 140和节点-3 160两者或未示出的其他节点上。术语备份、文件系统实例的备份或备份文件系统实例在本文中可以可互换地使用。在一些实施方式中,备份144是源文件系统实例122的副本(例如,相同副本),并且因此,每个备份144也可以是对象存储库所支持的分层文件系统实例。在一些实施方式中,备份过程可以包括向备份节点发送170经加密数据对象126中的至少一些经加密数据对象和DEK 130。通过删除相关联的DEK 130,可以以加密方式擦除安全的文件系统实例122和备份144。加密擦除是指通常通过破坏相关联的密钥而不再能够将数据解密为可用形式。以加密方式擦除的文件系统实例或备份的数据可能经受数据虚拟化平台116的垃圾收集过程。
图2描绘了示例文件系统实例200。文件系统实例200可以是图1的文件系统实例122的示例实施方式。在图2中,文件系统实例200可以包括表示元数据对象的圆形对象和表示数据对象的矩形对象。文件系统实例200的元数据对象和数据对象可以维持在如对象存储库120等的对象存储库中。
文件系统实例200通过根对象202进行识别,所述根对象可以是图1的根对象128的示例。文件系统实例200包括数据对象204,所述数据对象可以是图1的数据对象126的示例。文件系统实例200呈具有分支因子N的默克尔树(也称为哈希树)的形式,其中,数据对象204位于叶级并且与根对象202分层地相关。具体地说,计算数据对象204的基于内容的签名并将其作为内容存储在相关联的父元数据对象206中,计算所述父元数据对象206的基于内容的签名并将其存储在其父元数据对象中,并且依此类推直到到达根对象202。如对象206、208(下面描述的)等在叶数据对象204与根对象202之间的元数据对象可以称为内部元数据对象,所述内部元数据对象可以是图1的内部元数据对象127的示例。
树级220是文件系统实例200树的维度方面,所述维度方面表示给定对象与根对象202相距几个级别(例如,在递增的整数值上,其中,根为零)。文件系统实例200中的偏移量230是表示对象在给定树级的位置的维度方面(例如,在从左向右递增的整数值上)并且可以进一步指定为整个文件系统实例200树在给定树级的偏移量或文件系统实例200的子树212在给定树级的偏移量。
文件系统实例200还包括是元数据对象的专业化级别的索引节点映射207,所述元数据对象中的每一个映射到或对应于文件系统实例200上的用户级存储协议下的索引节点(例如,客户VM中的索引节点)。用户级存储协议下的索引节点表示例如客户VM数据集中的文件或目录。例如,对象208-1可以映射到索引节点0、对象208-K可以映射到索引节点K并且对象208-N可以映射到索引节点N。因此,索引节点号(例如,0到N)隐含在对象在索引节点映射207级别上的树中的位置(即,在偏移量230维度上)。
在一些实施方式中,索引节点元数据对象208-1到208-N中的每一个(也通常称为或统称为一个或多个索引节点元数据对象208)可以引用存储所述索引节点的属性和/或扩展属性数据的数据对象。另外,每个索引节点元数据对象可以引用数据子树,所述数据子树向下与包括与索引节点号相对应的用户可访问文件或目录的数据的数据对象分层地相关。数据子树的大小可以根据不同的实施方式而改变。索引节点树号可以可用于从索引节点元数据对象中识别子引用的类型,包括数据子树(例如,索引节点树号0)、属性对象(例如索引节点树号1)或扩展属性对象(例如,索引节点树号2)。为了说明,图2描绘了索引节点K的索引节点元数据对象208-K,所述索引节点元数据对象引用了索引节点属性数据对象210(索引节点树号1)、索引节点扩展属性数据对象211(索引节点树号2)和数据子树212(索引节点树号0),所述数据子树部分地经由是数据对象408的父级的元数据对象206而最终向下与数据对象204相关。
现在将在图3-6中描述节点-1 110的安全备份和擦除功能的示例实施方式。在一些实施方式中,本文描述的安全备份和擦除功能可以实施为存储在机器可读介质114上并由处理资源112执行的指令,并且更具体地,可以是数据虚拟化平台116的功能。可以参考回图1和图2来描述示例实施方式细节。
图3描绘了具有用可由处理资源302执行的指令306、308、310进行编码的机器可读介质304的示例系统300。系统300可以用作节点-1 110或形成节点-1 110的一部分。系统300可以属于如图1的集群150等集群。处理资源302和机器可读介质304在许多方面可以类似于处理资源112和机器可读介质114。机器可读介质304可以是非暂态的。
指令306在被执行时使处理资源302使用DEK(例如,130)对文件系统实例(例如,122-1或200)的数据对象进行加密以生成经加密数据对象(例如,126或204),所述DEK特定于包含文件系统实例的安全域(例如,124)。使用DEK通过指令306加密的数据对象的类型可以包括索引节点数据子树(例如,212)中的数据对象(例如,204)、索引节点属性数据对象(例如,210)或索引节点扩展属性数据对象(例如,211)。DEK通过集群(例如,150)内专门共享的KEK(例如,152)进行包装。指令306可以利用使用DEK的XTS-AES加密,或者可替代地,指令306可以利用其他加密算法,如基于ChaCha20和Poly1305的Adiantum。
在一些实施方式中,指令306可以使用DEK并且还使用基于数据对象在文件系统实例中的位置的相应微调值来对数据对象进行加密。例如,数据对象的位置可以基于如上文所描述的索引节点号、索引节点树号、偏移量或树级、或者树的其他维度或关系方面、或者前述的任何组合。在示例实施方式中,数据对象的位置可以是索引节点号(例如,0-N)、索引节点树号(例如,0-2)和偏移量(例如,0表示属性和扩展属性数据对象并且偏移量230维度中的整数表示数据子树数据对象)的数字组合(例如,和)。通过使用相应位置对文件系统的数据对象进行加密,文件系统实例的结构必须是已知的,以便对任何经加密数据对象进行解密,从而提供了另一种安全性机制。
在一些实施方式中,可以在请求保护与文件系统实例相对应的现有客户VM数据时、在请求创建新的安全文件系统实例时或者在将新的数据对象添加到现有的安全文件系统时触发指令306。
在一些实施方式中,如上文关于图2所描述的,通过参考基于经加密数据对象计算的签名,文件系统实例将位于叶级的经加密数据对象与根对象分层地相关。在一些实施方式中,文件系统实例的处于根对象与位于叶级的经加密数据对象之间的内部元数据对象可以是未被加密。
指令308在被执行时使处理资源302创建文件系统实例(例如,122-1)的备份(例如,144-1),所述备份包括经加密数据对象(例如,126)中的至少一些经加密数据对象。具体地说,指令308可以在与系统300不同的备份节点(如与系统300属于同一集群的本地节点(例如,140)或在集群之外并且远离集群的远程节点(例如,160))上创建备份。
在一些实施方式中,备份节点还可以操作与系统300的数据虚拟化平台相同或兼容的数据虚拟化平台,并且备份节点和系统300可以协作以执行备份操作。创建备份可以包括将经加密数据对象中的至少一些经加密数据对象从系统300复制到备份节点,并且具体地说,将在备份节点上已经不存在的经加密数据对象复制到备份节点并且不将在备份节点上找到其相应签名的经加密数据对象复制到备份节点。具体地说,如将在下文进一步描述的,不复制经加密数据对象可以是去重复过程的一部分并且可以在其他备份(如相同客户VM数据的其他快照的备份)存在于备份节点处时发生。以这种方式,备份过程可以利用去重复特性并且可以是WAN高效的。此外,在一些实施方式中,将经加密数据对象复制到备份节点,但不复制内部元数据对象和根对象,以减少网络流量并提高WAN效率。相反,以适用于默克尔树的方式,通过从经加密数据对象重新计算内容和签名,可以在备份节点处重建内部元数据对象和根对象。
在示例实施方式中,当系统300给客户VM数据拍快照使得产生文件系统实例(例如,122-1)作为快照时,可以触发指令308。指令308可以随后创建所述文件系统实例到备份节点的备份(例如,144-1)。
指令310在被执行时使处理资源302将通过KEK包装的DEK发送到备份节点。例如,如图1所示,DEK 130的副本可以发送到备份节点-2 140和/或备份节点-3 160并保存在备份节点-2 140和/或备份节点-3 160上。备份节点无法对备份进行解密,除非节点与系统200属于同一集群并且有权访问KEK以将DEK解包。例如,如果备份节点远离集群,则由于所述节点不属于集群,因此所述节点无权访问KEK、在没有适当的KEK的情况下无法将DEK解包并且因此在没有DEK的情况下无法对备份进行解密。因此,备份在集群外仍是安全的。
图4描绘了具有用可由处理资源402执行的指令404、408、410、412进行编码的机器可读介质404的示例系统400。系统400可以用作节点-1 110或形成节点-1 110的一部分。在一些示例中,可以结合系统300的指令实施系统400的指令。系统400可以属于如图1的集群150等集群。处理资源402和机器可读介质404在许多方面可以类似于处理资源112和机器可读介质114。机器可读介质404可以是非暂态的。
指令406在被执行时使处理资源402基于例如对象的内容生成文件系统实例的对象的签名。指令406可以用于计算经加密数据对象(例如,126或204)、经加密索引节点属性或扩展属性数据对象(例如,210或211)、内部元数据对象(例如,127、206、208)或根对象(例如,128或202)的签名。因此,可以通过指令406所生成的相应签名来识别经加密数据对象或元数据对象。
在一些实施方式中,生成对象的签名可以包括例如使用如SHA-1、SHA-256、MD5等哈希函数计算所述对象的加密哈希摘要。例如,可以使用特定于如上文描述的文件系统实例的DEK(在一些实施方式中,还使用位置)通过指令306对特定文件系统实例的未加密数据对象(未压缩的或经压缩的)进行加密,并且然后,可以将所述经加密数据对象传递到指令406以用于计算相应的签名。
在一些实施方式中,指令406可以计算基于哈希的消息认证码(HMAC)以充当对象的签名。例如,计算对象的HMAC签名可以涉及将对象与密钥连接起来并计算连接结果的加密哈希。在一些实施方式中,密钥可以基于对象在文件系统实例中的位置,如图2所示。更具体地,经加密数据对象的位置可以例如类似于在上文描述的实施方式中用作加密微调值的位置并且可以基于索引节点号、索引节点树号和/或偏移量。例如,树根的位置可以为零。元数据对象的位置可以基于例如树级和偏移量。通过使用对象位置来计算对象签名并且因为文件系统实例不存储反向指针签名,所以一旦根对象删除或以加密方式擦除就无法重建文件系统实例,其示例将例如参考图9在本文进一步描述。
指令408在被执行时使处理资源402在备份节点上创建文件系统实例的备份。指令408的某些特征在很多方面可以与指令308类似。例如,在一些实施方式中,指令408可以通过系统400上的快照或通过备份请求来触发。通过复制文件系统实例的经加密对象中的至少一些经加密对象,指令408可以在本地备份节点或远程备份节点上创建备份。
在一些实例中,可以执行指令408以在安全域中创建数据的另外或后续备份,其中,在安全域中或源自安全域的较早备份或一系列备份已经存在。为了参考图1进行说明,文件系统实例-1 122-1可能先前已备份为节点-2 140和/或节点-3 160上的备份-1 144-1,并且文件系统实例-1 122-1和备份-1 144-1可以对应于例如客户VM数据的第一快照。在稍后的时间点,可以生成客户VM数据的另一个快照,从而产生文件系统实例-N 122-N,可以对文件系统实例-N 122-N执行指令408以在节点-2 140和/或节点-3 160上创建备份-N144-N。在另一个示例中,文件系统实例-1 122-1和文件系统实例-N 122-N可以不是同一客户VM的数据的快照,而可以是不同客户VM的数据的快照。
在一些实施方式中,例如出于高可用性的目的,系统400可以持续地将数据改变(例如,客户VM数据的改变)复制到备份节点。持续进行的复制可以涉及当在系统400上写入或修改经加密数据对象时将经加密数据对象发送到备份节点。在此类实例中,用于创建备份的指令408可以涉及系统400创建数据的快照文件系统实例(例如,122-N)并且基于数据改变指示备份节点创建相应的备份(例如,144-N),所述数据改变自上次备份(例如,144-(N-1))起持续地被复制。
指令410在被执行时使处理资源402基于对象的签名(例如,如由指令406生成的)对对象进行去重复。可以对数据对象和/或元数据对象执行去重复。在一些实施方式中,指令410可以执行行内去重复,所述行内去重复可以包括例如将被分级以写入对象存储库的对象的签名与已经存储在对象存储库中的对象的签名进行比较并且决定不写入其相同签名已经存在的对象。相反,去重复的文件系统实例可以引用使用现有签名的现有对象。在其他实施方式中,指令410可以执行后处理去重复,所述后处理去重复可以包括从对象存储库中移除具有同一签名的对象。当在客户VM正在运行的源节点(例如,节点-1 110)上创建快照时或者当将备份创建到本地备份节点(例如,节点-2 140)或远程备份节点(例如,节点-3160)时,可以执行指令410。
通过使用不同的DEK对属于或源自不同安全域的数据对象进行加密,可以维持数据安全性,同时保留对数据进行去重复的能力。在示例中,将使用同一DEK对具有相同的未加密内容但属于同一安全域的不同文件系统实例的数据对象进行加密,这可以产生相同的经加密数据对象,并且可以对那些经加密数据对象进行哈希处理以产生相同的签名。
另一方面,具有相同未加密内容但属于来自不同安全域的不同文件系统实例的数据对象通过不同的DEK进行加密,从而产生具有不同经加密内容的经加密数据对象,这进而将会导致由指令406生成不同的签名。根据指令410,即使所述数据对象具有相同的未加密内容,不同的签名将会使来自不同安全域的数据对象不跨那些不同安全域被去重复。
此外,如果如先前参考指令306所描述的,使用对象位置对对象进行加密和/或计算对象签名,则具有相同未加密内容的对象将会需要位于相应文件系统实例(如快照)内的同一位置以在安全域中进行去重复。换句话说,如果将对象位置用于加密和签名计算,则具有相同未加密内容的对象可以不在同一文件系统实例中进行去重复并且可以不在来自不同安全域的文件系统实例之间被去重复。但是,对于位于来自同一安全域的文件系统实例之间的同一位置处具有相同未加密内容的对象,可能发生去重复。
可能发生去重复的,尤其是在使用对象位置对对象进行加密并计算签名时的示例处于同一客户VM的安全数据的快照的备份之中。在此类情况下,去重复是有益的,因为及时的快照可以共享大量的公共数据。例如,指令408可以执行多次以创建多个备份文件系统实例(例如,144-1到144-N),并且指令410可以针对那些备份文件系统实例对对象进行去重复。指令410的去重复可以结合指令408在行内进行,以便在将重复对象复制到备份节点之前在备份过程中识别和移除重复对象(例如,特别是经加密数据对象)使得复制通常被限制到备份节点上已经不存在的另外的经加密数据对象。因此,可以减少传输到备份节点的数据量,从而使备份过程的WAN效率更高。在其他实施方式中,指令410可以在备份节点上执行后处理去重复。
指令412在被执行时使处理资源402删除DEK(例如,130)以便以加密方式擦除与DEK相关联的安全域(例如,124)所包含的以及属于其的任何文件系统实例(例如,122)、备份(例如,144)和一系列备份(例如,144)。在一些实施方式中,指令412可以由删除安全域的用户请求触发。在一些实施方式中,指令412的执行指示集群中的其他节点删除其相应的DEK副本并提供确认。通过删除DEK,通过DEK加密的任何数据对象都无法再被解密,从而提供了对安全域的敏感数据的加密擦除。
在一些实施方式中,机器可读介质404可以用如删除KEK的指令等其他指令进行编码。因为KEK是特定集群专有的,所以删除KEK将会导致加密擦除与所述集群相关联的每个安全域以及那些安全域所包含的或源自那些安全域的每个文件系统实例。
图5和图6是描绘各种示例方法的流程图。在一些实施方式中,可以基本上同时或以与所示出的不同的顺序执行方法的一个或多个框。在一些实施方式中,方法可以包括比所示出的更多或更少的框。在一些实施方式中,方法的一个或多个框可以在某些时间持续和/或可以重复。在一些实施方式中,可以组合方法的框。
图5和图6所示的方法可以以存储在机器可读介质(例如,如机器可读介质114、304或404)上并且由处理资源(例如,如处理资源112、302或402)执行的可执行指令的形式和/或以电子电路的形式实施。例如,下文中可以将方法的各方面描述为由集群中的节点执行。在一些实施方式中,方法的各方面可以具体地由上文所描述的数据虚拟化平台116、系统300或系统400执行。
图5是描绘示例方法500的流程图。方法500从框502开始并且继续到框504,在所述框504处,节点(例如,集群中的计算系统)使用DEK对文件系统实例的数据对象进行加密以生成经加密数据对象。文件系统实例属于节点所属的集群内的安全域。DEK特定于安全域,并且DEK通过集群中的节点所专门共享的KEK进行包装。在一些实施方式中,对数据对象进行加密还可以使用加密算法微调值,所述加密算法微调值可以基于数据对象在文件系统实例内的位置(例如,基于索引节点号、索引节点树号和/或偏移量的位置)。在一些实施方式中,框504可以至少部分地通过执行上文描述的指令306来执行。
文件系统实例基于对象签名将经加密数据对象与根对象分层地相关。例如,文件系统实例可以是类似于上文描述的文件系统实例200的默克尔树。在实施方式中,为了形成默克尔树,可以以上文描述的方式计算由框504生成的经加密数据对象以及默克尔树的任何内部元数据对象的签名,直到得到根对象为止。可以使用加密哈希函数计算经加密数据对象和内部元数据对象的签名。在一些实施方式中,对象(无论是经加密数据对象还是内部元数据对象)的签名可以是使用所述对象在文件系统实例中的位置作为密钥基于所述对象的内容的加密哈希的HMAC。签名计算可以至少部分地通过执行上文描述的指令406来执行。
在框506,节点在备份节点(例如,远程或本地备份节点)上创建文件系统实例的备份。备份可以包括在框504加密的经加密数据对象中的至少一些经加密数据对象。在一些实施方式中,框506可以至少部分地通过执行上文描述的指令308来执行。
在框508,节点将通过KEK包装的DEK发送到备份节点。备份节点无法对备份进行解密,除非备份节点也是同一集群的成员并且有权访问KEK以将DEK解包。在一些实施方式中,框508可以至少部分地通过执行上文描述的指令310来执行。在框510,方法500结束。
图6是描绘示例方法600的流程图。方法600从框602开始并且继续到框604,在所述框604处,节点在对数据对象进行加密之前压缩数据对象。例如,在一些实施方式中,节点可以在执行框504之前执行框604。
在框606,节点基于从经加密数据对象计算的签名对经加密数据对象进行去重复。去重复可以是行内去重复或后处理去重复。在一些实施方式中,可以至少部分地通过执行指令406以计算签名并且通过执行指令410以对对象进行去重复来执行框606。还可以执行框606以对本地存储在源节点本身上的经加密对象进行去重复(例如,在快照过程期间)。
如上文参考指令410所述,具有相同未加密内容但是属于来自不同安全域的不同文件系统实例的数据对象通过不同的DEK进行加密并且与不同的签名相关联。因此,由于那些签名不同,因此框606可以不对来自不同安全域的具有相同未加密内容的数据对象进行去重复。
另一方面,框606可以包括跨在同一安全域内或来自同一安全域的文件系统实例和备份对经加密数据对象进行去重复。具体地说,当创建备份到备份节点时(例如,通过执行框506),可以执行框608,以在一系列备份中当在备份节点上找到签名时,阻止将经加密数据对象发送到备份节点。
在示例中,节点可以周期性地创建文件系统实例的快照,并且那些快照中的每一个可以触发执行上文描述的框506以在备份节点上创建那些文件系统实例快照的备份。因此,可以多次执行框506(例如,方法500的迭代)以在备份节点上创建一系列备份文件系统实例,其中,所述一系列(例如,144-1到144-N)中的每个备份文件系统实例是相应快照(例如,122-1到122-N)的备份。另外,所述一系列备份属于同一安全域并且源自同一安全域并且因此包括使用同一DEK进行加密的经加密数据对象。通过在框608结合框506执行去重复,创建备份中的一些备份可以涉及仅发送备份节点上已经不存在的另外的经加密数据对象,包括可以具有与备份节点上的数据对象相同的未加密内容但不在文件系统实例结构中的同一位置的数据对象,如果位置用于加密和签名生成的话。
在框610,可以删除DEK以便以加密方式擦除文件系统实例和一系列备份。在一些实施方式中,框610可以包括指示具有DEK的副本的所有节点删除其DEK的副本。在一些实施方式中,可以通过执行指令412来执行框610。方法600可以在框612结束。
图7描绘了在许多方面与图1所示的示例类似的示例计算环境。例如,节点-1 110可以对文件系统实例的数据对象进行加密以保护那些文件系统实例并且可以在本地或远程节点上创建备份。如先前所描述的,安全文件系统实例122可以包括例如默克尔树中向上与根对象128分层地相关的经加密数据对象126中的一些经加密数据对象。
在示例中,每个文件系统实例122可以对应于客户VM或其他类型的数据集的不同快照,并且每个文件系统实例可以通过不同的相应根对象128来识别。此外,可以使用不同的相应元数据加密密钥(MEK)对每个根对象128进行加密。例如,可以使用第一MEK-1 732-1对第一根对象-1 128-1进行加密,并且可以使用第二MEK-2 732-2对第二根对象-2 128-2进行加密(图7中N=2)。因此,MEK特定于相关联的根对象。在一些实施方式中,即使两个文件系统实例122相同(如在两个快照之间未对数据作出改变时),将会使用不同的MEK对那两个文件系统实例的根对象进行加密。在一些实施方式中,可以将经加密根对象与其他元数据对象或数据对象分开保存在单独的存储介质中。
MEK可以是512位XTS-AES-256密钥并且在一些实施方式中可以由数据虚拟化平台116生成(例如,在数据虚拟化平台116的控制平面处)。MEK 732-1到732-N(通常称为或统称为一个或多个MEK 732)通过安全域124的DEK 130进行包装,所述安全域包含通过MEK 732对跟对象128进行加密的文件系统实例122。以这种方式,安全域可以与单个DEK和多个MEK相关联。
节点-1 110可以创建文件系统实例122的备份144到如同一集群150内的本地节点-2 140或集群150外的远程节点-3 160等备份节点。节点-1 110可以发送770DEK 130(通过KEK 152包装)和与备份到备份节点的文件系统实例相对应的MEK 732(通过DEK 130包装)。例如,作为文件系统实例-N 122-N的备份过程的一部分,节点-1 110可以将经加密数据对象126中的至少一些经加密数据对象复制770到备份节点(例如,未经受去重复的经加密数据对象)并且可以发送770MEK-N 732-N。如图7所描绘的,例如,备份节点140、160可以存储DEK 130、MEK-1 732-1和MEK-N 732-N。
在一些实施方式中,备份过程不发送根对象-N 128-N或其他内部元数据对象127(例如,根对象与叶级的经加密数据对象之间的元数据对象),而是备份节点可以基于经加密数据对象重建备份文件系统实例144-N直到重建的根对象,所述经加密数据对象是从节点-1 110接收的或已经驻留在备份节点上(例如,如果被去重复的话)。如将在下文参考图9和图11所描述的,备份节点可以将重建的根对象772发送到源节点,即节点-1110,以进行验证。
现在将在图8-12中描述支持所选备份的加密擦除的示例实施方式。在一些实施方式中,本文描述的功能可以被实施为存储在机器可读介质114上并由处理资源112执行的指令,并且更具体地,可以是数据虚拟化平台116的功能。可以参考回图2和图7来描述示例实施方式细节。
图8描绘了具有用可由处理资源802执行的指令806、808、810、812进行编码的机器可读介质804的示例系统800。系统800可以用作节点-1 110或形成节点-1 110的一部分。系统800可以属于如图1的集群150等集群。处理资源802和机器可读介质804在许多方面可以类似于处理资源112和机器可读介质114。机器可读介质804可以是非暂态的。
指令806在被执行时使处理资源802使用DEK对文件系统实例的数据对象进行加密以生成经加密数据对象,所述DEK特定于包含文件系统实例的安全域。指令806可以与上文描述指令306共享相似性。DEK通过在系统800所属的集群内专门共享的KEK进行包装。文件系统实例通过引用经加密数据对象的签名将位于叶级的经加密数据对象(例如,126)与根对象(例如,128-1)分层地相关。例如,文件系统实例可以类似于文件系统实例200,其中,数据对象204在默克尔树中与根对象202分层地相关。例如,可以通过执行上文描述指令406来生成签名。
指令808在被执行时使处理资源802使用元数据加密密钥(MEK,例如,732-1)对根对象(例如,128-1)进行加密。MEK可以通过DEK进行包装并且可以特定于根对象。
指令810在被执行时使处理资源802在如备份节点(例如,140或160)等另一个计算系统上创建文件系统实例的备份(例如,144-1)。指令810可以与上文描述指令308共享相似性。在一些实施方式中,指令810可以结合指令410执行以对如上文描述的备份进行去重复。
指令812在被执行时使处理资源802将DEK(例如,130)和MEK(例如,732-1)与备份(例如,144-1)一起发送到备份节点。可以如与客户VM的每个快照一起执行指令806、808、810、812多次,从而创建通过相应MEK(例如,732)所加密的相应根对象(例如,128)识别的文件系统实例(例如,122)的一系列备份(例如,144)。
在一些实施方式中,例如出于高可用性的目的,系统800可以持续地将数据改变(例如,客户VM数据的改变)复制到备份节点。持续进行的复制可以涉及当在系统800上写入或修改经加密数据对象时将经加密数据对象发送到备份节点。在此类实例中,用于创建备份的指令810可以涉及系统800创建数据的快照文件系统实例(例如,122-N)并且指示备份节点基于数据改变创建快照文件系统实例的备份(例如,144-N),所述数据改变自上次备份(例如,144-(N-1))起持续地被复制。作为创建备份的一部分,备份节点可以为备份生成与数据改变的签名和备份中的其他经加密数据对象分层地相关的根对象并且可以使用特定于备份和快照文件系统实例的MEK对根对象进行加密。系统800和备份节点可以例如在控制平面级协调以确保使用同一MEK对快照文件系统实例和相应备份的根对象进行加密。
图9描绘了具有用可由处理资源902执行的指令905、906、908、910、912进行编码的机器可读介质904的示例系统900。系统900可以用作或形成节点-1 110的一部分。在一些实施方式中,可以结合系统800的指令实施系统900的指令。系统900可以属于如图1的集群150等集群。处理资源902和机器可读介质904在许多方面可以类似于处理资源112和机器可读介质114。机器可读介质904可以是非暂态的。
指令905在被执行时可以使处理资源902生成不同的MEK以对要保护的每个不同文件系统实例的根对象进行加密。例如,每次由客户VM数据构成快照时,可以创建新的文件系统实例(例如,122)并且可以由指令905生成新的MEK(例如,732)以对所述新的文件系统实例的根对象(例如,128)进行加密。在一些实施方式中,指令905可以形成数据虚拟化平台(例如,116)的控制平面的一部分。
指令906、908、910可以可用于验证安全备份在备份节点上的重建,并且具体地,验证在远程备份节点上的重建。例如,备份过程可以向备份节点(例如,140或160)仅发送文件系统实例的经加密数据对象(例如,126、204、210或211)而不发送根对象(例如,128或202)或任何内部元数据对象(例如,127、206、208等)以作为用于减少网络流量的优化。然后,备份节点可以通过计算每个级别(从叶级开始)的对象的签名(包括父对象中的那些签名)并重复所述过程直到到达根对象(例如,202)为止来重建如默克尔树等分层文件系统实例。签名计算可以通过执行上文描述的指令406来执行。因此,重建的根对象在其内容中将具有其子对象的签名。然而,在远程备份(例如,162)中,远程节点(例如,160)可能无权访问KEK(例如,152)以将DEK(例如,130)解包,并且因此MEK(例如,732-1)无法被解包并用于对重建的根对象进行加密。
指令906在被执行时可以使处理资源902接收从备份节点(例如,140或160)发送的未加密的重建根对象(例如,772)。可替代地或另外,指令906可以从备份节点接收未加密的重建根对象的签名。
指令908在被执行时可以使处理资源902针对相应的根对象来验证未加密的重建根对象。例如,未加密的重建根对象可以与给定备份(144-1)相关联,所述给定备份是相应文件系统实例(例如,122-1)在系统900上的备份。作为发起备份的源系统,系统900可以对所述文件系统实例(例如,在对象存储库120上)的相关联的根对象(例如,128-1)进行解密并且将所述未加密根对象(例如,128-1)与接收到的未加密的重建根对象进行比较。比较可以包括比较未加密的重建根对象和经解密根对象两者的基于哈希的签名或校验和或者任何其他类型的数据比较。来自备份节点的未加密的重建根对象与来自系统900(即,源节点)的经解密根对象之间的匹配表示验证成功,而不匹配表示验证不成功。
如果验证不成功,则系统900可以发出错误消息。验证不成功可以指示备份失败。如果验证成功,则可以执行指令910以使处理资源902将MEK加密的根对象发送到备份节点以进行存储。例如,备份节点可以将未加密根对象替换为从系统900接收到的经加密根对象,并且随后,备份文件系统实例将经由经加密根对象来识别和引用。
指令912在被执行时可以使处理资源902删除与被选择进行加密擦除的备份相对应的所选MEK。在一些实施方式中,指令912可以包括协调或指示存储所选MEK的副本的任何节点删除所选MEK的相应副本并提供确认。
例如,可以由指示文件系统实例(例如,122-1)的系统900接收用户输入,并且关联的相应备份(例如,144-1)要以加密方式擦除。系统900可以识别与识别所选文件系统实例的根对象(例如,128-1)相关联的MEK(例如,732-1)。所选文件系统实例(例如,122-1)和备份(例如,144-1)可以在多个文件系统实例(例如,122)和备份(例如,144)之中,并且所选MEK(732-1)可以在多个不同的相应MEK(例如,732)之中。如上文描述的,文件系统实例(例如,122)和文件系统实例的备份(例如,144)通过使用不同的相应MEK(例如,732)进行加密的相应根对象(例如,128)来识别。因此,通过删除所选MEK,无法对相应的根对象进行解密并且使相应的根对象以加密方式不可访问。由于从根对象开始遍历了分层的基于树的文件系统实例,因此无法再访问相应的文件系统实例和备份。同时,与同一安全域相关联的其他文件系统实例和备份保持未破坏。
更具体地,因为后向指针签名未存储在文件系统实例和备份的元数据对象中,因此使经加密根对象以加密方式不可访问防止了在使用对象位置来计算文件系统实例的对象的HMAC签名的实施方式中重建以加密方式擦除的文件系统实例或备份。相反,如果在签名计算中未使用位置,则可能可以通过计算数据对象签名并将那些签名与元数据对象中存储的签名进行匹配来重建文件系统实例。然而,树结构在一些实施方式中不可用,并且因此密钥不可用于重新计算正确的HMAC签名。
图10-12是描绘各种示例方法的流程图。在一些实施方式中,可以基本上同时或以与所示出的不同的顺序执行方法的一个或多个框。在一些实施方式中,方法可以包括比所示出的更多或更少的框。在一些实施方式中,方法的一个或多个框可以在某些时间持续进行和/或可以重复。在一些实施方式中,可以组合图10-12的框。
所述方法可以以存储在机器可读介质(例如,如机器可读介质114、804或904)上并且由处理资源(例如,如处理资源112、802或902)执行的可执行指令的形式和/或以电子电路的形式实施。例如,下文中可以将方法的各方面描述为由集群中的节点执行。在一些实施方式中,方法的各方面可以具体地由上文所描述的数据虚拟化平台116、系统800或系统900执行。
图10是描绘示例方法1000的流程图。方法1000从框1002开始并且继续到框1004,在所述框1004处,节点(例如,集群中的计算系统)使用DEK对文件系统实例的数据对象进行加密以生成经加密数据对象,所述DEK特定于含有文件系统实例的安全域。DEK通过集群中的节点所专门共享的KEK进行包装。通过引用经加密数据对象的签名,文件系统实例将位于叶级的经加密数据对象与根对象分层地相关。例如,文件系统实例可以是类似于上文描述的文件系统实例200的默克尔树。在一些实施方式中,框1004可以至少部分地通过执行上文描述的指令806来执行。
在框1006,节点使用MEK对根对象进行加密以生成经加密根对象。MEK通过DEK进行包装并且特定于根对象。在一些实施方式中,框1006可以至少部分地通过执行上文描述的指令808来执行。
在框1008,节点通过将经加密数据对象的至少一些经加密数据对象复制到备份节点来在备份节点上创建文件系统实例的备份。在一些实施方式中,可以对备份进行去重复。在一些实施方式中,框1008可以至少部分地通过执行上文描述的指令810来执行。
在框1010,节点将通过KEK包装的DEK和通过DEK包装的MEK发送到具有备份的备份节点。在一些实施方式中,框1010可以至少部分地通过执行上文描述的指令812来执行。方法1000在框1012结束。
在图示中,可以多次执行方法1000的至少一些框,以在备份节点上创建一系列备份文件系统实例。例如,通过执行框1004可以通过使用DEK(例如,130)对第一文件系统实例的数据对象进行加密来保护第一文件系统实例(例如,122-1),并且通过执行框1006可以通过第一MEK(例如,732-1)对第一文件系统实例的第一根对象(例如,128-1)进行加密。通过执行框1008,可以创建第一备份(例如,144-1),并且通过执行框1010,可以将DEK和第一MEK发送(例如,770)到备份节点(例如,140或160)。在稍后的时间点,可以例如通过快照来生成第二文件系统实例(例如,122-2)。第二文件系统实例可以包括第一文件系统实例中不存在的另外的数据对象,并且也可以通过执行框1004使用同一DEK(例如,130)对那些另外的数据对象进行加密。通过计算整个默克尔树的签名,可以针对第二文件系统实例生成第二根对象(例如,128-2),并且通过执行框1006使用与第一MEK不同的第二MEK(例如,732-2)可以对第二根对象进行加密。通过执行框1008,可以在备份节点上创建第二备份(例如,144-2),并且通过执行框1010,可以将DEK和第二MEK发送到备份节点。第一备份和第二备份都由同一安全域包含或源自同一安全域。经加密第一根对象的签名与经加密第二根对象的签名的不同之处在于,至少是通过不同的MEK加密的,如果不是这样,则也是由于相应文件系统实例中的不同的数据内容。
图11是描绘示例方法1100的流程图。方法1100从框1102开始并且继续到框1104,在所述框1104处,节点(例如,先前发起备份的源节点,如节点-1 110)从备份节点(例如,140或160)接收未加密的重建根对象或未加密的重建根对象(例如,772)的签名。具体地,备份节点不是接收节点是其成员的集群的成员,并且未加密的重建根对象由备份节点基于备份的经加密数据对象生成。例如,未加密的重建根对象可以相对于例如图2以上文描述的方式生成。例如,可以通过执行指令906来执行框1104。
在框1106,节点可以针对根对象来验证未加密的重建根对象。例如,验证可以包括对位于在源节点处的根对象进行解密并将经解密根对象与接收到的未加密的重建根对象进行比较(例如,签名比较)。在一些实施方式中,框1106可以通过执行上文描述的指令908来执行。如果经解密根对象和未加密的重建根对象相匹配,则验证成功。
如果验证成功(在框1108为“是”),则方法1100继续进行到框1110,在所述框1110处,源节点可以将经加密根对象(例如,128-1)发送到备份节点。备份节点可以保存经加密根对象,这可以包括使用经加密根对象来识别备份节点上的文件系统实例。在一些实施方式中,可以通过执行指令910来执行框1108。如果验证不成功(在框1108为“否”),则方法1100继续进行到框1112,其中源节点和/或备份节点可以返回错误消息。方法1100可以在框1114结束。
图12是描绘示例方法1200的流程图。方法1200从框1202开始并且继续到框1204,在所述框1204处,节点接收对要以加密方式擦除的文件系统实例的选择。接收选择的节点可以是存储或管理所选文件系统实例或其备份的节点。接收节点可以将指示要以加密方式擦除所选文件系统实例的指令传输到可以存储或管理所选文件系统实例或其备份的其他节点。接收节点可以识别与所选文件系统实例相对应的所选MEK。所选MEK可以在对多个不同文件系统实例及其备份的相应根对象进行加密的多个不同的MEK之中。
在框1206,节点可以删除所选MEK以便以加密方式擦除所选文件系统实例和所选文件系统实例的任何相关联的备份,而不影响、修改或以其他方式破坏与同一安全域相关联的任何其他文件系统实例或备份。为了参考图7进行说明,可以删除MEK 732-1以便以加密方式擦除文件系统实例122-1和备份-1 144-1。在一些实施方式中,框1206可以通过执行上文描述的指令912来执行。方法1200可以在框1208结束。
在一些实施方式中,本文描述的系统(例如,节点-1 110、系统300、400、800、900)可以包括另外的功能,所述另外的功能可以实施为编码在可由处理资源执行的非暂态机器可读介质上的指令。例如,机器可读介质可以包括用于使用相关联的DEK和MEK对备份文件系统实例进行解密的指令。用于对备份进行解密的指令可以包括用于借助于系统的一个或多个集群成员使用对系统可用的KEK将DEK解包以及用于使用解包的DEK将MEK解包的指令。如果系统不是与KEK相关联的集群的成员,则无法将DEK解包并且解密将失败。另一方面,如果DEK和MEK解包成功,则控制可以传递到用于使用解包的MEK对备份的根对象进行解密的指令。未加密根对象可以由数据虚拟化平台用于遍历文件系统实例,以到达叶级的经加密数据对象。解密在各种读取或恢复方案中可以是有用的。例如,特定的经加密数据对象可以通过读取请求来寻址(例如,通过索引节点和子树偏移来寻址)。作为另一个示例,数据虚拟化平台可以恢复备份文件系统实例的一部分或全部。可以使用DEK对经加密数据对象进行解密。
在一些情况下,系统可以尝试将备份文件系统实例恢复到不同的安全域。在此类情况下,系统可以执行用于使用KEK将DEK(如果适用,还包括MEK)解包并且对备份文件系统实例进行解密的指令。然后,可以使用与不同的安全域相关联的不同DEK对经解密备份文件系统实例或其副本(即,经由深层副本)进行重新加密。
在一些情况下,系统可以尝试恢复外部集群(即,系统不是其成员的集群)的备份文件系统实例。在这种示例中,系统可以被视为相对于外部集群的远程节点,在这种实例中,所述外部集群也可以被视为源集群。在此类情况下,系统可能无权访问与外部集群相关联的KEK以将与备份文件系统实例相关联的DEK解包。系统可以执行用于将包装的DEK发送回外部集群并且请求访问备份文件系统实例的指令。外部集群可以对系统进行认证并授权系统访问备份文件系统实例。如果系统通过认证并得到授权,则外部集群可以使用外部集群的KEK将DEK解包并且将使用系统的公开密钥加密的经解包DEK返回到系统。然后,系统可以执行用于使用私有密钥将DEK解密的指令并且然后执行用于使用对系统可用的KEK(即,系统所属的集群的KEK)来重新包装经解密DEK的指令。系统现在可以访问备份文件系统实例。在一些实施方式中,系统可以执行用于执行备份文件系统实例的深层副本以创建新的文件系统实例(即,复制所有经解密数据对象以及复制或重新创建引用经解密数据对象的元数据对象)并且使用在系统可用的KEK下包装的新的DEK对新的文件系统实例进行加密的指令。以这种方式,系统可以将外部集群的备份文件系统实例复制到系统所属群集中的新的安全域中。
在前述描述中,阐述了许多细节以提供对本文中公开的主题的理解。然而,可以在没有这些细节中的一些或全部细节的情况下实践实施方式。其他实施方式可以包括上文所讨论的细节的修改、组合和变化。所附权利要求旨在覆盖此类修改和变化。

Claims (20)

1.一种属于集群的系统,所述系统包括:
处理资源;以及
机器可读介质,其存储指令,所述指令在由所述处理资源执行时使所述处理资源:
将数据加密密钥DEK与文件系统相关联,其中所述文件系统与安全域对应;
使用同一DEK对所述文件系统的文件系统实例的数据对象的内容进行加密以生成经加密数据对象,所述DEK通过所述集群内专门共享的密钥加密密钥KEK进行包装,
在备份节点上创建所述文件系统实例的备份,所述备份包括所述经加密数据对象中的至少一些经加密数据对象,以及
将通过所述KEK包装的所述DEK发送到具有所述备份的所述备份节点,
其中,除非所述备份节点属于所述集群并且有权访问所述KEK以将所述DEK解包,否则所述备份节点无法对所述备份进行解密,以及
通过参考从所述经加密数据对象计算的签名,所述文件系统实例将位于叶级的所述经加密数据对象与根对象分层地相关。
2.如权利要求1所述的系统,其中,所述备份节点远离所述集群并且无权访问所述KEK以将所述DEK解包。
3.如权利要求1所述的系统,其中,所述文件系统实例中处于所述根对象与位于所述叶级的所述经加密数据对象之间的内部对象未被加密。
4.如权利要求1所述的系统,其中,使所述处理资源创建所述备份的所述指令包括使所述处理资源不发送在所述备份节点上找到其相应签名的经加密数据对象的指令。
5.如权利要求1所述的系统,其中,所述机器可读介质存储使所述处理资源基于所述签名对所述经加密数据对象进行去重复的指令,并且
其中,具有相同的未加密内容但属于来自与不同安全域对应的不同文件系统的不同文件系统实例的数据对象由不同的DEK加密并且与不同的签名相关联,所述不同的签名使具有相同的未加密内容的所述数据对象不会跨所述不同的安全域被去重复。
6.如权利要求1所述的系统,其中,针对源自所述安全域的一系列备份,基于所述文件系统实例的对象的签名和所述一系列备份的对象的签名对所述备份进行去重复。
7.如权利要求1所述的系统,其中,所述机器可读介质存储使所述处理资源删除所述DEK以便以加密方式擦除所述文件系统实例和所述备份的指令。
8.一种用于备份的方法,包括:
由集群中的节点的处理资源将文件系统与数据加密密钥DEK相关联,所述数据加密密钥与所述集群内的安全域对应;
由所述处理资源使用同一DEK对所述文件系统的文件系统实例的数据对象的内容进行加密,以生成经加密数据对象,其中,所述DEK通过所述集群中的节点所专门共享的密钥加密密钥KEK进行包装;
由所述处理资源在备份节点上创建所述文件系统实例的备份,所述备份包括所述经加密数据对象中的至少一些经加密数据对象;以及
由所述处理资源将通过所述KEK包装的所述DEK发送到所述备份节点,
其中,除非所述备份节点是所述集群的成员并且有权访问所述KEK以将所述DEK解包,否则所述备份节点无法对所述备份进行解密。
9.如权利要求8所述的方法,包括由所述处理资源基于从所述经加密数据对象计算的签名对所述经加密数据对象进行去重复,
其中,所述创建所述备份包括不发送在所述备份节点上找到其相应签名的经加密数据对象。
10.如权利要求8所述的方法,其中,具有相同的未加密内容但属于来自与不同安全域对应的不同文件系统的不同文件系统实例的数据对象由不同的DEK加密并且与不同的签名相关联,所述不同的签名使具有相同的未加密内容的所述数据对象不会跨所述不同的安全域被去重复。
11.如权利要求8所述的方法,其中,基于从所述经加密数据对象计算的签名来识别所述经加密数据对象,并且所述文件系统实例将所述经加密数据对象与根对象分层地相关。
12.如权利要求8所述的方法,包括在所述加密之前,由所述处理资源压缩所述数据对象。
13.如权利要求8所述的方法,包括由所述处理资源在所述备份节点上创建文件系统实例的一系列备份,其中,所述一系列备份源自所述安全域并且包括所述经加密数据对象中的至少一些经加密数据对象;以及
跨所述一系列备份对所述经加密数据对象中的至少一些经加密数据对象进行去重复。
14.如权利要求13所述的方法,包括删除所述DEK以便以加密方式擦除所述文件系统实例和所述一系列备份。
15.一种非暂态机器可读介质,其存储能够由计算系统的处理资源执行的指令,所述非暂态机器可读介质包括:
用于将文件系统与数据加密密钥DEK相关联的指令,所述文件系统与所述计算系统所属于的集群内的安全域对应;
用于使用同一DEK对所述文件系统的文件系统实例的数据对象的内容进行加密以生成经加密数据对象的指令,其中所述DEK通过所述集群中的计算系统所专门共享的密钥加密密钥KEK进行包装;
用于在另一个计算系统上创建所述文件系统实例的备份的指令,所述备份包括所述经加密数据对象中的至少一些经加密数据对象;以及
用于将通过所述KEK包装的所述DEK发送到具有所述备份的所述另一个计算系统的指令,
其中,除非所述另一个计算系统属于所述集群并且有权访问所述KEK以将所述DEK解包,否则所述另一个计算系统无法对所述备份进行解密。
16.如权利要求15所述的非暂态机器可读介质,包括用于基于所述经加密数据对象的内容生成所述经加密数据对象的签名的指令,
其中,基于所述签名来识别所述经加密数据对象,并且所述文件系统实例将所述经加密数据对象与根对象分层地相关。
17.如权利要求16所述的非暂态机器可读介质,其中,所述计算系统基于所述签名对所述经加密数据对象进行去重复,并且
用于在另一个计算系统上创建所述备份的指令包括用于不将在所述另一个计算系统上找到其相应签名的经加密数据对象复制到所述另一个计算系统的指令。
18.如权利要求15所述的非暂态机器可读介质,其中,不同文件系统实例中具有与所述文件系统实例的数据对象相同的未加密内容但来自与不同安全域对应的不同文件系统的数据对象通过不同的DEK进行加密并且具有不同的签名,并且其中所述不同的签名使所述不同文件系统实例的所述数据对象不会针对所述文件系统实例中具有相同未加密内容的所述数据对象被去重复。
19.如权利要求15所述的非暂态机器可读介质,进一步包括用于删除所述DEK以便以加密方式擦除所述文件系统实例和所述备份的指令。
20.如权利要求15所述的非暂态机器可读介质,进一步包括用于删除所述DEK以便以加密方式擦除所述另一个计算系统上与所述安全域相关联的一系列备份以及所述文件系统实例的指令。
CN202010248020.6A 2019-04-29 2020-03-31 属于集群的系统、用于备份的方法和机器可读介质 Active CN111858149B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/398,069 2019-04-29
US16/398,069 US11226867B2 (en) 2019-04-29 2019-04-29 Backups of file system instances of encrypted data objects

Publications (2)

Publication Number Publication Date
CN111858149A CN111858149A (zh) 2020-10-30
CN111858149B true CN111858149B (zh) 2024-06-28

Family

ID=72839991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010248020.6A Active CN111858149B (zh) 2019-04-29 2020-03-31 属于集群的系统、用于备份的方法和机器可读介质

Country Status (3)

Country Link
US (1) US11226867B2 (zh)
CN (1) CN111858149B (zh)
DE (1) DE102020111199B4 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106441B2 (en) * 2018-09-14 2021-08-31 Microsoft Technology Licensing, Llc Secure device-bound edge workload delivery
KR102451053B1 (ko) * 2019-05-22 2022-10-05 묘타, 인크. 보안, 복원, 및 제어가 강화된 분산된 데이터 스토리지를 위한 방법 및 시스템(method and system for distributed data storage with enhanced security, resilience, and control)
US11658970B2 (en) * 2020-09-14 2023-05-23 Dell Products L.P. Computing device infrastructure trust domain system
US12093435B2 (en) * 2021-04-29 2024-09-17 Dell Products, L.P. Methods and systems for securing data in a distributed storage system
CN114490434B (zh) * 2022-01-25 2025-10-24 上海焜耀网络科技有限公司 一种用于ipfs的空间回收方法与设备
US20230393946A1 (en) * 2022-06-06 2023-12-07 Sap Se Self-sufficient encrypted database backup for data migration and recovery

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336092B1 (en) * 2015-01-01 2016-05-10 Emc Corporation Secure data deduplication

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622064B2 (ja) * 2000-04-06 2011-02-02 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
US7424514B2 (en) * 2002-11-08 2008-09-09 The Regents Of The University Of Michigan Peer-to-peer method and system for performing and managing backups in a network of nodes
US8397083B1 (en) 2006-08-23 2013-03-12 Netapp, Inc. System and method for efficiently deleting a file from secure storage served by a storage system
US8745523B2 (en) 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US8588425B1 (en) 2007-12-27 2013-11-19 Emc Corporation Encryption key recovery in the event of storage management failure
US8126847B1 (en) 2008-04-30 2012-02-28 Network Appliance, Inc. Single file restore from image backup by using an independent block list for each file
FI20080534A0 (fi) 2008-09-22 2008-09-22 Envault Corp Oy Turvallinen ja valikoidusti kiistettävissä oleva tiedostovarasto
US8452731B2 (en) 2008-09-25 2013-05-28 Quest Software, Inc. Remote backup and restore
US8468607B2 (en) 2009-10-07 2013-06-18 International Business Machines Corporation Associating multiple security domains to application servers
US8762343B2 (en) * 2009-12-29 2014-06-24 Cleversafe, Inc. Dispersed storage of software
US20130254536A1 (en) * 2012-03-22 2013-09-26 Workshare, Ltd. Secure server side encryption for online file sharing and collaboration
US9749132B1 (en) 2011-11-28 2017-08-29 Amazon Technologies, Inc. System and method for secure deletion of data
TWI546695B (zh) 2011-12-15 2016-08-21 萬國商業機器公司 刪除儲存系統中之內容
US9846784B1 (en) * 2013-02-26 2017-12-19 Rockwell Collins, Inc. Multi-level storage system and method
US9195851B1 (en) 2014-03-12 2015-11-24 Emc Corporation Offloading encryption to the client
US9432192B1 (en) 2014-03-28 2016-08-30 Emc Corporation Content aware hierarchical encryption for secure storage systems
US10911225B2 (en) * 2015-06-05 2021-02-02 Nutanix, Inc. Optimizable full-path encryption in a virtualization environment
US9779269B1 (en) * 2015-08-06 2017-10-03 EMC IP Holding Company LLC Storage system comprising per-tenant encryption keys supporting deduplication across multiple tenants
US9858427B2 (en) * 2016-02-26 2018-01-02 International Business Machines Corporation End-to-end encryption and backup in data protection environments
US11106375B2 (en) * 2019-04-04 2021-08-31 Netapp, Inc. Deduplication of encrypted data within a remote data store

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336092B1 (en) * 2015-01-01 2016-05-10 Emc Corporation Secure data deduplication

Also Published As

Publication number Publication date
DE102020111199A1 (de) 2020-10-29
US11226867B2 (en) 2022-01-18
CN111858149A (zh) 2020-10-30
US20200341860A1 (en) 2020-10-29
DE102020111199B4 (de) 2023-05-11

Similar Documents

Publication Publication Date Title
CN111858149B (zh) 属于集群的系统、用于备份的方法和机器可读介质
US11100235B2 (en) Backups of file system instances with root object encrypted by metadata encryption key
US20220368457A1 (en) Distributed Storage System Data Management And Security
US10223544B1 (en) Content aware hierarchical encryption for secure storage systems
US8621240B1 (en) User-specific hash authentication
US8930686B2 (en) Deduplication of encrypted data
Rahumed et al. A secure cloud backup system with assured deletion and version control
Qin et al. The design and implementation of a rekeying-aware encrypted deduplication storage system
US11671244B2 (en) Blockchain technology for data integrity regulation and proof of existence in data protection systems
US8117464B1 (en) Sub-volume level security for deduplicated data
US9225691B1 (en) Deduplication of encrypted dataset on datadomain backup appliance
US8667032B1 (en) Efficient content meta-data collection and trace generation from deduplicated storage
US20160191247A1 (en) Client-side encryption in a deduplication backup system
Li et al. Metadedup: Deduplicating metadata in encrypted deduplication via indirection
CN116710916A (zh) 防止重复加密数据的方法和系统
Tian et al. Sed‐Dedup: An efficient secure deduplication system with data modifications
Aldar et al. A survey on secure deduplication of data in cloud storage
Raj A Hybrid Cloud for Protecting the Data by Differential Privileges of users in the Duplicate Check
Gode et al. An effective storage management in a twin cloud architecture using an authorized deduplication technique
Rahumed Data security and reliability in cloud backup systems with deduplication
Gode et al. An Authorized De-dup Technique for Encrypted Data with DARE Scheme in a Twin Cloud Environment
Naidu METHODOLOGY FOR OPTIMIZING STORAGE ON CLOUD USING AUTHORIZED DE-DUPLICATION"-A Review
Amutha et al. IMPROVED DATA DE-DUPLICATION IN CLOUD
Raghavendrarao et al. Eliminate the Multiplicity of Data Storage and Enable the Security on Cloud
Shinde et al. A Review Report on Advance Approach for Secure Authorized Deduplication

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