Xen虚拟机实战:如何用Linux命令建快照

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

虚拟机快照是一个非常好的功能,它能保存当前虚拟机的状态。不幸的是开源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命令来创建快照。

【编辑推荐】

  1. 如何分级抵御对Linux服务器的攻击
  2. 攻防有道 剖析对Linux服务器的攻击
  3. Linux服务器平台的安全保护
责任编辑:赵宁宁 来源: TeachTarget
相关推荐

2010-01-21 11:17:36

xen虚拟机

2014-02-21 11:20:34

KVMXen虚拟机

2013-08-16 11:17:35

虚拟桌面虚拟快照

2010-08-30 10:11:25

XenKVM虚拟机迁移

2014-07-29 16:50:11

linux快照

2010-04-09 11:34:12

Xen虚拟机

2009-09-27 10:20:19

挂载虚拟机磁盘Xen环境

2013-07-19 18:09:18

Linux基金会Xen 4.3

2012-03-16 09:26:13

LVMXen虚拟机

2009-07-21 13:09:37

虚拟机存储Xen

2009-09-04 11:19:02

Xen虚拟机迁移

2009-08-14 13:30:44

配置linux虚拟机s

2012-03-18 22:33:15

centosxen

2009-08-14 13:18:41

配置linux虚拟机s

2012-04-10 10:29:29

2010-12-23 14:05:12

虚拟机

2017-03-21 16:48:38

2018-06-22 10:30:56

C语言虚拟机编译器

2009-10-28 10:07:22

linux虚拟机添加硬盘

2010-02-01 08:39:50

Linux虚拟机
点赞
收藏

51CTO技术栈公众号