热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何使用xen虚拟机快照

虚拟机快照是一个非常好的功能,它能保存当前虚拟机的状态。不幸的是开源Xen不提供对快照的支持,而Linux能支持。由于开源Xen通常使用Linux作为它的特权域,所以你能使用Linux命令创建快照。逐个字节进行快照在Xen里创建快照的一种方法是在保存虚拟机当前

虚拟机快照是一个非常好的功能,它能保存当前虚拟机的状态。不幸的是开源Xen不提供对快照的支持,而Linux能支持。由于开源Xen通常使用Linux作为它的特权域,所以你能使用Linux命令创建快照。

逐个字节进行快照

在Xen里创建快照的一种方法是在保存虚拟机当前状态后使用Linux dd。这包括以下步骤:

1.使用xm save命令禁用当前的虚拟机状态并将其写入磁盘文件。这只把机器状态写入一个文件,不是用于Xen磁盘文件或分区的当前状态。使用名称linux01这样做,用xm save linux01 linux01.sav。注意这个命令将停止虚拟机。

2.现在使用dd将磁盘镜像文件的当前状态转存到一个备份文件。下面的例子将为LVM逻辑卷:

dd if=/dev/xenvols/linux01_root of=/data/xen_linux01_root.img

3.使用xm restore命令重新启动虚拟机。

这种解决方案的主要缺点在于耗时。dd命令逐个字节地对虚拟机磁盘文件进行复制,因此需要消费大量时间。所以这种方案不是非常实用。

LVM方法

在Linux里,Logical Volume Manager(LVM)也能用于创建快照,它比先前的磁盘文件方法节省了许多时间。这种方法意味着你的虚拟机使用LVM逻辑卷作为存储后端,与使用虚拟磁盘文件形成对比。由于这个逻辑卷,你接下来需要创建快照。这个快照是一种备份,只包含当时进行快照时所改变的元数据和块。当你通过元数据使用dd制作快照副本时,你通常在原始卷上制作原始块的快照,不需要重新激活原始卷。通过这种方式,能大幅度减少创建快照的时间。步骤如下:

1.使用xm save命令保存虚拟机当前状态,并写入磁盘文件:

xm save linux01 linux01.sav

2.假定你已经有一个LVM逻辑卷用来作为你虚拟机的存储后端,使用下面的命令对这个卷进行快照。比较好的准则是使用在原始逻辑卷里所分配磁盘空间的10%作为快照卷的大小:

lvcreate -s -L 1G -n linux01-snap /dev/xenvols/linux01

3.由于现在你已经在LVM快照里保存了虚拟机的状态,你能重新启动虚拟机,显著减少虚拟机的停机时间:

xm restore linux01-sav

4.使用dd创建虚拟机快照并写入一个镜像文件。由于要使用快照复制所有虚拟机分配的磁盘块,这将花费很长时间:

dd if=/dev/xenvols/linux01-snap of=/data/xen01.img

5.不要忘记在最后一步移除快照。这很重要,因为快照最终将被完全覆盖而导致快照不能用。这样的问题是将阻止你从原始卷重新启动,因此不要忘记这最后一步:

lvremove /dev/xenvols/linux01-snap

目前,没有任何一种Linux版本提供了在开源Xen堆栈里创建虚拟机快照的方法,在本文中,我们学习了使用标准Linux工具,如LVM和dd命令来创建快照。


推荐阅读
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 2012年7月30日,语言岛团队宣布其智能记单词软件V0.3.4.554版本正式开源。该版本不仅支持跨平台使用,还引入了多项创新功能,旨在帮助用户更高效地记忆单词。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • CentOS 6.8 上安装 Oracle 10.2.0.1 的常见问题及解决方案
    本文记录了在 CentOS 6.8 系统上安装 Oracle 10.2.0.1 数据库时遇到的问题及解决方法,包括依赖库缺失、操作系统版本不兼容、用户权限不足等问题。 ... [详细]
  • 本文详细介绍了如何在Ubuntu的Enlightenment (E17) 桌面环境中管理和优化桌面图标及根菜单。通过本文,您将了解这些功能的作用及其配置方法。 ... [详细]
  • 本文详细介绍了Linux系统中的进程管理函数,涵盖了获取进程ID、用户ID、创建子进程、信号处理等关键操作。通过这些函数,开发者可以更好地控制和管理进程行为。 ... [详细]
  • 本文详细介绍了如何在Linux系统中创建和管理DB2数据库,包括用户切换、数据库创建、错误处理、连接与断开、表空间和缓冲池的创建,以及用户权限管理和数据导入导出等操作。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • Shell脚本中变量操作详解
    本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ... [详细]
  • Linux系统中光驱与硬盘的设备文件映射
    在Linux操作系统中,所有硬件设备都通过特定的设备文件进行访问。本文详细介绍了磁盘和光驱等存储设备在Linux中的设备文件命名规则及其分区表示方法。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
author-avatar
mobiledu2502872283
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有