CNware快照技术采用双轨服务模式,显著改善虚拟机快照执行时执行后性能下降问题|附技术原理

在数字化时代,虚拟化技术已成为数据中心管理与云计算领域的基石。虚拟化技术允许在单一物理服务器上运行多个独立的虚拟环境,即虚拟机。每个虚拟机都能拥有专属的操作系统、应用程序和配置,彼此隔离,互不影响。然而,如何快速恢复或复现虚拟机状态成为一大挑战,虚拟机快照技术便是在这样的背景下脱颖而出,以其独特的魅力,为系统的可靠性和灵活性提供了强有力的支撑。

应用场景:灵活应变,安全无忧

在系统变更、故障诊断等场景都会使用到快照,它可以帮助我们轻松地将虚拟机恢复到特定时刻的状态。

  • 系统备份与恢复:在进行系统升级、打补丁或安装新软件前,创建快照,一旦操作导致系统不稳定或故障,可迅速恢复到快照状态,保障业务连续性。

  • 开发与测试:开发者可通过快照功能快速创建和恢复测试环境,实现环境一致性,加速软件开发周期。

  • 故障诊断:当虚拟机遇到问题时,回滚到故障发生前的快照,帮助识别和解决问题。

  • 数据保护与合规:定期创建快照作为数据保护措施,满足法规遵从要求,如数据保留政策。

CNware 中的快照技术

快照定义

虚拟机快照可保存其特定时刻数据和配置信息,虚拟机和虚拟机快照是独立的存在,它们并不互相依赖。

虚拟机快照包含下面信息:

  • 虚拟磁盘的快照(共享虚拟磁盘除外)。

  • 虚拟机的配置信息,例如 vCPU 个数、内存大小、磁盘配置、网络配置等。

快照增强

虚拟机在关机、运行时均支持创建快照,多个磁盘的情况下,支持任意选择磁盘。同时,提供内存快照和一致性快照功能。

创建快照-CNware中的快照技术_云宏虚拟化

内存快照

虚拟机执行快照时,除了对硬盘数据执行快照之外,虚拟机会进入静默状态,内存也会同时执行快照,并持久化保存内存数据;当执行虚拟机快照恢复时,可加载内存快照数据。

一致性快照

特别设计用于确保应用程序数据一致性的快照,通常在配合特定应用程序的协调机制(如数据库事务日志)下创建,确保即使在快照过程中,应用程序数据也是完整且可恢复的。除了虚拟硬盘上的数据之外,还会记录内存和待处理 I/O 操作中的所有数据。在一致性快照之前,访客操作系统上的文件系统会进入静默状态,内存中的所有文件系统缓存数据和待处理I/O 操作都会刷新到硬盘。

内外兼修,降低性能影响

CNware同时提供内部快照与外部快照两种模式,内部快照与外部快照相辅相成,应用于不同的业务场景,解决虚拟机磁盘性能和存储空间占用之间的权重,执行快照时、执行快照后虚拟机性能下降,快照管理复杂等问题。

内部快照

内部快照主要应用于虚拟机高速硬盘,磁盘文件可以包含多个快照层,形成一个快照链。主要应用于对业务连续性要求极高的场景。

技术原理

内部快照的核心机制在于“写时复制”(Copy-on-Write, COW)技术。

快照过程的关键步骤如下:

  • 状态捕捉:在某一时间点,虚拟化平台会记录下虚拟机的当前状态,包括内存、CPU及所有虚拟设备的状态。这些信息被汇总保存为快照元数据文件,形成一个恢复点。

  • 磁盘层处理:对于虚拟磁盘,快照并不立即复制整个磁盘内容,而是创建一个指向原始磁盘的指针(即快照层)。当虚拟机继续运行并有新的写入请求时,COW机制发挥作用——新的数据会被写入一个新的区域(快照层),而原始数据保持不变,从而“冻结”了快照时刻的磁盘状态。

  • 快照链:如果再次创建快照,同样的过程会发生,只不过这次新的写入会记录到一个新的快照层,而前一个快照层会变为只读,形成了一个快照链。每个快照都包含一个指向前一个快照或基础磁盘的指针,以及自己的差异数据。

  • 回滚到快照:当需要回滚到某个快照时,将磁盘的活动层设置为该快照对应的快照层,之前的所有增量变化被忽略,这样就可以迅速恢复到快照时的状态。

  • 合并快照:为了释放空间或优化性能,可以将快照链中的快照合并,减少快照链的复杂度和存储占用。

优点与限制

优点:内部快照占用的空间初始时很小,因为它们只存储差异数据。快照创建速度快,适合频繁备份和快速恢复场景。

限制:随着快照数量增加,磁盘I/O性能可能会下降,特别是在快照链较长的情况下。

外部快照

