CN112882647B - 存储和访问数据的方法、电子设备和计算机程序产品 - Google Patents

存储和访问数据的方法、电子设备和计算机程序产品 Download PDF

Info

Publication number
CN112882647B
CN112882647B CN201911206453.9A CN201911206453A CN112882647B CN 112882647 B CN112882647 B CN 112882647B CN 201911206453 A CN201911206453 A CN 201911206453A CN 112882647 B CN112882647 B CN 112882647B
Authority
CN
China
Prior art keywords
metadata
data
server
edge
stored
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
CN201911206453.9A
Other languages
English (en)
Other versions
CN112882647A (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 CN201911206453.9A priority Critical patent/CN112882647B/zh
Priority to US16/806,550 priority patent/US11431799B2/en
Publication of CN112882647A publication Critical patent/CN112882647A/zh
Application granted granted Critical
Publication of CN112882647B publication Critical patent/CN112882647B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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]
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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]
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及存储和访问数据的方法、电子设备和计算机程序产品。该方法包括:根据确定第一数据被存储在多个边缘服务器中的第一边缘服务器中,在多个边缘服务器中的第二边缘服务器处生成与第一数据相关联的第一元数据,第一元数据至少包括第一数据的第一散列值以及关于第一数据被存储在第一边缘服务器中的指示;以及向多个边缘服务器的管理服务器发送第一元数据,管理服务器被配置为维护与多个边缘服务器中存储的数据相关联的元数据列表。基于这样的方式,可以避免因为边缘服务器的离线而造成所存储的数据无法访问。

Description

存储和访问数据的方法、电子设备和计算机程序产品
技术领域
本公开的实施例涉及计算机领域,并且更具体地,涉及存储和访问数据的方法、电子设备和计算机程序产品。
背景技术
当前,随着业务和应用需求的变化,客户常常需要将数据存储到不同的云存储装置中。由于不同的云提供商通常提供不同的存储接口,导致客户需要与不同的存储接口进行交互。这将给用户带来额外的操作负担,这是存储服务器提供商所不期望的。
发明内容
本公开的实施例提供一种用于存储和访问数据的方案。
根据本公开的第一方面,提出了一种存储数据的方法。该方法包括:根据确定第一数据被存储在多个边缘服务器中的第一边缘服务器中,在所述多个边缘服务器中的第二边缘服务器处生成与所述第一数据相关联的第一元数据,所述第一元数据至少包括所述第一数据的第一散列值以及关于所述第一数据被存储在所述第一边缘服务器中的指示;以及向所述多个边缘服务器的管理服务器发送所述第一元数据,所述管理服务器被配置为维护与所述多个边缘服务器中存储的数据相关联的元数据列表。
根据本公开的第二方面,提出了一种存储数据的方法。该方法包括:在管理服务器处,从多个边缘服务器中的第二边缘服务器接收第一元数据,第一元数据与被存储在多个边缘服务器中的第一边缘服务器中的第一数据相关联并且由第二边缘服务器生成,第一元数据至少包括第一数据的第一散列值以及关于第一数据被存储在第一边缘服务器中的指示;以及基于第一元数据,更新与多个边缘服务器中存储的数据相关联的元数据列表。
根据本公开的第三方面,提出了一种访问数据的方法。该方法包括:响应于在多个边缘服务器中的第三边缘服务器接收到针对目标数据的访问请求,基于所述目标数据的散列值,确定所述多个边缘服务器中是否包括与所述目标数据相对应的元数据;响应于确定所述多个边缘服务器中不包括所述元数据,基于所述散列值,向管理服务器发送查询请求以确定所述边缘服务器中的存储所述目标数据的第四边缘服务器;以及使得所述第四边缘服务器提供所述目标数据以作为对所述访问请求的响应。
根据本公开的第四方面,提出了一种访问数据的方法。该方法包括:响应于在管理服务器处从多个边缘服务器中的第三边缘服务器接收查询请求,利用与所述多个边缘服务器中存储的数据相关联的元数据列表确定存储目标数据的第四边缘服务器,所述查询请求基于所述元数据的散列值而被生成,并响应于所述多个边缘服务器中不包括与所述目标数据相对应的元数据而被发送;以及向所述第三边缘服务器发送针对所述查询请求的响应,以指示所述目标数据被存储在所述第四边缘服务器。
根据本公开的第五方面,提出了一种边缘服务器。该客户端设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得边缘服务器执行根据本公开的第一方面所描述的方法。
根据本公开的第六方面,提出了一种管理服务器。该客户端设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得管理服务器执行根据本公开的第二方面所描述的方法。
根据本公开的第七方面,提出了一种边缘服务器。该客户端设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得边缘服务器执行根据本公开的第三方面所描述的方法。
根据本公开的第八方面,提出了一种管理服务器。该客户端设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得管理服务器执行根据本公开的第四方面所描述的方法。
在本公开的第九方面,提供了一种计算机程序产品。该计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,该机器可执行指令在设备中运行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
在本公开的第十方面,提供了一种计算机程序产品。该计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,该机器可执行指令在设备中运行时使该设备执行根据本公开的第二方面所描述的方法的任意步骤。
在本公开的第十一方面,提供了一种计算机程序产品。该计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,该机器可执行指令在设备中运行时使该设备执行根据本公开的第三方面所描述的方法的任意步骤。
在本公开的第十二方面,提供了一种计算机程序产品。该计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,该机器可执行指令在设备中运行时使该设备执行根据本公开的第四方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据传统方案的示例存储***的框图;
图2示出了本公开的实施例能够在其中被实施的示例存储***的框图;
图3图示了根据本公开实施例的存储数据的示例过程的示意图;
图4图示了根据本公开实施例的访问数据的示例过程的示意图;
图5图示了根据本公开实施例的用于存储数据的示例方法的流程图;
图6图示了根据本公开实施例的用于存储数据的示例方法的流程图;
图7图示了根据本公开实施例的用于访问数据的示例方法的流程图;
图8图示了根据本公开实施例的用于访问数据的示例方法的流程图;以及
图9图示了可以用来实施本公开内容的实施例的示例设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,随着业务和应用需求的变化,客户常常需要将数据存储到不同的云存储装置中。由于不同的云提供商通常提供不同的存储接口,导致客户需要与不同的存储接口进行交互。这将是麻烦并且耗时的。在此情况下,期望针对多云环境提供统一的对象存储架构。
集中式存储架构和分散式存储架构是当前广泛使用的两种存储架构,每种存储架构都有大量客户采用。在集中式存储架构中,所有客户端都与集中式存储装置进行通信,以实现数据存储和数据访问。在分散式存储架构中,所有客户端被视为对称的对端,并且数据被存储在这些分散式对端中。与集中式存储架构相比,分散式存储架构能够实现更高的吞吐率。然而,采用集中式存储架构和分散式存储架构的客户都在寻求将***迁移至统一的对象存储架构的方法。
一些传统方案能够利用分散式统一对象存储架构来构建针对多云环境的统一的对象存储***。图1示出了根据传统方案的示例存储***100的框图。
如图1所示,存储***100可以包括云存储服务器110,多个边缘服务器120-1、120-2……120-N(以下统称或单独称为“边缘服务器120”)和多个客户端设备130-1、130-2……130-M(以下统称或单独称为“客户端130”)。多个客户端130例如可以经由网络彼此通信耦合。多个边缘服务器120例如可以经由网络彼此通信耦合。此外,多个客户端130可以经由网络与多个服务器120进行通信。在一些实施例中,每个客户端130可以经由一个或多个边缘服务器120将数据存储至云存储服务器110或者边缘服务器120中,并且可以经由一个或多个边缘服务器120从云存储服务器110或者边缘服务器120获取数据以用于访问。
通常,多个边缘服务器120中的每个边缘服务器将维护与多个边缘服务器120中存储的数据的一部分相对应的元数据。例如,多个边缘服务器120可以按照分布式散列表来维护对应的元数据。在这种情况下,与在边缘服务器120-1上存储的数据所对应的元数据可能被存储在其他一个或多个边缘服务器上。
然而,在某些场景中,某些边缘服务器可能因为某些原因而处于离线状态,这使得无法获得该边缘服务器中存储的元数据。这进而使得无法访问与该元数据所对应的数据,尽管所对应的数据被存储在当前可访问的边缘服务器中。这样的问题在诸如自动驾驶等边缘服务器经常变化的场景中会经常出现,进而严重影响了数据的可访问性。
本公开的实施例提出了一种用于存储和访问数据的方案。该方案实现了分散式统一对象存储架构,以解决上述问题和其他潜在问题中的一个或多个。该方案能够容易地与现有存储架构集成。通过在管理服务器维护与边缘服务器中存储的数据对应的元数据,该方案能够解决由于边缘服务器离线而带来的问题,进而提高数据存储的可靠性。
以下将进一步结合附图来详细描述本公开的实施例。图2示出了本公开的实施例能够在其中被实现的示例存储***200的框图。应当理解,仅出于示例性的目的描述存储***200的结构,而不暗示对于本公开的范围的任何限制。
如图2所示,存储***200包括与传统的存储***100类似的云存储服务器110和客户端130。存储***200进一步包括多个边缘服务器220-1、220-2……220-N(以下统称或单独称为“边缘服务器220”)和管理服务器210。在一些实施例中,边缘服务器220被配置为接收来自客户端130的存储请求,并将所创建的元数据同步到管理服务器210。在一些实施例中,为了安全考虑,管理服务器210可以被设置在非公众可访问的私有网络中,并且被配置为维护与多个边缘服务器220中存储的数据相关联的元数据列表。
以下将结合图3来描述根据本公开实施例的存储数据的过程。图3图示了根据本公开实施例的存储数据的示例过程的示意图300。
如图3所示,在305,客户端设备130向多个边缘服务器220中的边缘服务器(例如,图2中的边缘服务器220-1(下文称为第一边缘服务器))发送存储第一数据的请求。在310,响应于接收到该请求,第一边缘服务器220-1将第一数据存储在第一边缘服务器220-1处。
在一些实施例中,第一边缘服务器220-1可以确定用于存储第一数据的存储规则。具体地,第一边缘服务器220-1例如基于该请求确定与存储规则相对应的标签。在一些实施例中,标签例如可以通过数值或字符来标识,例如“REP-3”或者“SYNC-CLOUD”。
在一些实施例中,管理服务器210可以维护存储规则列表。存储规则列表例如可以包括每个标签与其对应的具体存储规则。例如,存储规则列表可以存储指示与“REP-3”对应的存储规则是将数据复制3个备份并存储的条目,或者指示“SYNC-CLOUD”对应的规则是将数据同步到云存储服务器。
在一些实施例中,当第一边缘服务器220-1例如基于标签而从管理服务器210确定第一数据的存储规则是“将数据同步到云存储服务器”时,第一边缘服务器220-1将会把第一数据发送到云存储服务器110。在从第一边缘服务器220-1接收到第一数据后,云存储服务器110将在云存储服务器110处存储第一数据。
在一些实施例中,多个边缘服务器220通过分布式散列表来维护存储在多个边缘服务器220中的数据的元数据。元数据例如可以通过键-值条目的方式来指示,其中键字段可以指示数据的散列值,值字段例如可以指示该数据的存储位置和/或该数据的最近更新时间等。基于这样的方式,响应于第一数据被写入到第一边缘服务器220-1中,第一边缘服务器220-1可以计算第一数据的散列值,并确定与其对应的元数据应当被写入多个边缘服务器220中的那些边缘服务器中。例如,第一边缘服务器220-1可以确定第一数据的元数据应当被写入到第二边缘服务器220-2中。
在315,第一边缘服务器220-1可以向第二边缘服务器220-2发送消息,以指示第一数据被存储在第一边缘服务器220-1。在320,响应于接收到从第一边缘服务器220-1接收到该消息,第二边缘服务器220-2可以创建第一元数据。第一元数据至少包括第一数据的散列值以及关于第一数据被存储在第一边缘服务器220-1中的指示。在一些实施例中,第二边缘服务器220-2可以从第一边缘服务器220-1发送的消息中确定该散列值,并且将第一边缘服务器220-1的标识存储作为关于第一数据被存储在第一边缘服务器220-1中的指示。在一些实施例中,标识可以用于唯一确定第一边缘服务器220-1,例如第一边缘服务器的网络地址。
在325,第二边缘服务器220-2向管理服务器210发送第一元数据。在一些实施例中,第二边缘服务器220-2可以在每次审查第一元数据后即向管理服务器210发送第一元数据。
在一些实施例中,第二边缘服务器220-2也可以周期性地批量上传元数据到管理服务器。具体地,第二边缘服务器220-2可以维护与在多个边缘服务器220存储的数据的至少一部分相对应的元数据集合。元数据集合包括第一元数据,并且元数据集合中的每个元数据可以包含该元数据最近被更新的时刻以及最近被同步到管理服务器210的时刻。对于新创建的第一元数据,最近被更新的时刻可以被记录被创建时刻,而最近被同步到管理服务器210的时刻可以被记录为空。
在一些实施例中,第二边缘服务器220-2可以周期性地遍历本地的元数据集合,并且从元数据集合中确定元数据子集。元数据子集中的元数据在最近被更新或创建后仍未被发送至管理服务器210。第二边缘服务器220-2可以批量地将元数据子集发送到管理服务器210以进行备份。通过这样的方式,可以减少边缘服务器220与管理服务器210之间的通信开销,进而提高元数据管理的效率。
在330,响应于从第二边缘服务器220-2接收到第一元数据,管理服务器210基于第一元数据更新与多个边缘服务器220中存储的数据相关联的元数据列表。例如,管理服务器220可以在元数据列表中添加第一元数据。基于这样的方式,可以在管理服务器210维护多个边缘服务器220中所存储的数据的元数据的备份,使得在多个边缘服务器220中一个离线而使得元数据不可访问的情况下还可以通过管理服务器210中的备份元数据来进行访问,进而提高了数据存储的可靠性。
在一些实施例中,如上文所讨论的,第一边缘服务器220-1可以基于存储规则而将第一数据写入到云存储服务器110。云存储服务器110将相应地将第二元数据发送至管理服务器210。第二元数据至少可以包括第一数据的第一散列值以及关于第一数据被存储在云存储服务器110中的指示。例如,指示可以把包括云存储服务器110的网络地址。
在一些实施例中,管理服务器210也可以用于存储数据。当客户端设备130例如请求将第二数据存储在私有的管理服务器210处时,管理服务器210可以在本地存储第二数据,并且在元数据列表中添加第三元数据。第三元数据至少可以包括第二数据的第二散列值以及关于第二数据被存储在管理服务器210的指示。例如,指示可以包括管理服务器210的网络地址。
基于上文所描述的方式,数据可以被存储到边缘服务器220、管理服务器210或者云存储服务器110中的至少一个,并且在管理服务器210统一管理不同存储位置处数据的元数据。通过在更为安全的管理服务器210维护数据的元数据,可以进一步提高数据存储的可靠性。
以下将结合图4来描述根据本公开实施例的存储数据的过程。图4图示了根据本公开实施例的存储数据的示例过程的示意图400。
在405,客户端设备130向多个边缘服务器220中的边缘服务器(例如,图2中的边缘服务器220-3(下文称为第三边缘服务器))发送对于目标数据的访问请求。为了方便描述,以下将以结合图3所讨论的第一数据作为目标数据来描述图4中的过程。在410,第三边缘服务器220-3基于目标数据的散列值来确定边缘服务器220中是否包括与目标数据对应的元数据。例如,当用于存储第一数据的元数据的第二边缘服务器220-2离线时,第三边缘服务器220-3可以确定多个边缘服务器220中不包括与第一数据对应的元数据。
在415,当确定多个边缘服务器220中不包括与目标数据对应的元数据时,第三边缘服务器220-3基于散列值生成并向管理服务器210发送查询请求,以确定目标数据的存储位置。在420,在接收到来自第三边缘服务器220-3的查询请求时,管理服务器210利用所管理的元数据列表来确定目标数据的存储位置。具体地,以第一数据作为目标数据的示例,管理服务器210例如可以利用第一数据的散列值来查询元数据列表,进而获取存储第一数据的第四边缘服务器220-N(在此示例中,为第一边缘服务器220-1)的标识(例如,网络地址)。
在425,管理服务器210向第三边缘服务器220-3发送针对查询请求的响应,以指示目标数据被存储在第四边缘服务器220-N中。继续第一数据的示例,管理服务器210例如可以向第三边缘服务器220-3发送边缘服务器220-1的网络地址,以指示第一数据被存储在边缘服务器220-1中。
在430,响应于确定目标数据被存储在第四边缘服务器220-N中,第三边缘服务器220-3可以将数据访问请求转发至第四边缘服务器220-N。在435,第四边缘服务器220-N可以基于访问请求来向客户端设备130提供目标数据。
基于这样的方式,在多个边缘服务器中的某个边缘服务器离线时,本公开的实施例可以通过备份在管理服务器中的元数据来确定目标数据被存储的位置,进而执行有效的数据访问。这进一步提高了数据访问的稳定性。
图5示出了根据本公开的实施例的用于存储数据的示例方法400的流程图。例如,方法500可以由如图2所示的第二边缘服务器220-2来执行。以下结合图2来详细描述方法500。应当理解,方法500还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框502,根据确定第一数据被存储在多个边缘服务器220中的第一边缘服务器220-1中,在多个边缘服务器中的第二边缘服务器220-2处生成与第一数据相关联的第一元数据,第一元数据至少包括第一数据的第一散列值以及关于第一数据被存储在第一边缘服务器中的指示。
在框504,第二边缘服务器220-2向多个边缘服务器220的管理服务器210发送第一元数据,管理服务器210被配置为维护与多个边缘服务器220中存储的数据相关联的元数据列表。
在一些实施例中,第二边缘服务器220-2可以维护与在多个边缘服务器220存储的数据的至少一部分相对应的元数据集合,元数据集合包括第一元数据,其中发送第一元数据包括:从元数据集合中确定包括第一元数据的元数据子集,元数据子集中的元数据未被发送至管理服务器210;以及将元数据子集发送至管理服务器210。
在一些实施例中,第一数据基于从管理服务器210获取的存储规则而被存储在第一边缘服务器220-1中。
在一些实施例中,第一数据还基于存储规则而从所述第一边缘服务器被发送到云存储服务器110,以使得云存储服务器110向管理服务器210发送第二元数据,第二元数据至少包括第一数据的第一散列值以及关于第一数据被存储在云存储服务器110中的指示。
图6示出了根据本公开的实施例的用于存储数据的示例方法400的流程图。例如,方法600可以由如图2所示的管理服务器210来执行。以下结合图2来详细描述方法600。应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框602,在管理服务器210处,从多个边缘服务器220中的第二边缘服务器220-2接收第一元数据,第一元数据与被存储在多个边缘服务器220中的第一边缘服务器220-4中的第一数据相关联并且由第二边缘服务器220-2生成,第一元数据至少包括第一数据的第一散列值以及关于第一数据被存储在第一边缘服务器220-1中的指示。
在框604,管理服务器210基于第一元数据更新与多个边缘服务器中220存储的数据相关联的元数据列表。
在一些实施例中,管理服务器210还可以基于在所述管理服务器210处存储第二数据而在元数据列表中添加第三元数据,第三元数据至少包括第二数据的第二散列值以及关于第二数据被存储在管理服务器210的指示。
在一些实施例中,管理服务器210还可以响应于从云存储服务器110接收到第二元数据,基于第二元数据更新元数据列表,第二元数据至少包括第一数据的第一散列值以及关于第一数据被存储在云存储服务器110中的指示。
图7示出了根据本公开的实施例的用于存储数据的示例方法400的流程图。例如,方法700可以由如图2所示的第三边缘服务器220-3来执行。以下结合图2来详细描述方法700。应当理解,方法700还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框702,第三边缘服务器220-3接收针对目标数据的访问请求。
在框704,响应于在多个边缘服务器220中的第三边缘服务器220-3接收针对目标数据的访问请求,基于目标数据的散列值,确定多个边缘服务器220中是否包括与目标数据相对应的元数据。
在框706,响应于确定多个边缘服务器220中不包括元数据,第三边缘服务器220-3基于散列值,向管理服务器发送查询请求以确定多个边缘服务器220中存储目标数据的第四边缘服务器220-1。
在框708,第三边缘服务器220-3使得第四边缘服务器220-1提供目标数据以作为对访问请求的响应。
图8示出了根据本公开的实施例的用于存储数据的示例方法800的流程图。例如,方法800可以由如图2所示的管理服务器210来执行。以下结合图2来详细描述方法400。应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框802,响应于在管理服务器210处从多个边缘服务器中的第三边缘服务器220-3接收查询请求,管理服务器210利用与多个边缘服务器220中存储的数据相关联的元数据列表确定存储目标数据的第四边缘服务器220-1,查询请求基于元数据的散列值而被生成,并响应于多个边缘服务器220中不包括与目标数据相对应的元数据而被发送。
在框804,管理服务器210向第三边缘服务器220-3发送针对查询请求的响应,以指示目标数据被存储在第四边缘服务器220-1。
图9示出了可以用来实施本公开内容的实施例的示例设备900的示意性框图。例如,根据本公开实施例的备份***和/或恢复***可以由设备900来实施。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200和/或方法700,可由处理单元901执行。例如,在一些实施例中,方法200和/或方法700可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法200和/或方法700的一个或多个动作。
本公开可以是方法、装置、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (10)

1.一种用于存储数据的方法,包括:
根据确定第一数据被存储在多个边缘服务器中的第一边缘服务器中,在所述多个边缘服务器中的第二边缘服务器处生成与所述第一数据相关联的第一元数据,所述第一元数据至少包括所述第一数据的第一散列值以及关于所述第一数据被存储在所述第一边缘服务器中的指示;
向所述多个边缘服务器的管理服务器发送所述第一元数据,所述管理服务器被配置为维护与所述多个边缘服务器中存储的数据相关联的元数据列表;
其中所述第一数据基于从所述管理服务器获取的存储规则而被存储在所述第一边缘服务器中;并且
其中所述第一数据还基于所述存储规则而从所述第一边缘服务器被发送到云存储服务器,以使得所述云存储服务器向所述管理服务器发送第二元数据,所述第二元数据至少包括所述第一数据的所述第一散列值以及关于所述第一数据被存储在所述云存储服务器中的指示。
2.根据权利要求1所述的方法,其中所述第二边缘服务器维护与在所述多个边缘服务器存储的数据的至少一部分相对应的元数据集合,所述元数据集合包括所述第一元数据,其中发送所述第一元数据包括:
从所述元数据集合中确定包括所述第一元数据的元数据子集,所述元数据子集中的元数据未被发送至所述管理服务器;以及
将所述元数据子集发送至所述管理服务器。
3.一种用于存储数据的方法,包括:
在管理服务器处,从多个边缘服务器中的第二边缘服务器接收第一元数据,所述第一元数据与被存储在所述多个边缘服务器中的第一边缘服务器中的第一数据相关联并且由所述第二边缘服务器生成,所述第一元数据至少包括所述第一数据的第一散列值以及关于所述第一数据被存储在所述第一边缘服务器中的指示;以及
基于所述第一元数据,更新与所述多个边缘服务器中存储的数据相关联的元数据列表;
基于在所述管理服务器处存储第二数据,在所述元数据列表中添加第三元数据,所述第三元数据至少包括所述第二数据的第二散列值以及关于所述第二数据被存储在所述管理服务器的指示;以及
响应于从云存储服务器接收到第二元数据,基于所述第二元数据更新所述元数据列表,所述第二元数据至少包括所述第一数据的所述第一散列值以及关于所述第一数据被存储在所述存储服务器中的指示。
4.一种访问数据的方法,包括:
响应于在多个边缘服务器中的第三边缘服务器接收到针对目标数据的访问请求,基于所述目标数据的散列值,确定所述多个边缘服务器中是否包括与所述目标数据相对应的元数据;
响应于确定所述多个边缘服务器中不包括所述元数据,基于所述散列值,向管理服务器发送查询请求以确定所述边缘服务器中的存储所述目标数据的第二边缘服务器,所述多个边缘服务器中的所述第二边缘服务器部分地基于元数据列表而被确定,所述元数据列表被配置用于存储元数据,所述元数据至少包括所述目标数据的散列值以及所述目标数据被存储在所述第二边缘服务器中的指示;
响应于在管理服务器处接收到来自所述多个边缘服务器中的第一边缘服务器的所述查询请求,通过使用所述元数据列表来确定用于存储目标数据的所述第二边缘服务器,所述查询请求基于元数据的散列值而被生成,并且根据所述多个边缘服务器中不存在与所述目标数据相对应的元数据而被发送;
向所述第一边缘服务器发送对所述查询请求的响应,以指示所述目标数据被存储在所述第二边缘服务器中;以及
使得所述第二边缘服务器提供所述目标数据以作为对所述访问请求的响应。
5.一种边缘服务器,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述边缘服务器执行根据权利要求1-2中任一项所述的方法。
6.一种管理服务器,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述管理服务器执行根据权利要求3中任一项所述的方法。
7.一种边缘服务器,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述边缘服务器执行根据权利要求4所述的方法。
8.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1-2中的任一项所述的方法。
9.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求3中的任一项所述的方法。
10.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求4所述的方法。
CN201911206453.9A 2019-11-29 2019-11-29 存储和访问数据的方法、电子设备和计算机程序产品 Active CN112882647B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911206453.9A CN112882647B (zh) 2019-11-29 2019-11-29 存储和访问数据的方法、电子设备和计算机程序产品
US16/806,550 US11431799B2 (en) 2019-11-29 2020-03-02 Method, electronic device and computer program product for storing and accessing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911206453.9A CN112882647B (zh) 2019-11-29 2019-11-29 存储和访问数据的方法、电子设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN112882647A CN112882647A (zh) 2021-06-01
CN112882647B true CN112882647B (zh) 2024-06-18

Family

ID=76039708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911206453.9A Active CN112882647B (zh) 2019-11-29 2019-11-29 存储和访问数据的方法、电子设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11431799B2 (zh)
CN (1) CN112882647B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405456B2 (en) * 2020-12-22 2022-08-02 Red Hat, Inc. Policy-based data placement in an edge environment
US20220329664A1 (en) * 2021-04-09 2022-10-13 Apple Inc. Secure data caching for edge networks
CN116521668A (zh) 2022-01-21 2023-08-01 戴尔产品有限公司 用于数据存储的方法、设备和计算机程序产品
CN116975104A (zh) 2022-04-22 2023-10-31 戴尔产品有限公司 用于查找数据的方法、电子设备和计算机程序产品
CN117251489A (zh) * 2022-06-10 2023-12-19 戴尔产品有限公司 用于跨区域查询数据的方法、电子设备和计算机程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818402B1 (en) * 2006-02-08 2010-10-19 Roxbeam Media Network Corporation Method and system for expediting peer-to-peer content delivery with improved network utilization
WO2018206819A1 (en) * 2017-05-12 2018-11-15 Sage Global Services Limited Data storage method and apparatus

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425958A (zh) * 2007-10-29 2009-05-06 华为技术有限公司 一种p2p叠加网中请求应答方法、装置和***
US8051205B2 (en) * 2008-10-13 2011-11-01 Applied Micro Circuits Corporation Peer-to-peer distributed storage
CN102420854A (zh) * 2011-11-14 2012-04-18 西安电子科技大学 面向云存储的分布式文件***
US20140074663A1 (en) * 2012-09-09 2014-03-13 Apple Inc. Integrating purchase history and metadata across devices
CN103067461B (zh) * 2012-12-18 2016-03-30 曙光信息产业(北京)有限公司 一种文件的元数据管理***以及元数据管理方法
US10735137B2 (en) * 2016-03-15 2020-08-04 ClineHair Commercial Endeavors Distributed storage system data management and security
US9906597B2 (en) * 2015-04-07 2018-02-27 Microsoft Technology Licensing, Llc Collaboration data proxy system in cloud computing platforms
US10834188B2 (en) * 2016-03-23 2020-11-10 International Business Machines Corporation Distribution of data in cloud storage based on policies maintained in metadata
CN106302659A (zh) * 2016-08-02 2017-01-04 合肥奇也信息科技有限公司 一种基于云存储***中提升访问数据快速存储方法
US10802747B2 (en) * 2017-11-30 2020-10-13 Veritas Technologies Llc Performing backup operations using replicas
US10949384B2 (en) * 2018-07-03 2021-03-16 Cohesity, Inc. Using a storage system to optimize and maintain the metadata associated with a plurality of small files
US10893103B2 (en) * 2018-07-25 2021-01-12 Commvault Systems, Inc. Distributed and scalable storage management using a storage-microservices server
JP6573044B1 (ja) * 2019-03-22 2019-09-11 富士ゼロックス株式会社 データ管理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818402B1 (en) * 2006-02-08 2010-10-19 Roxbeam Media Network Corporation Method and system for expediting peer-to-peer content delivery with improved network utilization
WO2018206819A1 (en) * 2017-05-12 2018-11-15 Sage Global Services Limited Data storage method and apparatus

Also Published As

Publication number Publication date
US11431799B2 (en) 2022-08-30
US20210168207A1 (en) 2021-06-03
CN112882647A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
CN112882647B (zh) 存储和访问数据的方法、电子设备和计算机程序产品
US9501512B2 (en) Optimizing storage in a publish / subscribe environment
US10983718B2 (en) Method, device and computer program product for data backup
CN109726038B (zh) 用于管理虚拟机的方法和设备
US10936217B2 (en) Providing virtual volume flexibility on a storage device cluster
US10855776B2 (en) Method and device for managing sessions
CN112749145A (zh) 存储和访问数据的方法、设备和计算机程序产品
US20190129743A1 (en) Method and apparatus for managing virtual machine
US11599519B2 (en) Method, electronic device and computer program product for data management
US10332569B2 (en) System and method for dynamic caching
CN114064668A (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN112887116A (zh) 管理分布式应用***中的应用节点的方法、设备和产品
CN111104250A (zh) 用于数据处理的方法、设备和计算机程序产品
US10705755B2 (en) Method, apparatus and computer program product for data backup
US10185735B2 (en) Distributed database system and a non-transitory computer readable medium
CN109992447B (zh) 数据复制方法、装置及存储介质
CN112241337B (zh) 用于管理备份数据的方法、设备和计算机程序产品
WO2017092661A1 (en) Subscription service for monitoring changes in remote content
CN113126888B (zh) 用于存储管理的方法、设备和计算机程序产品
CN114615025A (zh) 一种密钥同步处理方法和装置
US11082484B2 (en) Load balancing system
CN115220640A (zh) 用于处理数据的方法、电子设备和计算机程序产品
CN109213815B (zh) 控制执行次数的方法、装置、服务器终端以及可读介质
US11379147B2 (en) Method, device, and computer program product for managing storage system
US11487704B2 (en) Method, a device, and a computer program product for adjusting a storage space

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