CN113157395A - 一种优化计算机内存数据同步的方法 - Google Patents
一种优化计算机内存数据同步的方法 Download PDFInfo
- Publication number
- CN113157395A CN113157395A CN202110423634.8A CN202110423634A CN113157395A CN 113157395 A CN113157395 A CN 113157395A CN 202110423634 A CN202110423634 A CN 202110423634A CN 113157395 A CN113157395 A CN 113157395A
- Authority
- CN
- China
- Prior art keywords
- slave
- block
- dirty
- synchronization
- computer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000015654 memory Effects 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 3
- 230000007547 defect Effects 0.000 abstract description 3
- 238000005457 optimization Methods 0.000 abstract description 3
- 230000001360 synchronised effect Effects 0.000 abstract description 2
- 238000013508 migration Methods 0.000 description 8
- 230000005012 migration Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction 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/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/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)
Abstract
一种优化计算机内存数据同步的方法,包括:将主VM一个数据页面被分割成连续的块;如果一个块在一个epoch期间保持不变,那么在这个epoch结束时,这个块不会被转移到从VM;而修改过的块将被转移到从VM;从VM通过将收到的修改过的块应用到引用页,使从VM获得与主VM上相同的脏页内容;主VM将根树数据结构作为脏块的位置发送给从VM。本发明克服了现有技术的不足,通过优化节省了处理器、内存使用量和同步带宽,提高了VM性能和网络吞吐量延迟。在实现高效、连续的内存状态同步的同时,能够提高VM性能。
Description
技术领域
本发明涉及计算机虚拟化技术领域,具体涉及一种优化计算机内存数据同步的方法。
背景技术
虚拟化技术允许多个VM(虚拟机)同时运行在一个物理服务器上。其中,所有物理资源被虚拟化为虚拟CPU、内存、网卡和各种虚拟设备的资源池。虚拟化资源,多个操作***共享一组物理硬件不仅提高硬件利用率较低功耗,而且还极大地使弹性软件定义的可管理性,如动态迁移、内存快照,动态配置。VM实时迁移被认为是虚拟化带来的最重要的好处,因为它是支持零停机维护服务的重点支持技术。VM迁移技术可以将运行中的VM从一台主物理机器转移到另一台从物理机器,而在迁移过程中不中断其服务(如图1所示)。为了最小化迁移时间,现代虚拟基础设施中通常使用共享网络存储***来节省迁移存储***的时间。一般来说,动态迁移是虚拟化基础设施中的一种常见实践,它是一种强大的工具,可以节省电源并消除硬件升级期间的服务中断。
但是,由于硬件事故(如电源故障或硬件故障),仍然可能发生意外的服务停机,这使得在线迁移服务在迁移过程中会丢掉宕机的机器内存数据,造成VM进行重启操作。由于运营商级业务通常需要高可用性、不间断的业务基础设施,本文提出了一种基于虚拟的容错体系结构,在实现高效、连续的内存状态同步的同时,能够提高VM性能。
发明内容
针对现有技术的不足,本发明提供了一种优化计算机内存数据同步的方法,克服了现有技术的不足,设计合理,通过优化节省了处理器、内存使用量和同步带宽,提高了VM性能和网络吞吐量延迟。在实现高效、连续的内存状态同步的同时,能够提高VM性能。
为实现以上目的,本发明通过以下技术方案予以实现:
一种优化计算机内存数据同步的方法,包括:
将主VM一个数据页面被分割成连续的块;
如果一个块在一个epoch期间保持不变,那么在这个epoch结束时,这个块不会被转移到从VM;而修改过的块将被转移到从VM;
从VM通过将收到的修改过的块应用到引用页,使从VM获得与主VM上相同的脏页内容;
主VM将根树数据结构作为脏块的位置发送给从VM。
优选地,被分割的块的大小取决于运行的处理器上SSE指令能处理多少位。
优选地,所述根树由两层脏位头组成。且每个脏位头都是一个字节长。
优选地,将复制函数从VM空间更改为内核空间。让KVM模块将数据从客户内存复制到内核缓冲区。
本发明提供了一种优化计算机内存数据同步的方法。具备以下有益效果:通过优化节省了处理器、内存使用量和同步带宽,提高了VM性能和网络吞吐量延迟。在实现高效、连续的内存状态同步的同时,能够提高VM性能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对现有技术描述中所需要使用的附图作简单地介绍。
图1 本发明的结构示意图;
图2 本发明中以基数树的数据结构图;
图3 本发明中数据传输结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述。
如图1-3所示,一种优化计算机内存数据同步的方法,包括:
主VM一个数据页面被分割成连续的块,块的大小取决于运行的处理器上SSE指令能处理多少位;在本实施例中,数据页面为4096字节。假设块大小为512位或64字节,然后一个页面可以被划分为64个块。
如果一个块在一个epoch期间保持不变,那么在这个epoch结束时,这个块不会被转移到从VM,只有那些修改过的块将被转移到从VM。从VM已经在前一个时期收到了这些页,所以通过将修改过的块应用到引用页,从VM将获得与主VM上相同的脏页内容。除了脏块之外,主VM还将根树数据结构作为脏块的位置发送给从VM。
根树由两层脏位头组成,每个脏位头都是一个字节长。第一级脏位头是一个字节长,这意味着每个位代表数据长度为4096字节/ 8 = 512字节。如果页面内的第i个512字节是脏的,那么(i-1)位被设置在第一级脏的位头中。对于每个512字节的脏数据块,有一个二级脏位头,每个脏位表示512字节/ 8 = 64字节的数据长度。类似地,如果大小为64字节的第i个块在512字节内被脏了,(i-1)位被设置在第2级脏位头中。所以第一级脏比特头中的一位对应于第二级脏比特头。如果在一级脏位头中没有设置一位,则该位不存在相应的二级脏位头,并且没有数据块。
在传输阶段,需要传输上一节所跟踪的细粒度脏区域产生的脏块。只存储脏块的地址,所以如果想要传输脏块,需要将数据从VM内存复制到备份传输套接字缓冲区。在完整的数据复制路径中,数据应该复制三次,第一次是将VM内存复制到QEMU缓冲区。第二步是从QEMU缓冲区(VM空间)复制到内核缓冲区(内核空间)。最后,数据将从内核缓冲区复制到套接字缓冲区,供网卡驱动程序传输。
将复制函数从VM空间更改为内核空间。让KVM模块将数据从客户内存复制到内核缓冲区。减少了复制路径的一次复制次数,减少从VM内存到内核缓冲区的复制(如图3所示)。直接将数据从VM内存复制到套接字缓冲区。复制的次数只是一次。提供全量同步内存数据的效率。收集内核缓冲区上的数据,并让传输套接字能够高效地传输数据块。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.一种优化计算机内存数据同步的方法,其特征在于:包括:
将主VM一个数据页面被分割成连续的块;
如果一个块在一个epoch期间保持不变,那么在这个epoch结束时,这个块不会被转移到从VM;而修改过的块将被转移到从VM;
从VM通过将收到的修改过的块应用到引用页,使从VM获得与主VM上相同的脏页内容;
主VM将根树数据结构作为脏块的位置发送给从VM。
2.根据权利要求1所述的一种优化计算机内存数据同步的方法,其特征在于:被分割的块的大小取决于运行的处理器上SSE指令能处理多少位。
3.根据权利要求2所述的一种优化计算机内存数据同步的方法,其特征在于:所述根树由两层脏位头组成,且每个脏位头都是一个字节长。
4.根据权利要求1所述的一种优化计算机内存数据同步的方法,其特征在于:将复制函数从VM空间更改为内核空间,让KVM模块将数据从客户内存复制到内核缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110423634.8A CN113157395A (zh) | 2021-04-20 | 2021-04-20 | 一种优化计算机内存数据同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110423634.8A CN113157395A (zh) | 2021-04-20 | 2021-04-20 | 一种优化计算机内存数据同步的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113157395A true CN113157395A (zh) | 2021-07-23 |
Family
ID=76868991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110423634.8A Pending CN113157395A (zh) | 2021-04-20 | 2021-04-20 | 一种优化计算机内存数据同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157395A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488153A (zh) * | 2009-02-12 | 2009-07-22 | 浙江大学 | 嵌入式Linux下大容量闪存文件***的实现方法 |
CN102629946A (zh) * | 2012-04-22 | 2012-08-08 | 复旦大学 | 利用内存零复制降低云计算网络传输能源消耗的方法 |
CN104007993A (zh) * | 2014-06-11 | 2014-08-27 | 中国科学院信息工程研究所 | 一种Linux***内存敏感数据的清除方法及装置 |
US20160132443A1 (en) * | 2014-11-12 | 2016-05-12 | Vmware, Inc. | Tracking virtual machine memory modified by a single root i/o virtualization (sr-iov) device |
CN105893114A (zh) * | 2016-04-05 | 2016-08-24 | 浪潮电子信息产业股份有限公司 | 一种虚拟机迁移的方法、目的宿主机和源宿主机 |
CN106484495A (zh) * | 2016-10-14 | 2017-03-08 | 上海泓戟信息科技有限公司 | 一种虚拟机磁盘数据块同步方法 |
CN107704400A (zh) * | 2017-10-12 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种面向非易失存储的页缓存方法 |
CN111831490A (zh) * | 2020-06-30 | 2020-10-27 | 中国船舶重工集团公司第七一六研究所 | 一种冗余主备用节点之间内存同步方法及*** |
-
2021
- 2021-04-20 CN CN202110423634.8A patent/CN113157395A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488153A (zh) * | 2009-02-12 | 2009-07-22 | 浙江大学 | 嵌入式Linux下大容量闪存文件***的实现方法 |
CN102629946A (zh) * | 2012-04-22 | 2012-08-08 | 复旦大学 | 利用内存零复制降低云计算网络传输能源消耗的方法 |
CN104007993A (zh) * | 2014-06-11 | 2014-08-27 | 中国科学院信息工程研究所 | 一种Linux***内存敏感数据的清除方法及装置 |
US20160132443A1 (en) * | 2014-11-12 | 2016-05-12 | Vmware, Inc. | Tracking virtual machine memory modified by a single root i/o virtualization (sr-iov) device |
CN105893114A (zh) * | 2016-04-05 | 2016-08-24 | 浪潮电子信息产业股份有限公司 | 一种虚拟机迁移的方法、目的宿主机和源宿主机 |
CN106484495A (zh) * | 2016-10-14 | 2017-03-08 | 上海泓戟信息科技有限公司 | 一种虚拟机磁盘数据块同步方法 |
CN107704400A (zh) * | 2017-10-12 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种面向非易失存储的页缓存方法 |
CN111831490A (zh) * | 2020-06-30 | 2020-10-27 | 中国船舶重工集团公司第七一六研究所 | 一种冗余主备用节点之间内存同步方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144415B2 (en) | Storage system and control software deployment method | |
US8200771B2 (en) | Workload migration using on demand remote paging | |
US9389976B2 (en) | Distributed persistent memory using asynchronous streaming of log records | |
US10382279B2 (en) | Dynamically composed compute nodes comprising disaggregated components | |
US9164853B2 (en) | Multi-core re-initialization failure control system | |
US9507845B1 (en) | Virtual splitter | |
US20190149399A1 (en) | Dynamic reconfiguration of resilient logical modules in a software defined server | |
US9886736B2 (en) | Selectively killing trapped multi-process service clients sharing the same hardware context | |
US8495267B2 (en) | Managing shared computer memory using multiple interrupts | |
JP5373893B2 (ja) | 異なるサイズを有するデータのブロックを格納し、取り出すための構成 | |
CN102693230B (zh) | 用于存储区域网络的文件*** | |
US20200026603A1 (en) | Distributed memory checkpointing using storage class memory systems | |
KR102043276B1 (ko) | 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법 | |
US20140129635A1 (en) | Low latency cluster computing | |
US20220113915A1 (en) | Systems, methods, and devices for accelerators with virtualization and tiered memory | |
US20220027247A1 (en) | Maintenance operations based on analysis of collected data | |
WO2023169185A1 (zh) | 内存管理方法和装置 | |
US20150378706A1 (en) | Software overlays for disaggregated components | |
Li et al. | Efficient live virtual machine migration for memory write-intensive workloads | |
CN107528871B (zh) | 存储***中的数据分析 | |
WO2024051292A1 (zh) | 数据处理***、内存镜像方法、装置和计算设备 | |
Shimada et al. | Proposing a new task model towards many-core architecture | |
CN113157395A (zh) | 一种优化计算机内存数据同步的方法 | |
CN110569105A (zh) | 分布式虚拟机自适应内存一致性协议及其设计方法、终端 | |
Huang et al. | Efficient one-copy MPI shared memory communication in virtual machines |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210723 |
|
RJ01 | Rejection of invention patent application after publication |