KVM 虚拟化 介绍
文章目录
- 一:虚拟化概述
- 1:虚拟化的定义
- 2:虚拟化的特性
- 3:虚拟化的发展历程
- 4:虚拟化类型
- 5:虚拟化的特点
- 优势
- 劣势
- 6:虚拟化开启前后对比
- 开启前
- 开启后
- 二:KVM 概述
- 1:KVM 的定义
- 2:KVM 虚拟化架构/3种模式
- 3:KVM 工作原理
一:虚拟化概述
1:虚拟化的定义
- 通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率
- CPU的虚拟化技术可以将单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率
2:虚拟化的特性
- 在一个操作系统中(win10)模拟多个操作系统(centos, win10、suse),同时每个操作系统可以跑不同的服务(nginx+tomcat),从而实现一台宿主机搭建一个集群(从整体)
- 通过软件/应用程序的方式,来实现物理硬件的功能
3:虚拟化的发展历程
- 雏形:
1961年,IBM709机器实现了分时系统,将CPU占用切分为多个极短的时间片(1/100sec)每一个时间片执行不同的工作,通过对这些时间片进行轮询从而将一个CPU伪装成多个CPU - 1972年,IBM 正式将system370机的分时系统命名为虚拟机
- 1990年,IBM推出的system390机支持逻辑分区(将一个CPU分为多份,相互独立,也就是逻辑分割)
- KVM: 2007年问世,现已内置在kernel内核中的Xen、支持的虚拟化技术:全虚拟化,半虚拟化、KVM:支持的虚拟化技术:全虚拟化
4:虚拟化类型
- 全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用
使用的方法:使用hypervisor (VMM)软件,其原理是在底层硬件和服务器之间建立一个抽象层,而基于核心的虚拟机是面向Linux系统的开源产品hypervisor(VMM)可以捕捉CPU的指令,为指令访问硬件控制器和外设充当中介。 - 半虚拟化:需要修改操作系统
- 直通:直接使用物理硬件资源(需要支持,还不完善)
5:虚拟化的特点
优势
- ①集中化管理(远程管理、维护)
- ②提高硬件利用率(物理资源利用率低-例如峰值,虚拟化解决了“空闲”容量)
- ③动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)
- ④高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)
劣势
- ①前期高额费用(初期的硬件支持)
- ②降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化)
- ③更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)
- ④实施配置复杂、管理复杂(管理人员运维、排障困难)
- ⑤一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用)
- ⑥安全性(虚拟化技术自身的安全隐患)
6:虚拟化开启前后对比
开启前
- ①每台主机拥有一个操作系统
- ②软硬件紧密结合
- ③在同一个主机上运行多个应用程序通常会产生冲突
- ④系统资源利用率低(例如:5%)
- ⑤硬件成本高昂并且不够灵活
开启后
- ①打破了操作系统和硬件的互相依赖
- ②通过封装到虚拟机的技术,管理操作系统和应用程序为单一的个体
- ③强大的安全和故障隔离
- ④虚拟机时独立于硬件的,它们可以在任何硬件上运行
二:KVM 概述
1:KVM 的定义
- (1))KVM (Kernel-based Vritual Machine)-基于内核的虚拟机
- (2))KVM是基于虚拟化扩展的X86硬件的开源Linux原生的全虚拟化方案(要求cpu支持Inte-VT-x或AMD-V)
- (3))KVM内嵌于内核模块中,模拟处理器和内存以支持虚拟机运行
- (4)虚拟机被实现为常规的Linux进程,由标准Linux调度程序进行调度
- (5)虚拟机的每个虚拟CPU被实现为一个常规的Linux进程。这使得KMV能够使用Linux内核的已有功能但KVM本身不执行任何模拟。需要客户空间程序(虚拟机)通过/devlkvm(此虚拟设备需要开起硬件辅助虚拟化才能看到)接口设置一个客户机虚拟服务器的地址空间,并且由Qemu模拟I/O (ioctl)进行调度资源和维护管理
2:KVM 虚拟化架构/3种模式
- 1、客户模式(guestoS):VM中的OS为Guestos
客户机在操作系统中运行的模式,客户机分为内核模式和用户模式,作用如下:
- 2、用户模式
为用户提供虚拟机管理的用户空间工具以及代表用户执行lO,Qemu工作在此模式下(Qemu的主要功能)
- 3、linux内核模式
模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下
3:KVM 工作原理
- 用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。KVM驱动为虚拟机创建虚拟CPU和虚拟内存,然后执行VMLAU-NCH指令进入客户模式,装载Guest 0S 并运行。Guest OS运行过程中如果发生异常,则暂停Guest 0S的运行并保存当前状态同时退出到内核模式来处理这些异常。内核模式处理这些异常时如果不需要O则处理完成后重新进入客户模式。如果需要IO则进入到用户模式,则由Qemu来处理IO,处理完成后进入内核模式,再进入客户模式
KVM 虚拟化 介绍相关推荐
- KVM虚拟化介绍和安装使用方法
一.KVM虚拟化介绍 虚拟化:在一台计算机上虚拟出多个逻辑的计算机,而且每个逻辑计算机 它可以是不同操作系统 虚拟化技术:可以扩大硬件容量,单个cpu模拟出多个cpu并行, 允许一个平台上同时运行多个 ...
- kvm虚拟化介绍及部署
1.虚拟化介绍 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多 ...
- KVM虚拟化- KVM虚拟化介绍
1 概念 虚拟化技术 VMM (Virtual Machine Monitor) Hypervisor:虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机 ...
- 《Linux KVM虚拟化架构实战指南》——导读
** 前言 ** 越来越多的用户考虑在IT环境中实施多种虚拟化hypervisor,开源成为不错的选择.基于内核的虚拟机KVM技术逐渐流行,它由世界最大的Linux提供商红帽支持并推广,还有IBM提供 ...
- KVM虚拟化解决方案系列之KVM架构篇
虚拟化是云计算的基础,在有虚拟化之前,一个物理主机上只能安装一个操作系统和运行一个核心业务程序.在有了虚拟化之后,一个物理主机上可以运行多台虚拟机,虚拟机上可以安装不同的操作系统和运行不同的核心业务程 ...
- 《Linux KVM虚拟化架构实战指南》——第1章 KVM虚拟化概述 1.1XEN虚拟化介绍
本节书摘来自异步社区<Linux KVM虚拟化架构实战指南>一书中的第1章,第1.1节,作者:何坤源著,更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章 KV ...
- KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍
一.使用virt-manager创建和管理虚拟机 1.使用VNC Viewer连接进入虚拟化平台主机 2.打开终端输入virt-manager命令启动virt-manager虚拟机管理界面 #virt ...
- 云计算运营—03 KVM虚拟化技术方案介绍
KVM虚拟化技术方案介绍 1.背景介绍 KVM(Kernel-based Virtual Machine) 开源全虚拟化方案 支持体系结构 x86(32位,64位).IA64.PowerPC.S390 ...
- KVM虚拟化平台介绍及搭建
文章目录 一:虚拟化技术 1.1:虚拟化技术发展 1.2:虚拟化类型 1.3:虚拟化的特性: 优势 劣势 案例: 二:KVM: 2.1.KVM 原理简介 2.2.KVM架构及原理 2.3.KVM原理 ...
最新文章
- Android 编译期间 动态修改AndroidMainFest文件
- linux内核链表分析
- 类实现Parcelable接口在Intent中传递
- python作者龟叔_Python基础 — Python简介
- 1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg
- [蓝桥杯][算法提高VIP]A Careful Approach(全排列+二分)
- 房奴房贷断供,房子真的会被收走吗?
- java ee 8 api_Java EE 8安全性API:概述
- Linux内核LED子系统、请务必看
- linux如何安装python环境变量中,Windows和linux环境下python安装及环境变量的配置
- android 多线程封装,Android 线程池的封装
- 【TI-ONE系列教程(五)】如何使用 TI-ONE SDK 玩转算法大赛
- 酒糟怎么处理才能喂母羊?
- ORB-SLAM3配置安装及运行---Ubuntu20.04(2021年)
- (w10)Prtsc截图键无法正常使用——解决办法
- MySQL数据库的恢复-mysql数据库的恢复
- python成语接龙代码_最全的成语接龙代码(附带有网页版)
- Dreamweaver开发人员工作区 标准工作区的区别
- ubuntu 域名解析暂时失败
- 手摸手带你写项目----秒杀系统(一)