标签归档:虚拟机

让 Hyper-V 和 VMware 虚拟机软件共存

在 Windows Server 2008 R2、Windows server 2012 以及最新的 Windows 8 中都已经支持微软的服务器虚拟化技术 Hyper-V,只需要在功能中启动即可创建并运行需要的的虚拟机实现操作系统测试或服务器虚拟化的工作。

但有的时候除了 Hyper-V 之外,还需要运行 VMware 的虚拟机,但如果在系统中同时安装着两个虚拟机平台, VMware 虚拟机将不能运行:

1

这是因为,两者都是基于 CPU 等底层硬件的 Hypervisor 机制来实现的,而他们必须独占管理 Hypervisor,因此不能在一台电脑中同时运行。

如果实在需要在一个系统中安装和使用这两种虚拟机平台,我们暂时只能使用折中的办法,那就是为 Windows 创建两个启动菜单,在启动时可以选择是否要运行 Hyper-V。实现方法很简单,只需在 Windows 中以管理员身份运行命令提示符 cmd,然后:

1、运行 bcdedit /copy {current} /d “Windows 8 (关闭 Hyper-V)” 命令,随后会提示已经创建了另外一个启动菜单项,记下 { } 中的一串代码。

2、运行 bcdedit /set {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} hypervisorlaunchtype OFF 命令,将上面的代码替换掉这里的红色XXX代码即可,如下图:

image

再次启动 Windows 8 即可手动选择是否要启用 Hyper-V,在“关闭 Hyper-V”的模式中,即可运行 Vmware 虚拟机,而另一个选项则可以运行 Hyper-V 虚拟机,这样就可以避免为了运行 VMware 虚拟机而卸载 Hyper-V 功能了:

image

使用Qemu-img管理虚拟机磁盘镜像(创建虚拟机,虚拟机快照)

一台虚拟机的核心就是一个磁盘镜像,这个镜像可以理解成虚拟机的磁盘,里面有虚拟机的操作系统和驱动等重要文件。本文主要介绍创建虚拟机的一般过程。

创建虚拟机镜像

 

要在一台host上跑起一个虚拟机一般需要两个步骤:

第一步:创建虚拟机镜像

qemu-img create -f raw /images/vm1.raw 8G

qmeu-img创建的镜像是一个稀疏文件,也就是说刚创建出来的文件并没有8G,它会随着数据的增多慢慢增加,直到8G

 

第二步:启动虚拟机

kvm /imges/vm1.raw

运行结果: 因为镜像里面没有任何内容,所以提示找不到可引导设备。

点击查看原图

 

使用qemu-img管理镜像



 

qemu-img基本命令


 

上节介绍了使用qemu-img创建镜像,这一节将会介绍qemu-img在镜像管理上的强大功能。

qemu-img有很多命令,包括下面常用的,当然qemu-img -h你懂得。

info

查看镜像的信息

create

创建镜像

check

检查镜像

convert

转化镜像的格式,(raw,qcow ……)

snapshot

管理镜像的快照

rebase

在已有的镜像的基础上创建新的镜像

resize

增加或减小镜像大小

 创建镜像


 

qemu-img create -f <fmt> -o <options> <fname> <size>

 举例:

qemu-img create -f raw -o size=4G /images/vm2.raw

 

hzgatt@hzgatt:~/images$ ll total 0-rw-r--r-- 1 hzgatt hzgatt 4.0G  6月 29 14:11 vm2.rawhzgatt@hzgatt:~/images$ ll -s total 00 -rw-r--r-- 1 hzgatt hzgatt 4.0G  6月 29 14:11 vm2.raw

 

hzgatt@hzgatt:~/images$ qemu-img info vm2.raw 
image: vm2.rawfile format: raw
virtual size: 4.0G (4294967296 bytes)
disk size: 0

 

虽然ls中看到文件的大小是4G,但是实际上磁盘大小是0。这就是稀疏文件

 

 

转化


将一个镜像文件转化为另外一种格式,qemu-img支持的格式可以看qemu-img -h最后一行。

Supported formats: vvfat vpc vmdk vdi sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug

 

转化命令:

qemu-img convert -c -f fmt -O out_fmt -o options fname out_fname

 

-c:采用压缩,只有qcow和qcow2才支持

-f:源镜像的格式,它会自动检测,所以省略之

-O 目标镜像的格式

-o 其他选先

fname:源文件

out_fname:转化后的文件

看例子:

hzgatt@hzgatt:~/images$ qemu-img convert -c -O qcow2 vm2.raw vm2.qcow2

 

