centos中KVM的安装

2021年09月15日 阅读数:1
这篇文章主要向大家介绍centos中KVM的安装,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

1、KVM简介:linux

    

基于内核的虚拟机 (KVM) 是针对包含虚拟化扩展(Intel VT 或 AMD-V)的 x86 硬件上的 Linux 的彻底原生的虚拟化解决方案。对半虚拟化(paravirtualization)的有限支持也能够经过半虚拟网络驱动程序的形式用于 Linux 和 Windows 来宾系统。shell

KVM 目前设计为经过可加载的内核模块链接内核。支持的操做系统版本包括普遍的操做系统,好比 Linux、BSD、Solaris、Windows、Haiku、ReactOS 和 AROS Research Operating System。一个添加了补丁的 KVM 版本 (qemu) 可以在 Mac OS X 上运行。centos

注意:KVM 自己不执行任何模拟,一个用户空间程序会使用 /dev/kvm 接口设置一个来宾虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。安全

图 1 显示了 KVM 架构。bash


图 1. KVM 架构
centos中KVM的安装_KVM服务器

半虚拟化(Paravirtualization)网络

半虚拟化是一种虚拟化技术,它向虚拟机提供一个软件接口,这个软件接口相似但不等同于底层硬件的接口。这个修改的接口的目的是减小来宾操做系统用于执行一些操做的执行时间,相对于非虚拟化的环境,这些操做在虚拟环境中的运行困可贵多。架构

有一些专门定义的 hooks 容许来宾和宿主请求和接受这些困难的任务,这些任务也能够在虚拟域中执行,但执行性能更低。ide

在 KVM 架构中,虚拟机实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度。事实上,每一个虚拟 CPU 显示为一个常规的 Linux 进程。这使 KVM 可以享受 Linux 内核的全部功能。工具

设备模拟由提供了模拟的 BIOS、PCI 总线、USB 总线和一组标准的设备(好比 IDE 和 SCSI 磁盘控制器、网络卡等)的修改的 qemu 版原本模拟。

    功能特性

如下功能对于 KVM 相当重要。

centos中KVM的安装_centos_02安全

由于虚拟机实现为一个 Linux 进程,因此它利用标准的 Linux 安全模型来提供隔离和资源控制。Linux 内核使用 SELinux(安全加强的 Linux)来添增强制访问控制、多级和多类别安全,以及处理策略的执行。SELinux 为在 Linux 内核中运行的进程提供了严格的资源隔离和限制。

SVirt 项目是一项社区工做,尝试集成强制访问控制 (MAC) 安全和基于 Linux 的虚拟化 (KVM)。它构建于 SELinux 之上,提供一个基础架构来使管理员可以定义虚拟机隔离策略。SVirt 能够开箱即用地确保一个虚拟机资源没法供任何其余进程(或虚拟机)访问,这可由 sysadmin 扩展来定义细粒度的权限,例如将虚拟机分组到一块儿以共享资源。

centos中KVM的安装_centos_02内存管理

KVM 从 Linux 继承了强大的内存管理功能。一个虚拟机的内存与任何其余 Linux 进程的内存同样进行存储,能够以大页面的形式进行交换以实现更高的性能,也能够磁盘文件的形式进行共享。NUMA 支持(非一致性内存访问,针对多处理器的内存设计)容许虚拟机有效地访问大量内存。

KVM 支持来自 CUP 供应商的最新的内存虚拟化功能,支持 Intel 的扩展页面表 (EPT) 和 AMD 的快速虚拟化索引 (RVI),以实现更低的 CPU 利用率和更高的吞吐量。

内存页面共享经过一项名为内核同页合并 (Kernel Same-page Merging, KSM) 的内核功能来支持。KSM 扫描每一个虚拟机的内存,若是虚拟机拥有相同的内存页面,KSM 将这些页面合并到一个在虚拟机之间共享的页面,仅存储一个副本。若是一个来宾尝试更改这个共享页面,它将获得本身的专用副本。

centos中KVM的安装_centos_02存储

KVM 可以使用 Linux 支持的任何存储来存储虚拟机镜像,包括具备 IDE、SCSI 和 SATA 的本地磁盘,网络附加存储 (NAS)(包括 NFS 和 SAMBA/CIFS),或者支持 iSCSI 和光线通道的 SAN。多路径 I/O 可用于改进存储吞吐量和提供冗余。

再一次,因为 KVM 是 Linux 内核的一部分,它能够利用全部领先存储供应商都支持的一种成熟且可靠的存储基础架构;它的存储堆栈在生产部署方面具备良好的记录。

KVM 还支持全局文件系统 (GFS2) 等共享文件系统上的虚拟机镜像,以容许虚拟机镜像在多个宿主之间共享或使用逻辑卷共享。磁盘镜像支持瘦配置,支持经过仅在虚拟机须要时分配存储空间,而不是提早分配整个存储空间,提升存储利用率。KVM 的原生磁盘格式为 QCOW2,它支持快照,容许多级快照、压缩和加密。

centos中KVM的安装_centos_02实时迁移

KVM 支持实时迁移,这提供了在物理宿主之间转移正在运行的虚拟机而不中断服务的能力。实时迁移对用户是透明的,虚拟机保持打开,网络链接保持活动,用户应用程序也持续运行,但虚拟机转移到了一个新的物理宿主上。

除了实时迁移,KVM 支持将虚拟机的当前状态保存到磁盘,以容许存储并在之后恢复它。

centos中KVM的安装_centos_02设备驱动程序

KVM 支持混合虚拟化,其中半虚拟化的驱动程序安装在来宾操做系统中,容许虚拟机使用优化的 I/O 接口而不使用模拟的设备,觉得网络和块设备提供高性能的 I/O。

