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。

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

         

 

  

 

posted @ 2020-04-25 13:57  coisini-1  阅读(470)  评论(0编辑  收藏  举报