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。

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

             

      

  • 相关阅读:
    WRF WPS预处理
    CVS安装
    Linux窗口最小化消失,任务栏上无法找到的解决方法
    NCARG安装配置出现error while loading shared libraries: libg2c.so.0问题额解决办法
    Netcdf安装
    Embedding R-generated Interactive HTML pages in MS PowerPoint(转)
    The leaflet package for online mapping in R(转)
    Some 3D Graphics (rgl) for Classification with Splines and Logistic Regression (from The Elements of Statistical Learning)(转)
    What does a Bayes factor feel like?(转)
    Weka算法介绍
  • 原文地址:https://www.cnblogs.com/mo-xiao-tong/p/12772841.html
Copyright © 2011-2022 走看看