KVM 虚拟机管理程序为半虚拟化的驱动程序使用 IBM 和 Red Hat 联合 Linux 社区开发的 VirtIO 标准;它是一个与虚拟机管理程序独立的、构建设备驱动程序的接口,容许为多个虚拟机管理程序使用一组相同的设备驱动程序,可以实现更出色的来宾互操做性。

VirtIO 驱动程序包含在现代 Linux 内核中(2.6.25 之后的版本),包含在 Red Hat Enterprise Linux 4.8+ 和 5.3+ 中,可用于 Red Hat Enterprise Linux 3。Red Hat 为 Microsoft Windows 来宾系统开发了 VirtIO 驱动程序,以实现通过 Microsoft 的 Windows 硬件质量实验室认证计划 (WHQL) 认证的优化网络和磁盘 I/O。

centos中KVM的安装_centos_02性能和可伸缩性

KVM 也继承了 Linux 的性能和可伸缩性,支持拥有最多 16 个虚拟 CPU 和 256GB RAM 的虚拟机,以及拥有 256 个 CPU 核心和超过 1TB RAM 的宿主系统。它可提供

· 对于 SAP、Oracle、LAMP 和 Microsoft Exchange 等真实企业工做负载,相对于裸机 95 到 135% 的性能。

· 在运行标准服务器的虚拟机中每秒超过 100 万条消息的速度和低于 200 毫秒的延迟。

· 最高的整合率,将超过 600 个运行企业工做负载的虚拟机整合到单个服务器上。

这意味着 KVM 容许虚拟化任何要求苛刻的应用程序工做负载。

管理您的虚拟机

有多个虚拟机管理器可用,包括:

· Univention Virtual Manager。

· qemu/KVM:您能够在 KVM 机器中直接从命令行运行。

· Virsh:管理 VM 的最简单的 shell。

· Virtual Machine Manager:也称为 virt-manager,一个管理 VM 的桌面用户接口。

· convirt

选择 KVM

优势:

· 尽管 KVM 是一个相对较新的虚拟机管理程序,但这个随主流 Linux 内核发布的轻量型模块提供了简单的实现和对 Linux 重要任务的持续支持。

· KVM 是灵活的,由于来宾操做系统与集成到 Linux 内核中的虚拟机管理程序通讯,因此它们始终能够直接寻址硬件,无需修改虚拟化的操做系统。这使 KVM 成为了更快的虚拟机解决方案。

· KVM 的补丁与 Linux 内核兼容。KVM 在 Linux 内核自己内实现,这进而简化了对虚拟化进程的控制。

缺点:

· 没有成熟的工具可用于管理 KVM 服务器和 VM。

· KVM 仍然须要改进虚拟网络支持、虚拟存储支持、加强的安全、高可用性、容错、电源管理、HPC/实时支持、虚拟 CPU 可伸缩性、跨供应商兼容性、VM 可移植性,并构建于一个既有的云服务生态系统之上。

 


2、实验环境:

操做系统:    CentOS 5.8

CPU:            Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz


操做系统采用最小化安装

selinux要禁用



首先查看主机的CPU是否支持虚拟化

egrep '(vmx|svm)' = /proc/cpuinfo

同时须要在主板上的BIOS中开启相关支持相关虚拟的的选项



首先安装图形化桌面环境,这个须要两个组包:X Window System

                                                                         GNOME Desktop Environment或者是KDE

###    可经过:

###   

 yum grouplist  | grep -i search_name


###    进行模糊查找

###    以后安装KVM

#yum -y groupinstall "KVM" "X Window System" "GNOME Desktop Environment"



###    在安装的
###    过程当中出现了一点小意外:安装组包的时候提示说dbus-libs还有yum-utils的错误

###    解决方法就是

###    安装上yum-utils包

###    而后按照提示执行相应的命令,若是依然不行的话就能够尝试:

#yum remove dbus-libs*



以前的组包安装完成之后须要安装对网卡桥接提供支持的包

yum -y install bridge-utils tunctl

也可使用命令检查KVM是否成功安装


  1. virsh -c qemu:///system list

将会显示以下结果:

[root@localhost ~]# virsh -c qemu:///system list 
 
 Id Name                 State 
 
----------------------------------


完成以后须要修改网络参数:

#cd /etc/sysconfig/network-scripts/
#cp ifcfg-eth0 ifcfg-eth0.bak
#cp ifcfg-eth0 ifcfg-br0


修改ifcfg-br0文件

#cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.251
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
HWADDR=74:D4:35:20:68:51
ONBOOT=yes
#cat ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
BOOTPROTO=none


而后重启网络:

#service network restart


经过ifconfig命令检查br0是否成功启用


检查内核模块是否加载:

#lsmod | grep kvm
kvm_intel              85256  1 
kvm                   224928  2 ksm,kvm_intel


而后在图形化界面打开终端,利用virt-manager工具进行安装:

#virt-manager

centos中KVM的安装_centos_08


新建虚拟机,选择 new

centos中KVM的安装_KVM_09

选择cpu 支持的位数和 hypervisor 模式 centos中KVM的安装_centos_10

d.选择安装系统的方式和系统

centos中KVM的安装_KVM_11
e.选择iso文件所在位置
centos中KVM的安装_centos_12f.p_w_picpath存储的位置和p_w_picpath 的大小(如有单独的虚拟化分区,能够选择第一项,我默认)centos中KVM的安装_centos_13

g.选择网卡模式 (桥接模式)
centos中KVM的安装_centos_14

h.设置内存大小 和cpu的个数
centos中KVM的安装_centos_15

i.配置完成,虚拟全部信息 centos中KVM的安装_KVM_16

后面就是简单的Linux系统安装了,就不罗嗦了