当前位置: 首页 > >

KVM虚拟化*台部署详解

发布时间:



文章目录
一、虚拟化技术二、虚拟化技术发展三、虚拟化类型四、虚拟化的特性五、虚拟化前后对比5.1 虚拟化前5.2 虚拟化后
六、KVM6.1、KVM简介6.2、KVM架构及简介6.3、KVM工作流程
七、搭建KVM虚拟机7.1、搭建环境7.2、安装KVM7.3、设置KVM网络为桥接7.4、创建KVM存储和镜像数据的目录、上传centos7镜像7.5、进入安装步骤
总结


一、虚拟化技术

VMM一般指虚拟机监视程序。


通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率。


以软件形式实现物理设备的功能


软件资源是没有硬件资源性能高(稳定和效率)的(相同功能)


二、虚拟化技术发展

雏形:


1961年,IBM709机器实现了分时系统,将CPU占用切分为多个极短的时间片(1/100sec)每一个时间片执行不同的工作,通过对这些时间片进行轮询从而将一个CPU伪装成多个CPU;


1972年, IBM正式将system370机的分时系统命名为虚拟机;


1990年, IBM推出的system390机支持逻辑分区(将一个CPU分为多份,相互独立,也就是逻辑分割);


Xen 2003年问世,是一个外部的hypervisor程序(虚拟机管理程序),能够控制虚拟机和给多个客户机分配资源;


KVM:2007年问世,现已内置在kernel内核中的.


三、虚拟化类型

1、全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用


使用的方法:使用hypervisor(VMM)软件,其原理是在底层硬件和服务器之间建立一个抽象层,而基于核心的虚拟机是面向Linux系统的开源产品hypervisor(VMM)可以捕捉CPU的指令,为指令访问硬件控制器和外设充当中介。


2、半虚拟化:需要修改操作系统(开启硬件辅助???软件形式事务虚拟化功能)


3、直通:直接使用物理硬件资源(需要支持,还不完善)


Xen 支持的虚拟化技术:全虚拟化,半虚拟化
KVM:支持的虚拟化技术:全虚拟化


四、虚拟化的特性

优势
① 集中化管理(远程管理、维护)
② 提高硬件利用率(物理资源利用率低-例如峰值,虚拟化解决了“空闲”容量)
③ 动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)
④ 高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)


劣势
① 前期高额费用(初期的硬件支持)
② 降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化)
③ 更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)
④ 实施配置复杂、管理复杂(管理人员运维、排障困难)
⑤ 一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用)
⑥ 安全性(虚拟化技术自身的安全隐患)


五、虚拟化前后对比
5.1 虚拟化前
每台主机拥有一个操作系统软硬件紧密结合在同一个主机上运行多个应用程序通常会产生冲突系统资源利用率低(例如: 5%)硬件成本高昂并且不够灵活(物理资源有限)
5.2 虚拟化后
打破了操作系统和硬件的互相依赖通过封装到虚拟机的技术,管理操作系统和应用程序为单一的个体强大的安全和故障隔离虚拟机时独立于硬件的,它们可以在任何硬件上运行
六、KVM
6.1、KVM简介
广义的 KVM 实际*讲糠郑 一部分是基于 LINUX 内核支持的 KVM 内核模块, 另一部分就是经过简化和修改的 Qemu。KVM 内核模块模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提供一个用户空间工具来进行虚拟机的管理。
两者相互结合, 相辅相成, 构成了一个完整的虚拟化*台。请注意: Qemu 本身并不是 KVM 的一部分, Qemu 是一套完整的虚拟化解决方案, 是纯软 件实现虚拟化, 包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟, 但因为是纯软件 模拟出来的, 所以 Qemu 的性能比较低。
6.2、KVM架构及简介

KVM 虚拟化架构/三种模式


客户模式: 可以简单理解成客户机在操作系统运行中的模式, 客户模式又分为内核模式 和 用户模式。
用户模式: 为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O, Qemu 运行在这个模式之下。内核模式: 模拟 CPU 以及内存, 实现客户模式的切换, 处理从客户模式的退出。 KVM 内 核模块运行在这个模式下


6.3、KVM工作流程


用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVM驱动为虚拟机创建虚拟 CPU 和虚拟内存,然后执行 VMLAU?NCH 指令进入客户模式,装载 Guest OS 并运行。Guest OS 运行过程中如果发生异常,则暂停Guest OS的运行并保存当前状态同时退出到内核模式来处理这些异常。


内核模式处理这些异常时如果不需要 I/O则处理完成后重新进入客户模式。如果需要 I/O 则进入到用户模式, 则由 Qemu 来处理 I/O,处理完成后进入内核模式,再进入客户模式。


