KVM虚拟机创建功能详细讲解
一.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”指定虚拟机的内存为512M。
(3)安装操作系统后便可直接从硬盘启动虚拟机
root@host:kvm -boot c -hda test.img-m 512
1.2 利用virsh命令行工具进行创建
1.2.1 virsh工具简介
Virsh是由一个名叫libvirt的软件提供的管理工具,提供管理虚拟机比较高级的能力。Virsh可以管理KVM以及xen等虚拟机。
下面是virsh的一些常见的命令行选项:
命令 | Description |
help | 打印基本帮助信息。 |
list | 列出所有客户端。 |
dumpxml | 输出客户端 XML 配置文件。 |
create | 从 XML 配置文件生成客户端并启动新客户端。 |
start | 启动未激活的客户端。 |
destroy | 强制客户端停止。 |
define | 为客户端输出 XML 配置文件。 |
domid | 显示客户端 ID。 |
domuuid | 显示客户端 UUID。 |
dominfo | 显示客户端信息。 |
domname | 显示客户端名称。 |
domstate | 显示客户端状态。 |
quit | 退出这个互动终端。 |
reboot | 重新启动客户端。 |
restore | 恢复以前保存在文件中的客户端。 |
resume | 恢复暂停的客户端。 |
save | 将客户端当前状态保存到某个文件中。 |
shutdown | 关闭某个域。 |
suspend | 暂停客户端。 |
undefine | 删除与客户端关联的所有文件。 |
migrate | 将客户端迁移到另一台主机中。 |
命令 | Description |
setmem | 为客户端设定分配的内存。 |
setmaxmem | 为管理程序设定内存上限。 |
setvcpus | 修改为客户端分配的虚拟 CPU 数目。 |
vcpuinfo | 显示客户端的虚拟 CPU 信息。 |
vcpupin | 控制客户端的虚拟 CPU 亲和性。 |
domblkstat | 显示正在运行的客户端的块设备统计。 |
domifstat | 显示正在运行的客户端的网络接口统计。 |
attach-device | 使用 XML 文件中的设备定义在客户端中添加设备。 |
attach-disk | 在客户端中附加新磁盘设备。 |
attach-interface | 在客户端中附加新网络接口。 |
detach-device | 从客户端中分离设备,使用同样的 XML 描述作为命令attach-device。 |
detach-disk | 从客户端中分离磁盘设备。 |
detach-interface | 从客户端中分离网络接口。 |