zoukankan      html  css  js  c++  java
  • kvm部署安装

    一、KVM 介绍

      1.为什么需要cpu虚拟化

           X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件。x86 架构提供四个特权级别给操作系统和应用程序来访问硬件。 Ring 是指 CPU 的运行级别,Ring 0是高级别,Ring1次之,Ring2更次之…… 就 Linux+x86 来说, 操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在高运行级别  Ring0上,这样它可以使用特权指令,控制中断、修改页表、访问设备等等。 应用程序的代码运行在低运行级别上ring3上,不能做受控操作。如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问,完成之后再从ring0返回ring3。这个过程也称作用户态和内核态的切换。

                    

        那么,虚拟化在这里就遇到了一个难题,因为宿主操作系统是工作在 ring0 的,客户 操作系统就不能也在 ring0了,但是它不知道这一点,以前执行什么指令,现在还是执行什 么指令,但是没有执行权限是会出错的。所以这时候虚拟机管理程序(VMM)需要避免这件 事情发生。 虚机怎么通过VMM实现 Guest CPU 对硬件的访问,

          根据其原理不同有三种实现 技术:

             1. 全虚拟化

           2. 半虚拟化

             3. 硬件辅助的虚拟化

    二、

                 KVM的整体结构:

             1) virt-manager 一个用来管理VM的GUI/CUI用户接口;它使用libvirt api 调用VM的各种功能。

             2) libvirt 一个工具及接口,作为较通用的服务器虚拟化软件,它支持Xen,VMware ESXi/GSX,当然, 还有QEMU/KVM。

             3) QEMU 一个和KVM内核模块交互的模拟器,处理多种客户机系统请求如I/O;一个QEMU进程对应一个 客户机系统。

            4) KVM内核模块 从狭义上来说,KVM是一个Linux内核模块,处理客户机系统的VM Exits和执行VM Entry指 令。

            5) Linux内核 既然QEMU作为一个普通的用户进程运行,相应客户机系统的调度就由Linux内核自己来处 理。 所有的组件都是开放源码软件(OSS)。

     三、KVM 的功能列表

             KVM 所支持的功能包括:

             Ø 支持CPU 和 memory 超分(Overcommit)

             Ø 支持半虚拟化I/O (virtio)

             Ø 支持热插拔(cpu,块设备、网络设备等)

             Ø 支持对称多处理(Symmetric Multi-Processing,缩写为 SMP )

             Ø 支持实时迁移(Live Migration)

             Ø 支持 PCI 设备直接分配和单根I/O虚拟化(SR-IOV)

             Ø 支持内核同页合并(KSM )

             Ø 支持NUMA (Non-Uniform Memory Access,非一致存储访问结构 )

     四、KVM 工具集合

             libvirt:操作和管理KVM虚机的虚拟化API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。

             Virsh:基于libvirt 的命令行工具(CLI)

             Virt-Manager:基于libvirt的GUI工具 virt-v2v:虚机格式迁移工具 virt-* 工具:包括Virt-install (创建KVM虚机的命令行工具),Virt-viewer (连接 到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等

             sVirt:安全工具和selinux相关

    五、安装部署虚拟化环境

                  一、)图形化安装

                            1.虚拟机安装

                                    ①如果是物理服务器,需要在BIOS中打开虚拟化功能(Virtualization Technology),一 般的服务器默认是打开这个功能的。

                                        

                                    ②、如果是用VMware Workstation做实验,建立的虚拟机的CPU要勾选虚拟化功能,这样虚拟 机才会支持KVM虚拟化

                                 

                              2.最简单的安装方法就是在安装系统的时候,安装上虚拟化功能,这里以CentOS7.3为例, 选择安装包的时候,如下图选择即可,选择“带GUI的服务器”,并勾选“虚拟化客户 端”,“虚拟化Hypervisor”,“虚拟化工具”。

                              

                        3.安装完成后查看CPU是否能支持虚拟化

                               grep -e  "vmx |  svm"   /proc/cpuinfo

                        4.启动程序

                           systemctl enable libvirtd && systemctl start libvirtd

          二、)如果你的系统是最小化安装的,那你应该安装以下所需软件: 

          1.安装软件

    yum groupinstall "GNOME 桌面" -y #//安装GNOME桌面环境
    yum install qemu-kvm -y           #/KVM核心模块
    yum install qemu-kvm-tools -y  #//KVM调试工具,可以选择性安装
    yum install qemu-img -y          #//创建、转换和修改镜像,能处理被qemu支持的所有镜像格式
    yum install libvirt -y                #//管理虚拟机的工具包
    yum install virt-install -y         #//virt-install是一个使用  libvirt库构建新虚拟机的命令行工具
    yum install virt-manager -y    #//图形界面管理虚拟机
    yum install bridge-utils -y      #//配置linux以太网桥        
    

         2.验证

                          lsmod | grep kvm

             3.启动程序

                如果libvirtd服务停止运行,那么你将不能管理虚拟机,也就是不能使用virt-manager 等工具来管理虚拟机

                systemctl status libvirtd

       三、)图形界面没有虚拟化软件

                    1.安装虚拟化软件

    yum install qemu qemu-img qemu-kvm libvirt libvirt-python libguestfs-tools  virt-install
    

               2.安装图形化工具:

    yum install virt-manager virt-viewer
    

               3.开启图形化界面

    systemctl enable libvirtd && systemctl start libvirtd

    六、部署kvm虚拟化

                  1.上传光盘镜像

         2.创建文件夹

    mkdir /kvm-vm  #放置虚拟机使用
    mkdir /iso            #放置镜像
    

         3.命令启动程序

                         virt-manager

               

          5.创建存储池

               

                 

                 

      6.创建镜像池

              

                 

     7.创建虚拟机

                 

                

                

             

              创建储存虚拟机卷(可以提前创建也可以在创建虚拟机选择储存位置时创建)

             

            

      接下来正常安装系统就可以了

     七、、使用virt-manager管理虚拟机

              virt-manager应用程序是一个桌面用户接口,用于通过libvirt管理虚拟机。它的主要 目标是管理KVM,不过也可以管理Xen和LXC(Linux容器)。它提供了运行域的汇总视图,当 前性能和资源利用统计。向导可以允许创建新域,以及配置、调整域的资源分配和虚拟硬 件。内嵌的VNC和SPICE的客户端提供了一个全图形控制台。

                 virt-manager主要功能:

                    Ø 定义和创建虚拟机

                   Ø 硬件管理

                  Ø 性能监视

                  Ø 虚拟机的保存和恢复、暂停和继续、关闭和启动

                  Ø 控制台

                  Ø 在线和离线迁移

          启用virt-manager

                     应用程序----系统工具----虚拟系统管理器

               

                 或者   输入          virt-manager命令

        2.配置虚拟机启动选项:

             

                在1的位置如果勾选,可以设置虚拟机随物理主机启动而启动

               在2的位置如果勾选,那么虚拟机启动的时候就会出现启动菜单,然后可以选择从哪里 启动

               在3的位置如果勾选,那么可以让虚拟机启动时候使用宿主机中的内核文件启动

         3.调整监视参数,默认只监视CPU。

              先调整首选项,然后在“查看”--“图形”中勾选监控参数即可

             

      

  • 相关阅读:
    利用docker搭建测试环境--安装
    fiddler获取手机请求
    python多线程
    linux下安装python的第三方module
    shell编程sed笔记
    shell 函数
    mysql information_schema 数据库简介:
    shell常用的判断条件
    gulp:gulp-sass基础教程
    (六):关于全局config配置
  • 原文地址:https://www.cnblogs.com/mo-xiao-tong/p/12772841.html
Copyright © 2011-2022 走看看