hzgatt@hzgatt:~/images$ ll -s total 136K
   0 -rw-r--r-- 1 hzgatt hzgatt 5.0G  6月 29 13:55 vm1.raw
136K -rw-r--r-- 1 hzgatt hzgatt 193K  6月 29 14:22 vm2.qcow2
   0 -rw-r--r-- 1 hzgatt hzgatt 4.0G  6月 29 14:11 vm2.raw
hzgatt@hzgatt:~/images$ qemu-img info vm2.qcow2 
image: vm2.qcow2file format: qcow2
virtual size: 4.0G (4294967296 bytes)
disk size: 136K
cluster_size: 65536

 

如果想看要转化的格式支持的-o选项有哪些,可以在命令末尾加上 -o ?

 

增加减少镜像大小


注意:只有raw格式的镜像才可以改变大小

hzgatt@hzgatt:~/images$ qemu-img resize vm2.raw +2GB

 

快照


查看快照

qemu-img snapshot -l /images/vm2.qcow2

注意:只有qcow2才支持快照

打快照

qemu-img snapshot -c booting vm2.qcow2

 

举例:

hzgatt@hzgatt:~/images$ qemu-img snapshot -c booting vm2.qcow2 hzgatt@hzgatt:~/images$ qemu-img snapshot -l vm2.qcow2 
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK1         booting                   0 2012-06-29 14:35:04   00:00:00.000

 

从快照恢复:

qemu-img snapshot -a 1 /images/vm2.qcow2

然后从kvm启动这个虚拟机,会发现虚拟机又在打快照时的状态了

 

删除快照:

qemu-img snapshot -d 2 /images/vm2.qcow

 

 

使用派生镜像(qcow2)


    当创建的虚拟机越来越多,并且你发现好多虚拟机都是同一个操作系统,它们的区别就是安装的软件不大一样,那么你肯定会希望把他们公共的部分提取出来,只保存那些与公共部分不同的东西,这样镜像大小下去了,空间变多了,管理也方便了。派生镜像就是用来干这事的!

首先看一个原始镜像

hzgatt@hzgatt:~/images$ qemu-img info vm3_base.raw 
image: vm3_base.rawfile format: raw
virtual size: 2.0G (2147483648 bytes)
disk size: 2.0G

现在我们新建一个镜像,但是派生自它

hzgatt@hzgatt:~/images$ qemu-img create -f qcow2 vm3_5.qcow2 -o backing_file=vm3_base.raw 5G Formatting 'vm3_5.qcow2', fmt=qcow2 size=5368709120 backing_file='vm3_base.raw' encryption=off cluster_size=65536

 

hzgatt@hzgatt:~/images$ ll-rw-r--r-- 1 hzgatt hzgatt 193K  6月 29 15:00 vm3_5.qcow2-rw-r--r-- 1 hzgatt hzgatt 2.0G  6月 29 14:51 vm3_base.raw 

 

 

 ^_^,这个镜像才136K,够省了吧。DRY永远的真理啊!

现在我们在vm3_5.qcow2上打了很多安全补丁,然后发现我又想在vm3_5.qcow2上派生新的虚拟机,o(∩∩)o...哈哈,这下怎么办呢?

hzgatt@hzgatt:~/images$ qemu-img convert -O raw vm3_5.qcow2 vm3_base2.raw

 

hzgatt@hzgatt:~/images$ qemu-img info vm3_base2.raw 
image: vm3_base2.rawfile format: raw
virtual size: 5.0G (5368709120 bytes)
disk size: 592M

 

这个转化将会将vm3_5和base合并,生成新的vm3_base2.raw,然后你就可以继续无穷无尽的派生之旅了!

 

VHD虚拟磁盘格式结构

VHD(Microsoft Virtual Hard Disk)是一种虚拟磁盘的实现方式,即通过文件来模拟物理磁盘的方式来存储数据。如同正常的物理磁盘一样,可以分区,格式化等。
VHD最早由Connectix公司定义,之后Connectix公司被Microsoft 收购。
VHD格式用于Microoft Virtual PC 、Microsoft Windows Server 2008 R2和Microsoft Windows 7,包括hypervisor为基础的虚拟化技术- Hyper-V。
VHD也用于xen虚拟化,目前也是xen上虚拟磁盘的默认标准。

 

Hard disk footer fields

Size (bytes)

Cookie

8

Features

4

File Format Version

4

Data Offset

8

Time Stamp

4

Creator Application

4

Creator Version

4

Creator Host OS

4

Original Size

8

Current Size

8

Disk Geometry

4

Disk Type

4

Checksum

4

Unique Id

16

Saved State

1

Reserved

427

VMLite XP - 硬件不支持虚拟化也能运行Windows XP模式

      为了兼顾 Windows7 的软件兼容性,微软推出了一个“Windows XP模式”。它能在Win7上再运行多一个虚拟的XP系统,方便你像使用Win7下的软件一样,使用一些只支持XP的旧软件。这本来是个不错的创意,但是可惜的是“Windows XP模式”需要CPU支持虚拟化技术,比如Intel的VT或者AMD的AMD-V技术,而实际上,并不是所有人的CPU都支持这种虚拟化特性。

      今天给大家介绍虚拟机软件VMLite便针对次限制,推出了“VMLite XP 模式”,它不需要硬件支持支持虚拟化也可以运行。它完全克隆了微软的“Windows XP模式”,两者运行起来的效果几乎完全一样。而且VMLite直接支持你下载好或者已安装好的Windows XP模式安装文件,你可以直使用微软免费送给你的正版Windows XP。这样相比使用其他的虚拟机如VirtualBox更加实惠,起码不用额外购买正版XP了……

 

点击查看原图
VMLite 主界面截图

      值得一说的是,“VMLite XP 模式”是由大陆留学美国斯坦福大学的骆辉红博士在硅谷创办的VMLite公司日前发布的一款产品,其带领团队开发的虚拟机成为全球第一款由中国人自己设计的,可以不需要硬件支持就可以运行在任意PC上的“XP模式超瘦高速虚拟机”。而且VMLite XP模式完全免费,值得佩服!

VMLite XP 模式相对于微软 XP 模式的优势:

 

      支持更多的虚拟机映像格式: VMLite 支持微软的XPM 包,以及基于现有的虚拟机厂商技术已经产生的虚拟机镜像(VMDK,VHD,  VDI,  HDD 格式)。它也支持使用VMLite的 MyOldPCs 软件从旧的计算机转换而来的虚拟机镜像。

      支持更多的操作系统:微软 XP 模式要求主机必须安装Win7。VMLite 对主机的要求很少。主机可以运行Windows  XP / Vista / 7 /  2003 Server/ 2008 Server。

      速度快:  在微软的实现机制里,虚拟机虽然运行在本地的主机上,它被作为一个远程的计算机来对待。微软使用远程显示协议(RDP)完成虚拟机之间以及虚拟机和主机之间的通信。VMLite 在虚拟机和主机之间使用高带宽的直接的通信机制,因此执行起来比微软快得多。

      安全的网页浏览功能:VMLite 在桌面上自动创建一个安全的 IE浏览器。这个浏览器的图标被一个绿色框包围。当用户双击此图标,虚拟机里的 IE 浏览器将启动。您可以安全地浏览任何网页而不用担心病毒或间谍程序影响您的主机。

 

点击查看原图

无缝模式下,安装在XP的WinRAR出现在Win7中,与其他程序一样使用

     支持更多的 PC:  VMLite  运行不需要硬件虚拟技术(英特尔公司的 VT-X 或 AMD 公司的 AMD-V)的支持。设置简单:  只需要简单点击几下鼠标就可以创建一个免费的虚拟计算机。

     可运行更多的应用程序: 由于微软 XP 模式是基于 RDP 的,那些按照设计不能运行在远程终端上的应用程序在微软 XP 模式下不能运行。VMLite 不存在这个问题,可以支持更多的应用程序。

如何开始使用VMLite XP模式

 

      下载安装 VMLite 以后,需要下载微软的Windows XP模式安装文件,然后启动“VMLite 向导”一步一步根据提示操作,即可完成VMLite XP 模式的安装。VMLite提供了中文语言的界面,整个安装过程非常的简单。你也可以让向导为你下载安装文件,不过这样毕竟比你用下载软件下载要慢多了。

      注意:下载下来的Windows XP模式安装文件,可以安装也可以不安装。如果VMLite 向导不能自动完成安装文件的提取,你也可以手动安装Windows XP模式,然后在向导中指定Windows XP模式安装目录。

VMLite XP Mode 可选多种运行模式

 

      进入VMLite XP Mode环境,用户可以像操作另一台电脑一样的对这个虚拟的XP系统进行操作,安装使用软件、浏览网页、聊天等一切皆如既往。

 

点击查看原图
VMLite XP 模式中的剪切板可以互通数据,相当方便

      VMLite XP Mode为用户提供了三种不同的显示模式(窗口模式、全屏模式、无缝模式)。无缝模式可以让XP的程序和Win7的程序混在一起使用,用户感觉就像正在用Win7本身的程序一样,非常的方便!