外部快照是在虚拟机的存储层次之外创建的一个时间点映像,可以存储在本地磁盘、网络存储或云存储等多种位置,而不局限于虚拟化平台自身的存储设备。主要应用于数据备份和长期数据保护的场景。

技术原理

外部快照的核心机制在于引入差异磁盘的概念,通过协调虚拟磁盘与一个或多个辅助磁盘文件来实现对虚拟机状态的即时保存和灵活恢复。数据结构如下:

  • 基础磁盘:包含虚拟机初始状态或上一个快照时的数据,是快照链的起点。

  • 差异磁盘:一系列增量数据块,记录自上一个快照以来的所有变化,每个快照对应一个差异磁盘。

  • 元数据:存储快照的元信息,包括快照时间、快照名称、指向基础磁盘和差异磁盘的指针等,用于管理快照之间的关系和恢复流程。

快照过程的关键步骤如下:

  • 冻结虚拟机状态:在创建快照之前,首先要确保虚拟机的文件系统处于一致的状态,避免数据损坏。需暂时停止虚拟机的所有活动,确保没有正在进行的I/O操作。

  • 创建基快照:对于首次创建快照,原始虚拟磁盘(如qcow2格式)会被复制或标记为“基础快照”。qcow2格式支持一种称为“CoW(Copy-on-Write)”的机制,这意味着只有在数据需要修改时才会被复制到新的位置,从而减少快照创建时的空间需求和时间成本。

  • 建立差异磁盘:一旦基础快照准备就绪,系统会创建一个或多个“差异磁盘”(delta disk)。这个差异磁盘是一个薄层,仅记录自快照创建以来虚拟机对磁盘所做的所有更改。这意味着后续的写操作将直接写入差异磁盘,而不会改变基础快照的内容。

  • 解冻并恢复运行:完成差异磁盘的设置后,虚拟机被解冻,恢复正常运行。此时,所有新的读写请求会根据快照机制透明地重定向到差异磁盘。对于读操作,如果数据存在于差异磁盘,则直接从差异磁盘读取;如果不存在,则从基础快照中读取。

优点与限制

优点:外部快照与虚拟机之间没有直接的紧密关联,其创建和管理过程对虚拟机的性能影响较小;同时,即使虚拟机被误删除或损坏,快照数据仍然可以独立存在并被恢复。

限制:差异磁盘会占用额外的存储空间,长期累积可能造成存储资源紧张。读取数据时,若需同时访问原始磁盘和差异磁盘,可能会导致I/O性能下降,尤其是在频繁读取旧数据的情况下更为明显。

---

CNware虚拟化平台的快照技术,采用内部&外部快照双轨服务模式,针对不同存储类型,细分使用场景,显著改善了执行快照时、执行快照后虚拟机性能下降问题;同时,即能节省存储空间,也能保证多个快照间的独立性,方便运维人员对快照进行管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易天智能eHR管理平台 CreateUser 任意用户添加漏洞复现

0x01 产品简介 易天智能eHR管理平台是一款功能全面、智能化的人力资源管理软件,旨在帮助企业提高人力资源管理效率和管理水平。该平台通过集成员工信息、薪酬管理、档案人事管理、绩效管理和招聘管理等多个模块,实现了人力资源管理的全面智能化管理。 0x02 漏洞概述 易天智…

权重衰退及代码

一、硬性限制 1、通常不限制偏移b,因为限制不会有区别;seta越小,意味着正则项强 2、优化的是最小化的损失函数 3、后部的限制条件,每个项的平方和小于一个值;极端情况下,当seta等于0,意味着所…

苹果笔记本双系统怎么安装

想要在mac电脑上装双系统,首先需要确认您的电脑是否支持。苹果电脑自带的boot camp工具可以帮助您在mac上安装windows系统,只需按照步骤进行操作即可。另外,您也可以使用虚拟机软件,如parallels desktop或vmware fusion&#xff0…

统信UOS 安装二级制版MySQL8.4

统信UOS 安装二级制版MySQL8.4 建立MySQL用户和用户组 sudo groupadd mysqlsudo useradd -r -g mysql -s /bin/false mysql下载MySQL安装包 wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz解压缩MySQL安装包 sudo tar -xvf m…

在Ubuntu22.04 使用stable-diffusion-webui 秋叶整合包

背景 众所周知,赛博菩萨已经发布了windows下的整合包,开箱即用,且集成度较高。 那我为啥非要在Ubuntu下使用呢? 当然是因为主力机就是Ubuntu系统啦。而且涉及到sd webui API 的调用,在Ubuntu 下调试更加方便一点。 那…

ZS-20H型水泥胶砂振实台

一、 概述 水泥胶砂振实台是为我国水泥胶砂强度检验方法等同采ISO679国际标准而设计。该仪器符合 JC/T 682《水泥胶砂试体成型振实台》要求,适用于水泥强度检验所用试样的制备。 二、 技术数据 1、台盘(包括臂杆、压模框等)的总质量 13.75 …

