CN110058790B - 用于存储数据的方法、设备和计算机程序产品 - Google Patents

用于存储数据的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN110058790B
CN110058790B CN201810050579.0A CN201810050579A CN110058790B CN 110058790 B CN110058790 B CN 110058790B CN 201810050579 A CN201810050579 A CN 201810050579A CN 110058790 B CN110058790 B CN 110058790B
Authority
CN
China
Prior art keywords
replica
application
level
storage device
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810050579.0A
Other languages
English (en)
Other versions
CN110058790A (zh
Inventor
赵军平
石勇军
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201810050579.0A priority Critical patent/CN110058790B/zh
Priority to US16/240,876 priority patent/US10712959B2/en
Publication of CN110058790A publication Critical patent/CN110058790A/zh
Application granted granted Critical
Publication of CN110058790B publication Critical patent/CN110058790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1004Defragmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及一种用于存储数据的方法、设备和计算机程序产品。该方法包括获得存储装置所支持的副本级别的第一范围,其中副本级别指示数据的副本数目。该方法还包括接收针对应用的副本配置需求,其中应用支持副本级别的第二范围。此外,该方法还包括基于副本配置需求、第一范围以及第二范围来确定用于存储装置的第一副本级别以及用于应用的第二副本级别。本公开的实施例通过抽取存储装置所支持的副本功能,能够针对用户对于数据服务的副本需求,从全局层面配置存储装置和应用的副本级别。由于全局层面的副本配置可以避免不必要的数据副本,因而本公开的实施例能够实现更高的存储性能和更好的资源使用效率。

Description

用于存储数据的方法、设备和计算机程序产品
技术领域
本公开的实施例总体上涉及数据存储领域,并且更具体地涉及用于存储数据方法、设备以及计算机程序产品。
背景技术
分布式存储是将数据分散地存储在多个节点上的一种存储技术。分布式存储***对多个节点的资源进行统一管理和分配,并对外提供统一的调用接口。分布式存储***通常采用可扩展的架构,其利用多个节点来分担存储负荷,并且通过位置定位存储信息,能够有效地提高存储***的可靠性和存储效率。
副本(replica)是分布式存储***中对数据和服务提供冗余的一种方式。数据副本是指在不同节点上存储同一份数据,当某个节点上存储的数据丢失时,仍能够从其他节点获取该数据。副本的数目可以根据用户需求而设定,一般来说,过少的副本会降低数据存储的可靠性,而过多的副本会增加存储***的延迟。
发明内容
本公开的实施例提供了一种用于存储数据的方法、设备和计算机程序产品。
在本公开的一个方面,提供了一种写入数据的方法。该方法包括:获得存储装置所支持的副本级别的第一范围,其中副本级别指示数据的副本数目;接收针对应用的副本配置需求,其中应用支持副本级别的第二范围;以及基于副本配置需求、第一范围以及第二范围,确定用于存储装置的第一副本级别以及用于应用的第二副本级别。
在本公开的另一方面,提供了一种用于存储数据的设备。该设备包括处理单元以及存储器,其中存储器被耦合至处理单元并且存储有指令。所述指令在由处理单元执行时执行以下动作:获得存储装置所支持的副本级别的第一范围,其中副本级别指示数据的副本数目;接收针对应用的副本配置需求,其中应用支持副本级别的第二范围;以及基于副本配置需求、第一范围以及第二范围,确定用于存储装置的第一副本级别以及用于应用的第二副本级别。
在本公开的又一方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行根据本公开的实施例的方法或过程。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。本发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的各个实施例的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施例中,相同的附图标记通常代表相同的元素。
图1示出了在传统的存储***中存储数据的示意图;
图2示出了根据本公开的实施例的用于存储数据的方法的流程图;
图3示出了根据本公开的实施例的存储***的示例架构的示意图;
图4示出了在根据本公开的实施例的示例存储***中存储数据的示意图;
图5示出了在根据本公开的实施例的示例存储***中存储数据的另一示意图;
图6示出了根据本公开的实施例的用于配置存储***的方法的流程图;以及
图7示出了可以用来实施本公开的实施例的设备的示意性块图。
具体实施例
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的一些具体实施例,然而应该理解,可以以各种形式实现本公开,而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象,除非明确指示不同。术语“存储装置”表示持久保存数据的非易失性存储器,例如盘。盘的示例包括但不限于硬盘驱动器(HDD)、光盘驱动器以及固态盘(SSD)等。
传统地,存储装置可能具有数据副本功能,而一些应用也可能具备数据副本功能。通常,应用和存储装置都不知晓对方的副本功能,因而它们独立地实现各自的数据副本。例如,应用可能设置M个副本,而存储装置有可能设置N个副本,则存储***则会生成总共M*N个副本,造成了过多的数据副本。
例如,图1示出了在传统的存储***100中存储数据的示意图。如图1所示,存储***100包括3个节点110、120以及130,每个节点各自包括应用和存储装置,并且应用和存储装置都被分布配置为使用3个副本。例如,节点110包括应用111和存储装置112,节点120包括应用121和存储装置122,节点130包括应用131和存储装置132。
在某个时刻,当应用111中产生数据113时,由于应用层设置了3个副本,则需要在应用层同步该数据。如箭头140所示,数据113被同步到应用121中以生成数据123;并且如箭头150所示,数据113被同步到应用131中以生成数据133。接下来,应用中的数据被写入到存储装置,如箭头114所示,应用111中的数据113被存储到存储装置112中以生成数据115;如箭头124所示,应用121中的数据123被存储到存储装置122中以生成数据126;以及如箭头134所示,应用131中的数据133被存储到存储装置132中以生成数据137。
在传统的存储***100中,由于应用层和存储层独立地实现数据副本,因而存储层会根据其设置的3个副本继续实现数据副本。例如,如箭头118所示,存储装置112中的数据115被同步到存储装置122中以生成数据125,如箭头119所示,存储装置112中的数据115被同步到存储装置132中以生成数据135。此外,如箭头128所示,存储装置122中的数据126被同步到存储装置112中以生成数据116,如箭头129所示,存储装置122中的数据126被同步到存储装置132中以生成数据136。另外,如箭头138所示,存储装置113中的数据137被同步到存储装置112中以生成数据117,如箭头139所示,存储装置113中的数据137被同步到存储装置122中以生成数据127。
通过图1的示意图可见,由于应用层的应用和存储层的存储装置均实现各自的数据副本,因而一个数据113在三个存储装置中总共生成了9个数据副本,即数据115、116、117、125、126、127、135、136以及137。然而,用户对于数据副本的需求可能只是3个副本,因而传统的副本配置方法会造成了过多的数据副本,降低了存储***的性能并且消耗了过多的存储资源。此外,由于存储装置未获知应用的副本,所以存储装置中的去重操作与应用的副本功能可能发生冲突。另外,不同类型的存储装置可能具有不同的偏好,传统的副本配置方法无法解决满足不同偏好的问题。
本公开的实施例提出了一种用于存储数据的方案。根据本公开的实施例,通过获取存储装置所支持的副本功能,能够针对用户对于数据服务的副本需求,从全局层面配置存储装置和应用的副本级别。由于全局层面的副本配置可以避免不必要的数据副本,因而本公开的实施例能够实现更高的存储性能和更好的资源使用效率。
此外,本公开的实施例还能够从全局层面协调应用和存储装置之间的其他功能,例如去重功能,并且能够考虑到不同类型的存储装置的个体偏好,设置适合的副本配置级别。另外,本公开的实施例可以根据预先收集的测试结果来选择应用和存储装置的副本级别,因而能够保证所选择的配置的运行效率。
以下参考图2至图7来说明本公开的基本原理和若干示例实现方式。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
图2示出了根据本公开的实施例的用于存储数据的方法200的流程图。应当理解,方法200可以由存储***中的处理器来执行。在202,获得存储装置所支持的副本级别的第一范围,其中副本级别指示数据的副本数目。例如,可以利用存储装置管理接口(诸如RESTful接口)来查询存储装置(例如盘)的相关功能可用性。在一些实施例中,除了获取存储装置的副本级别之外,还可以获得存储装置的其他功能,例如去重功能、碎片整理功能以及自动平衡功能,等等。以下表1示出了抽取存储装置所支持的功能。
表1:存储装置所支持的功能的聚合
存储装置名称 地址 功能名称 功能版本 功能属性
第一存储装置 1.1.1.1 副本 6.2 1-3
第一存储装置 1.1.1.1 去重 6.2 开/关
第二存储装置 1.1.1.2 副本 2.0 1-2
如表1所示,第一存储装置所支持的副本级别的范围为1-3,即支持1个副本、2个副本或3个副本。在此所描述的实施例中,1个副本表示同一数据只存储在一个节点中,即没有使用数据的副本,然而,应当理解,也可使用“0”个副本来表示数据只存储在一个节点。本公开的实施例的范围不受如何表示副本级别的数字的限制。此外,应当理解,在异构存储***中,不同类型的存储装置的相同功能可能使用不同的名称,因此,可以对功能名称进行预处理。在一些实施例中,存储装置也可以通过插件将其功能信息注册到例如表1中。可选地,存储***的管理人员可以查看、编辑以及更新表1中的内容。
在一些实施例中,存储装置可以为软件定义的存储装置(SDS),SDS广泛应用于软件定义的数据中心或云中,其将不同的存储资源整合起来,实现基于策略驱动的部署和管理,最终达到存储即服务的目标。换句话说,数据中心中的服务器、存储装置、网络以及安全等资源可以通过软件进行定义,并且能够自动分配这些资源。由于SDS中可能存在不同类型的存储装置(例如异构存储***中的来自不同厂商的各种硬盘),因而获得不同类型的存储装置各自支持的功能,有助于考虑不同类型的存储装置的偏好,以便设置适合的副本配置级别。
在204,接收针对应用的副本配置需求,应用支持副本级别的第二范围。例如,用户在使用应用时,通常存在着具体的副本配置需求,诸如至少3个副本,其表示同一数据应当至少被存储在至少3个节点的永久性存储装置中。
在一些实施例中,应用可以为基于第三平台的应用,其表示以云服务、移动宽带网络、大数据分析、社会化技术等为依托的第三平台上运行的应用。应用具有其自身的副本级别范围,例如应用可以为Hadoop,而Hadoop分布式文件***(HDFS)默认支持每个数据块3个副本。
在206,基于副本配置需求、第一范围以及第二范围,确定用于存储装置的第一副本级别以及用于应用的第二副本级别。例如,根据用户的副本配置需求,针对存储装置,从第一范围中选择第一副本级别,而针对应用,从第二范围中选择第二副本级别。例如,当副本配置需求为3个副本,而第一范围和第二范围均为1-3时,可以选择的候选配置集合为:第一副本级别为3,第二副本级别为1;第一副本级别为2,第二副本级别为2;以及第一副本级别为1,第二副本级别为3。
在一些实施例中,可以根据存储装置的副本设置的偏好,将第二副本级别设置为最低级别。例如,如果某种类型的存储装置倾向于使用其自身的数据副本而禁用应用的数据副本,则在应用层可以配置不使用数据副本;反之,如果该存储装置偏好使用应用层的数据副本,则可以为了高性能而使用应用层的数据副本。在一些实施例中,可以基于预先收集的测试结果,确定第一副本级别和第二副本级别。例如,在生成候选配置集合之后,可以根据历史测试结果来选择候选配置集合中性能最佳的一个配置,由此保证所选则的配置的运行效率。
一般来说,副本的数目越多,也就需要更多的写入等待时间,数据延迟也就越大,同时,更多的副本还会消耗更多的存储资源、网络流量以及高速缓存。因此,根据本公开的实施例从全局层面配置存储装置和应用的副本级别,减少了不必要的数据副本,由此实现更高的存储性能和更好的资源使用效率。
图3示出了根据本公开的实施例的存储***的示例架构300的示意图。如图3所示,架构300从上至下包括应用层、映射层以及存储层,其中应用层包括应用311、312和313,映射层包括根据本公开的实施例所提出的服务映射模块320,而存储层包括存储装置331、332、333和334。
在一些实施例中,在存储***上线之前的离线配置状态,服务映射模块320可以从存储层提取每个存储装置所支持的功能并进行聚合存储在表1中。可选地,服务映射模块320可以提供数据服务提取、数据服务配置以及数据服务改变监控等功能。在本公开的实施例中,存储映射模块320是非常灵活和可扩展的,并且在存储映射模块320中可以添加或注册一些附加的服务。
在一些实施例中,存储映射模块320根据来自用户的副本配置需求,将存储层提供的服务映射给应用层并做出相应的推荐。因此,存储映射模块320能够使得应用获知存储装置所支持的副本级别范围,并且从全局层面确定存储装置的副本级别和应用的副本级别。
在一些实施例中,存储装置331和存储装置332可以为不同类型的存储装置(例如来自不同厂商的产品),他们具有不同的副本级别和偏好。可选地,可以基于针对应用311的副本配置需求,确定用于存储装置331的副本级别以及用于应用311的副本级别作为第一配置;同时,还可以确定用于存储装置332的副本级别以及用于应用311的副本级别作为第二配置。接下来,可以对第一配置和第二配置进行比较(例如基于实验结果),并且选择第一配置或第二配置作为用于应用311的存储配置。
图4示出了在根据本公开的实施例的示例存储***400中存储数据的示意图。在图4的示例中,例如针对3个数据副本的配置需求,存储***400选择在应用层配置3个副本,并且在存储层只配置1个副本。也就是说,存储层没有使用数据副本功能。
如图4所示,存储***400包括节点410、420以及430,每个节点包括在其中的应用和存储装置,其中应用运行在存储装置之上。例如,节点410包括应用411和存储装置412,节点420包括应用421和存储装置422,以及节点430包括应用431和存储装置432。
在某个时刻,在应用411中产生数据413,由于应用层设置了3个副本,则需要在应用层同步该数据。如箭头440所示,数据413被同步到应用421中以生成数据423;并且如箭头450所示,数据413被同步到应用431中以生成数据433。接下来,应用中的数据被存储到存储装置,如箭头414所示,应用411中的数据413被存储到存储装置412中以生成数据415;如箭头424所示,应用421中的数据423被存储到存储装置422中以生成数据425;以及如箭头434所示,应用431中的数据433被存储到存储装置432中以生成数据435。
继续参考图4,由于存储层只配置1个副本,因而存储装置中的数据415、425以及435不会被复制到其他存储装置。通过这种方式,一个数据413在三个存储装置中总共生成了3个数据副本,即数据415、425以及435,这不仅满足了用户对于存储***的副本配置需求,也能够使得副本数目最小化,由此提高了存储***的性能。
图5示出了在根据本公开的实施例的示例存储***400中存储数据的另一示意图。如图5所示,针对3个数据副本的配置需求,存储***400选择在应用层配置2个副本,并且在存储层只配置2个副本。也就是说,应用层和存储层各自设置2个数据副本。在一些实施例,应用层的数据副本的数据块的单位大小(即粒度)可以不同于存储层的数据副本的数据块的单位大小。在一些实施例中,应用层的同步粒度可以例如为64KB,而存储层的同步粒度可以例如为1MB。
如图5所示,在某个时刻,在应用411中产生数据413,由于应用层设置了2个副本,则需要在应用层同步该数据。如箭头470所示,数据413被同步到应用421中以生成数据423,据此已经完成应用层的2个副本。接下来,应用中的数据被存储到存储装置,如箭头414所示,应用411中的数据413被存储到存储装置412中以生成数据415;如箭头424所示,应用421中的数据423被存储到存储装置422中以生成数据425。
继续参考图5,由于存储层配置了2个副本,因而存储装置中的数据415和425要分别被复制到其他存储装置一次。如箭头480所示,存储装置412中的数据415被同步到存储装置422中以生成数据426;如箭头490所示,存储装置422中的数据425被同步到存储装置432中以生成数据436。通过这种方式,一个数据413在三个存储装置中总共生成了4个数据副本,即数据415、425、426以及436,这不仅满足用户的副本配置需求,而且与传统的存储方法相比产生较少的数据副本,由此提高了存储***的性能。
图6示出了根据本公开的实施例的用于配置存储***的方法600的流程图。在602,利用存储装置的副本级别来配置存储装置。例如,可以使用管理接口来创建存储池,然后根据配置来设置相应的数据副本级别。在一些实施例中,还可以配置存储装置的去重操作、碎片整理操作和/或自动平衡操作。在一些实施例中,如果存储装置和应用都启用数据副本,则可以禁用存储装置的去重操作,以免造成不必要的数据删除。在一些实施例,如果存储装置或应用没有启用数据副本,则可以启用存储装置的去重操作。
在604,利用应用的副本级别来配置应用。在配置完存储装置之后,可以将应用配置在所确定的副本级别中。在606,监视存储装置的配置和应用的配置。例如,监视存储装置和应用的配置过程,记录关键步骤,并在发生异常时收集异常日志。根据本公开的实施例的方法600可以使得相关的配置自动化,并且利用接口来建立操作,使得存储***中的管理更简单且更有效。因此,本公开的实施例实现了从全局层面配置存储***的副本级别,由此避免过多的数据副本。
图7示出了可以用来实施本公开的实施例的设备700的示意性块图。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个方法或过程可由处理单元701执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法200和600中的一个或多个步骤或动作。
在一些实施例中,以上所描述的方法200和600可以被实现为计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,以及常规的过程式编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或块图中的一个或多个方块中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或块图中的一个或多个方块中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以生成计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或块图中的一个或多个方块中规定的功能/动作。
附图中的流程图和块图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或块图中的每个方块可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方块实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,块图和/或流程图中的每个方块、以及块图和/或流程图中的方块的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (19)

1.一种用于存储数据的方法,包括:
获得存储装置所支持的副本级别的第一范围,所述副本级别指示数据的副本数目;
接收针对应用的副本配置需求,所述应用支持副本级别的第二范围;以及
基于所述副本配置需求、所述第一范围以及所述第二范围,确定用于所述存储装置的第一副本级别以及用于所述应用的第二副本级别。
2.根据权利要求1所述的方法,还包括:
利用所述第一副本级别来配置所述存储装置;
利用所述第二副本级别来配置所述应用;以及
监视所述存储装置的配置和所述应用的配置。
3.根据权利要求2所述的方法,其中配置所述存储装置包括:
配置所述存储装置的去重操作、碎片整理操作以及自动平衡操作中的一个或多个。
4.根据权利要求2所述的方法,其中配置所述存储装置包括:
响应于所述第一副本级别指示所述存储装置启用数据副本并且所述第二副本级别指示所述应用启用数据副本,禁用所述存储装置的去重操作;以及
响应于所述第一副本级别指示所述存储装置禁用数据副本或者所述第二副本级别指示所述应用禁用数据副本,启用所述存储装置的所述去重操作。
5.根据权利要求1所述的方法,其中所述存储装置是第一存储装置,并且所述方法还包括:
获得与所述第一存储装置不同类型的第二存储装置所支持的副本级别的第三范围。
6.根据权利要求5所述的方法,其中所述第一存储装置的所述第一副本级别和所述应用的所述第二副本级别组成第一配置,并且所述方法还包括:
基于所述副本配置需求、所述第二范围以及所述第三范围,确定针对所述第二存储装置的第三副本级别以及针对所述应用的第四副本级别作为第二配置;以及
响应于确定所述第二配置优于所述第一配置:
利用所述第三副本级别来配置所述第二存储装置;以及
利用所述第四副本级别来配置所述应用。
7.根据权利要求1所述的方法,其中确定用于所述存储装置的第一副本级别以及用于所述应用的第二副本级别包括:
响应于所述存储装置被设置为禁用所述应用的数据副本,将所述第二副本级别设置为最低级别。
8.根据权利要求1所述的方法,其中确定用于所述存储装置的第一副本级别以及用于所述应用的第二副本级别包括:
基于预先收集的测试结果,确定所述第一副本级别和所述第二副本级别。
9.根据权利要求1所述的方法,其中所述存储装置为软件定义的存储装置SDS,并且所述应用为基于第三平台的应用。
10.一种用于存储数据的设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
获得存储装置所支持的副本级别的第一范围,所述副本级别指示数据的副本数目;
接收针对应用的副本配置需求,所述应用支持副本级别的第二范围;以及
基于所述副本配置需求、所述第一范围以及所述第二范围,确定用于所述存储装置的第一副本级别以及用于所述应用的第二副本级别。
11.根据权利要求10所述的设备,所述动作还包括:
利用所述第一副本级别来配置所述存储装置;
利用所述第二副本级别来配置所述应用;以及
监视所述存储装置的配置和所述应用的配置。
12.根据权利要求11所述的设备,其中配置所述存储装置包括:
配置所述存储装置的去重操作、碎片整理操作以及自动平衡操作中的一个或多个。
13.根据权利要求11所述的设备,其中配置所述存储装置包括:
响应于所述第一副本级别指示所述存储装置启用数据副本并且所述第二副本级别指示所述应用启用数据副本,禁用所述存储装置的去重操作;以及
响应于所述第一副本级别指示所述存储装置禁用数据副本或者所述第二副本级别指示所述应用禁用数据副本,启用所述存储装置的所述去重操作。
14.根据权利要求10所述的设备,其中所述存储装置是第一存储装置,并且所述动作还包括:
获得与所述第一存储装置不同类型的第二存储装置所支持的副本级别的第三范围。
15.根据权利要求14所述的设备,其中所述第一存储装置的所述第一副本级别和所述应用的所述第二副本级别组成第一配置,并且所述动作还包括:
基于所述副本配置需求、所述第二范围以及所述第三范围,确定针对所述第二存储装置的第三副本级别以及针对所述应用的第四副本级别作为第二配置;以及
响应于确定所述第二配置优于所述第一配置:
利用所述第三副本级别来配置所述第二存储装置;以及
利用所述第四副本级别来配置所述应用。
16.根据权利要求10所述的设备,其中确定用于所述存储装置的第一副本级别以及用于所述应用的第二副本级别包括:
响应于所述存储装置被设置为禁用所述应用的数据副本,将所述第二副本级别设置为最低级别。
17.根据权利要求10所述的设备,其中确定用于所述存储装置的第一副本级别以及用于所述应用的第二副本级别包括:
基于预先收集的测试结果,确定所述第一副本级别和所述第二副本级别。
18.根据权利要求10所述的设备,其中所述存储装置为软件定义的存储装置SDS,并且所述应用为基于第三平台的应用。
19.一种非瞬态计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令在被执行时使计算机执行根据权利要求1至9中任一项所述的方法。
CN201810050579.0A 2018-01-18 2018-01-18 用于存储数据的方法、设备和计算机程序产品 Active CN110058790B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810050579.0A CN110058790B (zh) 2018-01-18 2018-01-18 用于存储数据的方法、设备和计算机程序产品
US16/240,876 US10712959B2 (en) 2018-01-18 2019-01-07 Method, device and computer program product for storing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810050579.0A CN110058790B (zh) 2018-01-18 2018-01-18 用于存储数据的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN110058790A CN110058790A (zh) 2019-07-26
CN110058790B true CN110058790B (zh) 2022-05-13

Family

ID=67213950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810050579.0A Active CN110058790B (zh) 2018-01-18 2018-01-18 用于存储数据的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US10712959B2 (zh)
CN (1) CN110058790B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112578992B (zh) * 2019-09-27 2022-07-22 西安华为技术有限公司 一种数据存储方法和数据存储装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187931A (zh) * 2007-12-12 2008-05-28 浙江大学 分布式文件***多文件副本的管理方法
CN102414692A (zh) * 2009-04-24 2012-04-11 微软公司 副本数据的动态安置
CN103905512A (zh) * 2012-12-28 2014-07-02 ***通信集团公司 一种数据处理方法和设备
CN103997512A (zh) * 2014-04-14 2014-08-20 南京邮电大学 一种面向云存储***的数据副本数量确定方法
CN104166606A (zh) * 2014-08-29 2014-11-26 华为技术有限公司 文件备份方法和主存储设备
US20150186411A1 (en) * 2014-01-02 2015-07-02 International Business Machines Corporation Enhancing Reliability of a Storage System by Strategic Replica Placement and Migration
CN105608167A (zh) * 2015-12-18 2016-05-25 金蝶软件(中国)有限公司 一种基于kdfs***的文件备份方法与***

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043619B1 (en) * 2002-01-14 2006-05-09 Veritas Operating Corporation Storage configurator for determining an optimal storage configuration for an application
JP4495508B2 (ja) * 2004-04-23 2010-07-07 株式会社日立製作所 計算機システムの構成管理方法および構成管理装置
US7647329B1 (en) * 2005-12-29 2010-01-12 Amazon Technologies, Inc. Keymap service architecture for a distributed storage system
JP2008234445A (ja) * 2007-03-22 2008-10-02 Brother Ind Ltd コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム
US8321867B1 (en) * 2008-01-24 2012-11-27 Network Appliance, Inc. Request processing for stateless conformance engine
JP5224240B2 (ja) * 2008-03-25 2013-07-03 株式会社日立製作所 計算機システム及び管理計算機
US8346722B2 (en) * 2009-11-23 2013-01-01 Sap Ag Replica placement strategy for distributed data persistence
US8849758B1 (en) * 2010-12-28 2014-09-30 Amazon Technologies, Inc. Dynamic data set replica management
US8713376B1 (en) * 2011-12-27 2014-04-29 Symantec Corporation Escalating data backup protection in response to a failure in a cluster of nodes
US9158472B2 (en) * 2013-06-25 2015-10-13 Google Inc. Hierarchical chunking of objects in a distributed storage system
CN105242983B (zh) * 2014-06-26 2018-06-01 杭州海康威视***技术有限公司 一种数据存储方法以及一种数据存储管理服务器
US9826030B1 (en) * 2015-06-04 2017-11-21 Amazon Technologies, Inc. Placement of volume partition replica pairs
US9826041B1 (en) * 2015-06-04 2017-11-21 Amazon Technologies, Inc. Relative placement of volume partitions
US10216432B1 (en) * 2015-12-18 2019-02-26 EMC IP Holding Company LLC Managing backup utilizing rules specifying threshold values of backup configuration parameters and alerts written to a log
US10235088B1 (en) * 2016-03-30 2019-03-19 EMC IP Holding Company LLC Global replication policy for multi-copy replication
US9933953B1 (en) * 2016-06-30 2018-04-03 EMC IP Holding Company LLC Managing copy sessions in a data storage system to control resource consumption
US10365975B2 (en) * 2017-03-08 2019-07-30 Dell Products, L.P. Backup data security classifcation
US10459655B1 (en) * 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187931A (zh) * 2007-12-12 2008-05-28 浙江大学 分布式文件***多文件副本的管理方法
CN102414692A (zh) * 2009-04-24 2012-04-11 微软公司 副本数据的动态安置
CN103905512A (zh) * 2012-12-28 2014-07-02 ***通信集团公司 一种数据处理方法和设备
US20150186411A1 (en) * 2014-01-02 2015-07-02 International Business Machines Corporation Enhancing Reliability of a Storage System by Strategic Replica Placement and Migration
CN103997512A (zh) * 2014-04-14 2014-08-20 南京邮电大学 一种面向云存储***的数据副本数量确定方法
CN104166606A (zh) * 2014-08-29 2014-11-26 华为技术有限公司 文件备份方法和主存储设备
CN105608167A (zh) * 2015-12-18 2016-05-25 金蝶软件(中国)有限公司 一种基于kdfs***的文件备份方法与***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
无结构覆盖网络中面向搜索范围最小化的副本分布;冯国富 等;《计算机学报》;20110430;第34卷(第4期);第628-635页 *

Also Published As

Publication number Publication date
CN110058790A (zh) 2019-07-26
US10712959B2 (en) 2020-07-14
US20190220208A1 (en) 2019-07-18

Similar Documents

Publication Publication Date Title
US11157457B2 (en) File management in thin provisioning storage environments
US10671285B2 (en) Tier based data file management
US10936423B2 (en) Enhanced application write performance
KR102376713B1 (ko) 복합 파티션 함수 제공 기법
US10601680B2 (en) Application resiliency using APIs
KR101871383B1 (ko) 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템
US10747458B2 (en) Methods and systems for improving efficiency in cloud-as-backup tier
CN111143113B (zh) 复制元数据的方法、电子设备和计算机程序产品
US20190384514A1 (en) Storage management method, electronic device and computer program product
CN113411363A (zh) 一种镜像文件的上传方法、相关设备及计算机存储介质
CN108984334B (zh) 用于管理会话的方法和设备
US11977559B2 (en) Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs
CN110058790B (zh) 用于存储数据的方法、设备和计算机程序产品
US11204947B2 (en) Centralized database system with geographically partitioned data
CN110413207B (zh) 降低存储***的数据恢复时间的方法、设备和程序产品
US12001872B2 (en) Object tiering from local store to cloud store
CN107526530B (zh) 数据处理方法和设备
US8225009B1 (en) Systems and methods for selectively discovering storage devices connected to host computing devices
CN114072768A (zh) 用于桥接数据库架构的控制器
US11106645B1 (en) Multi point in time object store
CN113391949A (zh) 用于存储管理的方法、电子设备和计算机程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant