zoukankan      html  css  js  c++  java
  • KVM虚拟化

    KVM 虚拟化

    背景:

      随着硬件的设备性能越来越高,成本也越来越低廉,我们在硬件上运行一些程序跑一些业务的时候,可能会对硬件的资源造成一种浪费。这时候我们直接在硬件上采用的一些虚拟化技术,虚拟一些虚拟的机器,让业务泡在虚拟机中。方便后期的维护,迁移

    常见的虚拟化:

    Eg: 云平台     openstack 

    Hardware 是硬件

    Os       系统

    Hapervisor VMM 是虚拟软件

    Guest OS    虚拟机

    Os  hardware 构成一个服务器,通过hypersvisor 对他物理的资源进行虚拟化,通过hypervisor 管理创建的虚拟机

    如果不需要os 的虚拟化称为 原生态虚拟化

    如果以os 的虚拟化称为 寄居

    虚拟化技术既是对资源的抽象

    如果我们用虚拟化技术模拟得是底层的硬件,eg CPU 内存和外设等,这种虚拟化技术称为 “平台虚拟化”    每个平台都可以运行自己独立系统。

    如果我们把操作系统及其提供的系统调用作为资源“操作系统虚拟化”模拟操作系统的一些应用程序和库。Egdocker 

    平台虚拟化:

    虚拟化管理程序Hypervisor VMM

    在平台虚拟化中管理虚拟化的一套软件,可以允许多个操作系统和应用共享硬件

    Hypervisor 可以以截获虚拟机的命令。让虚拟程序不去影响物理机 

    根据平台虚拟化,虚拟化的划分:

    半虚拟化:

    利用hypervisor 可以绕过自己的虚拟硬件,通过一些系统的调用去跑一些真实的物理硬件!

    半虚拟化体现在输入输出的设备上如网卡硬盘,对操作系统有一定的限制

     

    全虚拟化   ----已经淘汰了

    硬件辅助全虚拟化

    有硬件底层添加的虚拟化技术的支持,上层虚拟化跑的应用子调用底层的CPU直接由底层的虚拟化去调用,不在需要中间的hypervisor 的去运行,(对CPU有要求,CPU要支持虚拟化)

    标志:

    Intel  支持硬件辅助虚拟化    VT-x

    AMD  支持硬件辅助虚拟化 AMD-v

     

    如何实现硬件的虚拟化的那?

    CPU指令集进行改造

    能在CPU上运行的东西我们称他CPU指令集,所有能在CPU上能运行得命令是分等级分环的!

     

    Ring 0     内核级别的命令是运行在

    Ring 3 用户空间的命令

    Ring 1 ring 2 在没有运行虚拟化的时候是空闲的。

    Ring  -1        是运行虚拟化的敏感命令如关机之类的

    硬件辅助,中间的改造运行虚拟化都在底层的CPU上进行!

    硬件辅助虚拟化:    linux KVM

    可以通过lscpu 查看机器是否支持虚拟化

    操作系统虚拟化与传统虚拟化

    1. 省却了虚拟硬件
    2. 省却了虚拟软件

    lvm 为例:

    Kvm 实际是内核的一个模块,这个模块本身提供了CPU  与内存的模拟,借助quem-kvm 实现一个硬盘和网卡的模拟

    我们从物理机看kvm kvm在物理机上是以进程存在

    Libvirt  上虚拟机的一些管理命令 

     

    KVM 的安装

    手工去安装kvm

    方法一: 通过yum install  安装包

    [root@study-server ~]# yum install qemu-kvm qemu-img libvirt

    [root@study-server ~]#yum install virt-install.noarch libvirt-python.x86_64 virt-manager python-virtinst libvirt-client.i686 --skip-broken

    装软件组前三必须安装: yum groupinstall -y virt*

     

    通常情况下往虚拟机拷贝文件,首先的需要虚拟机是运行开启的,

    Libguestfs 支持虚拟机不开机就可以往虚拟机里拷贝文件、从虚拟机往出拷贝文件等

     通过:  lsmod | grep kvm 检查kvm 模块是否安装成功

  • 相关阅读:
    vue-router(路由)详细教程
    vue路由对象($route)参数简介
    this.$router.push相关的vue-router的导航方法
    es6 Promise.reject()方法
    百度阿里网易大疆等大小厂前端校招面筋 | 掘金技术征文
    Vue 脱坑记
    (尚016)Vue指令(11个自带指令+自定义指令)
    (尚015)Vue过滤器(对显示的数据进行格式化)
    (尚014)Vue过渡与动画
    (尚013)Vue的生命周期
  • 原文地址:https://www.cnblogs.com/yk0625/p/14019374.html
Copyright © 2011-2022 走看看