zoukankan      html  css  js  c++  java
  • 虚拟化 原理

    链接:https://www.jianshu.com/p/40b44441aeb5
    来源:简书 //学习总结

    虚拟化的概述:

    虚拟化意味着 创建设备、资源 的虚拟版本

    • 系统虚拟化
    • 存储虚拟化
    • 网络虚拟化
    • GPU虚拟化
    • 软件虚拟化
    • 硬件支持虚拟化

    虚拟化的实现方式:

    • 纯软件的仿真   通过模仿完整的硬件环境
    • 虚拟化层的翻译  多数的虚拟化采用虚拟机管理程序Hypervisor
    • 容器技术

    一、 虚拟化技术

    • 虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
      物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)

    1、虚拟化技术的分类:

    (1) 模拟:Emulation

    Qemu, PearPC, Bochs, ...

    (2) 完全虚拟化:Full Virtualization,Native Virtualization
    • 完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。
    • VMware是一款完全虚拟化软件。完全虚拟的弱点是效率不如半虚拟化的高
      半虚拟化系统性能可以接近在裸机上的性能。

    VMWare Workstation, VirtualBox, VMWare Server, Parallels Desktop, KVM(hvm), XEN(hvm)

    (3) 半虚拟化:Para-Virutalization
    • 半虚拟化需要对运行在虚拟机上的客户机操作系统
      进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。

    • 特点:GuestOS明确知道自己运行虚拟机之上;
      xen, UML(user-mode linux)

    (4) 容器级虚拟化:

    LXC, OpenVZ, libcontainer, runC, rkt, Linux V Servers, Virtuozzo, ...

    (5) 库级别虚拟化:

    wine

    (6) 程序级虚拟化

    jvm, pvm, ...

    2、主机虚拟化:Emulation, Full Virtualization, Para-Virutalization

    Type-I:Hypervisor直接运行于硬件;
    Type-II:Hypervisor运行主机OS之上;

    3、云栈的类别:

    • IaaS(Infrastructure-as-a-Service)基础设施服务
    • PaaS(Platform-as-a-Service)系统平台服务
    • SaaS(Software-as-a-Service)软件服务
    • FWaaS(FireWall as a Service)防火墙服务
    • DBaaS(DataBase-as-a-Service)数据库服务
    • LBaas (load-balancer-as-a-service)负载均衡服务

     KVM简介:

    其中,KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor:

    • 它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购。
    • 它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
    • 它从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中。
    • 它需要支持虚拟化扩展的 CPU。
    • 它是完全开源的。官网

    KVM安装:

    环境准备:

    1.Centos7系统64位

    2.CPU支持硬件辅助虚拟化 HVM

    svm AMD的CPU

    vmx inter的CPU

    KVM模块:

    libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。

    bridge-utils:设置网络网卡桥接(centos7默认安装)。

    qemu-img:安装qemu组件,使用qemu命令来创建管理磁盘等。

    virt-manager:图形化管理工具(最好直接安装yum install virt*,需要用到的virt命令工具较为方便)

    模块的使用:

    1.qemu-img磁盘管理命令

    info  #查看镜像的信息

    create  #创建镜像

    check  #检查镜像

    convert  #转化镜像的格式,(raw,qcow ……)

    snapshot  #管理镜像的快照

    rebase  #在已有的镜像的基础上创建新的镜像

    resize  #增加或减小镜像大小





  • 相关阅读:
    c#FileStream文件读写(转)
    mvc Razor 视图中找不到 ViewBag的定义
    JS正则表达式验证账号、手机号、电话和邮箱
    jquery each循环,
    $.grep(array, callback, [invert])过滤,常用
    arguments 对象
    有关Select option 元素
    MVC零基础学习整理(一)
    根据年月日算出当前日期是星期几
    C# winfrom 模拟ftp文件管理
  • 原文地址:https://www.cnblogs.com/gaiting/p/12294278.html
Copyright © 2011-2022 走看看