--------------------------
一、前言
二、环境
三、安装与配置
四、创建kvm虚拟机

一、前言

KVM,即Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,

新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列也是基于软件模拟的Para-Virtualization。

二、环境

系统:rhel6.5 64位

软件包组:

virtualization            提供虚拟机的环境,主要包含qemu-kvm

virtualization-client      管理和安装虚拟机实例的客户端,主要有python-virtinst,virt-manager,virt-viewer

virtualization-platform    提供访问和控制虚拟客户端的接口,主要有libvirt,libvirt-client

virtualization-tools      管理离线虚拟机镜像的工具,主要有libguestfs

根据需求选择软件包,一般都安装前三个,也可以只安装个别主要的包。

为了减少不必要的麻烦,请关闭防火墙和SELinux

# cat /proc/cpuinfo |grep flags    需要全虚拟化支持为vmx(Inter)或svm(AMD)

如果确定物理机支持cpu虚拟化技术,而使用上述命令查找不到相应指令,请参考以下解决办法:

http://www.linuxidc.com/Linux/2014-10/107895.htm

三、安装与配置

# yum groupinstall "Virtualization" "Virtualization Client""Virtualization Platform"
# yum install qemu-kvm virt-manager libvirt        //也可只安装个别主要的包
# lsmod |grep kvm                                  //kvm模块一定要加载
kvm_intel              53484  0
kvm                  316506  1 kvm_intel
# service libvirtd start                            //启动libvirt服务
Starting libvirtd daemon:            [  OK  ]

 

--------------------------------------分割线 --------------------------------------

 

# brctl show
bridge name bridge id STP enabled interfaces
# cp /etc/sysconfig/network-scripts/ifcfg-etho0 /etc/sysconfig/network-scripts/ifcfg-br0
# cat ifcfg-br0
DEVICE="br0"     //设备名字,必须和BRIDGE=“”里的相同,还要和这个网桥配置文件的名称ifcg-“”这而的相同
TYPE="Bridge"    //指定类型为网桥
                        //删掉MAC UID之类的东西,ip地址跟eth0一样# ifup br0
然后修改相应网卡的配置文件,我的是eth1:
# Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet
DEVICE=eth1
#BOOTPROTO=none
#BROADCAST=10.1.255.255
HWADDR=D8:5D:4C:74:EE:E8
#IPADDR=10.1.29.3
#NETMASK=255.255.0.0
#NETWORK=10.1.0.0
ONBOOT=yes
#TYPE=Ethernet
#USERCTL=no
#IPV6INIT=no
#PEERDNS=yes
BRIDGE=br0原来网卡的配置只保留device名称,硬件地址,onboot选项,以及新添加的BRIDGE=br0
注意,br0里边的ip、netmask、gateway应当与 eth0 中的完全相同,
这是因为马上 br0 将会替代 eth0 作为对外的网络接口,
而eth0仅仅会被当做桥接,失去对外网络接口的作用。[root@zabbixsrv network-scripts]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    425    0        0 br0
10.10.0.0       0.0.0.0         255.255.252.0   U     425    0        0 br0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0[root@zabbixsrv network-scripts]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.fc4dd4f1dd45       no              eno1
virbr0          8000.525400312ae0       yes             virbr0-nic# service network restart
# systemctl restart network-scripts
# service libvirtd start
# systemctl start libvirtd
# systemctl enable libvirtd

--------------------------------------分割线 --------------------------------------

四、创建kvm虚拟机(图形界面)

1.在kvm宿主机创建虚拟机存储位置

# mkdir -p /opt/kvmdata

2.可以利用vnc远程连接kvm宿主机,进行管理。Application→System Tools→Box