文章目录

  • 简介
  • 1.虚拟化技术
    • 1.1 概述
    • 1.2 虚拟化技术的发展雏形
    • 1.3 虚拟化类型
  • 2.KVM架构和原理
    • 2.1 KVM简介
    • 2.2 KVM虚拟化架构/三种模式
    • 2.3 KVM原理
      • 2.3.1 KVM虚拟化技术核心功能(原理方面)
      • 2.3.2 KVM各核心组件功能
  • 3.虚拟化的特性
  • 4.搭建KVM平台
    • 4.1 项目拓扑图
    • 4.2 KVM环境准备
    • 4.3 安装KVM
    • 4.4 设置KVM网络为桥接
    • 4.5 KVM管理
      • 4.5.1 创建存储池
      • 4.5.2 创建存储卷
    • 4.6 开始创建虚拟机
    • 4.7 总结

简介

  • 美国环境保护EPA报告中曾经统计过一组统计数据:EPA研究服务器和数据中心得能源效率时发现,实际上服务器只有5%得时间时在工作的,其他时间一直处于休眠状态。为了提高硬件利用率,KVM等虚拟化技术应时而生;
  • KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核, 它依托 CPU 虚拟化指令集(如Intel-VT、 AMD-V) 实现高性能的虚拟化支持。

1.虚拟化技术

1.1 概述

  • 通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率
虚拟化理解
1、在一个操作系统中(win10)模拟多个操作系统(centos、win10、suse),同时每个操作系统可以跑不同的服务
(nginx+tomcat),从而实现一台宿主机搭建一个集群
定位
2、通过软件/应用程序的方式,来实现物理硬件的功能,也就是模拟硬件资源/设备/操作系统。
实际应用:workstation、virtualbox、网吧等

1.2 虚拟化技术的发展雏形

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

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

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

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

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

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

1.3 虚拟化类型

  • 全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用
  • 半虚拟化:需要修改操作系统
  • 直通:直接使用物理硬件资源 (需要支持,还不完善)

全虚拟化使用的方法:

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

注意:

  • 软件资源是没有硬件资源性能高的 (相同功能下)

2.KVM架构和原理

2.1 KVM简介

  • 广义的 KVM 实际上包含两部分:
    一部分是基于 LINUX 内核支持的 KVM 内核模块, 另一部分就是经过简化和修改的 Qemu。
1、KVM 内核模块模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提供一个用户空间工具来进行
虚拟机的管理。 两者相互结合, 相辅相成, 构成了一个完整的虚拟化平台。2、Libvirt:KVM的管理工具,除了可以管理KVM这类VMM,还可以管理Xen,VirtualBox,甚至OpenStack底层
Libvirt包含3个组件:后台daemon程序libvirtd、API库、命令行工具virsh注意: Qemu 本身并不是 KVM 的一部分, Qemu 是一套完整的虚拟化解决方案, 是纯软件实现虚拟化, 包括处理器
虚拟化、 内存虚拟化以及各种虚拟设备的模拟, 但因为是纯软件模拟出来的, 所以 Qemu 的性能比较低。

2.2 KVM虚拟化架构/三种模式

1、客户模式(guestOS):VM中的OS为GuestOS
客户机在操作系统中运行的模式,客户机分为内核模式和用户模式,作用如下:
2.用户模式:
为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)
3.linux内核模式:
模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下

2.3 KVM原理

1、Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O设备驱动等),被KVM置于一种受限制的CPU模式下运行
2、KVM内核模块模拟处理器和内存以支持虚拟机运行
3、Qemu主要处理I/O以及为客户提供一个用户空间/dev/kvm 工具libvirt来进行虚拟机管理ioctl(定义)专用于设备输入输出操作的系统调用
libvirt: KVM管理工具
以上构成一个完整的虚拟化平台
  • 简单理解
1)KVM驱动提供处理器、内存的虚拟化,以及客户机I/O的拦截,guest的I/O被拦截后,交由Qemu处理
2)Qemu利用接口libkvm调用(ioctl)虚拟机设备接口/dev/kvm来分配资源、管理、维护虚拟机