基于Java的在线编程考试系统【附源码】

毕业设计(论文) 题目:基于 二级学院: 现代技术学院 专业(方向): 计算机应用技术 班 级: 计科B2015 学 生: 指导教师: 2024年1月 29 日 本科毕业论文(设计)学术诚信声明 本人郑重…

excel字符串列的文本合并

excel表有两列,第一列是“姓名”,第二列是“诊断”,有高血压、糖尿病等。我想出一个统计表,统计“姓名”,把某一个姓名的诊断不重复的用、拼接起来,比如“张三”的诊断为“点高血压”、糖尿病。我们可以用T…

基于STM32+华为云IOT设计的智能冰箱(华为云IOT)

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】摘要 1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发 二、部署华为云物联网平台2.1 物联网平台介绍2.2 开通物联网服务2.3 创建产品&#xff08…

C#语言+前端框架uni-app+后端框架net全套【线上预约挂号流程】先一步预约,快一步诊疗 预约挂号系统源码

C#语言前端框架uni-app后端框架net全套【线上预约挂号流程】先一步预约,快一步诊疗 预约挂号系统源码 随着互联网的不断发展,人们的生活方式也在不断发生着变化。在医疗领域,传统的看病方式已经不能满足人们的需求,越来越多的人开…

仓颉编程语言 -- 初识(一)

官网 文档 原生智能化 内嵌AgentDSL的编程框架,自然语言&编程语言有机融合;多Agent协同,简化符号表达,模式自由组合,支持各类智能应用开发。 天生全场景 轻量化可缩放运行时,模块化分层设计&#xf…

Nuxt3: 强制删除__NUXT_DATA__的一种方式

一、问题描述 环境:Node 18.14.0,Nuxt 3.12.2 with Nitro 2.9.6 后台粉丝提问,能否在Nuxt3的页面中不要生成__NUXT_DATA__,因为里面包含了接口返回的数据,感觉数据暴露并且加大了页面的html内容的大小: &l…

Core ML 简介:构建简单的图像识别应用程序

在 2017 年的 WWDC 上,苹果发布了许多令人兴奋的框架和 API 供我们开发人员使用。在所有新框架中,最受欢迎的框架之一肯定是Core ML。Core ML 是一个可用于将机器学习模型集成到您的应用程序中的框架。Core ML 最好的部分是您不需要有关神经网络或机器学…

mac配置修改host文件

1command 空格 输入 terminal 选中回车进入终端控制台. command 空格 2 sudo vi /etc/hosts 输入密码,进入vi编辑器修改文件 sudo vi /etc/hosts3修改内容,:wq保存退出,重启项目即可 :wq

InVEST实践及在生态系统服务供需、固碳、城市热岛、论文写作等实际项目中应用

白老师(研究员):长期从事生态系统结构-格局-过程-功能-服务的变化与响应关系等研究工作,重点围绕生物多样性、生态系统服务与价值等,构建生物地球化学模型和评价指标体系,为城市、区域和自然保护区的可持续发展和生态环…

2024年【山东省安全员B证】最新解析及山东省安全员B证操作证考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【山东省安全员B证】最新解析及山东省安全员B证操作证考试,包含山东省安全员B证最新解析答案和解析及山东省安全员B证操作证考试练习。安全生产模拟考试一点通结合国家山东省安全员B证考试最新大纲及…

一文读懂RSTP流媒体传输原理

什么是流? 流(Streaming):近年在Internet上出现的新概念,定义非常广泛,主要是指通过网络传输多媒体数据的技术总称。 流式传输分为两种:顺序流式传输 (Progressive Streaming)和实时流式传输 (R…

Revit插件|建模助手「综合模块」30+个功能全面免费

噢~我的伙计们,快来猜猜是谁快满三岁了?没错,咱们的得力干将——Revit插件「建模助手」!这三年里,【综合】模块就像那个超受欢迎的小兄弟,帮了大家大忙。说起来都激动,到今年5月底,它…

【微服务网关——Go令牌桶限流】

1. time/rate限速器使用 令牌桶限流算法rate.NewLimiter(limit,burst)产生一个新的限速器 limit表示每秒产生token数、burst表示最多存token数 Allow判断当前是否可以取到tokenWait阻塞等待直到取到tokenReverse返回等待时间(预估的等待时间)&#xff0…

浅谈业务开发与非业务开发

浅谈业务开发与非业务开发 软件开发业务开发非业务开发工作量的区别 软件开发 在谈及业务开发与非业务开发之前,首先他们都是软件开发,那么软件开发的流程是怎样的呢?我们先来了解一下软件开发的流程。通常情况下软件开发的流程是这样的 在…