
推荐-KVM虚拟机创建功能详细讲解.docx
16页一.KVM虚拟机创建的用户操作对于用户或者管理员来说,虚拟机的创建有着很多的方法,例如:kvm自带命令行工具、使用virsh命令来创建、使用具有图形界面的virt-manager等等但是它们底层实现的原理都是一样的,而且它们基本上都是通过开源的虚拟化库Libvirt来开发的下面就讲一讲三种用户可以创建虚拟机的方式1.1 利用kvm自带命令行工具进行创建kvm常用命令如下:参数示例说明-hda-hda /data/windows.img指定windows.img作为硬盘镜像-cdrom-cdrom /data/windows.iso指定windows.iso作为光盘镜像-boot-boot c从硬盘启动 -boot d从光盘启动-m-m 512分配512M内存给虚拟系统-vnc-vnc :0作为vnc服务器-cpu-cpu ?列出支持的CPU -cpu core2duo指定CPU为core2duo-smp-smp 2指定虚拟机有2个CPU-net-net nic为虚拟机网卡(默认为tap0) -net tap系统分配tap设备(默认为tap0)1 -net nic -net tap将虚拟机的网卡eth0连接真机里的tap0具体创建一个虚拟机的步骤如下:(1)生成硬盘镜像文件root@host:kvm-img create -f rawtest.img 10G其中“-f raw”指定镜像文件的格式为“raw”,“10G”指定镜像文件大小。
2)从光盘启动虚拟机来安装操作系统root@host:kvm -boot d -hda test.img-cdrom test.iso -m 512其中“-boot d”指定虚拟机从光盘启动,“-hda test.img”指定硬盘镜像的位置,“-cdrom test.iso”指定光盘镜像的位置,“-m 512”指定虚拟机的内存为512M3)安装操作系统后便可直接从硬盘启动虚拟机root@host:kvm -boot c -hda test.img-m 5121.2 利用virsh命令行工具进行创建1.2.1 virsh工具简介Virsh是由一个名叫libvirt的软件提供的管理工具,提供管理虚拟机比较高级的能力Virsh可以管理KVM以及xen等虚拟机下面是virsh的一些常见的命令行选项:命令Descriptionhelp打印基本帮助信息list列出所有客户端dumpxml输出客户端 XML 配置文件create从 XML 配置文件生成客户端并启动新客户端start启动未激活的客户端。
推荐精选命令Descriptionhelp打印基本帮助信息list列出所有客户端destroy强制客户端停止define为客户端输出 XML 配置文件domid显示客户端 IDdomuuid显示客户端 UUIDdominfo显示客户端信息domname显示客户端名称domstate显示客户端状态quit退出这个互动终端reboot重新启动客户端restore恢复以前保存在文件中的客户端resume恢复暂停的客户端save将客户端当前状态保存到某个文件中shutdown关闭某个域suspend暂停客户端undefine删除与客户端关联的所有文件migrate将客户端迁移到另一台主机中命令Descriptionsetmem为客户端设定分配的内存。
setmaxmem为管理程序设定内存上限setvcpus修改为客户端分配的虚拟 CPU 数目vcpuinfo显示客户端的虚拟 CPU 信息vcpupin控制客户端的虚拟 CPU 亲和性domblkstat显示正在运行的客户端的块设备统计domifstat显示正在运行的客户端的网络接口统计attach-device使用 XML 文件中的设备定义在客户端中添加设备attach-disk在客户端中附加新磁盘设备attach-interface在客户端中附加新网络接口detach-device从客户端中分离设备,使用同样的 XML 描述作为命令attach-devicedetach-disk从客户端中分离磁盘设备detach-interface从客户端中分离网络接口。
命令Descriptionversion显示 virsh 版本nodeinfo有关管理程序的输出信息1.2.2 virsh命令来创建虚拟机步骤(1)生成硬盘镜像文件root@host:kvm-img create -f rawtest.img 10G(2)编写xml配置文件,这一步在1.2.3节具体介绍(3)创建并运行虚拟机root@host:virsh create test.xml推荐精选其中“test.xml”指定步骤(2)中创建的xml文件 这样一个虚拟机便创建起来了1.2.3 xml配置文件的编写利用virsh工具创建虚拟机必须编写xml配置文件,该文件指定虚拟机的各项参数,比如虚拟机名称、磁盘镜像的位置、内存大小、显示配置等等下面给出一个简单的配置文件的例子test.xml
1)
④ 输入本地ISO文件路径和文件名(假设本地ISO的路径就在根目录下,名称为Mini-BT3.6.1.iso)⑤ 设置虚拟机使用的内存容量和处理器数量 ⑥ 配置虚拟机的存储方法对于存储后端有两种选择:物理存储设备或者使用之前建立的磁盘文件如果处于简单测试,创建文件作为存储后端当创建虚拟磁盘时,默认为10GB ⑦ 网络配置,在这里选择NAT方式这样一个虚拟机就开始启动起来了,将会出现启动界面,最后出现虚拟机中操作系统的界面 二.libvirt函数库如何实现虚拟机创建2.1 virsh工具”create”命令源码 在libvirt软件包安装完成之后,就可以看到libvirt的源码,这个源码实现了很多的开发虚拟化软件的用户接口,也就是开发的API里面也实现了工具virsh,这个工具也实现了很多的功能在/tools下面有一个virsh.c,这个文件里面实现virsh的功能,这里就具体把创建这部分代码选取出来 /* * "create" command */static const vshCmdInfo info_create[] ={ {"help", N_("create a domain from an XML file")}, {"desc", N_("Create a domain.")}, {NULL, NULL}};static const vshCmdOptDef opts_create[]= { {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("file containingan XML domain description")},#ifndef WIN32 {"console", VSH_OT_BOOL, 0, N_(。
