zoukankan      html  css  js  c++  java
  • kvm认识和安装

    虚拟化定义:
    是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
    虚拟化使用软件的方法重新定义划分 IT 资源,可以实现 IT 资源的动态分配、灵活调度、跨域共享,提高 IT 资源利用率,使 IT 资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

    一、虚拟化分类
    1、完全虚拟化:
    最流行的虚拟化方法使用名为 hypervisor 的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。主要缺点,hypervisor 给处理器带来开销。
    2、准虚拟化:
    完全虚拟化是处理器密集型技术,因为它要求 hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户端操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor 协同工作。这种方法就叫准虚拟化。
    3、系统虚拟化:
    就操作系统层的虚拟化而言,没有独立的hypervisor 层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统 ( 不过每个实例有各自的应用程序和用户账户 ) 。虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。
    4、桌面虚拟化:
    服务器虚拟化主要针对服务器而言,而虚拟化最接近用户的还是要算的上桌面虚拟化了,桌面虚拟化主要功能是将分散的桌面环境集中保存并管理起来,包括桌面环境的集中下发,集中更新,集中管理。桌面虚拟化使得桌面管理变得简单,不用每台终端单独进行维护,每台终端进行更新。
    终端数据可以集中存储在中心机房里,安全性相对传统桌面应用要高很多。桌面虚拟化可以使得一个人拥有多个桌面环境,也可以把一个桌面环境供多人使用

    虚拟机按结构分类:
    1、1型虚拟化:
    Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare的 ESXi 都属于这个类型。
    2、2型虚拟化:
    物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

    二、虚拟化—KVM
    介绍:
    1、全称是基于内核的虚拟机(Kernel-based Virtual Machine)是一个开源软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用虚拟技术,该内核模块使得 Linux 变成了一个Hypervisor,虚拟机使用 Linux 自身的调度器进行管理。
    2、是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的
    Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。

    虚机:
    Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),被KVM 置于一种受限制的 CPU 模式下运行。
    KVM:运行在内核空间,提供CPU 和内存的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被KVM 拦截后,交给 QEMU 处理。QEMU:修改过的为 KVM 虚机使用的 QEMU 代码,运行在用户空间,提供硬件 I/O 虚拟化,通过IOCTL /dev/kvm 设备和 KVM 交互

    KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。IO 的虚拟化,就交给 Linux 内核和qemu来实现

    Libvirt:
    是 KVM 的管理工具(virsh 和 virt-manager两种管理方式)。Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理Xen,VirtualBox 等。OpenStack 底层也使用 Libvirt。

    Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具virsh
    (1)libvirtd是服务程序,接收和处理 API 请求;
    (2)API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt- manager,这是个图形化的 KVM 管理工具,后面我们也会介绍;
    (3)virsh 是我们经常要用的 KVM 命令行工具,后面会有使用的示例。

    三、虚拟化VT开启确认

    安装kvm前准备工作:
    1. 确定处理器有 VT
    命令行: grep vmx /proc/cpuinfo (INTEL 芯片 )
    grep svm /proc/cpuinfo (AMD 芯片 )
    cat /proc/cpuinfo | grep -e vmx -e nx -e svm
    2. 当你硬件本身支持虚拟化,但查询相应参数无果时,请检查 BIOS 设定,确认你的 BIOS 中开启了硬件支持虚拟化的功能!
    将如下选项设为Enabled
    Intel(R) Virtualization Tech [Enabled]

    四、KVM虚拟化安装
    YUM 安装 KVM
    yum install kvm virt-manager libvirt libvirt-python python-virtinst libvirt-client qemu-kvm qemu-img
    yum install virt-manager libvirt* qemu*

    kvm虚拟化所需组件介绍:
    kvm: 核心套件
    virt-manager: 图形化 KVM 管理软件
    libvirt: 提供虚拟机与宿主相互通信的机制
    libvirt-python: 允许使用 libvirt API
    python-virtinst:CLI 下创建 KVM 的工具
    libvirt-client: 提供 client 访问 kvm 服务器的机制 ,并包含
    virsh 命令进行管理和控制 VMs
    qemu-kvm: 提供用户级 KVM 环境
    qemu-img:VMs 磁盘管理
    虚拟化VT开启确认

    启动 KVM
    (1)modprobe kvm 加载 kvm 模块
    (2)lsmod | grep kvm 查看加载成功
    (3)systemctl start libvirtd
    (4)systemctl status libvirtd
    启动并检测 KVM
    virsh list --all

    如出现
    Id Name State
    -----------------------------------------------
    则安装成功
    五、KVM网络模式设置
    (网桥)
    修改网卡配置文件
    #Vim ifcfg-eth0        
    TYPE=Ethernet
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    BRIDGE=br0

    #Vim ifcfg-br0

    TYPE=Bridge

    NAME=br0

    DEVICE=br0

    ONBOOT=yes

    BOOTPROTO=none

    IPADDR=192.168.254.20

    PREFIX=24(NETMASK=255.255.255.0)

    GATEWAY=192.168.254.1

    DNS=192.168.254.251


    重启网络
    # systemctl restart network
    检查网桥是否创建成功
    # ethtool br0
    # brctl show
    # ifconfig br0

     

  • 相关阅读:
    Tensorflow安装环境更新
    IE请求访问的设置
    eclipse安装JAVA反编译插件
    eclipse导入JDK源码
    org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported
    Linux学习笔记——使用指定的用户权限执行程序——sudo
    Linux学习笔记——查看Linux系统信息的方法
    Linux学习笔记——切换并取代用户身份命令——su
    JS实现电子时钟
    鼻炎
  • 原文地址:https://www.cnblogs.com/jclty/p/10675764.html
Copyright © 2011-2022 走看看