2.3.1 KVM虚拟化技术核心功能(原理方面)

  • QEMU:工作在用户层,控制libkvm工具(工具作用,控制内核中的kvm)来调用物理虚拟化资源;
    调用虚拟化资源的方式是 ioctl ,供给虚拟机
  • kvm:工作在内核层,虚拟化/抽象化物理硬件资源,供给Qemu组件调用

2.3.2 KVM各核心组件功能

  • QEMU:
    功能:控制I/O虚拟化,调用硬件资源
  • KVM:
    功能:为虚拟化提供CPU、内存(硬件资源)的虚拟化

3.虚拟化的特性

  • 优势
1、集中化管理 (远程管理、维护)
2、提高硬件利用率 (物理资源利用率低-例如峰值,虚拟化解决了“空闲”容量)
3、动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)
4、高可靠 (可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)
  • 劣势
1、前期高额费用(初期的硬件支持)
2、降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化)
3、更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)
4、实施配置复杂、管理复杂(管理人员运维、排障困难)
5、一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用)
6、安全性(虚拟化技术自身的安全隐患)

4.搭建KVM平台

4.1 项目拓扑图

  • 虚拟机资源
CPU:双核双线程-CPU虚拟化开启
内存:8G
硬盘:300G
双网卡:单网卡
操作系统:Centos 7.5

4.2 KVM环境准备

  • 首先安装centos7系统:即在VMware软件中新建虚拟机,并安装centos7系统
  • centos7系统优化:在centos7系统安装完成后,需要勾选上KVM虚拟化功能,且网卡选择NAT模式
  • 相关优化配置
1、防火墙优化
[root@kvm ~]# systemctl stop firewalld.service
[root@kvm ~]# systemctl disable firewalld.service      '//关闭防火墙,永久关闭'
[root@kvm ~]# vi /etc/selinux/config
...
SELINUX=disabled       '//将enforcing修改为disabled'2、设置镜像光盘自动挂载
[root@kvm ~]# vi /etc/fstab        '//设置永久挂载'
...
/dev/cdrom                                /mnt                 iso9660    defaults        0 0
[root@kvm ~]# mount -a         '//让挂载生效'3、优化ssh
[root@kvm ~]# vim /etc/ssh/sshd_config     '//设置DNS反向解析,让客户端连接服务器更快'
...
UseDNS no       '//取消注释,并将yes改成no'4、yum本地仓库搭建
[root@kvm ~]# cd /etc/yum.repos.d/
[root@kvm yum.repos.d]# mkdir backup
[root@kvm yum.repos.d]# mv C* backup
[root@kvm yum.repos.d]# ls
backup  local.repo
[root@kvm yum.repos.d]# vim yql.repo       '//搭建本地Yum仓库'
//添加以下配置
[yql]
name=test
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@kvm yum.repos.d]# yum clean all          '//清空yum仓库'
[root@kvm yum.repos.d]# mount /dev/sr0 /mnt        '//因为没有重启,所以需要手动挂载一下光盘镜像'
[root@kvm yum.repos.d]# yum makecache          '//建立缓存,加载yum数据'

4.3 安装KVM

  • 安装相关组件包
[root@kvm ~]# yum groupinstall -y "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 ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
'//将 系 统 的 默 认 运 行 target 更 改 为graphical.targe。 重启后系统将进入图形化界面。'[root@kvm ~]# reboot  '//重启'
  • 查看虚拟化模块,并开启相关服务
[root@kvm ~]# cat /proc/cpuinfo | grep vmx     '//查看CPU是否支持虚拟化'
[root@kvm ~]# lsmod | grep kvm   '//查看KVM模块是否安装'
kvm_intel             183621  0
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm
[root@kvm ~]#  systemctl start libvirtd     '//开启libvirtd服务'
[root@kvm ~]#  systemctl enable libvirtd       '//开机启动libvirtd服务'

4.4 设置KVM网络为桥接

  • 宿主服务器安装完成 KVM, 首先要设定网络, 在 libvirt 中运行 KVM 网络有两种方法:
    分别为 NAT 和 Bridge, 默认是 NAT。
1、用户模式, 即 NAT 方式, 这种方式是默认网络, 数据包由 NAT 方式通过主机的接口进行传送, 可以访问外网,
但是无法从外部访问虚拟机网络。2、桥接模式, 这种模式允许虚拟机像一台独立的主机一样拥有网络, 外部的机器可以直接访问到虚拟机内部, 但需要
网卡支持, 一般有线网卡都支持。这里以 Bridge(桥接) 为例。
  • 修改ens33网卡
[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none '//修改为none'
DEFROUTE=yes
#IPADDR=192.168.140.30
#NETMASK=255.255.255.0
#GATEWAY=192.168.140.2
#DNS=192.168.140.2
BRIDGE=br0     '//注释掉原本的IP地址和网关等设置,添加此处'
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=5aa5a365-ef5d-4600-a8f0-a89e553e2714
DEVICE=ens33
ONBOOT=yes
  • 新建桥接网卡,并重启网卡服务
[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.140.30
NETMASK=255.255.255.0
GATEWAY=192.168.140.2[root@kvm~]# systemctl restart network   '//重启网卡'

4.5 KVM管理

  • 创建KVM存储和镜像文件夹,并上传镜像
[root@kvm ~]# mkdir -p /data_kvm/iso     '//创建上传镜像centos 7.5的镜像目录'
[root@kvm ~]# mkdir -p /data_kvm/store   '//创建虚拟机存储文件目录'
[root@kvm ~]# mount.cifs //192.168.140.1/elk /mnt
Password for root@//192.168.140.1/elk:  ******     //输入电脑主机密码(若没密码按空格即可)
[root@kvm ~]# cd /mnt/
[root@kvm mnt]# ls
CentOS-7-x86_64-DVD-1708.iso
[root@kvm mnt]# cp CentOS-7-x86_64-DVD-1708.iso /data_kvm/iso/
[root@kvm mnt]# ll /data_kvm/iso/
总用量 4415488
-rwxr-xr-x 1 root root 4521459712 1月  11 08:50 CentOS-7-x86_64-DVD-1708.iso[root@kvm ~]# virt-manager      '//图形界面敲,打开虚拟系统管理器'

4.5.1 创建存储池

  • 双击打开QEMU/KVM–存储–添加(加号)–填写名称–前进–浏览–其他位置–计算机–data_kvm–store–打开–完成

(1) 先创建存储池选择 /data_kvm/store




(2) 再使用同样的方法,创建存储池选择 /data_kvm/iso

4.5.2 创建存储卷

4.6 开始创建虚拟机

  • 打开虚拟系统管理器—右击QEMU/KVM—选择新建
  • 本地安装介质—前进
  • 选择使用ISO映像—浏览选择刚刚创建的镜像的存储池中的镜像—前进
  • 配置内存和CPU—前进
  • 管理–选择刚刚创建的存储池中的存储卷–前进
  • 点击在安装前自定义配置–选择网络(桥接)–完成
  • 点击引导选项–勾选主机引导时启动虚拟机–开始安装–出现提示选择是

4.7 总结

  • VMM是一个系统软件,可以维护多个高效、隔离的程序环境(虚拟机),同时可以管理计算机系统的真实资源,为虚拟机提供端口;
  • 使用KVM虚拟化技术,极大地提高了硬件利用率。集中化管理多台虚拟机,维护方便

KVM虚拟化平台搭建、工作模式与原理相关推荐

  1. linux搭建虚拟化平台报告,部署KVM虚拟化平台------搭建(示例代码)

    一 .部署KVM虚拟化平台 hyper-v是windows中的虚拟化 1.KVM模块直接整合在Linux内核中,kvm是内核模块,虚拟机与kvm模块之间为管理工具 2.KVM组成 1.KVM Driv ...

  2. KVM虚拟化平台搭建+理论

    文章目录 一.KVM虚拟化架构 二.KVM组成 三.KVM原理简介 四.KVM 运行时的三种模式 五.KVM工作原理 六.案例 1.案例概述 2.案例环境 3.KVM虚拟化平台部署 1)安装系统 2) ...

  3. KVM虚拟化平台搭建

    目录 一.虚拟化技术概述 1.1 虚拟化技术 1.2 虚拟化技术发展(雏形) 1.3 虚拟化特点 1.4 虚拟化类型 1.5 虚拟化的特性 1.6 虚拟化前后对比 1.6.1 对比 1.6.1.1 操 ...

  4. KVM虚拟化平台搭建!!!

    一.虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个操 ...

  5. Centos7搭建KVM虚拟化平台之基于OVS网桥

    Centos7搭建KVM虚拟化平台之基于OVS网桥 文章目录 Centos7搭建KVM虚拟化平台之基于OVS网桥 一.什么是虚拟化技术?为什么要用虚拟化技术? 二.Qemu-KVM基本工作原理分析 三 ...

  6. KVM虚拟化平台介绍及搭建

    文章目录 一:虚拟化技术 1.1:虚拟化技术发展 1.2:虚拟化类型 1.3:虚拟化的特性: 优势 劣势 案例: 二:KVM: 2.1.KVM 原理简介 2.2.KVM架构及原理 2.3.KVM原理 ...

  7. linux搭建虚拟化平台报告,CentOS 7中搭建KVM虚拟化平台的方法步骤

    什么是虚拟化 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术. 虚拟化 ...

  8. 字符模式下构建、使用KVM虚拟化平台

    字符模式下构建.使用KVM虚拟化平台 环境准备: KVM虚拟化服务器(真机或高配虚拟机(内存>4G) 操作系统:CentOS 6.5   ==> 关闭 iptables 防火墙.关闭SEL ...

  9. 搭建kvm虚拟化平台和管理kvm虚拟化平台

    一.搭建kvm虚拟化平台 1,安装前准备:启用虚拟化支持,添加内存和内核 2,安装kvm服务 挂载光盘 2)安装kvm调试工具 3) 安装管理虚拟机命令 4) 安装KVM管理控制台 3.启动虚拟化服务 ...

