KVM的简介:

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

Linux 内核的虚拟机(Kernel-based Virtual Machine)。是第一个整合到 Linux 内核的虚拟化技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准迚程,你可以 在用户空间启劢客户机操作系统。 

常见的虚拟化产品对比介绍

Vmware         Window上最常用的虚拟化

KVM rhel6_x64

xun [kernel-xun] rhel5

虚拟化技术:

仿真虚拟化[对硬件没有要求,性能最低]

半虚拟化[虚拟机可以使用物理真机,性能高,需要改内核]

全虚拟化

vmware 支持仿真虚拟化 xen 半虚拟化

REHL5自带xen, 安装时需要安装内核  

rpm -ivh  kernel-xen-xxx.rpm

kvm 全虚拟化   RHEL6 自带kvm 

开始安装

1、把虚拟机内存调成 2G 以上,因为我们要在 VMware虚拟中安装KVM,然后在 KVM中再安装虚拟机 

安装环境:

主机名: linux_rhel-7.2
网络模式: 桥接
IP: 192.168.175.143
内存: 2G以上
CPU个数: 根据自己实际电脑情况调整
VM VM开启虚拟化和和虚拟化CPU计数器
2、关闭NetworkManager,开始桥接

/etc/init.d/NetworkManager shopchkconfig --level 2345 NetworkManagerchkconfig --levle 2345 network on

 配置eth0和bro网卡

cd /etc/sysconfig/network-scritps/ls vim ifcfg-eth0

删除原来的配置文件修改成这个:

eth0网卡:

    DEVICE=eth0

    TYPE=Ethernet

    BRIDGE=br0

    BOOTPROTO=none

br0网卡:

        DEVICE=br0

        ONBOOT=yes

BOOTPROTO=dhcp

#IPADDR=192.168.175.99

#NETMASK=255.255.255.0

#GATEWAY=192.168.175.2

#DNS1=8.8.8.8

TYPE=Bridge

NAME=br0

service network restartifconfig  ##查看是否eth0没有IP,br0获取到了IP

3、安装KVM组件

yum install -y kvm virt-manager libvirt   ###安装service libvirtd start   ###开启KVMlsmod |grep kvm     ###查看KVM模块是否开启

如果没有显示查看KVM虚拟机是否开启虚拟化

查看虚拟机的运行情况

virsh list 

echo $LAGN 当前的字符串格式

修改格式:echo 'zh_CN.UTF-8' 

如果中文格式开启虚拟机报错则修改为:echo 'en_US.UTF-8'

开启KVM

virt-manager

虚拟机相关命令

virsh start 新建的虚拟机名称 #启动虚拟机 

virsh shutdown 新建的虚拟机名称 #关闭虚拟机

 

解决 shutdown关不了KVM 虚拟机的问题:

解决方法: 在安装好的 KVM的Linux虚拟机中安装并启劢 acpi服务 

virsh shutdown 命令使用发送 acpi挃令来控制虚拟机的电源, 

而 kvm虚拟机最小化安装的 linux系统时默认是没有安装 acpi 服务的,

所以并丌会做处理。只需要在虚拟机里安装和启劢 acpid服务即可,  

安装:

yum install acpid -y 

service  acpid  start  //启劢 acpic服务

chkconfig --list acpid 

开机挂载:

vim /etc/fstab   #记得设置开机自劢挂载 sdb1,不然后开机启动不了虚拟机 

/dev/sdb1     /var/lib/libvirt/p_w_picpaths ext4    defaults        0 0 

查询UUID:

blkid    通过UUID实现自动挂载,防止盘位置变动造成找不到盘:

自动挂载:

blkid | echo "`awk '/dev/sbd1 {print $2}'` /var/lib/libvirt/p_w_picpaths ext4 defaults 0 0" >>/etc/fstab