一、KVM简介

KVM全称是kernel-based virtual machine(基于内核的虚拟机),是一个开源的系统虚拟化模块,基于硬件的完全虚拟化,不过需要硬件支持(如Intel VT技术或者AMD V技术)。

二、KVM安装配置

1、准备工作

1.1 关闭iptables防火墙

[root@localhost ~]# service iptables stop //停止iptables

1.2 CPU开通支持虚拟化
需要在BIOS中开启虚拟化,一般是默认开启的

2、安装kvm虚拟机

2.1 查看CPU是否支持kvm完全虚拟机

[root@localhost ~]# cat /proc/cpuinfo | grep 'vmx' //Intel CPU判断方法
[root@localhost ~]# cat /proc/cpuinfo | grep 'svm' //AMD CPU判断方法
根据对应的CPU型号进行选择判断方法,如果能出现信息 ,就说明CPU支持KVM完全虚拟机
2.2 安装kvm和其它虚拟化所需管理软件包

[root@localhost ~]#

yum install -y kvm virt-* libvirts bridge-utils qemu-img

kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序

libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机
bridge-utils:设置网络网卡桥接
virt-*:创建、克隆虚拟机命令,使用qemu命令来创建磁盘等。
qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。

 

modprobe kvm-intel //加载kvm模块

lsmod | grep kvm //查看kvm模块是否被加载

reboot //重启

3、在宿主主机上创建、安装kvm虚拟机

3.1 创建镜像文件目录和虚拟磁盘存放目录

[root@localhost ~]# mkdir /iso
[root@localhost ~]# mkdir -p /data/kvmdisk/
3.2 把系统iso文件拷贝到iso目录下
这个可以通过ftp或者通过挂载,下载都行
3.3 创建虚拟机

[root@localhost ~]# virt-install -n ubuntu -r 512 -vcpus=1 -s 50 -c /iso/ubuntu.iso --hvm --os-type=ubuntu -f /data/kvmdisk/ubuntu.img --graphics vnc,listen=0.0.0.0,port=7789 --force --autostart
//命令解释:
创建一个名叫ubuntu的虚拟机,内存大小为512内存,1个cpu,50G的硬盘,安装镜像是/iso/ubuntu.iso 指定为全虚拟化,系统类型为ubuntu指定虚拟机硬盘为/data/kvmdisk/ubuntu.img,同时配置vnc的端口为7789 自动开始安装

virt-install参数说明:

-n --name= 虚拟机名称
-r --ram= 虚拟机分配的内存
-u --uuid= 虚拟机的uuid
--vcpus=2 指定2个vcpu个数
-v --hvm 全虚拟他
-p --paravirt 半虚拟化
-l --location=localdir 安装源
--vnc 使用vnc
//可以用"--graphics vnc,listen=LISTEN,..."
--vncport 指定vnc监控端口,默认端口为5900,端口不能重复使用
--vnclisten 指定vnc绑定ip
-c --cdrom=光驱或者安装途径
-s --file-size= 使用磁盘映像的大小,单位为GB
-f --file= 作为磁盘映像使用的文件
--disk= 使用不同选项作为磁盘使用安装介质
--force 防止交互式提示
--os-variant 指定操作系统类型
--accelerate 加速
--network 网络类型,此处用的是默认,一般用的是应该是bridge桥接
3.4 创建kvm虚拟机的磁盘文件

[root@localhost ~]# qemu-img create -f qcow2 -o preallocation=metadata kvm_test.img 10G
//命令解释:
创建一个qcow2虚拟化镜像格式,大小为10G,文件名为kvm_test.img

virsh命令行管理工具

命令行:
virsh list #显示本地活动虚拟机
virsh list –all #显示本地所有的虚拟机(活动的+不活动的)
virsh define ubuntu.xml #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
virsh start ubuntu #启动名字为ubuntu的非活动虚拟机
virsh create ubuntu.xml #创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
virsh suspend ubuntu #暂停虚拟机
virsh resume ubuntu #启动暂停的虚拟机
virsh shutdown ubuntu #正常关闭虚拟机
virsh destroy ubuntu #强制关闭虚拟机
virsh undefine ubuntu #移除ubuntu虚拟机
virsh dumpxml ubuntu #显示虚拟机的当前配置文件
virsh setmem ubuntu 512000 #给不活动虚拟机设置内存大小
virsh setvcpus ubuntu 4 # 给不活动虚拟机设置cpu个数