CN114003350B - 超融合系统的数据分配方法和系统 - Google Patents
超融合系统的数据分配方法和系统 Download PDFInfo
- Publication number
- CN114003350B CN114003350B CN202210001164.0A CN202210001164A CN114003350B CN 114003350 B CN114003350 B CN 114003350B CN 202210001164 A CN202210001164 A CN 202210001164A CN 114003350 B CN114003350 B CN 114003350B
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- virtual machine
- distribution
- physical server
- 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
- 238000009826 distribution Methods 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000003860 storage Methods 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 14
- 230000005012 migration Effects 0.000 claims description 14
- 238000013508 migration Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 5
- 230000036541 health Effects 0.000 claims description 4
- 230000004807 localization Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000005304 joining Methods 0.000 claims description 2
- 230000002159 abnormal effect Effects 0.000 description 9
- 239000012634 fragment Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 238000012795 verification 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
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45575—Starting, stopping, suspending or resuming 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/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例公开了一种超融合系统的数据分配方法和系统,包括:拆分虚拟机虚拟磁盘的数据形成若干数据块,每个数据块具有多个数据块副本;在超融合物理服务器集群中,根据虚拟机运行状态和集群数据状态对每个数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份数据块副本放置在虚拟机所在的物理服务器上;对除本地化空间位置分配以外的其他数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集。本发明使降低了请求处理延迟,增加了数据带宽,使得数据的存储放置更为安全可靠,实现了超融合集群高效可靠的数据分配。
Description
技术领域
本发明涉及超融合系统技术领域,尤其涉及一种超融合系统的数据分配方法和系统。
背景技术
超融合基础架构是将计算、网络和存储等资源作为基础设施进行整合,根据具体业务系统需求进行选择组合和自定义,方便快捷地进行数据中心搭建和业务系统部署的技术架构。一般在单元节点(x86服务器)中融入软件虚拟化技术(包括计算、网络、存储、安全等虚拟化),每一个单元节点通过网络聚合,实现模块化的无缝横向扩展,构建统一的资源池。
在超融合基础架构中,计算负载(应用程序/虚拟机)与关联的数据在同一组物理服务器上。与传统的家用设备上应用程序仅使用设备直接连接的存储设备不同,超融合系统中并不将存储资源(硬盘或者AEP等新型存储介质)直接暴露给应用程序使用,而是先把整个超融合集群中所有存储资源池化,再提供虚拟存储服务(虚拟磁盘,虚拟文件系统等)交付应用程序使用。每个应用程序访问的数据可能会分布在整个超融合系统的所有节点上,在单个存储服务器异常的时候可以从其他服务器中获取数据重建服务,提供了相比于直接使用设备本地存储更高的可靠性。
在超融合系统中提供虚拟机服务时,其中的存储系统作为提供块存储形态的分布式存储系统,提供的虚拟磁盘有可能会超过单个物理服务器能容纳的最大大小,例如,一个物理节点上仅有40TB的存储空间时,其上运行的虚拟机要求一个64TB的虚拟磁盘,如果将一个虚拟磁盘的数据作为整体考虑放置位置,则超融合集群就无法容纳这样的虚拟磁盘。所以,一个虚拟存储对象通常会拆分为若干小数据块再分别考虑他们的存放位置与组织形态。小数据块数据的常见组织方式有EC(纠删码,将数据拆分之后新增数据校验分片,在单个分片后可以通过其他分片与校验分片计算恢复损失的分片数据)、副本(将数据存储多份至不同的节点上,每个节点持有一个完整的数据副本)。不论哪种方式,数据都将被拆分为多个部分,并考虑在集群中的放置位置。
分布式存储系统最常见的数据分配策略就是均匀分布。该方法将所有的小型数据块视作独立的个体,将每个数据块的不同分片均匀的分散至整个集群的各个服务器上。然而,该方法存在以下两个客观问题:
(1)性能降低。在超融合系统中,均匀的分散数据至整个集群,势必会有部分数据块的所有副本都不放置在应用程序/虚拟机所在的节点上。对这些数据块的访问都需要经过跨节点的网络,性能上会因为增加了网络中转环节而增加延迟,且带宽也会受限于物理网卡的带宽,增加对外部的网络资源(交换机)的消耗。
(2)可靠性降低。每个虚拟磁盘的数据分布在整个集群中的所有节点,相对的,任意一个节点的异常都会引发的集群中所有虚拟磁盘都有部分发生异常,这将每个节点的故障影响范围扩大至整个集群(即异常节点造成不可靠性)。此外考虑到极端情况,一个40个节点的集群如果采用3副本策略,极端情况下,3个节点异常就可能会造成集群中所有虚拟磁盘上都有部分数据块损失了所有的副本。而虚拟磁盘的典型使用场景是在虚拟磁盘上格式化一个文件系统(例如 Linux 的 Ext4/xfs, Windows的 NTFS 等),文件系统如果损失了部分关键数据块会导致大面积的数据异常。这就意味着整个集群里实际损失的数据范围有可能会远大于3个节点的数据量。
综上所述,目前现有技术存在系统性能低、可靠性低的客观缺点,亟待发明一种高效可靠的超融合系统的数据分配方法和系统。
发明内容
有鉴于此,本发明实施例提出一种超融合系统的数据分配方法和系统。
本发明的一实施例提出一种超融合系统的数据分配方法,包括:
拆分虚拟机虚拟磁盘的数据形成若干数据块,每个数据块具有多个数据块副本;
在超融合物理服务器集群中,根据虚拟机运行状态和集群数据状态对每个所述数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份所述数据块副本放置在虚拟机所在的物理服务器上;
对除本地化空间位置分配以外的其他所述数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集。
根据本发明的实例性实施例,所述虚拟机运行状态包括CPU 使用率、内存使用率、磁盘的健康状态、存储系统 IO 压力和剩余磁盘空间大小,所述集群数据状态包括新物理服务加入、物理服务器故障、磁盘故障和虚拟机迁移。
根据本发明的实例性实施例,所述“根据虚拟机运行状态和集群数据状态对每个所述数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份所述数据块副本放置在虚拟机所在的物理服务器上”包括:
在数据初次IO处理过程中,启动数据分配服务;
感知每个数据块所属的虚拟机所在的物理服务器位置,根据感知到的物理服务器位置,将同一个虚拟磁盘上的所有数据块的副本放置在该物理服务器上。
根据本发明的实例性实施例,所述“在数据初次IO处理过程中,启动数据分配服务”包括:
接收虚拟机的IO请求;
将虚拟机的IO请求拆分为数据块IO请求,并检查数据块的分配状态。
根据本发明的实例性实施例,所述“感知每个数据块所属的虚拟机所在的物理服务器位置,根据感知到的物理服务器位置,将同一个虚拟磁盘上的所有数据块的副本放置在该物理服务器上”包括:
判断所述数据块是否未分配空间;
若是,则所述数据分配服务为所述数据块分配空间,标记所述数据块所在的物理服务器位置,并将所述数据块的副本之一固定在虚拟机所在的物理服务器上;
若不是,则连接分配的数据块所在物理服务器,发起数据访问。
根据本发明的实例性实施例,所述“对除本地化空间位置分配以外的其他所述数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集”包括:
按照拓扑感知环状分配方式,将数据块中未分配位置的数据块副本放置在距离已固定位置的数据块副本拓扑距离最大的物理服务器上,其中,拓扑距离最大指数据块副本之间共享最少的硬件设施;
判断是否存在多个拓扑距离最大的候选物理服务器;
若是,则按照节点ID辅助分配方式进行位置分配。
根据本发明的实例性实施例,所述“按照节点ID辅助分配方式进行位置分配”包括:
获取所述候选物理服务器的节点ID字符串,其中,所述节点ID字符串为每个服务器在超融合集群中的唯一标记;
比较所述候选物理服务器的节点ID字符串大小关系,并根据比较结果进行分配。
根据本发明的实例性实施例,还包括:
判断是否存在集群数据状态改变;
若是,则重新感知虚拟机的运行位置,并在运行位置所在的物理服务器上放置相应数据块的数据块副本。
根据本发明的实例性实施例,所述“重新感知虚拟机的运行位置,并在运行位置所在的物理服务器上放置相应数据块的数据块副本”包括:
根据虚拟磁盘的IO请求判断虚拟机是否发生迁移;
若是,则向副本分配服务报告虚拟机的新接入位置;
所述副本分配服务标记所述新接入位置,并在新接入位置对应的物理服务器上放置该虚拟磁盘上的所有数据块对应的一份数据块副本以重新完成本地化空间位置分配;
根据本地化空间位置重新分配的数据块副本位置,进行其他数据块副本的局部化分配,并根据分配结果进行逐个数据块副本的位置迁移。
本发明的又一实施例提出一种超融合系统的数据分配系统,包括:
拆分单元,用于拆分虚拟机虚拟磁盘的数据形成若干数据块,每个数据块具有多个数据块副本;
第一分配单元,用于在超融合物理服务器集群中,根据虚拟机运行状态和集群数据状态对每个所述数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份所述数据块副本放置在虚拟机所在的物理服务器上;
第二分配单元,用于对除本地化空间位置分配以外的其他所述数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集。
本发明的又一实施例提出一种终端,包括:处理器和存储器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施上述的超融合系统的数据分配方法。
本发明的再一实施例提出一种计算机可读存储介质,其存储有计算机程序,在所述计算机程序被执行时,实施根据上述的一种超融合系统的数据分配方法。
本发明实施例提出的方法通过调整分布式存储系统的数据块副本分配策略,利用本地化空间位置分配的思路,保证虚拟机所在的物理服务器上持有虚拟磁盘的一份完整数据副本,在处理读请求时不需要再经过网络请求其他节点的数据,从而降低了请求的处理延迟,增加了数据带宽;在处理写请求时,也有一份数据不需要经过网络即可发往副本所在节点,同样降低了对网络的带宽需求。并且,通过数据的局部化分配,使得数据的存储放置更为安全可靠,有效避免设备异常对数据的影响,实现了超融合集群高效可靠的数据分配。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了现有技术的数据分配方法示意图;
图2示出了本发明实施例的一种超融合系统的数据分配方法流程图;
图3示出了本发明实施例的步骤S102的方法流程图;
图4示出了本发明实施例的数据块的初次访问位置感知方法流程图;
图5示出了本发明实施例的虚拟机迁移之后的位置感知方法流程图;
图6示出了本发明实施例的步骤S103的方法流程图;
图7示出了本发明实施例的步骤S103中拓扑感知环状分配方式的方法流程图;
图8示出了本发明实施例的数据块副本集中在固定节点上的效果示意图;
图9示出了本发明实施例的数据块副本逐步迁移的方法流程图;
图10示出了本发明实施例的基于超融合基础架构的系统结构示意图;
图11示出了本发明实施例的一种超融合系统的数据分配系统的结构示意图。
主要元件符号说明:
10-拆分单元;20-第一分配单元;30-第二分配单元。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
现有技术的分配技术如图1所示,虚拟机上虚拟磁盘被拆分为多个数据块,每个数据块在系统中存在多个副本。数据块中不同的副本位于不同的节点上,所有数据块的副本尽可能均匀的分散在整个集群中。为克服现有技术性能差、可靠性低等方面的不足,本发明实施例提出了一种超融合系统的数据分配方法,一方面,尽可能的让虚拟机使用的虚拟磁盘的所有数据分块都有一份副本放置在虚拟机所在的物理服务器上,以缩短读请求的IO路径,不需要经过网络即可获得数据;另一方面,尽可能的让同一个虚拟磁盘的所有数据块有序聚集,避免少量节点异常影响到整个集群的现象发生。具体实现方式可参考实施例1至实施例3。
实施例1
参照图2,一种超融合系统的数据分配方法包括:
步骤S101,拆分虚拟机虚拟磁盘的数据形成若干数据块,每个数据块具有多个数据块副本。
步骤S102,在超融合物理服务器集群中,根据虚拟机运行状态和集群数据状态对每个数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份数据块副本放置在虚拟机所在的物理服务器上。其中,虚拟机运行状态包括CPU使用率、内存使用率、磁盘的健康状态、存储系统IO压力和剩余磁盘空间大小;集群数据状态包括新物理服务加入、物理服务器故障、磁盘故障和虚拟机迁移。
步骤S103,对除本地化空间位置分配以外的其他数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集。
示范性地,在超融合系统中,通常分布式存储会提供称为瘦供给(或精简制备)的可选能力,当虚拟磁盘使用瘦供给模式时,在创建虚拟磁盘时,其所需要的所有数据空间没有在各个物理服务器上划分或者占据,而是在数据块被第一次写入时才真实的划分空间。这个模式可以有效的提高系统的空间利用率。为了实现这一特性,副本分配服务通常会进入到IO路径中,特别是初次IO的处理过程中,完成数据块的空间分配。
参照图3,步骤S102主要包括以下步骤:
步骤S201,在数据初次IO处理过程中,启动数据分配服务;
首先,接收虚拟机的IO请求,其次,将虚拟机的IO请求拆分为数据块IO请求,并检查数据块的分配状态。
步骤S202,感知每个数据块所属的虚拟机所在的物理服务器位置,根据感知到的物理服务器位置,将同一个虚拟磁盘上的所有数据块的副本放置在该物理服务器上。
为了实现数据副本在虚拟机所在的物理节点上分配一份,首先需要让副本分配服务知道每个数据块所属的虚拟机在哪个物理节点上,该功能实际上包含两方面的情况。
情况一:数据块的初次访问位置感知。在这种情况下,首先,需判断数据块是否未分配空间;若是,则数据分配服务为数据块分配空间,标记数据块所在的物理服务器位置,并将数据块的副本之一固定在虚拟机所在的物理服务器上;若不是,则连接分配的数据块所在物理服务器,发起数据访问。可参考图4。
情况二:虚拟机迁移之后的位置感知。在超融合系统中,所有的物理节点上的存储已经组合在一起形成一个存储池。每个集群中的虚拟机也在任一一个物理节点上运行时都可以访问到自己的虚拟磁盘数据。因此虚拟机热迁移(保持运行状态从节点A转移到节点B上)或者是关机之后在新的物理节点上启动在超融合系统会是一个常态。此时,虚拟机移动后则需重新感知虚拟机的运行位置,以便在存储节点中转移数据副本,继续保证虚拟机现在所在的新的物理节点上也有一份本地数据。在这种情况下,首先,需判断是否存在集群数据状态改变;若是,则重新感知虚拟机的运行位置,并在运行位置所在的物理服务器上放置相应数据块的数据块副本;若不是,则可直接按照情况一处理。可参考图5。
示范性地,在前述步骤后,每个数据块的其中一个副本已经确定了位置(数据块IO的接入服务所在的物理节点),此时需要选定其他副本的位置。在数据分配时,每个数据块都是独立的事件(典型情况为精简制备模式下,虚拟机在不同时刻写入虚拟磁盘上不同的数据区域,引发对应数据块的初次分配)。为了保持这种模式下同一个虚拟卷不同数据块选择的位置是稳定且集中的,本发明实施例采用拓扑感知环状分配方式。
参照图6,步骤S103主要包括以下步骤:
步骤S301,按照拓扑感知环状分配方式,将数据块中未分配位置的数据块副本放置在距离已固定位置的数据块副本拓扑距离最大的物理服务器上,其中,拓扑距离最大指数据块副本之间共享最少的硬件设施;
步骤S302,判断是否存在多个拓扑距离最大的候选物理服务器;
若是,则执行步骤S3031,按照节点ID辅助分配方式进行位置分配;若不是,则执行步骤S3032,将副本放置在拓扑距离最大的候选物理服务器上。
步骤S3031中按照节点ID辅助分配方式进行位置分配,首先,需要获取候选物理服务器的节点ID字符串,然后,比较候选物理服务器的节点ID字符串大小关系,并根据比较结果进行分配。节点 ID 是一个简单可比较大小的字符串(根据字符ASCII码比较规则即可),是每个物理服务器在超融合集群中的唯一标记,在节点加入集群后保持稳定,且不可重复。同一个集群中任意两个物理节点一定存在节点ID的大小关系,因此在副本分配时如果出现了多个拓扑距离相等候选节点时,则可选择其中节点ID较小的一个作为候选节点。
一般的,在数据中心里,每个机框中会安装有若干个物理服务器,这些服务器共享机框的部分关键设置,例如电源,磁盘连接的背板等等。如果这些共享设施发生异常,机框内的所有服务器都会受到影响。每个机架上会安装若干个这样的机框,在机架上安装有交换机及其他的网络设备。机架内的所有服务器会共享网络设备,设备异常时它们都会受到影响。因此,在考虑数据的副本分配时,需尽量将同一个数据块的不同副本放置在拓扑距离上尽量远的不同服务器上(这里的“远”指的是副本之间尽量共享最少的硬件设施,例如,已经有一个副本在机架A上,另外可选的服务器分别在A与B上,此时B的服务器就是最远的服务器,因为它与先有的服务器没有共享硬件设施)。
在超融合集群中,每个物理服务器的物理拓扑信息是在部署集群时即指定的,后续虽会更新,但频率较低,一般很少发生真实的搬迁动作,故可认为副本分配服务已经从部署阶段知道了每个物理节点的拓扑信息。
此外,不同物理节点在分配时可能是拓扑等价的。例如,如果第一个副本在机架A上,另外两个候选的物理服务器都位于机架B的同一个机框内,则可认为两个物理服务器对于A来说是拓扑距离相等的,因为他们都与A不共享任何硬件设施。所以,仅依靠拓扑距离的方式并不能保证从同一个初始副本位置出发存在唯一解,这样就不能保证数据的集中。因此本发明的技术方案加入了步骤S3031的节点ID法作为辅助分配标准。可参考图7。
因为每个节点拓扑信息和ID是静态不变的,因此只要第一个副本的位置确定了,其他副本的位置经过这一策略也会是固定不变的。这样每个虚拟机虚拟磁盘的所有数据块就会集中在固定的节点上,形成如下图8所示的效果。
对于前述“情况二”中提到的虚拟机迁移引起的数据再分配情况,由于已经分配完成的虚拟机迁移之后,数据副本已经不能保证在虚拟机所在的物理服务器上,故需要根据新的运行位置来调整副本位置。此时会触发数据的搬迁,这里主要包括:
首先,需要根据虚拟磁盘的IO请求判断虚拟机是否发生迁移;若是,则向副本分配服务报告虚拟机的新接入位置。其次,副本分配服务标记新接入位置,并在新接入位置对应的物理服务器上放置该虚拟磁盘上的所有数据块对应的一份数据块副本以重新完成本地化空间位置分配。最后,根据本地化空间位置重新分配的数据块副本位置,进行其他数据块副本的局部化分配,并根据分配结果进行逐个数据块副本的位置迁移。
通过上述步骤不难理解,副本分配服务首先需要被告知数据块已经更新访问位置信息,然后将比较数据块的当前分布状态与根据新位置信息计算而得到的期望状态之间的差异,据此移动数据,调整状态。例如,虚拟机初始运行在集群中的节点1上,所有数据块分布在[1, 2, 3 ] 3个物理服务器上。在虚拟机迁移到物理服务器4上运行一段时间之后,副本分配服务将被告知数据块已经在物理服务器4上访问了。副本分配服务计算新的期望位置为[4, 5, 6]。这时,需进行数据块副本的搬迁,但为了避免大的影响,副本分配服务将采用逐个副本移动的方式完成搬迁。例如,变化的路径为[ 1, 2, 3] -> [4, 2 ,3 ] -> [4,5, 3]- > [4 ,5, 6]。最终达到新位置期望的副本分布状态(虚拟机所在的4节点上有1个副本,并且其余所有副本在5和6上)。可参考图9。
本发明实施例通过调整分布式存储系统的数据块副本分配策略,保证虚拟机所在的物理服务器上持有它的虚拟磁盘的一份完整数据副本,在处理读请求时不需要再经过网络请求其他节点而降低了请求的处理延迟,并且增加了数据带宽;在处理写请求时,也有一份数据不需要经过网络即可发往副本所在节点,降低了对网络的带宽需求。通过将数据副本集中分布在部分节点的方式,在出现节点的异常时也有效缩小了影响范围,增加了超融合集群对故障的容忍能力(例如,某个运行在物理服务器1上的虚拟机数据仅存在[1,2,3]节点上,4,5,6或者其他节点的服务状态异常与硬件异常不会影响到这个虚拟机的数据安全)。
实施例2
图10为本发明实施例提供的基于超融合基础架构的系统结构示意图,结合本实施例可更好地理解实施例1中方法的实施方式。
该系统可以包括:物理服务器,物理服务器上的磁盘用于最终存放数据,每个物理服务器上均运行的数据链路服务用于处理虚拟机的数据访问请求,每个物理服务器上的数据管理服务用于管理磁盘例如数据在磁盘的最终存放位置,每个物理服务器上均会运行部分虚拟机,他们通过数据链路服务访问超融合存储系统提供的虚拟磁盘。同时集群中还部署有副本分配服务用于确定每个虚拟磁盘拆分之后的数据块应该放置在集群中的哪些物理服务器上。
副本分配服务本身需要综合采集集群中各个物理服务器的运行状态,包括服务器当前的的负载信息(CPU使用率,内存使用率,磁盘的健康状态,存储系统的IO压力,剩余的磁盘空间大小等),综合考虑后确定每个新的数据块的各个副本放置位置。在整个集群中的物理状态发生变化之后,例如有新的物理服务器加入集群,新的磁盘加入到原有的物理服务器上,或者物理服务器发生故障,磁盘发生了故障,虚拟机发生了迁移等状态时,则动态地调整数据块的副本放置位置。
实施例1中方法的实现可通过图10所示的3项主要服务协同工作完成:
(1)数据接入服务:负责将虚拟机的虚拟磁盘IO请求(例如 iSCSI -LUN 请求)拆分超融合系统的小型数据块的IO请求。同时标记数据块的IO请求来源(即自身属于超融合系统中的哪台物理服务器);
(2)数据管理服务:管理本地的所有数据块分片信息,即向副本分配服务上报物理服务器中包含哪些数据分片;
(3)副本分配服务:在每次空间分配请求时,综合考虑虚拟机运行状态与集群数据状态,分配给副本合适的位置,并且在虚拟机移动之后计算新的合理副本位置,调整数据位置。
对于动态调整的情况,在发生虚拟机迁移的情况下,数据接入服务将告知副本分配服务数据块已经更新访问位置信息。副本分配服务将比较数据块的当前分布状态与根据新位置信息计算而得到的期望状态之间的差异,并通知数据管理服务移动数据,调整状态。
上述服务的协同工作可通过图1至图9来理解,以支撑实施例1的实现。
实施例3
参照图11,一种超融合系统的数据分配系统包括:
拆分单元10,用于拆分虚拟机虚拟磁盘的数据形成若干数据块,每个数据块具有多个数据块副本;
第一分配单元20,用于在超融合物理服务器集群中,根据虚拟机运行状态和集群数据状态对每个数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份数据块副本放置在虚拟机所在的物理服务器上;
第二分配单元30,用于对除本地化空间位置分配以外的其他数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集。
可以理解,上述的超融合系统的数据分配系统对应于实施例1的超融合系统的数据分配方法。实施例1中的任何可选项也适用于本实施例,这里不再详述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种超融合系统的数据分配方法,其特征在于,包括:
拆分虚拟机虚拟磁盘的数据形成若干数据块,每个数据块具有多个数据块副本;
在超融合物理服务器集群中,根据虚拟机运行状态和集群数据状态对每个所述数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份所述数据块副本放置在虚拟机所在的物理服务器上;
对除本地化空间位置分配以外的其他所述数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集;
其中,所述“对除本地化空间位置分配以外的其他所述数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集”包括:
按照拓扑感知环状分配方式,将数据块中未分配位置的数据块副本放置在距离已固定位置的数据块副本拓扑距离最大的物理服务器上,其中,拓扑距离最大指数据块副本之间共享最少的硬件设施;
判断是否存在多个拓扑距离最大的候选物理服务器;
若是,则按照节点ID辅助分配方式进行位置分配;
所述“按照节点ID辅助分配方式进行位置分配”包括:
获取所述候选物理服务器的节点ID字符串,其中,所述节点ID字符串为每个服务器在超融合集群中的唯一标记;
比较所述候选物理服务器的节点ID字符串大小关系,并根据比较结果进行分配;
还包括:判断是否存在集群数据状态改变;
若是,则重新感知虚拟机的运行位置,并在运行位置所在的物理服务器上放置相应数据块的数据块副本;
所述“重新感知虚拟机的运行位置,并在运行位置所在的物理服务器上放置相应数据块的数据块副本”包括:
根据虚拟磁盘的IO请求判断虚拟机是否发生迁移;
若是,则向副本分配服务报告虚拟机的新接入位置;
所述副本分配服务标记所述新接入位置,并在新接入位置对应的物理服务器上放置该虚拟磁盘上的所有数据块对应的一份数据块副本,以重新完成本地化空间位置分配;
根据本地化空间位置重新分配的数据块副本位置,进行其他数据块副本的局部化分配,并根据分配结果进行逐个数据块副本的位置迁移。
2.根据权利要求1所述的一种超融合系统的数据分配方法,其特征在于,所述虚拟机运行状态包括CPU使用率、内存使用率、磁盘的健康状态、存储系统IO压力和剩余磁盘空间大小,所述集群数据状态包括新物理服务加入、物理服务器故障、磁盘故障和虚拟机迁移。
3.根据权利要求2所述的一种超融合系统的数据分配方法,其特征在于,所述“根据虚拟机运行状态和集群数据状态对每个所述数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份所述数据块副本放置在虚拟机所在的物理服务器上”包括:
在数据初次IO处理过程中,启动数据分配服务;
感知每个数据块所属的虚拟机所在的物理服务器位置,根据感知到的物理服务器位置,将同一个虚拟磁盘上的所有数据块的副本放置在该物理服务器上。
4.根据权利要求3所述的一种超融合系统的数据分配方法,其特征在于,所述“在数据初次IO处理过程中,启动数据分配服务”包括:
接收虚拟机的IO请求;
将虚拟机的IO请求拆分为数据块IO请求,并检查数据块的分配状态。
5.根据权利要求3所述的一种超融合系统的数据分配方法,其特征在于,所述“感知每个数据块所属的虚拟机所在的物理服务器位置,根据感知到的物理服务器位置,将同一个虚拟磁盘上的所有数据块的副本放置在该物理服务器上”包括:
判断所述数据块是否未分配空间;
若是,则所述数据分配服务为所述数据块分配空间,标记所述数据块所在的物理服务器位置,并将所述数据块的副本之一固定在虚拟机所在的物理服务器上;
若不是,则连接分配的数据块所在物理服务器,发起数据访问。
6.一种超融合系统的数据分配系统,其特征在于,包括:
拆分单元,用于拆分虚拟机虚拟磁盘的数据形成若干数据块,每个数据块具有多个数据块副本;
第一分配单元,用于在超融合物理服务器集群中,根据虚拟机运行状态和集群数据状态对每个所述数据块副本进行本地化空间位置分配,以使同一个虚拟磁盘上的所有数据块均有一份所述数据块副本放置在虚拟机所在的物理服务器上;
第二分配单元,用于对除本地化空间位置分配以外的其他所述数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集;
其中,所述“对除本地化空间位置分配以外的其他所述数据块副本进行局部化分配,以使同一个虚拟磁盘上的所有数据块副本能够按照规则有序聚集”包括:
按照拓扑感知环状分配方式,将数据块中未分配位置的数据块副本放置在距离已固定位置的数据块副本拓扑距离最大的物理服务器上,其中,拓扑距离最大指数据块副本之间共享最少的硬件设施;
判断是否存在多个拓扑距离最大的候选物理服务器;
若是,则按照节点ID辅助分配方式进行位置分配;
所述“按照节点ID辅助分配方式进行位置分配”包括:
获取所述候选物理服务器的节点ID字符串,其中,所述节点ID字符串为每个服务器在超融合集群中的唯一标记;
比较所述候选物理服务器的节点ID字符串大小关系,并根据比较结果进行分配;
还包括:判断是否存在集群数据状态改变;
若是,则重新感知虚拟机的运行位置,并在运行位置所在的物理服务器上放置相应数据块的数据块副本;
所述“重新感知虚拟机的运行位置,并在运行位置所在的物理服务器上放置相应数据块的数据块副本”包括:
根据虚拟磁盘的IO请求判断虚拟机是否发生迁移;
若是,则向副本分配服务报告虚拟机的新接入位置;
所述副本分配服务标记所述新接入位置,并在新接入位置对应的物理服务器上放置该虚拟磁盘上的所有数据块对应的一份数据块副本,以重新完成本地化空间位置分配;
根据本地化空间位置重新分配的数据块副本位置,进行其他数据块副本的局部化分配,并根据分配结果进行逐个数据块副本的位置迁移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210001164.0A CN114003350B (zh) | 2022-01-04 | 2022-01-04 | 超融合系统的数据分配方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210001164.0A CN114003350B (zh) | 2022-01-04 | 2022-01-04 | 超融合系统的数据分配方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114003350A CN114003350A (zh) | 2022-02-01 |
CN114003350B true CN114003350B (zh) | 2022-03-25 |
Family
ID=79932550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210001164.0A Active CN114003350B (zh) | 2022-01-04 | 2022-01-04 | 超融合系统的数据分配方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003350B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225642B (zh) * | 2022-06-10 | 2023-09-15 | 北京志凌海纳科技有限公司 | 超融合系统的弹性负载均衡方法及系统 |
CN115048254B (zh) * | 2022-07-11 | 2022-12-09 | 北京志凌海纳科技有限公司 | 数据分配策略的仿真测试方法、系统、设备和可读介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506589B (zh) * | 2014-12-10 | 2018-04-27 | 上海爱数信息技术股份有限公司 | 一种基于超融合存储的资源迁移调度方法 |
US10678457B2 (en) * | 2016-11-22 | 2020-06-09 | Nutanix, Inc. | Establishing and maintaining data apportioning for availability domain fault tolerance |
CN109726600B (zh) * | 2017-10-31 | 2023-07-14 | 伊姆西Ip控股有限责任公司 | 针对超融合基础设施提供数据保护的系统和方法 |
CN111488198B (zh) * | 2020-04-16 | 2023-05-23 | 湖南麒麟信安科技股份有限公司 | 一种超融合环境下的虚拟机调度方法、系统及介质 |
CN113535330B (zh) * | 2021-07-26 | 2023-08-08 | 北京计算机技术及应用研究所 | 一种基于节点评价函数的超融合系统数据本地化存储方法 |
-
2022
- 2022-01-04 CN CN202210001164.0A patent/CN114003350B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114003350A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10277525B2 (en) | Method and apparatus for disaggregated overlays via application services profiles | |
US9858322B2 (en) | Data stream ingestion and persistence techniques | |
US9794135B2 (en) | Managed service for acquisition, storage and consumption of large-scale data streams | |
CN114003350B (zh) | 超融合系统的数据分配方法和系统 | |
US9276959B2 (en) | Client-configurable security options for data streams | |
US9128899B1 (en) | Predictive failover planning | |
US20170160965A1 (en) | Optimization of in-memory data grid placement | |
KR102051282B1 (ko) | 선택적 리소스 이동을 이용하는 네트워크 결합 메모리 | |
US10846079B2 (en) | System and method for the dynamic expansion of a cluster with co nodes before upgrade | |
CN103647668A (zh) | 一种高可用集群内主机群体决策系统及切换方法 | |
CN112948063B (zh) | 云平台的创建方法、装置、云平台以及云平台实现系统 | |
CN110912991A (zh) | 一种基于超融合双节点高可用的实现方法 | |
JP4920248B2 (ja) | サーバの障害回復方法及びデータベースシステム | |
US9823948B2 (en) | Efficient resource utilization in data centers | |
US20170212815A1 (en) | Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program | |
US9148430B2 (en) | Method of managing usage rights in a share group of servers | |
JP2015075898A (ja) | 処理再開方法、処理再開プログラムおよび情報処理システム | |
CN116881053B (zh) | 数据处理方法及交换板、数据处理系统、数据处理装置 | |
CN115292408A (zh) | MySQL数据库的主从同步方法、装置、设备及介质 | |
CN115225642A (zh) | 超融合系统的弹性负载均衡方法及系统 | |
CN116974489A (zh) | 一种数据处理方法、装置、系统、电子设备及存储介质 | |
US8074109B1 (en) | Third-party voting to select a master processor within a multi-processor computer | |
KR20120063946A (ko) | 대용량 통합 메모리를 위한 메모리 장치 및 이의 메타데이터 관리 방법 | |
JP4375121B2 (ja) | データベース管理システムにおける処理代行方法 | |
WO2015037103A1 (ja) | サーバシステム、計算機システム、サーバシステムの管理方法、及びコンピュータ読み取り可能な記憶媒体 |
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 | ||
CP03 | Change of name, title or address |
Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086 Patentee after: Beijing Zhiling Haina Technology Co.,Ltd. Country or region after: China Address before: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086 Patentee before: Beijing zhilinghaina Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |