一、概念介绍
1、libvirt是Linux上的虚拟化库,是长期稳定的C语言API,支持KVM/QEMU、Xen、LXC等主流虚拟化方案。virsh是libvirt对应的shell命令。
2、kvm,即Kernel-basedVirtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization。
3、vnc既远程访问软件,用于访问创建好的虚拟机。
二、配置环境
1、linux debian8.8
2、安装kvm/qemu
$ apt-get install kvm qemu
3、安装libvirt
$ apt-get install libvirt-bin libvirt-dev
4、网桥管理工具
$ apt-get install bridge-utils
5、安装vnc viewer
安装vnc viewer(有win/linux/android)版本,本人是安装在windows下的。
6、查看是否支持虚拟化
$egrep 'vmx|svm' --color /proc/cpuinfo
KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
7、加载kvm 内核
$modprobe kvm
$modprobe kvm-intel
$lsmod | grep kvm#查看内核
三、创建虚拟机
1、找1个合适的winxp安装镜像(iso)
为何这一步单独拿出讲, 是有原因的。
kvm 的虚拟硬盘的模式是virtio,virtio的性能和稳定性上佳, 但是windows安装盘是找不到virtio模式的虚拟硬盘的, 必须要在安装前先加载virtio的磁盘驱动。
网上也有加载驱动的教程,但是相对麻烦,建议直接下载整合了virtio驱动的windows安装镜像。
2、准备虚拟硬盘文件。
$qemu-img create -f raw /data/my_kvm.raw10G
3、配置虚拟网卡
这里本人的br_eth0信息如下:
HWaddr 20:25:64:80:61:94
inet addr:10.12.13.20
Bcast:10.12.255.255
Mask:255.255.0.0
4、准备和编写1个虚拟机配置文件。(备份,以后可以重用/迁移)
1) 虚拟机cpu数量(非必要,默认是2)
2) 虚拟机内存大小(非必要,默认是2G)
3) 虚拟硬盘文件位置。
4) winxp安装镜像的位置。
5) 虚拟网络实例的名字( 非必要, /etc/network/interfaces 里新加的br0 如果你用了别的名字的话)
6) vnc 端口(默认5900,除非你这个端口被占用否则不要改
下面定义一个my_kvm.xml用于配置虚拟机:
/* 利用Linux网桥连接网络 */
5、基于这个配置文件创建1个虚拟机
1)创建虚拟机
$virsh create my_kvm.xml
2)查看是否运行
$virsh list
6、安装winxp到虚拟机
在vnc viewer输入网址+端口打开,这时你已经见到winxp的安装界面了。之后安装也就是几个下一步的事情,安装完成后,设置ip,这里要与宿主机设置在同一个网段,这样就可以通过桥接访问外网,
7、维护这个虚拟机.(start/shutdown/update..)
马上检查ip是否同一网段, 如果是, 则开启远程桌面服务。以后就可以通过远程桌面访问了, 丢下不好用的vnc viewer。
四、制作模板
模板虚拟机安装好之后,停止该虚拟机,复制制作过程如下:(以本人second.xml为例)
下面的目录都是根据个人习惯,使用者也可以根据自己的习惯设计目录结构。
1、新建/data/xml目录下second.xml:
2、复制镜像文件,再存放做好的镜像的目录下,本人的是data,克隆镜像,克隆出来的文件非常小只有几MB,这里为了管理方便,将镜像和xml配置文件分开存放。在这里已经制作出了新的模板my_kvm.raw,拷贝到/data/modules下:
cp my_kvm.raw moudles/my_kvm.img
进入/data/moudles目录下,制作模板快照(注意:这里制作镜像需要qcow2格式):
qemu-img create -f qcow2 my_kvm.qcow2-o backing_file=my_kvm.img
3、创建虚拟机
进入到/data/xml目录下
virsh create second.xml
五、总结
通过此次kvm虚拟机的创建工作,我了解到如何在linux安装windows虚拟机,而不是之前在windows Vmware中安装linux虚拟机的按键式操作。利用xml配置文件简化了kvm虚拟机的创建,但是需要了解网络的配置、端口、mac地址等概念的实际运用。利用virsh操作虚拟机更加方便快捷。
理论和实践相结合,首先了解虚拟机的原理,然后了解虚拟软件,然后了解虚拟机管理软件,然后就更上层的虚拟机调度;总的来说kvm和qemu就是虚拟软件,负责创建和运行虚拟机,但是却不能很方便的管理多个虚拟机的实例,为了更加方便的管理虚拟机,所有出现了libvirt和virsh等函数库和相应的命令行工具。