CN112000431B - 一种分布式存储系统的对象存储和读写方法和装置 - Google Patents
一种分布式存储系统的对象存储和读写方法和装置 Download PDFInfo
- Publication number
- CN112000431B CN112000431B CN202010800656.7A CN202010800656A CN112000431B CN 112000431 B CN112000431 B CN 112000431B CN 202010800656 A CN202010800656 A CN 202010800656A CN 112000431 B CN112000431 B CN 112000431B
- Authority
- CN
- China
- Prior art keywords
- home node
- volume
- copy
- virtual machine
- copies
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000008569 process Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 10
- 230000005012 migration Effects 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 9
- 230000004807 localization Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/061—Improving I/O performance
-
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
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)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式存储系统的对象存储和读写方法和装置,方法包括:基于分布式存储系统中的特定数据节点创建虚拟机,并将特定数据节点确定为虚拟机的归属节点;在虚拟机上创建用于存储的卷,为卷设置与虚拟机相同的归属节点,并将卷分割为确定尺寸的卷对象;创建卷对象的副本,在卷的归属节点上保存卷对象的所有副本,并基于副本的摘要使用哈希环将副本保存到其它数据节点;将卷挂载到虚拟机。本发明能够将卷对象本地化,提升读写性能并降低带宽占用。
Description
技术领域
本发明涉及分布式存储领域,更具体地,特别是指一种分布式存储系统的对象存储和读写方法和装置。
背景技术
分布式存储长期大规模应用于互联网,云数据中心,能够带来高扩展性和极低的成本控制,具有构建和提供出企业级存储的能力。sheepdog是开源社区新兴的分布式块存储文件系统,采用完全对称的结构,没有类似元数据服务的中心节点,依靠大量普通服务器节点通过网络互联,对外作为一个整体提供存储服务。
分布式存储的读写性能直接决定了该存储产品的市场定位。sheepdog完全脱离元数据的架构设计决定了其在读写优化方面可以做的工作有限,因此如何在不增加元数据管理的前提下提高性能是研究的重点。对于分布式存储,尤其是以sheepdog集群提供存储的超融合场景下,sheepdog借助于服务器节点的本地磁盘和网卡、以及交换机构建分布式存储服务,从而对外提供存储,充分利用服务器自身的资源提供稳定可靠的存储和网络;通常VM(虚拟机)使用该存储提供的卷为VM提供虚拟磁盘服务。
sheepdog集群提供的分布式存储对每个对象采取多副本保存,而对象的副本位置是根据hash(哈希值)计算得到的,对于同一个对象,在同一个hash环上其分布位置是一致的,这也是其不需要元数据管理的原因之一;然而,在虚拟化平台中,VM的CPU和内存资源使用的是所在主机的本地物理资源,它意味着VM是归属于某一个具体的物理节点的;而对象的副本位置和VM所在的节点位置信息在sheepdog中是没有任何关联的,显然,对于VM的业务IO来说,其访问不在同一节点上的对象不可避免要经过至少一层网络转发,这层网络访问将严重影响IO的性能和加重网络负载。
针对现有技术虚拟机请求对象需要网络转发,加重网络负载并影响读写性能的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种分布式存储系统的对象存储和读写方法和装置,能够将卷对象本地化,提升读写性能并降低带宽占用。
基于上述目的,本发明实施例的第一方面提供了一种分布式存储系统的对象存储和读写方法,其存储过程包括执行以下步骤:
基于分布式存储系统中的特定数据节点创建虚拟机,并将特定数据节点确定为虚拟机的归属节点;
在虚拟机上创建用于存储的卷,为卷设置与虚拟机相同的归属节点,并将卷分割为确定尺寸的卷对象;
创建卷对象的副本,在卷的归属节点上保存卷对象的所有副本,并基于副本的摘要使用哈希环将副本保存到其它数据节点;
将卷挂载到虚拟机。
在一些实施方式中,方法还包括:在确定归属节点后,还基于归属节点的物理存储设备为虚拟机添加虚拟磁盘;
在归属节点上保存卷对象的所有副本包括:在归属节点的虚拟磁盘上保存卷对象的所有副本;
将副本保存到其它数据节点包括:保存到其它数据节点的虚拟磁盘。
在一些实施方式中,方法还包括:在卷的归属节点上保存副本的同时,还创建副本的元数据信息并在归属节点的内存中存储元数据信息,元数据信息包括归属节点信息。
在一些实施方式中,基于副本的摘要使用哈希环将副本保存到其它数据节点包括:
确定副本的摘要;
生成确定多个数据节点的位置的哈希环,并基于摘要将卷对象置入哈希环;
基于副本的存储数量在哈希环上依排列次序选定多个互不相同、并且都不是特定数据节点的副本节点;
将副本保存到多个副本节点中。
在一些实施方式中,其读写过程包括执行以下步骤:
接收读写请求,其中读写请求包括被请求的卷对象的归属节点信息;
比较接收的归属节点信息和元数据信息中的归属节点信息;
响应于两个归属节点信息一致,而基于归属节点信息访问归属节点以读写归属节点的副本。
在一些实施方式中,还包括:响应于两个归属节点信息不一致,而判定发生虚拟机迁移,并使用接收的归属节点信息对虚拟机在迁移到达的新数据节点上重建卷对象的本地化。
在一些实施方式中,还包括:读写归属节点的副本之后,还同步修改多个副本节点中的副本。
本发明实施例的第二方面提供了一种分布式存储系统的对象存储和读写装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤的存储过程:
基于分布式存储系统中的特定数据节点创建虚拟机,并将特定数据节点确定为虚拟机的归属节点;
在虚拟机上创建用于存储的卷,为卷设置与虚拟机相同的归属节点,并将卷分割为确定尺寸的卷对象;
创建卷对象的副本,在卷的归属节点上保存卷对象的所有副本,并基于副本的摘要使用哈希环将副本保存到其它数据节点;
将卷挂载到虚拟机。
在一些实施方式中,基于副本的摘要使用哈希环将副本保存到其它数据节点包括:
确定副本的摘要;
生成确定多个数据节点的位置的哈希环,并基于摘要将卷对象置入哈希环;
基于副本的存储数量在哈希环上依排列次序选定多个互不相同、并且都不是特定数据节点的副本节点;
将副本保存到多个副本节点中。
在一些实施方式中,步骤还包括:在卷的归属节点上保存卷对象的所有副本的同时,还创建副本的元数据信息并在归属节点的内存中存储元数据信息,元数据信息包括归属节点信息;程序代码在被运行时执行以下步骤的读写过程:
接收读写请求,其中读写请求包括被请求的卷对象的归属节点信息;
比较接收的归属节点信息和元数据信息中的归属节点信息;
响应于两个归属节点信息一致,而基于归属节点信息访问归属节点以读写归属节点的副本。
本发明具有以下有益技术效果:本发明实施例提供的分布式存储系统的对象存储和读写方法和装置,通过基于分布式存储系统中的特定数据节点创建虚拟机,并将特定数据节点确定为虚拟机的归属节点;在虚拟机上创建用于存储的卷,为卷设置与虚拟机相同的归属节点,并将卷分割为确定尺寸的卷对象;创建卷对象的副本,在卷的归属节点上保存卷对象的所有副本,并基于副本的摘要使用哈希环将副本保存到其它数据节点;将卷挂载到虚拟机的技术方案,能够将卷对象本地化,提升读写性能并降低带宽占用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的分布式存储系统的对象存储和读写方法的流程示意图;
图2为本发明提供的分布式存储系统的对象存储和读写方法的对象访问路径示意图;
图3为本发明提供的分布式存储系统的对象存储和读写方法的哈希环形态示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够将卷对象本地化,提升读写性能并降低带宽占用的分布式存储系统的对象存储和读写方法的一个实施例。图1示出的是本发明提供的分布式存储系统的对象存储和读写方法的流程示意图。
所述的分布式存储系统的对象存储和读写方法,如图1所示,存储过程包括执行以下步骤:
步骤S101:基于分布式存储系统中的特定数据节点创建虚拟机,并将特定数据节点确定为虚拟机的归属节点;
步骤S103:在虚拟机上创建用于存储的卷,为卷设置与虚拟机相同的归属节点,并将卷分割为确定尺寸的卷对象;
步骤S105:创建卷对象的副本,在卷的归属节点上保存卷对象的所有副本,并基于副本的摘要使用哈希环将副本保存到其它数据节点;
步骤S107:将卷挂载到虚拟机。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。另外应当注意,虽然写作哈希环,但是形成哈希环使用的数据摘要算法可以是哈希算法或其它的任何非哈希算法,例如MD5等。
在一些实施方式中,方法还包括:在确定归属节点后,还基于归属节点的物理存储设备为虚拟机添加虚拟磁盘;
在归属节点上保存卷对象的所有副本包括在归属节点的虚拟磁盘上保存卷对象的所有副本;
将副本保存到其它数据节点包括保存到其它数据节点的虚拟磁盘。
在一些实施方式中,方法还包括:在卷的归属节点上保存副本的同时,还创建副本的元数据信息并在归属节点的内存中存储元数据信息,元数据信息包括归属节点信息。
在一些实施方式中,基于副本的摘要使用哈希环将副本保存到其它数据节点包括:
确定副本的摘要;
生成确定多个数据节点的位置的哈希环,并基于摘要将卷对象置入哈希环;
基于副本的存储数量在哈希环上依排列次序选定多个互不相同、并且都不是特定数据节点的副本节点;
将副本保存到多个副本节点中。
在一些实施方式中,其读写过程包括执行以下步骤:
接收读写请求,其中读写请求包括被请求的卷对象的归属节点信息;
比较接收的归属节点信息和元数据信息中的归属节点信息;
响应于两个归属节点信息一致,而基于归属节点信息访问归属节点以读写归属节点的副本。
在一些实施方式中,方法还包括:响应于两个归属节点信息不一致,而判定发生虚拟机迁移,并使用接收的归属节点信息对虚拟机在迁移到达的新数据节点上重建卷对象的本地化。
在一些实施方式中,方法还包括:读写归属节点的副本之后,还同步修改多个副本节点中的副本。
下面根据具体实施例进一步阐述本发明的具体实施方式。
优化后sheepdog对象访问如图2所示。在虚拟化平台上创建VM时会指定VM所归属的节点,同时会为VM添加虚拟磁盘,确认后后台将会为VM在sheepdog集群中创建VDI(卷对象),并sheepdog协议将VDI挂载给虚拟机使用。在此过程中,本发明需要修改两点:
①创建VDI时需要指定VDI的归属节点信息,指定归属节点后,无论该VDI的副本设置为多少,首先保证归属节点上必定存在一份VDI的完整对象副本;并且该归属信息会被保存在VDI的元数据对象中,同时该VDI的部分元数据信息(包括归属信息)会被保存在该节点的内存数据结构中。
②在sheepdog协议中增加VM归属信息字段,即VM通过sheepdog协议发送的业务请求中需要包含VM所归属节点的信息。
对于①,一致性hash的基本原理如图3所示,sheepdog中的VDI默认按照4M大小进行切分,切分后的对象按照名称进行hash,根据其hash值散落在附图3所示的hash环上确定第一个副本的节点(node)位置信息,如果设置多个副本,则直接依次按照第一个副本的位置顺时针查找下个和已选节点不重复的节点作为后续副本的位置信息。由于本发明在VDI创建的时候已经指定了VDI的归属位置,实际上就为VDI的对象指定了一个固定的副本位置;因此,在对指定了归属位置的VDI的对象在寻找副本位置时采取策略为指定和一致性hash的混合策略:
首先,在VDI的归属地为该对象创建一个副本,即指定策略;
接着,使用一致性hash计算VDI的剩余副本位置,如果计算过程中遇到了和归属地相同的节点,则直接顺时针查找下一个节点,直到找到一个新的节点存储其剩余副本,即一致性hash策略。
通过上述使用指定和一致性hash的混合策略后,一个VDI的所有对象副本分配就完成了,分配结果能够保证在VDI的归属地节点上保存VDI的一份完整副本信息。
对于②,VM通过sheepdog协议访问VDI提供VDI的归属地信息,当请求到达sheepdog server端后,首先校验VM指定的归属信息与server端保存的信息是否一致,因为请求中包含的归属信息才是VM实时归属的节点位置。如果请求中的归属位置和server端本地记录的不一致,则说明VM在虚拟化平台这一层由于人为或者系统原因进行了迁移,即VM从一个节点被迁移到了另一个节点,此时通过请求中归属位置迁移VDI的副本位置,从而重建VDI的本地化。经过上述策略,本发明实现了sheepdog中VDI的本地化工作,由于VM的IO访问均发生在本地,减少了网络请求的调用,缩短了IO调用路径,性能明显得到提升。
从上述实施例可以看出,本发明实施例提供的分布式存储系统的对象存储和读写方法,通过基于分布式存储系统中的特定数据节点创建虚拟机,并将特定数据节点确定为虚拟机的归属节点;在虚拟机上创建用于存储的卷,为卷设置与虚拟机相同的归属节点,并将卷分割为确定尺寸的卷对象;创建卷对象的副本,在卷的归属节点上保存卷对象的所有副本,并基于副本的摘要使用哈希环将副本保存到其它数据节点;将卷挂载到虚拟机的技术方案,能够将卷对象本地化,提升读写性能并降低带宽占用。
需要特别指出的是,上述分布式存储系统的对象存储和读写方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于分布式存储系统的对象存储和读写方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够将卷对象本地化,提升读写性能并降低带宽占用的分布式存储系统的对象存储和读写装置的一个实施例。分布式存储系统的对象存储和读写装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤的存储过程:
基于分布式存储系统中的特定数据节点创建虚拟机,并将特定数据节点确定为虚拟机的归属节点;
在虚拟机上创建用于存储的卷,为卷设置与虚拟机相同的归属节点,并将卷分割为确定尺寸的卷对象;
创建卷对象的副本,在卷的归属节点上保存卷对象的所有副本,并基于副本的摘要使用哈希环将副本保存到其它数据节点;
将卷挂载到虚拟机。
在一些实施方式中,基于副本的摘要使用哈希环将副本保存到其它数据节点包括:
确定副本的摘要;
生成确定多个数据节点的位置的哈希环,并基于摘要将卷对象置入哈希环;
基于副本的存储数量在哈希环上依排列次序选定多个互不相同、并且都不是特定数据节点的副本节点;
将副本保存到多个副本节点中。
在一些实施方式中,步骤还包括:在卷的归属节点上保存卷对象的所有副本的同时,还创建副本的元数据信息并在归属节点的内存中存储元数据信息,元数据信息包括归属节点信息;程序代码在被运行时执行以下步骤的读写过程:
接收读写请求,其中读写请求包括被请求的卷对象的归属节点信息;
比较接收的归属节点信息和元数据信息中的归属节点信息;
响应于两个归属节点信息一致,而基于归属节点信息访问归属节点以读写归属节点的副本。
从上述实施例可以看出,本发明实施例提供的分布式存储系统的对象存储和读写装置,通过基于分布式存储系统中的特定数据节点创建虚拟机,并将特定数据节点确定为虚拟机的归属节点;在虚拟机上创建用于存储的卷,为卷设置与虚拟机相同的归属节点,并将卷分割为确定尺寸的卷对象;创建卷对象的副本,在卷的归属节点上保存卷对象的所有副本,并基于副本的摘要使用哈希环将副本保存到其它数据节点;将卷挂载到虚拟机的技术方案,能够将卷对象本地化,提升读写性能并降低带宽占用。
需要特别指出的是,上述分布式存储系统的对象存储和读写装置的实施例采用了所述分布式存储系统的对象存储和读写方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述分布式存储系统的对象存储和读写方法的其他实施例中。当然,由于所述分布式存储系统的对象存储和读写方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述分布式存储系统的对象存储和读写装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (5)
1.一种分布式存储系统的对象存储和读写方法,其特征在于,其存储过程包括以下步骤:
基于分布式存储系统中的特定数据节点创建虚拟机,并将所述特定数据节点确定为所述虚拟机的归属节点;
在所述虚拟机上创建用于存储的卷,为所述卷设置与所述虚拟机相同的归属节点,并将所述卷分割为确定尺寸的卷对象;
创建所述卷对象的副本,在所述卷的所述归属节点上保存所述卷对象的所有所述副本,并基于所述副本的摘要使用哈希环将所述副本保存到其它数据节点;
在所述卷的所述归属节点上保存所述副本的同时,还创建所述副本的元数据信息并在所述归属节点的内存中存储所述元数据信息,所述元数据信息包括归属节点信息;
将所述卷挂载到所述虚拟机,所述卷的读写过程包括:
接收读写请求,其中所述读写请求包括被请求的卷对象的所述归属节点信息;
比较接收的所述归属节点信息和所述元数据信息中的所述归属节点信息;
响应于两个所述归属节点信息一致,而基于所述归属节点信息访问所述归属节点以读写所述归属节点的所述副本,并在读写所述归属节点的所述副本之后,同步修改多个副本节点中的所述副本;
响应于两个所述归属节点信息不一致,而判定发生虚拟机迁移,并使用接收的所述归属节点信息对所述虚拟机在迁移到达的新数据节点上重建所述卷对象的本地化。
2.根据权利要求1所述的方法,其特征在于,还包括:在确定所述归属节点后,还基于所述归属节点的物理存储设备为所述虚拟机添加虚拟磁盘;
在所述归属节点上保存所述卷对象的所有所述副本包括:在所述归属节点的所述虚拟磁盘上保存所述卷对象的所有所述副本;
将所述副本保存到其它数据节点包括:保存到所述其它数据节点的所述虚拟磁盘。
3.根据权利要求1所述的方法,其特征在于,基于所述副本的摘要使用哈希环将所述副本保存到其它数据节点包括:
确定所述副本的摘要;
生成确定多个数据节点的位置的哈希环,并基于所述摘要将所述卷对象置入所述哈希环;
基于所述副本的存储数量在所述哈希环上依排列次序选定多个互不相同、并且都不是所述特定数据节点的副本节点;
将所述副本保存到多个所述副本节点中。
4.一种分布式存储系统的对象存储和读写装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行以下步骤的存储过程:
基于分布式存储系统中的特定数据节点创建虚拟机,并将所述特定数据节点确定为所述虚拟机的归属节点;
在所述虚拟机上创建用于存储的卷,为所述卷设置与所述虚拟机相同的归属节点,并将所述卷分割为确定尺寸的卷对象;
创建所述卷对象的副本,在所述卷的所述归属节点上保存所述卷对象的所有所述副本,并基于所述副本的摘要使用哈希环将所述副本保存到其它数据节点;
在所述卷的所述归属节点上保存所述副本的同时,还创建所述副本的元数据信息并在所述归属节点的内存中存储所述元数据信息,所述元数据信息包括归属节点信息;
将所述卷挂载到所述虚拟机,所述卷的读写过程包括:
接收读写请求,其中所述读写请求包括被请求的卷对象的所述归属节点信息;
比较接收的所述归属节点信息和所述元数据信息中的所述归属节点信息;
响应于两个所述归属节点信息一致,而基于所述归属节点信息访问所述归属节点以读写所述归属节点的所述副本,并在读写所述归属节点的所述副本之后,同步修改多个副本节点中的所述副本;
响应于两个所述归属节点信息不一致,而判定发生虚拟机迁移,并使用接收的所述归属节点信息对所述虚拟机在迁移到达的新数据节点上重建所述卷对象的本地化。
5.根据权利要求4所述的装置,其特征在于,基于所述副本的摘要使用哈希环将所述副本保存到其它数据节点包括:
确定所述副本的摘要;
生成确定多个数据节点的位置的哈希环,并基于所述摘要将所述卷对象置入所述哈希环;
基于所述副本的存储数量在所述哈希环上依排列次序选定多个互不相同、并且都不是所述特定数据节点的副本节点;
将所述副本保存到多个所述副本节点中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010800656.7A CN112000431B (zh) | 2020-08-11 | 2020-08-11 | 一种分布式存储系统的对象存储和读写方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010800656.7A CN112000431B (zh) | 2020-08-11 | 2020-08-11 | 一种分布式存储系统的对象存储和读写方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000431A CN112000431A (zh) | 2020-11-27 |
CN112000431B true CN112000431B (zh) | 2022-11-29 |
Family
ID=73463053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010800656.7A Active CN112000431B (zh) | 2020-08-11 | 2020-08-11 | 一种分布式存储系统的对象存储和读写方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000431B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798130A (zh) * | 2017-11-17 | 2018-03-13 | 广西广播电视信息网络股份有限公司 | 一种分布式存储的快照方法 |
US10114581B1 (en) * | 2016-12-27 | 2018-10-30 | EMC IP Holding Company LLC | Creating a virtual access point in time on an object based journal replication |
CN110058822A (zh) * | 2019-04-26 | 2019-07-26 | 北京计算机技术及应用研究所 | 一种磁盘阵列横向拓展方法 |
-
2020
- 2020-08-11 CN CN202010800656.7A patent/CN112000431B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114581B1 (en) * | 2016-12-27 | 2018-10-30 | EMC IP Holding Company LLC | Creating a virtual access point in time on an object based journal replication |
CN107798130A (zh) * | 2017-11-17 | 2018-03-13 | 广西广播电视信息网络股份有限公司 | 一种分布式存储的快照方法 |
CN110058822A (zh) * | 2019-04-26 | 2019-07-26 | 北京计算机技术及应用研究所 | 一种磁盘阵列横向拓展方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112000431A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296498B2 (en) | Coordinated hash table indexes to facilitate reducing database reconfiguration time | |
CN110799960B (zh) | 数据库租户迁移的系统和方法 | |
AU2021101420A4 (en) | Small-file storage optimization system based on virtual file system in KUBERNETES user-mode application | |
US11561930B2 (en) | Independent evictions from datastore accelerator fleet nodes | |
US10275489B1 (en) | Binary encoding-based optimizations at datastore accelerators | |
US20200356277A1 (en) | De-duplication of client-side data cache for virtual disks | |
CN104184812B (zh) | 一种基于私有云的多点数据传输方法 | |
CN112632069B (zh) | 哈希表数据存储管理方法、装置、介质和电子设备 | |
Fu et al. | Performance optimization for managing massive numbers of small files in distributed file systems | |
CN105701219A (zh) | 一种分布式缓存的实现方法 | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
AU2018318401A1 (en) | Thin provisioning virtual desktop infrastructure virtual machines in cloud environments without thin clone support | |
CN103595799A (zh) | 一种实现分布式共享数据库的方法 | |
JP2015528957A (ja) | 分散ファイルシステム、ファイルアクセス方法及びクライアントデバイス | |
US11288237B2 (en) | Distributed file system with thin arbiter node | |
CN115858488A (zh) | 基于数据治理的平行迁移方法、装置及可读介质 | |
Chang et al. | Integration and optimization of multiple big data processing platforms | |
US10146833B1 (en) | Write-back techniques at datastore accelerators | |
US11625179B2 (en) | Cache indexing using data addresses based on data fingerprints | |
CN113032356B (zh) | 一种客舱分布式文件存储系统及实现方法 | |
WO2017015059A1 (en) | Efficient cache warm up based on user requests | |
CN112000431B (zh) | 一种分布式存储系统的对象存储和读写方法和装置 | |
CN116578641A (zh) | 一种基于ketama算法的分库方法和系统 | |
WO2012171363A1 (zh) | 分布式缓存系统中的数据操作方法和装置 | |
CN113867626A (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 |