七、搭建KVM虚拟机
7.1、搭建环境
centos7系统安装完成后,需要勾选上KVM虚拟化功能,且网卡选择NAT模式


[root@localhost ~]# hostnamectl set-hostname kvm
[root@localhost ~]# bash

ssh环境优化

设置DNS反向解析
#是否反解DNS,设置为NO可以让客户端连接服务器更快
[root@kvm ~]# vim /etc/ssh/sshd_config
UseDNS no #取消DNS注释,改为NO

防火墙优化

[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# setenforce 0

已完成所有开局优化,*粝低

[root@kvm ~]# reboot

7.2、安装KVM

安装KVM基本组件


[root@kvm ~]# yum -y groupinstall "GNOME Desktop" #安装 GNOME 桌面环境 如果装了图形界面不需要装了
[root@kvm ~]# yum -y install qemu-kvm #安装KVM 模块
[root@kvm ~]# yum -y install qemu-kvm-tools #KVM 调试工具,可不安装
[root@kvm ~]# yum -y install virt-install #构建虚拟机的命令行工具
[root@kvm ~]# yum -y install qemu-img #qemu 组件,创建磁盘、 启动虚拟机等
[root@kvm ~]# yum -y install bridge-utils #网络支持工具
[root@kvm ~]# yum -y install libvirt #虚拟机管理工具
[root@kvm ~]# yum -y install virt-manager #图形界面管理虚拟机

[root@kvm ~]# reboot #*

设置开启启动界面的显示模式

[root@kvm ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
# 将 系 统 的 默 认 运 行 target 更 改 为graphical.targe。 *艉笙低辰胪夹位缑妗

进行一些检查

[root@kvm ~]# cat /proc/cpuinfo | grep vmx # 检测CPU是否支持虚拟化


[root@kvm ~]# lsmod | grep kvm #查看KVM模块是否已安装
kvm_intel 170086 0
kvm 566340 1 kvm_intel
irqbypass 13503 1 kvm

[root@kvm ~]# systemctl start libvirtd #开启libvirtd服务
[root@kvm ~]# systemctl enable libvirtd #开机启动libvirtd服务

7.3、设置KVM网络为桥接
宿主服务器安装完成 KVM, 首先要设定网络, 在 libvirt 中运行 KVM 网络有两种方法: NAT 和 Bridge, 默认是NAT。
用户模式, 即 NAT 方式, 这种方式是默认网络, 数据包由 NAT 方式通过主机的接口进行 传送, 可以访问外网,但是无法从外部访问虚拟机网络。桥接模式, 这种模式允许虚拟机像一台独立的主机一样拥有网络, 外部的机器可以直接 访问到虚拟机内部, 但需要网卡支持,一般有线网卡都支持。 这里以 Bridge(桥接) 为例。 修改ens33网卡

[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none #原本的修改为none
#IPADDR=192.168.40.11
#NETMASK=255.255.255.0
#GATEWAY=192.168.40.2
#DNS=192.168.40.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6e44752d-2834-4078-8fdb-94477ef302c0
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0 #注释掉原本的IP地址,添加此处

新建桥接网卡

[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
OTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.40.11
NETMASK=255.255.255.0
GATEWAY=192.168.40.2
添加上述内容即可

[root@kvm ~]# systemctl restart network #*敉

7.4、创建KVM存储和镜像数据的目录、上传centos7镜像

[root@kvm ~]# mkdir -p /data_kvm/iso #上传镜像centos 7.6的镜像
[root@kvm ~]# mkdir -p /data_kvm/store #虚拟机存储

[root@kvm ~]# ls /data_kvm/iso/
CentOS-7-x86_64-DVD-1708.iso

[root@kvm ~]# virt-manager #图形界面敲,打开虚拟系统管理器


7.5、进入安装步骤

创建存储池


双击打开QEMU/KVM?存储?添加(加号)?填写名称?前进?浏览?其他位置?计算机?data_kvm?store?打开?完成,使用相同方法创建镜像存储池,选择的文件夹是/data_kvm/iso


创建存储池存储镜像




创建存储卷




创建虚拟机










总结

一个完整的数据包从虚拟机到物理机的路径是:


虚拟机?QEMU虚拟网卡?虚拟化层?内核网桥?物理网卡


KVM的网络优化方案,总的来说,就是让虚拟机访问物理网卡的层数更少,直至对物理网卡的单独占领,和物理机一样的使用物理网卡,达到和物理机一样的网络性能。


相关推荐