• kvm虚拟化平台搭建


    一、虚拟化

    虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

    物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。那么 Host 是如何将自己的硬件资源虚拟化,并提供给 Guest 使用的呢?这个主要是通过一个叫做 Hypervisor 的程序实现的。根据 Hypervisor 的实现方式和所处的位置,虚拟化又分为两种: 1型虚拟化和2型虚拟化

    1型虚拟化

    Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。这种虚拟化中 Hypervisor 直接管理调用硬件资源,不需要底层操作系统,也可以理解为 Hypervisor 被做成了一个很薄的操作系统。 这种方案的性能处于主机虚拟化与操作系统虚 拟化之间 。代表是VMware ESX Server、Citrix XenServer 和 Microsoft Hyper-V,Linux KVM。

    2型虚拟化

    物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

    二、kvm架构

    kvm是一种基于内核的虚拟化(属于2型虚拟化),主要分为两大部分

    1、位于内核空间的的kvm.io:主要负责虚拟机的虚拟CPU也就是vCPU ,还有就是对虚拟内存进行管理和调度

    2、QEMU-KVM:qemu运行在用户空间,kvm运行在内核空间,两者通过/dev/kvm打交道。这个QEMU-KVM就是通过修改QEMU代码而得出的专门用来创建和管理虚拟机的管理工具,是为了KVM能更好的和内核打交道。VM 运行期间,QEMU 会通过 KVM 模块提供的系统调用进入内核,由 KVM 负责将虚拟机置于处理的特殊模式运行。为一个虚拟机提供的是io等设备。

    三、kvm实现示例

    实验环境:VMware Workstation 10、centos7(64位)

    前提:(需要开启VMware 创建的虚拟机支持虚拟化,如下图红框所示)

    1、查看系统是否支持

    看到“vmx”表示支持

    2、安装kvm相关包

    yum install qemu-kvm libvirt virt-install virt-manager bridge-utils
    systemctl start libvirtd
    •  qemu-kvm    ----模拟计算机的工具,为KVM虚拟机提供IO设备
    •  libvirt    ----用于管理 KVM 的Hypervisor
    •  virt-install    ----命令行的虚拟机创建安装工具
    •  bridge-utils   ----网桥工具
    •  virt-manager 是 KVM 图形化管理工具

     3、在宿主机创建用于虚拟化的网桥

     1)增加 /etc/sysconfig/network-scripts/ifcfg-br0

       

     2)找到本机现在ip使用的网卡,本例中为  /etc/sysconfig/network-scripts/ifcfg-eno16777736

     

     3)重启网卡

    systemctl restart network

    可以看到ip,已经跑到br0上去了。

    4、在宿主机创建虚拟机

     1)下载测试镜像:cirros-0.3.4-x86_64-disk.img  ,从网址:http://download.cirros-cloud.net

     2) 创建安装磁盘

    [root@localhost ~]# qemu-img create -f qcow2 /var/kvm-images/disk-10g.img 10G
    Formatting '/var/kvm-images/disk-10g.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off 

     3)安装虚拟机

    [root@localhost ~]# virt-install --name boshen-vm --virt-type kvm --vcpus 1 --ram 512 -c /var/kvm-images/cirros-0.3.4-x86_64-disk.img --network bridge=br0 --noautoconsole --graphics none --console pty,target_type=serial --os-type=linux --os-variant=rhel7 --disk path=/var/kvm-images/disk-10g.img,size=10,format=qcow2
    
    Starting install...
    Domain installation still in progress. You can reconnect to 
    the console to complete the installation process.

    5、虚拟机基本管理命令

     1)查看虚拟机列表

    [root@localhost ~]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     2     boshen-vm                      running

    2)进入虚拟机

    virsh console boshen-vm

    3)关闭虚拟机

    virsh shutdown boshen-vm

    4)强制关闭虚拟机

    virsh destroy boshen-vm
    [root@localhost ~]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     -     boshen-vm                      shut off

    5)启动虚拟机

    [root@localhost ~]# virsh start boshen-vm
    Domain boshen-vm started
    [root@localhost ~]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     5     boshen-vm                      running

    6)删除虚拟机

    virsh destroy boshen-vm
    virsh undefine boshen-vm

    7)查看虚拟机硬盘

    [root@localhost ~]# qemu-img info /var/kvm-images/disk-10g.img
    image: /var/kvm-images/disk-10g.img
    file format: qcow2
    virtual size: 10G (10737418240 bytes)
    disk size: 196K
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false

    8)添加硬盘

    首先创建一块新的硬盘:disk-5g.img

    [root@localhost ~]# qemu-img create -f qcow2 /var/kvm-images/disk-5g.img 5G
    Formatting '/var/kvm-images/disk-5g.img', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off

    然后为虚拟机添加硬盘

    [root@localhost ~]# virsh attach-disk boshen-vm /var/kvm-images/disk-5g.img vdb --live --cache=none --subdriver=qcow2
    Disk attached successfully

    9)卸载硬盘

    [root@localhost ~]# virsh detach-disk boshen-vm --target vdb
    Disk detached successfully
  • 相关阅读:
    基于风险集成 Risk-Based
    基于消息(事件)集成 Message-Based/Event-Based
    如何保证系统测试的完备性?
    1.1 功能测试(功能)
    问:给你一个网站,你如何测试?
    问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?
    4.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    什么是 JavaConfig?
    Spring Boot 有哪些优点?
    .Redis中的常用命令哪些?
  • 原文地址:https://www.cnblogs.com/boshen-hzb/p/9903944.html
Copyright © 2020-2023  润新知