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

    1. 经典的虚拟化技术:特权解除、陷入模拟

    2. 虚拟化的分类和代表产品(背景)

    3. openstack 7大核心组件
    Horizon(控制台),又名Dashboard:就是web展示界面操作平台,方便用户交互的
    Nova(计算):负责创建,调度,销毁云主机
    Neutron(网络):负责实现SDN
    Swift(对象存储):目录结构存储数据,用来文件存取
    Cinder(块存储):提供持久化块存储,即为云主机提供附加云盘
    Glance(镜像):提供镜像服务,装机使用
    Keystone(认证):为访问openstack各组件提供认证和授权功能,认证通过后,提供一个服务列表(存放你有权访问的服务),可以通过该列表访问各个组件

    4. docker

    5. qemu-kvm
    1) 提供对cpu,内存(KVM负责),IO设备(QEMU负责)的虚拟
    2) 对各种虚拟设备的创建,调用进行管理(QEMU负责)

    6. libvirt
    为vmm实现的常用功能提供api
    virsh命令、virt-manager就是由libvirt提供的
    openstack > libvirt > qemu-kvm


    kvm核心基础功能

    CPU配置
    1. vcpu
    guestos是一个qemu进程,而vcpu则是qemu进程派生的线程
    KVM环境中,vcpu的三种执行模式:用户模式、内核模式、客户模式

    2. SMP(对称多处理器)
    使用多处理器、多核、超线程等技术来实现进程或线程的并行执行
    qemu-kvm -smp n,maxcpus=cpus,cores=cores,threads=threads,sockets=sockets

    3. 允许cpu过载使用,即vcpu的数量可大于物理cpu数

    4. cpu模型
    定义了哪些主机的CPU功能会被暴露给客户机操作系统
    qemu-kvm -cpu ? 命令来获取主机所支持的 CPU 模型列表
    qemu-kvm xx.img -cpu cpu_model 指定cpu模型

    5. 进程的处理器亲和性/vcpu的绑定
    优点:减少进程在多个CPU之间交换运行带来的缓存命中失效,在进程运行角度看,提升性能;
    缺点:破坏各个CPU的负载均衡,导致整个系统的进程调用变得低效;


    内存配置
    1. 影子页表:从软件上维护guestos虚拟地址 -> hostos物理地址 的映射

    2. EPT(扩展页表):从硬件上支持GVA -> GPA -> HPA 的两次地址转换,并且只需要维护一张EPT页表
    与影子页表相比:
    不需要像影子页表为每个guestos维护一个页表,只需维护一张EPT页表,减少

    3. VPID(虚拟处理器标识):
    通过在硬件上为每个TLB项添加一个标识,用于不同虚拟处理器的地址空间,从而区分开Hypervisor和
    不同处理器的TLB,避免每次进行VM-Exit时都让TLB全部失效,提高VM切换效率

    4. 大页
    x86架构CPU默认使用4KB大小的内存页面,但也支持较大的内存页,比如2MB大小的大页
    使用大页的好处:
    内存页的数量会减少 -> 页表减少 -> 节约页表占用的内存,且地址转换减少
    -> TLB缓存失效次数减少 -> 提高内存访问性能

    5.内存过载使用(内存交换、气球、页共享)
    内存交换:用交换空间来弥补内存不足

    内存气泡(气球):通过virtio_balloon驱动来实现VMM和客户机之间的协作
    由虚拟机里的balloon驱动来动态占用或释放内存,从而动态改变这台虚拟机当前可用内存。
    Balloon驱动占用的内存是从虚拟机可用内存中争抢来的,为虚拟机不可用,宿主机可用的内存。
    当某些虚拟机负载较轻时,可通过驱动把不用的内存归还给host,然后host再将内存释放给负载重的guestos,实现动态平衡

    页共享:通过KSM(kernel samepage merging)来合并多个客户机中相同的内存页

    6. qemu支持的网络模式

    网络配置
    qemu-kvm为guest提供4种不同模式的网络:
    1) 基于网桥的虚拟网卡
    2) 基于NAT(Network Address Translation)的虚拟网络(网络地址转换)
    3) qemu内置用户模式网络(user mode networking)
    4) 直接分配网络设备的网络(VT-d 和 SR-IOV)

    bridge:
    直接将虚拟网卡(桥接接口br0)桥接到一个物理网卡上面
    可以使虚拟机成为网络中具有独立IP的主机

    NAT:
    通过宿主机器所在的网络来访问公网
    支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
    同一台主机创建多个虚拟机,虚拟机之间是可以互相访问的

    可参考:https://wenku.baidu.com/view/b55f46833c1ec5da51e2702f.html

  • 相关阅读:
    ubuntu操作技巧
    电机
    哈佛结构与冯若依曼结构
    linux command ------ ls
    Frames of Reference参考框架
    What Are Tango Poses?Tango姿态是什么?
    Google Tango Java SDK开发:Motion Tracking 运动追踪
    Google Tango Java SDK开发:Configure and Connect 配置和连接
    gradle
    Google Tango service outdated谷歌Tango的服务过时了
  • 原文地址:https://www.cnblogs.com/stellar/p/8529194.html
Copyright © 2011-2022 走看看