最新文章

  1. 学python去哪做项目_有哪些适合 Python 刚入门者去做的项目?
  2. MAC安装OpenXenManager管理Xenserver
  3. myeclipse6.0下载及注冊码
  4. 机房收费系统--登录窗体
  5. cadence原理图封装pin名称重复_Cadence原理图库文件引脚名重复处理方法介绍
  6. u盘无法复制文件进去_U盘无法复制超过4GB的大文件怎么办?
  7. 火狐标签在中间_在Firefox中保留未使用的标签
  8. POJ2155 - Matrix(二维树状数组)
  9. 如何设置Fedora默认从命令行启动?
  10. android 沉浸式状态栏 兼容低版本,详解Android沉浸式实现兼容解决办法
  11. 5年商标之争落幕 货拉拉夺回“货拉拉”商标权
  12. 如何在SQL Server 2016中比较查询执行计划
  13. 员工管理系统————员工修改模块
  14. 大连理工大学在CVPR18大规模精细粒度物种识别竞赛中获得冠军
  15. Linux下的进程管理——task_struct
  16. 几步看懂晶闸管的结构和工作原理
  17. 破解wifi密码最简单教程 就三步
  18. [电影]《指环王》新老三部曲完全赏析(王者归来)
  19. 使用pscc抠人物图像头发
  20. 51单片机实战教程基础硬件篇(一 电子元件PCB 封装库设计教程)

热门文章

  1. 怎么接受对方tp_恋爱关系中怎么和回避型有效沟通
  2. cad修改快捷键_CAD新手攻略:修剪(TRIM)CAD命令快捷键的使用技巧
  3. 腾讯云web应用防火墙(WAF)防护设置步骤介绍
  4. 微信小程序旋转动画,图片转动view旋转等
  5. 【中级计量经济学】Lecture 2 多重共线性
  6. Matlab动画模拟分子布朗运动的示例
  7. 每日一条Linux Shell命令--mv
  8. 一位 19 年 Mac 用户的心声:“我真的很讨厌库克”
  9. 求过圆心直线与圆的两个交点
  10. python计算营业额代码_python计算营业额的代码_python 统计代码行数简单实例