虚拟化产品介绍

虚拟化有两种类型:
Hypervisor直接在安装在宿主机的逻辑上:
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。

Hypervisor安装在宿主机的操作系统上:
物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

虚拟化产品对比介绍
vmware
KVM rhel6_x64
xen [kernel-xen]

虚拟化技术:
仿真虚拟化 [对系统硬件没有要求,性能最低]
半虚拟化 [虚拟机可以使用真机物理硬件,性能高,需要改内核]
全虚拟化

vmware 支持仿真虚拟化
xen 半虚 REHL5自带xen, 安装时需要安装内核 rpm -ivh kernel-xen-xxx.rpm
kvm 全虚拟化 RHEL6 自带kvm

KVM概述

KVM 即Kernel-based Virtual Machine 基于内核的虚拟机。

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

特点:
它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购。
它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
它从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中。
它需要支持虚拟化扩展的 CPU。
它是完全开源的。

KVM功能

从官网上摘录:
KVM 所支持的功能包括:

  1. 支持CPU 和 memory 超分(Overcommit)
  2. 支持半虚拟化I/O (virtio) 支持热插拔(cpu,块设备、网络设备等)
  3. 支持对称多处理(Symmetric Multi-Processing,缩写为 SMP )
  4. 支持实时迁移(Live Migration)
  5. 支持 PCI 设备直接分配和 单根I/O 虚拟化 (SR-IOV)
  6. 支持 内核同页合并(KSM )
  7. 支持 NUMA (Non-Uniform Memory Access,非一致存储访问结构 )

KVM常用工具:

libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。
Virsh:基于 libvirt 的 命令行工具 (CLI)
Virt-Manager:基于 libvirt 的 GUI 工具
virt-v2v:虚机格式迁移工具
virt-* 工具:包括 Virt-install (创建KVM虚机的命令行工具),
Virt-viewer (连接到虚机屏幕的工具),
Virt-clone(虚机克隆工具),
virt-top 等 sVirt:安全工具

一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)

KVM安装

安装拓扑图:
在win10上安装vmware,在vmware里面安装centos7,在centos7上安装KVM,在kvm里面安装centos7

linux桌面虚拟化-KVM_kvm

安装前准备环境:

linux桌面虚拟化-KVM_kvm_02

注意: 虚拟化cpu计数器的解释官方文档有:http://pubs.vmware.com/workstation-12/index.jsp

安装kvm模块,管理工具和libvirt

[root@zmedu63 ~]# yum install kvm virt-manager libvirt -y 注:使用系统镜像,先配置好yum本地源
注:
kvm : KVM虚拟化模块
virt-manager: KVM图形化管理工具
libvirt: 虚拟化服务

查看安装完KVM后的服务:
[root@zmedu63 ~]# service libvirtd start #虚拟化服务
[root@zmedu63 ~]# chkconfig libvirtd on

确定正确加载KVM模块

[root@zmedu63 ~]# lsmod | grep kvm
kvm_intel 50380 0
kvm 305113 1 kvm_intel
检查 KVM 模块是否成功安装
(3).检查KVM 是否成功安装可以使用virsh命令检查虚拟机的状态
[root@zmedu63 ~]# virsh list
Id Name State

使用命令 virt-manager 建立虚拟机

将kvm管理工具从英文界面,切换成中文界面:
[root@zmedu63 ~]# echo $LANG
en_US.UTF-8
[root@zmedu63 ~]# LNAG=‘zh_CN.UTF-8’
[root@zmedu63 ~]# virt-manager

linux桌面虚拟化-KVM_linux_03
点击右键,新建-然后根据向导安装一个新的虚拟机。

linux桌面虚拟化-KVM_管理工具_04
linux桌面虚拟化-KVM_linux_05
linux桌面虚拟化-KVM_其他_06
linux桌面虚拟化-KVM_其他_07
linux桌面虚拟化-KVM_虚拟化_08