一 安装
1.1 硬件需求
- 1核心
- 2G内存
- 6G硬盘
1.2 cpu虚拟化支持
支持VT-x,查看命令:
[root@localhost ~]# lscpu虚拟化: VT-x #intel虚拟技术
检查CPU flflags是否包含vmx/smx,命令如下:
[root@localhost ~]# egrep 'svm|vmx' /proc/cpuinfovmx
1.3 bios开启虚拟化支持
BIOS Enable Virtualization,每个pc设置不一样,可以看网上相关资料。
1.4 开始安装
kvm安装
[root@localhost ~]# yum grouplist[root@localhost ~]# yum -y groupinstall "虚拟化*"
如果是英文系统,命令是
[root@localhost ~]# yum grouplist[root@localhost ~]# yum -y groupinstall "Virtualization*"
验证
验证是否安装成功,验证命令:
[root@localhost ~]#systemctl status libvirtd[root@localhost ~]#lsmod | grep kvm
如在我的测试机器运行结果如下:

二 创建kvm虚拟机
终端命令行输入virt-manager可以打开kvm管理工具可视化操作界面
[root@localhost ~]#virt-mannager
点击创建虚拟机操作图标,可以按提示创建kvm虚拟机,当然你要提前准备好系统iso镜像文件。
三 kvm虚拟机文件组成
文件包含有磁盘镜像文件和配置文件,关系如下:
虚拟机(guest,vm,domain,instance) = 磁盘文件image(Linux or Windows) + 配置文件(虚拟机名,2
VCPU,512M…) 。
kvm虚拟机查看方法,使用virsh命令
[root@localhost ~]# virsh list --all
kvm虚拟机配置文件查看方法。
[root@localhost ~]#ls /etc/libvirt/qemu[root@localhost ~]#virsh edit startgo_01 #编辑[root@localhost ~]#virsh dumpxml startgo_01 > new_smartgo_01 #备份
设定kvm虚拟机自动运行。
[root@localhost ~]#virsh autostart smtargo_01[root@localhost ~]#ls /etc/libvirt/qemu/autostart/[root@localhost ~]#ll /etc/libvirt/qemu/autostart/smartgo_01.xml
网络配置文件。
[root@localhost ~]#ls /etc/libvirt/qemu/networks/[root@localhost ~]#ls /etc/libvirt/qemu/networks/autostart/
存储池配置文件。
[root@localhost ~]#ls /etc/libvirt/storage/[root@localhost ~]#ls /etc/libvirt/storage/autostart/
镜像文件。
[root@localhost ~]#ls /var/lib/libvirt/images/
四 kvm虚拟机配置
通过virsh命令可以对kvm虚拟机进行进行cpu和内存进行配置。
4.1 cpu热添加
使用virsh命令
[root@localhost ~]#virsh list[root@localhost ~]#virsh dominfo smartgo_01[root@smartgo_01 ~]#lscpu[root@localhost ~]#virsh setvcpus smartgo_01 4 --live[root@localhost ~]#virsh dominfo smartgo_01[root@smartgo_01 ~]#lscpu
4.2 内存气球
KVM内存气球技术可以对虚拟机使用的内存按需调节,从而提高内存的利用率。 linux默认就支持内存气球。虚拟机需要安装virtio balloon驱动,内核开启CONFIG_VIRTIO_BALLOON。CentOS6/7默认已安装驱动并开启。
[root@localhost ~]#virsh list[root@localhost ~]#virsh dominfo smartgo_01[root@smartgo_01 ~]#lscpu[root@localhost ~]#virsh setvcpus smartgo_01 4 --live[root@localhost ~]#virsh dominfo smartgo_01[root@smartgo_01 ~]#lscpu[root@localhost ~]#virsh dumpxml smartgo_01 | grep memballon -C2[root@smartgo_01 ~]#lspci[root@localhost ~]#virsh qemu-monitor-command smartgo_01 --hmp --cmd info balloon #查看内存信息[root@localhost ~]#virsh qemu-monitor-command smartgo_01 --hmp --cmd balloon 1024[root@localhost ~]#virsh qemu-monitor-command smartgo_01 --hmp --cmd info balloon[root@smartgo_01 ~]#free -m
五 扩展
5.1 命令
virsh命令可以做kvm虚拟机的增删改查等管理操作,以及对kvm虚拟机cpu、内存、网络等计算资源进行管理操作,具体命令可以在查询到。
https://libvirt.org/manpages/virsh.html#generic-commands
5.2 api接口
virsh是通过命令行模式对libvirt进行接口的调用,如果有需要可以直接调用libvirt的接口,也可以完成同样的功能,如cpu添加可以通过virDomainSetVcpu接口完成
可以参考libvirt的接口文档。
https://libvirt.org/docs.html
六 延伸
kvm虚拟机广泛应用于云计算基础设施搭建领域,可以通过和openstack搭配使用,实现快速搭建出一套云基础设施,感兴趣的同学可以参考下openstack的官网:
https://www.openstack.org/
