CN112559485A - 用于管理存储系统的方法、设备和计算机程序产品 - Google Patents
用于管理存储系统的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN112559485A CN112559485A CN201910919526.2A CN201910919526A CN112559485A CN 112559485 A CN112559485 A CN 112559485A CN 201910919526 A CN201910919526 A CN 201910919526A CN 112559485 A CN112559485 A CN 112559485A
- Authority
- CN
- China
- Prior art keywords
- storage device
- data object
- storage
- storage system
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及管理存储系统的方法、设备和计算机程序产品。存储系统包括第一存储设备和第二存储设备。在该方法中,在第一存储设备中搜索由写入请求指定的数据对象,写入请求指定将数据对象写入至存储系统中。根据确定在第一存储设备中不存在数据对象,通知第二存储设备以在第二存储设备中搜索数据对象。根据在第二存储设备中搜索数据对象的搜索结果,向存储系统中写入数据对象。基于数据对象被写入至存储系统的地址,确定数据对象的地址映射,地址映射指示数据对象在存储系统中的地址,该方法在第一存储设备处被执行。可以以更为高效的方式管理存储系统,并且易于扩展存储系统中的存储设备的数量。进一步,提供了相应的设备和计算机程序产品。
Description
技术领域
本公开的各实现方式涉及存储系统的管理,更具体地,涉及用于管理针对存储系统的访问的方法、设备和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户应用系统提供越来越高的数据存储能力。然而,出于数据安全性等原因,用户应用系统可能会不断地向存储系统中存储在不同时间点生成的数据对象的副本。随着时间的流逝,存储系统中的存储空间可能会被耗尽。
目前已经提出了针对存储系统中的存储空间执行扩展的技术方案。然而,现有的技术方案通常需要数据迁移,或者需要复杂的管理机制来确保存储系统的稳定运行。此时,如何以更为有效的方式来管理存储系统并提供可扩展能力,成为一个研究热点。
发明内容
因而,期望能够开发并实现一种以更为有效的方式来管理存储系统的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且通过改造现有存储系统的各种配置,来以更为有效的方式管理存储系统。
根据本公开的第一方面,提供了一种用于管理存储系统的方法,在此存储系统包括第一存储设备和第二存储设备。在该方法中,在第一存储设备中搜索由写入请求指定的数据对象,写入请求指定将数据对象写入至存储系统中。根据确定在第一存储设备中不存在数据对象,在第二存储设备中搜索数据对象。根据在第二存储设备中搜索数据对象的搜索结果,向存储系统中写入数据对象。基于数据对象被写入至存储系统的地址,确定数据对象的地址映射,其中地址映射指示数据对象在存储系统中的地址,方法在第一存储设备处被执行。
根据本公开的第二方面,提供了一种用于管理存储系统的地址映射的设备。该存储系统包括第一存储设备和第二存储设备。该设备包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行一种方法。该方法包括:在第一存储设备中搜索由写入请求指定的数据对象,写入请求指定将数据对象写入至存储系统中;根据确定在第一存储设备中不存在数据对象,在第二存储设备中搜索数据对象;根据在第二存储设备中搜索数据对象的搜索结果,向存储系统中写入数据对象;以及基于数据对象被写入至存储系统的地址,确定数据对象的地址映射,其中地址映射指示数据对象在存储系统中的地址,方法在第一存储设备处被执行。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
图1示意性示出了包括分布式存储系统的应用环境的示意图;
图2示意性示出了根据本公开的一个实现方式的用于管理存储系统的架构的框图;
图3示意性示出了根据本公开的一个实现方式的用于管理存储系统的过程的框图;
图4示意性示出了根据本公开的一个实现方式的用于管理存储系统的方法的流程图;
图5示意性示出了根据本公开的一个实现方式的在存储设备中搜索数据对象的方法的流程图;
图6示意性示出了根据本公开的一个实现方式的存储设备的配置的框图;
图7示意性示出了根据本公开的一个实现方式的在远程存储设备处搜索数据对象的方法的流程图;
图8示意性示出了根据本公开的一个实现方式的从远程存储设备向本地存储设备返回数据对象的方法的流程图;以及
图9示意性示出了根据本公开的示例性实现的用于管理存储系统的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
目前已经提供用于扩展存储系统中的存储空间的多种技术方案。在一个技术方案中,当存储系统中的现有存储设备的存储空间即将被耗尽时,可以部署具有更多存储空间的新的存储设备,并将现有存储设备中的数据迁移至新的技术方案。然而,该技术方案需要大量的时间和带宽开销来用于执行数据迁移。
在另一个技术方案中,提供了用于扩展分布式存储系统中的存储空间的技术方案。在下文中,将参见图1描述分布式存储系统的概要。图1示意性示出了包括分布式存储系统140的应用环境100的示意图。如图1所示,存储系统140可以包括多个存储设备110、120、……、以及130。进一步,存储系统140还可以包括地址映射142,该地址映射142可以将来自用户的数据对象150映射至一个或多个存储设备。
将会理解,在此的数据对象150可以具有不同类型。例如,数据对象150可以是视频文件、音频文件、文本文件等。进一步,数据对象150还可以具有不同的大小。如果数据对象150较大(例如,高清电影),则可以将该数据对象150划分为多个较小的区块(block),并且将多个区块分别存储至存储系统140中的多个存储设备中。此时,地址映射142可以记录数据对象150与该数据对象150的一个或多个区块之间的映射关系。换言之,地址映射142需要记录数据对象150中的每个区块被存储至存储系统140中的哪个(哪些)存储设备并且需要记录在那个(那些)存储设备的地址。
当存储系统中的存储空间不足时,可以通过向存储系统140中添加新的存储设备的方式,来扩展存储系统的存储空间。此时,尽管不需要从已有存储设备向新的存储设备迁移数据,然而该技术方案需要复杂的管理过程以确保存储系统140中的多个存储设备协调工作。
为了解决上述缺陷,本公开的实现方式提供了一种用于管理存储系统的方法、设备和计算机程序产品。首先参见图2描述本公开的实现方式的概要。图2示意性示出了根据本公开的一个实现方式的用于管理存储系统的架构200的框图。如图2所示,存储系统140可以包括第一存储设备110和第二存储设备120。为方便描述起见,图2仅示出了两个存储设备。将会理解,存储系统还可以包括更多的存储设备。
根据本公开的示例性实现方式,提出了本地管理器和远程管理器的概念。每个存储设备可以包括本地管理器和远程管理器。如图2所示,第一存储设备110可以包括本地管理器212和远程管理器214,以及第二存储设备120可以包括本地管理器222和远程管理器224。将会理解,在此多个存储设备中的本地管理器和远程管理器的功能是类似的,在下文中将仅以第一存储设备110中的本地管理器212和远程管理器214为示例进行描述。
根据本公开的示例性实现方式,本地管理器可以用于管理与在本地存储设备中执行的数据访问操作相关联的事务。例如,本地管理器212可以用于管理在第一存储设备110中搜索数据对象、向第一存储设备110写入数据对象、从第一存储设备110中读取数据对象等相关的事务。远程管理器可以用于管理与在本地存储设备以外的远程存储设备中执行的数据访问操作相关联的事务。例如,远程管理器214可以用于管理在第二存储设备120中搜索数据对象、从第二存储设备120中读取数据对象等相关的事务。
如图2所示,可以提供备份客户端来用于从用户应用系统(未示出)采集需要备份的数据对象。可以向各个存储设备分配一个或多个备份客户端。一个备份客户端可以对应于一个用户应用系统。例如,可以向第一存储设备110分配备份客户端240和242,并且可以向第二存储设备120分配备份客户端244和246。此时,第一存储设备110将处理来自备份客户端240和242的请求(例如,向存储系统140写入数据对象的写入请求,以及从存储系统140读取数据对象的读取请求)。
根据本公开的示例性实现方式,可以部署存储设备管理器230来用于协调存储系统140中的各个存储设备。备选地和/或附加地,该存储设备管理器230还可以负责管理多个备份客户端。将会理解,尽管图2示意性示出了存储设备管理器230独立于存储系统140中的存储设备,还可以将存储设备管理器230部署在存储系统中的设备处。例如,可以将存储设备管理器230部署在第一存储设备110中。
在下文中,将参见图3描述有关本公开的实现方式的更多细节。图3示意性示出了根据本公开的一个实现方式的用于管理存储系统140的过程的框图300。如图3所示,第一存储设备110可以接收用于向存储系统140中写入数据对象的向写入请求310,在此的第一存储设备110可以包括存储空间。为了避免重复数据对象的存在,在向第一存储设备110写入数据对象之前,可以首先在第一存储设备110中搜索数据对象。如果存在,则可以使用第一存储设备110中已经存在的数据对象,而不必向存储系统140中写入重复的数据。例如,可以由本地管理器212来执行上述操作。
如果确定在第一存储设备110中不存在数据对象,则需要在第一存储设备110以外的第二存储设备120中进行搜索。在此的第二存储设备120是第一存储设备110以外的远程存储设备。可以根据在第二存储设备120中的搜索数据对象的搜索结果,向存储系统140中写入数据对象。根据本公开的示例性实现方式,提供了地址映射320来用于表示存储系统140中的各个数据对象的地址。进一步,可以基于数据对象被写入至存储系统140的地址,确定数据对象的地址映射320。在此有关在第二存储设备120处执行的操作可以由远程管理器214来控制。例如,远程管理器214可以向第二存储设备120发送消息,以指示第二存储设备120执行相应的操作。远程管理器214还可以接收来自第二存储设备120的应答。
在下文中,将参见图4描述本公开的实现方式的更多细节。图4示意性示出了根据本公开的一个实现方式的用于管理存储系统140的方法的流程图400。在框410处,在第一存储设备110中搜索由写入请求指定的数据对象,写入请求可以指定将数据对象写入至存储系统140中。将会理解,可以经由安装在用户应用系统处的备份客户端来接收写入请求310。此时,存储系统140被连接至用户应用系统,以用于存储用户应用系统中的数据对象的备份。在此的备份客户端可以采集来自用户应用系统的需求,并且向第一存储设备110来转发该需求。
将会理解,存储系统140可以服务于大量的用户应用系统。此时,可以基于各个用户应用系统的备份需求以及存储系统140中的各个存储设备的工作负载,来确定由哪个存储设备来服务于哪个用户应用系统。根据本公开的示例性实现方式,对于特定的用户应用系统而言,可以基于第一存储设备110的第一工作负载、第二存储设备120的第二工作负载以及用户应用系统的备份需求,从第一存储设备110和第二存储设备120中选择一个存储设备,以用于服务于用户应用系统。继而,可以将用户应用系统注册至选择的存储设备。
根据本公开的示例性实现方式,工作负载例如可以包括多方面的内容,例如可以包括而不限于:存储设备中的空闲存储空间、存储设备的处理器的使用率、存储设备的存储器的使用率、存储设备正在服务的用户应用系统的数量、存储设备正在处理的请求的数量、存储设备的当前可用带宽,等等。假设第二工作负载远高于第一工作负载,则可以选择工作负载较轻的第一存储设备110来服务于该特定用户应用系统。继而,可以将该特定用户应用系统注册至第一存储设备110。
根据本公开的示例性实现方式,可以创建如图2所示的存储设备管理器230来管理上述注册操作。根据本公开的示例性实现方式,还可以在在每个存储设备中创建容器。在容器中,可以部署上文描述的远程管理器。例如,在第一存储设备110中,可以部署容器并且在该容器中安装远程管理器214。在第二存储设备120中,可以部署容器并且在该容器中安装远程管理器224。通过使用容器,可以避免不同管理器所需的系统配置的冲突。进一步,由于容器不需要专用的操作系统来运行各个管理器,因此可以降低存储设备中的管理复杂度。
根据本公开的示例性实现方式,可以基于数据对象的哈希来在存储设备中搜索数据对象。将会理解,可以基于多种方式来生成数据对象的哈希,诸如MD5、SHA1、SHA256、CRC等算法来生成摘要信息。第一应用系统110可以多种方式获取数据对象的哈希。为了节约数据传输的带宽,例如可以由备份客户端生成将要备份的数据对象的哈希,并将该哈希包括在写入请求310中。备选地和/或附加地,还可以由用户应用系统来生成将要备份的数据对象的哈希。
将会理解,第一存储设备110和第二存储设备120可以具有相同或者不同的类型,因而导致各个存储设备的存储规则可以是不同的。此时,可以首先确定存储设备的存储规则,并按照相应的存储规则来搜索数据对象。具体地,可以基于第一存储设备110的第一存储规则,在第一存储设备110中搜索与哈希相匹配的数据对象。可以将获取的哈希分别与第一存储设备110中的各个数据对象的哈希进行比较,以确定在第一存储设备110中是否存在期望被写入的数据对象。
将会理解,在此的哈希可以包括多种类型:基于元数据的哈希和基于数据块的哈希。基于元数据的哈希是指针对整体数据对象而生成的哈希。当数据对象包括较大的数据量时,数据对象可以包括多个数据块,此时还可以分别针对每个数据块来生成哈希。假设数据对象包括2个数据块,则此时可以生成一个基于元数据的哈希,并且还可以生成两个基于数据块的哈希。将会理解,还可以仅生成基于元数据的哈希,或者仅生成基于数据块的哈希。
在下文中,将参见图5描述如何在第一存储系统110中搜索数据对象。将会理解,如果发现在第一存储设备110中存在与基于元数据的哈希相匹配的数据对象,则此时不必再针对每个数据块进行处理,而是可以直接利用该相匹配的数据对象的地址,来确定地址映射320。根据本公开的示例性实现方式,在存在一组基于数据块的哈希的情况下,还可以分别在第一存储设备110中搜索与一组块哈希相匹配的一组数据块。
可以针对一组数据块中的每个数据块执行处理,例如,可以在第一存储系统110中搜索与每个数据块的哈希相匹配的数据块,如果存在,则可以认为数据对象中的该数据块已经被存储在第一存储设备110中。一种可能的情况是,第一存储设备110仅包括数据对象中的一部分数据块,此时可以基于找到的数据块的地址来确定地址映射320中的与该数据块相关联的部分。进一步,还可以在第二存储设备120中搜索没有存在于第一存储设备110中的其他的数据块。
图5示意性示出了根据本公开的一个实现方式的在存储设备中搜索数据对象的方法500的流程图。在框510处,可以首先接收数据对象的哈希,例如,可以从写入请求310中接收该哈希。继而,在框520处可以确定哈希的类型。在此哈希的类型可以包括基于元数据的哈希和基于数据块的哈希。继而,在框530处,可以根据确定的哈希的类型,来在存储设备中搜索与该哈希相匹配的数据。
根据本公开的示例性实现方式,在向存储系统140存储数据对象之前,首先应当执行“去重”操作。在此基于哈希来进行搜索的目的在于,确定在存储系统140中是否已经存储了数据对象(或者数据对象中的一部分数据块)。利用本公开的示例性实现方式,可以仅向存储系统中存储没有被存储在存储系统中的数据对象(或者数据对象的一部分数据块),以此方式可以更有效地提高存储系统140的使用率,并且还可以降低管理存储系统140中的多个副本的额外开销。
将会理解,在此的存储系统140可以包括多个存储设备,因而除了第一存储设备110以外,还需要确定在其他存储设备中是否存在数据对象。如图4的框420所示,可以确定在第一存储设备110是否存在数据对象。如果确定在第一存储设备110中不存在数据对象,则可以通知第二存储设备120以在第二存储设备120中搜索数据对象。将会理解,在第二存储设备120中搜索数据对象的方式与上文参见图5描述的方法500类似。
具体地,可以从第一存储设备110向第二存储设备120发送消息,以指示在第二存储设备120中进行搜索。具体地,可以由第二存储设备120中的本地管理器222来分别根据不同类型的哈希来执行搜索。根据本公开的示例性实现方式,可以基于第二存储设备120的第二存储规则,在第二存储设备120中搜索与哈希相匹配的数据对象。
将会理解,存储系统140可以包括多个存储设备,此时在每个存储设备中需要部署本地管理器来管理在该存储设备中的数据访问操作,并且还需要部署一个或多个远程管理器来用于管理在该存储设备以外的其他存储设备中的数据访问操作。假设存储系统140包括N个存储设备,则在每个存储设备处,需要部署1个本地管理器和(N-1)个远程管理器。
图6示意性示出了根据本公开的一个实现方式的存储设备的配置的框图600。如图6所示,假设存储系统140包括第一存储设备110、第二存储设备120以及第三存储设备等。则在第一存储设备110处可以部署本地管理器212来用于管理在第一存储设备212中的数据访问操作,可以部署远程管理器214来用于管理在第二存储设备214中的数据访问操作,可以部署远程管理器610来用于管理在第三存储设备中的数据访问操作,等等。类似地,在第二存储设备120处,可以部署本地管理器并且还可以分别部署用于管理在第一存储设备110、第三存储设备等其他存储设备中的数据访问操作的其他多个远程管理器。
在下文中,将描述在远程管理器处执行的操作。如图4的框430所示,可以根据在第二存储设备120中的搜索数据对象的搜索结果,向存储系统140中写入数据对象。在下文中,首先将参见图7描述在远程存储设备中搜索数据对象的更多细节。图7示意性示出了根据本公开的一个实现方式的在远程存储设备处搜索数据对象的方法700的流程图。如图7所示,在框710处,第二存储设备120可以接收数据对象的哈希。在此的哈希可以是上文描述的基于元数据的哈希、基于块的哈希或者两者的组合。在框720处,可以在第二存储设备120中搜索与该哈希相匹配的数据对象。例如,可以按照上文描述的方法,基于哈希的类型以及第二存储设备120的第二存储规则来进行搜索。
在框730处,如果确定存在相匹配的数据对象,则方法700前进至框740处,以便向第一存储设备110返回找到的数据对象的地址。在此的地址是指找到的数据对象在第二存储设备120中的地址。如果确定在第二存储设备120中不存在相匹配的数据对象,则方法700前进至框750。此时,可以向第一存储设备110返回“空”以指示在第二存储设备120中不存在该数据对象。
将会理解,尽管图7仅示出了在第二存储设备120中搜索数据对象的过程,还可以以类似的方式在第二存储设备120中搜索数据对象中的每个数据块。一种可能的情况是,第二存储设备120仅包括数据对象中的一部分数据块,则此时可以向第一存储设备110返回该部分数据块在第二存储系统120中的地址。进一步,可以向第一存储设备110中写入在第一存储设备110和第二存储设备120中均不存在的其他数据块。
将会理解,尽管上文仅描述了存在一个远程存储设备即第二存储设备120的情况,根据本公开的示例性实现方式,还可以存在更多的远程存储设备。此时,第一存储设备110中的多个远程管理器214可以分别向相应的远程存储设备发送信息,以便启动在相应的远程存储设备中搜索数据对象的操作。
上文已经参见图7描述了在第二存储设备120处执行的方法700,该方法可以经由来自第一存储设备110的远程管理器214的调用来启动。继而,第一存储设备110可以接收从第二存储设备120返回的消息。返回图4的框440,在第一存储设备110处,可以基于数据对象被写入至存储系统140的地址,确定数据对象的地址映射320。具体地,如果在第二应用系统120中存在该数据对象,则可以基于从第二存储设备120返回的地址来更新地址映射320。如果在第二应用系统120中不存在该数据对象(返回“空”),则可以向第一存储设备110写入数据对象。
为了节省备份客户端240与存储系统140之间的带宽,可以首先向第一存储设备110发送期望被存储的数据对象的哈希,以确定在存储系统140中是否存在数据对象。如果判断结果为“否”,则第一存储设备110可以接收来自备份客户端240的数据对象,并且在第一存储设备110中存储该数据对象。利用本公开的示例性实现方式,一方面可以仅在需要时传输数据对象并降低带宽要求,另一方面,可以有效地去除存储系统140中的重复数据并降低存储系统140中的管理复杂度。
根据本公开的示例性实现方式,还可以在远程存储设备中为数据对象创建数据对象的虚拟备份。在此的虚拟备份表示远程存储设备中的数据对象被其他存储设备所引用。例如,如果确定在第二存储设备120中存在与哈希相匹配的数据对象,可以向第二存储设备120写入数据对象的虚拟备份。将会理解,在此的虚拟备份并不包括数据对象中的数据本身,而是仅仅是用于指示第二存储设备120中的相匹配的数据对象被引用的索引。例如,该虚拟备份可以指示第二存储设备120中的数据对象是用户应用系统期望写入的数据对象(或者期望写入的数据对象的一部分)。如图7中的框742所示,还可以向第二存储设备120中添加虚拟备份。
根据本公开的示例性实现方式,可以为数据对象设置到期时间。在此的到期时间表示写入请求指定的在存储系统140中存储数据对象的时间长度。将会理解,对于用户应用系统而言,数据对象例如可以是同一文件在不同时间段的多个版本。例如,假设用户正在编辑一个文档,并且每天向存储系统中备份当天形成的文档的版本。随着时间的流逝,存储系统140中将会包括大量版本。通常而言,版本越陈旧,则可能被使用的可能性将会越低。此时,可以为每个版本的文档设置到期时间。例如,可以将到期时间设置为30天,当到达第31天时,最初的版本将会从存储系统140中删除。以此方式,可以确保存储系统140中的长久不被访问的数据对象所占用的空间被及时释放。根据本公开的示例性实现方式,可以将向虚拟备份中添加到期时间,以便于管理数据对象的引用。
创建虚拟备份可以便于维护存储系统中的数据对象。例如,当某个数据对象已经到期时,由于虚拟备份中包括相同的到期时间,因此可以在所有存储设备中以分布式方式删除属于数据对象的数据。根据本公开的示例性实现方式,当需要删除一个数据对象时,只需要通知其他存储设备删除相应的虚拟备份以及与该虚拟备份相关联的数据对象。根据本公开的示例性实现方式,还可以在各个存储设备之间执行复制操作以便提供更高的数据可靠性。当需要执行复制时,可以经由虚拟备份来复制数据,而不是通过检查所有备份数据的复杂引用关系来实现。
将会理解,随着存储系统140的运行,存储系统140中的一个或多个存储设备中的存储空间可能会被逐渐耗尽。此时,可以在存储系统140中的多个存储设备之间执行数据迁移。例如,如果确定第一存储设备110的第一工作负载高于预定阈值(例如,被使用的存储空间达到90%或者其他数值),则可以将第一存储设备240中的数据对象迁移至具有较低工作负载的存储设备。例如,假设第二存储设备120的第二工作负载为60%,则可以将第一存储设备110中的一部分数据对象迁移至该第二存储设备120。
根据本公开的示例性实现方式,当某个存储设备的工作负载较高时,还可以将原本注册至该存储设备的用户应用系统注册至具有较低工作负载的存储设备。假设被注册至第一存储设备110的用户应用系统具有较高的备份需求,如果此时第一存储设备110已经具有较高工作负载,则继续由第一存储设备110服务于该用户应用系统将会导致第一存储设备110中的空闲存储空间很快被耗尽。此时,如果确定第一工作负载高于预定阈值,则可以将用户应用系统注册至具有较低工作负载的第二存储设备120。
在上文中,已经参见附图2至图7描述了如何向存储系统140中写入数据对象以及迁移数据对象。根据本公开的示例性实现方式,还可以从存储系统140中读取数据对象。具体地,可以接收指定从存储系统140中读取目标数据对象的读取请求。例如,可以从备份客户端240接收该读取请求。继而,可以根据地址映射,在存储系统140中读取由读取请求指定的目标数据对象。将会理解,由于地址映射320包括数据对象(或者数据对象中的各个数据块)在存储系统140中的地址,因而可以基于地址映射320来获取数据对象。
根据本公开的示例性实现方式,如果确定地址映射320指示目标数据对象存在于第一存储设备110中,则可以基于第一存储设备110的第一存储规则,来在第一存储设备110中的指定地址处获取目标数据对象。具体地,当第一存储设备110接收到读取请求时,可以基于读取请求中的目标数据对象的标识符来首先在地址映射320中找到目标数据对象的地址。继而,可以在第一存储设备110中的指定地址处进行搜索。例如,可以由本地管理器212执行搜索。如果找到期望读取的目标数据对象,则可以向备份客户端240返回找到的目标数据对象。
如果确定地址映射320指示目标数据对象存在于第二存储设备120,则可以由远程管理器214来向第二存储设备120发送消息,以指示在第二存储设备120中进行搜索。此时,第二存储设备120来基于第二存储设备120的第二存储规则,在第二存储设备120中搜索目标数据对象。在下文中,将参见图8描述有关从存储系统读取数据的过程。
图8示意性示出了根据本公开的一个实现方式的从远程存储设备向本地存储设备返回数据对象的方法800的流程图。如图8所示,在框810处,在第二存储设备120处,可以接收将被读取的目标数据对象的地址。在框820处,可以在接收的地址处获取目标数据对象。将会理解,处于故障处理、负载均衡等原因,原本位于某个地址处的数据对象可能会被迁移至新的地址(例如,新的地址可以位于相同或者不同的存储设备中),因而可能出现在获取的地址处无法找到目标数据的情况。
在框830处,可以确定是否找到目标数据对象,如果可以找到目标数据对象,则方法800前进至框860处,以便向第一存储设备110返回找到的目标数据对象。在框830处,如果未找到目标数据对象,则方法800前进至框840。在框840处,可以根据迁移记录,确定目标数据对象的迁移后的地址。在框850处,可以基于迁移后的地址来获取目标数据对象。继而,在框860处,可以向第一存储设备110返回找到的目标数据对象。
将会理解,上文仅示意性示出了从存储系统140中读取目标数据对象的情况。根据本公开的示例性实现方式,该目标数据对象还可以包括多个数据块,此时,可以按照类似的方式在存储系统140中搜索多个数据块中的每个数据块。例如,地址映射320可以指示:多个数据块中的一部分数据块位于第一存储设备110中,而另一部分数据块位于第二存储设备120中。此时,可以分别由本地管理器212和远程管理器214来获取相应的数据块。继而,可以将获取的多个数据块进行组合以形成目标数据对象,并且可以向备份客户端240返回目标数据对象。
根据本公开的示例性实现方式,当存储系统140中的空闲存储空间出现不足时,还可以向该存储系统140中添加第三存储设备。此时,第三存储设备中的空闲空间可以用于在未来存储数据。备选地和/或附加地,还可以将当前的工作负载较高的存储设备中的数据对象迁移至该第三存储设备中。
利用本公开的示例性实现方式,可以方便地管理存储系统140中的存储空间的扩展。此时,可以向第三存储设备部署本地管理器来用于管理对于该第三存储设备中的数据的访问。进一步,可以向第三存储设备部署远程管理器,来用于管理对于该第三存储设备以外的远程存储设备的数据访问。具体地,可以部署第一远程管理器来用于管理对第一存储设备110中的数据的访问,可以部署第二远程管理器来用于管理对第二存储设备120中的数据的访问。进一步,还可以分别向第一存储设备110和第二存储设备120部署远程管理器,来用于管理对于第三存储设备中的数据的访问。
利用本公开的示例性实现方式,可以由位于每个存储设备处的本地管理器和远程管理器来管理对于存储系统中的数据的访问。以此方式,并不需要复杂的集中式管理器,即可协调存储系统140中的各个存储设备的操作,进而完成数据写入、数据读取、数据迁移以及存储空间的扩展等操作。
根据本公开的示例性实现方式,如果确定在第一存储设备110中不存在数据对象,可以由第一存储设备110中的另一远程管理器来向第三存储设备发送消息,以指示在第三存储设备中搜索数据对象。进一步,该远程管理器可以接收来自第三存储设备的消息,并且根据在第三存储设备中的搜索数据对象的搜索结果,向存储系统140中写入数据对象。进一步,可以基于数据对象被写入至存储系统140的地址,确定数据对象的地址映射。将会理解,上述过程类似于上文参见图4中的框420、430和440处执行的操作,因而不再赘述。
在上文中已经参见图2至图8详细描述了根据本公开的方法400、500、700和800的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现,提供了一种用于管理存储系统的装置,存储系统包括第一存储设备和第二存储设备。该装置包括:第一搜索模块,配置用于在第一存储设备中搜索由写入请求指定的数据对象,写入请求指定将数据对象写入至存储系统中;第二搜索模块,配置用于根据确定在第一存储设备中不存在数据对象,通知第二存储设备以在第二存储设备中搜索数据对象;写入模块,配置用于根据在第二存储设备中搜索数据对象的搜索结果,向存储系统中写入数据对象;以及确定模块,配置用于基于数据对象被写入至存储系统的地址,确定数据对象的地址映射,其中地址映射指示数据对象在存储系统中的地址,装置在第一存储设备处被执行。
根据本公开的示例性实现方式,第一搜索模块包括:哈希获取模块,配置用于获取数据对象的哈希;以及第一数据对象搜索模块,配置用于基于第一存储设备的第一存储规则,在第一存储设备中搜索与哈希相匹配的数据对象。
根据本公开的示例性实现方式,哈希进一步包括数据对象中的一组数据块的一组块哈希;以及第一搜索模块进一步包括,块搜索模块,配置用于根据第一存储规则,分别在第一存储设备中搜索与一组块哈希相匹配的一组数据块。
根据本公开的示例性实现方式,地址映射确定模块,配置用于根据确定在第一存储设备中存在与哈希相匹配的数据对象,基于数据对象在第一存储设备中的地址,确定数据对象的地址映射。
根据本公开的示例性实现方式,第二搜索模块,配置用于通知第二存储设备基于第二存储设备的第二存储规则,在第二存储设备中搜索与哈希相匹配的数据对象。
根据本公开的示例性实现方式,写入模块进一步配置用于根据确定在第二存储设备中不存在与哈希相匹配的数据对象,向第一存储设备写入数据对象。
根据本公开的示例性实现方式,写入模块包括:虚拟写入模块,配置用于根据确定在第二存储设备中存在与哈希相匹配的数据对象,向第二存储设备写入数据对象的虚拟备份,虚拟备份表示第二存储设备中的数据对象被引用。
根据本公开的示例性实现方式,定时模块,配置用于为数据对象设置到期时间,到期时间表示写入请求指定的在存储系统中存储数据对象的时间长度。
根据本公开的示例性实现方式,接收模块,配置用于接收指定从存储系统中读取目标数据对象的读取请求;以及读取模块,配置用于根据地址映射,在存储系统中读取由读取请求指定的目标数据对象。
根据本公开的示例性实现方式,读取模块包括:第一读取模块,配置用于根据确定地址映射指示目标数据对象存在于第一存储设备,基于第一存储设备的第一存储规则来在第一存储设备中搜索目标数据对象;以及第二读取模块,配置用于根据确定地址映射指示目标数据对象存在于第二存储设备,通知第二存储设备来基于第二存储设备的第二存储规则,在第二存储设备中搜索目标数据对象。
根据本公开的示例性实现方式,所述写入请求是经由安装在用户应用系统处的备份客户端来接收的,存储系统被连接至用户应用系统以用于存储用户应用系统中的数据对象的备份。
根据本公开的示例性实现方式,进一步包括注册模块,配置用于基于第一存储设备的第一工作负载、第二存储设备的第二工作负载以及用户应用系统的备份需求,将用户应用系统注册至第一存储设备和第二存储设备中的一个存储设备以用于服务于用户应用系统。
根据本公开的示例性实现方式,进一步包括迁移模块,配置用于根据确定第一工作负载高于预定阈值,将第一存储设备中的数据对象迁移至第二存储设备,第二工作负载低于第一工作负载。
根据本公开的示例性实现方式,注册模块进一步配置用于:根据确定第一工作负载高于预定阈值,将用户应用系统注册至第二存储设备,第二工作负载低于第一工作负载。
根据本公开的示例性实现方式,进一步包括第三搜索模块,配置用于根据确定在第一存储设备中不存在数据对象,在第三存储设备中搜索数据对象;该写入模块进一步配置用于根据在第三存储设备中的搜索数据对象的搜索结果,向存储系统中写入数据对象;以及确定模块进一步配置用于基于数据对象被写入至存储系统的地址,确定数据对象的地址映射。
根据本公开的示例性实现方式,第三存储设备是根据确定存储系统的工作负载高于预定阈值,而被添加到存储系统中。
图9示意性示出了根据本公开的示例性实现的用于管理存储系统的地址映射的设备900的框图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400、500、700和800,可由处理单元901执行。例如,在一些实现中,方法400、500、700和800可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实现中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实现中,CPU901也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的示例性实现,提供了一种用于管理存储系统的地址映射的设备。该存储系统包括第一存储设备和第二存储设备。该设备包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行一方法。该方法包括:在第一存储设备中搜索由写入请求指定的数据对象,写入请求指定将数据对象写入至存储系统中;根据确定在第一存储设备中不存在数据对象,通知第二存储设备以在第二存储设备中搜索数据对象;根据在第二存储设备中搜索数据对象的搜索结果,向存储系统中写入数据对象;以及基于数据对象被写入至存储系统的地址,确定数据对象的地址映射,其中地址映射指示数据对象在存储系统中的地址,方法在第一存储设备处被执行。
根据本公开的示例性实现方式,在第一存储设备中搜索由写入请求指定的数据对象包括:获取数据对象的哈希;以及基于第一存储设备的第一存储规则,在第一存储设备中搜索与哈希相匹配的数据对象。
根据本公开的示例性实现方式,哈希进一步包括数据对象中的一组数据块的一组块哈希;以及基于第一存储设备的第一存储规则,在第一存储设备中搜索与哈希相匹配的数据对象进一步包括:根据第一存储规则,分别在第一存储设备中搜索与一组块哈希相匹配的一组数据块。
根据本公开的示例性实现方式,该方法进一步包括:根据确定在第一存储设备中存在与哈希相匹配的数据对象,基于数据对象在第一存储设备中的地址,确定数据对象的地址映射。
根据本公开的示例性实现方式,在第二存储设备中搜索数据对象包括:通知第二存储设备基于第二存储设备的第二存储规则,在第二存储设备中搜索与哈希相匹配的数据对象。
根据本公开的示例性实现方式,根据在第二存储设备中搜索数据对象的搜索结果,向存储系统中写入数据对象包括:根据确定在第二存储设备中不存在与哈希相匹配的数据对象,向第一存储设备写入数据对象。
根据本公开的示例性实现方式,根据在第二存储设备中搜索数据对象的搜索结果,向存储系统中写入数据对象包括:根据确定在第二存储设备中存在与哈希相匹配的数据对象,向第二存储设备写入数据对象的虚拟备份,虚拟备份表示第二存储设备中的数据对象被引用。
根据本公开的示例性实现方式,该方法进一步包括:为数据对象设置到期时间,到期时间表示写入请求指定的在存储系统中存储数据对象的时间长度。
根据本公开的示例性实现方式,该方法进一步包括:接收指定从存储系统中读取目标数据对象的读取请求;以及根据地址映射,在存储系统中读取由读取请求指定的目标数据对象。
根据本公开的示例性实现方式,根据地址映射,在存储系统中读取由读取请求指定的目标数据对象包括以下中的至少任一项:根据确定地址映射指示目标数据对象存在于第一存储设备,基于第一存储设备的第一存储规则来在第一存储设备中搜索目标数据对象;以及根据确定地址映射指示目标数据对象存在于第二存储设备,通知第二存储设备来基于第二存储设备的第二存储规则,在第二存储设备中搜索目标数据对象。
根据本公开的示例性实现方式,写入请求是经由安装在用户应用系统处的备份客户端来接收的,存储系统被连接至用户应用系统以用于存储用户应用系统中的数据对象的备份。
根据本公开的示例性实现方式,该方法进一步包括:基于第一存储设备的第一工作负载、第二存储设备的第二工作负载以及用户应用系统的备份需求,将用户应用系统注册至第一存储设备和第二存储设备中的一个存储设备以用于服务于用户应用系统。
根据本公开的示例性实现方式,该方法进一步包括:根据确定第一工作负载高于预定阈值,将第一存储设备中的数据对象迁移至第二存储设备,第二工作负载低于第一工作负载。
根据本公开的示例性实现方式,该方法进一步包括:根据确定第一工作负载高于预定阈值,将用户应用系统注册至第二存储设备,第二工作负载低于第一工作负载。
根据本公开的示例性实现方式,该方法进一步包括:根据确定在第一存储设备中不存在数据对象,在存储系统中的第三存储设备中搜索数据对象;根据在第三存储设备中的搜索数据对象的搜索结果,向存储系统中写入数据对象;以及基于数据对象被写入至存储系统的地址,确定数据对象的地址映射。
根据本公开的示例性实现方式,第三存储设备是根据确定存储系统的工作负载高于预定阈值,而被添加到存储系统中。
根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (18)
1.一种用于管理存储系统的方法,所述存储系统包括第一存储设备和第二存储设备,所述方法包括:
在所述第一存储设备中搜索由写入请求指定的数据对象,所述写入请求指定将所述数据对象写入至所述存储系统中;
根据确定在所述第一存储设备中不存在所述数据对象,通知所述第二存储设备以在所述第二存储设备中搜索所述数据对象;
根据在第二存储设备中搜索所述数据对象的搜索结果,向所述存储系统中写入所述数据对象;以及
基于所述数据对象被写入至所述存储系统的地址,确定所述数据对象的地址映射,其中所述地址映射指示所述数据对象在所述存储系统中的地址,所述方法在所述第一存储设备处被执行。
2.根据权利要求1所述的方法,其中在所述第一存储设备中搜索由写入请求指定的数据对象包括:
获取所述数据对象的哈希;以及
基于所述第一存储设备的第一存储规则,在所述第一存储设备中搜索与所述哈希相匹配的数据对象。
3.根据权利要求2所述的方法,其中所述哈希进一步包括所述数据对象中的一组数据块的一组块哈希;以及
基于所述第一存储设备的第一存储规则,在所述第一存储设备中搜索与所述哈希相匹配的数据对象进一步包括:根据所述第一存储规则,分别在所述第一存储设备中搜索与所述一组块哈希相匹配的一组数据块。
4.根据权利要求2所述的方法,进一步包括:
根据确定在所述第一存储设备中存在与所述哈希相匹配的数据对象,基于所述数据对象在所述第一存储设备中的地址,确定所述数据对象的地址映射。
5.根据权利要求2所述的方法,其中在所述第二存储设备中搜索所述数据对象包括:通知所述第二存储设备基于所述第二存储设备的第二存储规则,在所述第二存储设备中搜索与所述哈希相匹配的数据对象。
6.根据权利要求5所述的方法,其中根据在第二存储设备中搜索所述数据对象的搜索结果,向所述存储系统中写入所述数据对象包括:
根据确定在所述第二存储设备中不存在与所述哈希相匹配的数据对象,向所述第一存储设备写入所述数据对象。
7.根据权利要求5所述的方法,其中根据在第二存储设备中搜索所述数据对象的搜索结果,向所述存储系统中写入所述数据对象包括:
根据确定在所述第二存储设备中存在与所述哈希相匹配的数据对象,向所述第二存储设备写入所述数据对象的虚拟备份,所述虚拟备份表示所述第二存储设备中的所述数据对象被引用。
8.根据权利要求1所述的方法,进一步包括:
为所述数据对象设置到期时间,所述到期时间表示所述写入请求指定的在所述存储系统中存储所述数据对象的时间长度。
9.根据权利要求1所述的方法,进一步包括:
接收指定从所述存储系统中读取目标数据对象的读取请求;以及
根据所述地址映射,在所述存储系统中读取由读取请求指定的目标数据对象。
10.根据权利要求9所述的方法,其中根据所述地址映射,在所述存储系统中读取由读取请求指定的目标数据对象包括以下中的至少任一项:
根据确定所述地址映射指示所述目标数据对象存在于所述第一存储设备,基于所述第一存储设备的第一存储规则来在所述第一存储设备中搜索所述目标数据对象;以及
根据确定所述地址映射指示所述目标数据对象存在于所述第二存储设备,通知所述第二存储设备来基于所述第二存储设备的第二存储规则,在所述第二存储设备中搜索所述目标数据对象。
11.根据权利要求1所述的方法,其中:
所述写入请求是经由安装在用户应用系统处的备份客户端来接收的,所述存储系统被连接至所述用户应用系统以用于存储所述用户应用系统中的数据对象的备份。
12.根据权利要求11所述的方法,进一步包括:
基于所述第一存储设备的第一工作负载、所述第二存储设备的第二工作负载以及所述用户应用系统的备份需求,将所述用户应用系统注册至所述第一存储设备和所述第二存储设备中的一个存储设备以用于服务于所述用户应用系统。
13.根据权利要求12所述的方法,进一步包括:
根据确定所述第一工作负载高于预定阈值,将所述第一存储设备中的数据对象迁移至所述第二存储设备,所述第二工作负载低于所述第一工作负载。
14.根据权利要求12所述的方法,进一步包括:
根据确定所述第一工作负载高于预定阈值,将所述用户应用系统注册至所述第二存储设备,所述第二工作负载低于所述第一工作负载。
15.根据权利要求1所述的方法,进一步包括:
根据确定在所述第一存储设备中不存在所述数据对象,在所述存储系统中的第三存储设备中搜索所述数据对象;
根据在第三存储设备中的搜索所述数据对象的搜索结果,向所述存储系统中写入所述数据对象;以及
基于所述数据对象被写入至所述存储系统的地址,确定所述数据对象的地址映射。
16.根据权利要求15所述的方法,其中所述第三存储设备是根据确定所述存储系统的工作负载高于预定阈值,而被添加到所述存储系统中。
17.一种用于管理存储系统的设备,所述存储系统包括第一存储设备和第二存储设备,所述设备包括:
至少一个处理器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行根据权利要求1至16中的任一项所述的方法。
18.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行根据权利要求1-16中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910919526.2A CN112559485A (zh) | 2019-09-26 | 2019-09-26 | 用于管理存储系统的方法、设备和计算机程序产品 |
US16/775,194 US11379147B2 (en) | 2019-09-26 | 2020-01-28 | Method, device, and computer program product for managing storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910919526.2A CN112559485A (zh) | 2019-09-26 | 2019-09-26 | 用于管理存储系统的方法、设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559485A true CN112559485A (zh) | 2021-03-26 |
Family
ID=75029991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910919526.2A Pending CN112559485A (zh) | 2019-09-26 | 2019-09-26 | 用于管理存储系统的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11379147B2 (zh) |
CN (1) | CN112559485A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090177836A1 (en) * | 2008-01-09 | 2009-07-09 | Yasuyuki Mimatsu | Methods and apparatuses for managing data in a computer storage system |
US20130138884A1 (en) * | 2011-11-30 | 2013-05-30 | Hitachi, Ltd. | Load distribution system |
CN104268293A (zh) * | 2014-10-23 | 2015-01-07 | 北京国双科技有限公司 | 数据库中的不可累加指标处理方法和装置 |
CN106951559A (zh) * | 2017-03-31 | 2017-07-14 | 联想(北京)有限公司 | 分布式文件系统中数据恢复方法及电子设备 |
CN106980665A (zh) * | 2017-03-21 | 2017-07-25 | 广东神马搜索科技有限公司 | 数据字典实现方法、装置及数据字典管理系统 |
US20170255624A1 (en) * | 2014-12-03 | 2017-09-07 | Netapp, Inc. | Two-stage front end for extent map database |
CN108228088A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN108287749A (zh) * | 2018-01-11 | 2018-07-17 | 郑州云海信息技术有限公司 | 一种数据中心综合管理系统云资源调度方法 |
CN108462756A (zh) * | 2018-03-29 | 2018-08-28 | 新华三技术有限公司 | 一种数据写入方法和装置 |
CN110018998A (zh) * | 2019-04-12 | 2019-07-16 | 深信服科技股份有限公司 | 一种文件管理方法、系统及电子设备和存储介质 |
CN110059074A (zh) * | 2019-03-18 | 2019-07-26 | 华迪计算机集团有限公司 | 一种用于内存数据库的数据处理方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070073985A1 (en) * | 2005-09-29 | 2007-03-29 | John Wilkes | System for and method of retrieval-based data redundancy |
US9940378B1 (en) * | 2014-09-30 | 2018-04-10 | EMC IP Holding Company LLC | Optimizing replication of similar backup datasets |
US9645897B2 (en) * | 2015-03-11 | 2017-05-09 | International Business Machines Corporation | Using duplicated data to enhance data security in RAID environments |
US10540323B2 (en) * | 2017-05-30 | 2020-01-21 | Western Digital Technologies, Inc. | Managing I/O operations in a storage network |
-
2019
- 2019-09-26 CN CN201910919526.2A patent/CN112559485A/zh active Pending
-
2020
- 2020-01-28 US US16/775,194 patent/US11379147B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090177836A1 (en) * | 2008-01-09 | 2009-07-09 | Yasuyuki Mimatsu | Methods and apparatuses for managing data in a computer storage system |
US20130138884A1 (en) * | 2011-11-30 | 2013-05-30 | Hitachi, Ltd. | Load distribution system |
CN104268293A (zh) * | 2014-10-23 | 2015-01-07 | 北京国双科技有限公司 | 数据库中的不可累加指标处理方法和装置 |
US20170255624A1 (en) * | 2014-12-03 | 2017-09-07 | Netapp, Inc. | Two-stage front end for extent map database |
CN108228088A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN106980665A (zh) * | 2017-03-21 | 2017-07-25 | 广东神马搜索科技有限公司 | 数据字典实现方法、装置及数据字典管理系统 |
CN106951559A (zh) * | 2017-03-31 | 2017-07-14 | 联想(北京)有限公司 | 分布式文件系统中数据恢复方法及电子设备 |
CN108287749A (zh) * | 2018-01-11 | 2018-07-17 | 郑州云海信息技术有限公司 | 一种数据中心综合管理系统云资源调度方法 |
CN108462756A (zh) * | 2018-03-29 | 2018-08-28 | 新华三技术有限公司 | 一种数据写入方法和装置 |
CN110059074A (zh) * | 2019-03-18 | 2019-07-26 | 华迪计算机集团有限公司 | 一种用于内存数据库的数据处理方法及系统 |
CN110018998A (zh) * | 2019-04-12 | 2019-07-16 | 深信服科技股份有限公司 | 一种文件管理方法、系统及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11379147B2 (en) | 2022-07-05 |
US20210096763A1 (en) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792306B1 (en) | Data transfer between dissimilar deduplication systems | |
CN102594849B (zh) | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 | |
US10235244B2 (en) | Block level backup of virtual machines for file name level based file search and restoration | |
US10715622B2 (en) | Systems and methods for accelerating object stores with distributed caching | |
US10534769B2 (en) | Maintaining consistency between a transactional database system and a non-transactional content repository for document objects | |
US11221992B2 (en) | Storing data files in a file system | |
US20160048430A1 (en) | Method of operating a shared nothing cluster system | |
CN109726037B (zh) | 用于备份数据的方法、设备和计算机程序产品 | |
US10795579B2 (en) | Methods, apparatuses, system and computer program products for reclaiming storage units | |
US10983718B2 (en) | Method, device and computer program product for data backup | |
EP3731097A1 (en) | System and method for accelerated data access | |
US11604808B2 (en) | Methods, electronic devices and computer program product for replicating metadata | |
CN110389859B (zh) | 用于复制数据块的方法、设备和计算机程序产品 | |
CN109992447B (zh) | 数据复制方法、装置及存储介质 | |
US11163748B1 (en) | Fingerprint backward compatibility in deduplication backup systems | |
CN110798492A (zh) | 数据存储方法及装置、数据处理系统 | |
CN112559485A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN113127430B (zh) | 镜像信息处理方法、装置、计算机可读介质及电子设备 | |
US11226739B2 (en) | Method, device and computer program product for storage management | |
US10712959B2 (en) | Method, device and computer program product for storing data | |
CN113626251A (zh) | 用于迁移备份系统的方法、设备和计算机程序产品 | |
CN111104787B (zh) | 用于比较文件的方法、设备和计算机程序产品 | |
CN111488242B (zh) | 将条带化备份加标签和路由到重复数据删除设备上的单个重复数据删除实例的方法和系统 | |
CN115185966A (zh) | 一种分布式集群中数据一致性的处理方法及装置 | |
CN111562936A (zh) | 基于Openstack-Swift的对象历史版本管理方法和装置 |
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 |