zoukankan      html  css  js  c++  java
  • KVM虚拟化

    一、kvm简介 

    (1)简介

      KVM:就是Keyboard Video Mouse的缩写。KVM 交换机通过直接连接键盘、视频和鼠标 (KVM) 端口,让您能够访问和控制计算机。KVM 技术无需目标服务器修改软件。这就意味着可以在 Windows 的 BIOS 环境下,随时访问目标计算机。KVM 提供真正的主板级别访问,并支持多平台服务器和串行设备。

       KVM 技术已经从最初的基础SOHO办公型,发展成为企业 IT 基础机房设施管理系统。可以从kvm 客户端管理软件轻松的直接访问位于多个远程位置的服务器和设备。KVM over IP 解决方案具备完善的多地点故障转移功能、符合新服务器管理标准 (IPMI) 的直接界面,以及将本地存储媒体映射至远程位置的功能。

       KVM 是个"怪胎",原本是类型2 的主机虚拟化;但一旦在OS 上加载了kvm.ko 模块,就会"感染"OS,使其变为hypervisor(kvm),原本的软件空间作为控制台,转化成类型1 模式的主机虚拟化

    (2)KVM的组件

       ① kvm.ko:模块

         API 应用程序编程接口

       ② qemu-kvm:用户空间的工具程序;

        qemu-KVM是一种开源虚拟器,它为KVM管理程序提供硬件仿真。

        运行中的一个kvm虚拟机就是一个qemu-kvm进程,运行qemu-kvm程序并传递给它合适的选项及参数即能完成虚拟机启动,终止此进程即能关闭虚拟机;

       ③ libvirt 虚拟化库:Libvirt是一个C工具包,可以与最近版本的Linux(以及其他操作系统)的虚拟化功能进行交互。主包包含了导出虚拟化支持的libvirtd服务器。

         C/S:

           Client:

             libvirt-client

             virt-manager

         Daemon:

           libvirt-daemon

    (3)KVM模块load进内存之后,系统的运行模式:

         内核模式:GuestOS执行IO类的操作时,或其它的特殊指令操作时的模式;它也被称为"Guest-Kernel"模式;

         用户模式:Host OS的用户空间,用于代为GuestOS发出IO请求;

         来宾模式:GuestOS的用户模式;所有的非IO类请求

    二、安装

     (1)前提:

       ① 必须跑在x86 系统的架构上

       ② 必须支持硬件级虚拟化

         vmx:Intel VT-x

         svm:AMD AMD-vt

       ③ 在虚拟机上再虚拟化,需开启虚拟化 Intel VT-x/EP

       1.配置主机支持虚拟化

       

     

      2.查看是否支持

    1     # grep -i -E '(vmx|svm|lm)' /proc/cpuinfo
    2 
    3     注意:vmx 或 svm或lm 必须出现一个,表示是支持的
    View Code

      

     

      3.装载KVM 模块

    1     # yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v
    2     # yum update
    3     # yum upgrade
    4     # modprobe kvm
    View Code

      4.查看模块

    1     # lsmod |grep kvm
    View Code

      

      5.安装用户端工具 qemu-kvm

    1     # yum install libvirt-daemon-kvm qemu-kvm virt-manager -y
    View Code

      6.启动kvm守护程序并创建虚拟桥

    1     # systemctl start libvirtd.service
    2     # virsh iface-bridge eth0(ens33) br0        //centos6是eth0,7是ens33
    3     # systemctl restart netowrk
    View Code

      

       7.打virt-manager 窗口,创建虚拟机

        #查看虚拟机

      

     

    1    # virt-manager
    View Code

      

      8.上传镜像用于创建系统

      

      9.创建虚拟机

        (1)选择本地镜像安装

      

        (2)选取镜像

      

      

      

      (3)配置cpu、内存

      

      (4)配置硬盘大小

      

      (5)核对配置信息,勾选安装前配置,注意网络选网桥br0

      

      (6)选取键盘和图形界面VNC,方便鼠标键盘操作

      

      (7)开始安装

       

      (8)最小化安装

      

      (9)配置网络

      

      

      

      

      (10)配置密码开始安装

      

      (11)安装完成,测试连接

      

      

      

      

    三、Virsh常用命令

     1   virsh list                       #显示本地活动虚拟机
     2   virsh list –all                    #显示本地所有的虚拟机(活动的+不活动的)
     3   virsh define ubuntu.xml               #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
     4   virsh start ubuntu                #启动名字为ubuntu的非活动虚拟机
     5   virsh create ubuntu.xml              # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
     6   virsh suspend ubuntu                 # 暂停虚拟机
     7   virsh resume ubuntu                 # 启动暂停的虚拟机
     8   virsh shutdown ubuntu             # 正常关闭虚拟机
     9   virsh destroy ubuntu              # 强制关闭虚拟机
    10   virsh dominfo ubuntu               #显示虚拟机的基本信息
    11   virsh domname 2                # 显示id号为2的虚拟机名
    12   virsh domid ubuntu                  # 显示虚拟机id号
    13   virsh domuuid ubuntu             # 显示虚拟机的uuid
    14   virsh domstate ubuntu               # 显示虚拟机的当前状态
    15   virsh dumpxml ubuntu              # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)
    16   virsh setmem ubuntu 512000          # 给不活动虚拟机设置内存大小
    17   virsh setvcpus ubuntu 4              # 给不活动虚拟机设置cpu个数
    18   virsh edit ubuntu               # 编辑配置文件(一般是在刚定义完虚拟机之后)
    View Code

    四、Qemu-kvm安装

      1.创建虚拟网桥

    1     # yum -y install bridge-utils 
    2     # brctl addbr br-int0 
    3     # brctl show
    View Code

      

    1     # ifconfig -a
    View Code


      2.激活网桥

    1     # ip link set br-int0 up
    View Code


      3.删除网桥

    1     # ip link set br-int0 down
    2     # brctl delbr br-int0
    3     # ifconfig -a
    4     # brctl show
    View Code


      4.手动创建物理网桥

     1     # cd /etc/sysconfig/network-scripts
     2     # cp ifcfg-eth1/ens33 ifcfg-br0
     3     # vim ifcfg-br0
     4       TYPE=Bridge
     5       NAME=br0
     6       UUID=395fbf3c-07ef-4f58-a6a6-049c646a3d2b
     7       DEVICE=br0
     8       ONBOOT=yes
     9       IPADDR=192.168.11.199
    10       NETMASK=255.255.255.0
    11       GATEWAY=192.168.11.254
    12       DNS1=114.114.114.114
    13       ZONE=public
    View Code

        

      5.把主机的网卡连接到网桥上

    1     # vim ifcfg-eth1/ens33
    2       DEVICE=eth1/ens33
    3       ONBOOT=yes
    4       BRIDGE=br0
    View Code

          

      6.重启网卡

    1     # systemctl restart network
    2     # brctl show
    View Code

        

      7.安装qemu-kvm

    1     # yum install qemu-kvm libvirt-daemon-kvm virt-manager 
    2     # modprobe kvm
    3     # lsmod |grep kvm
    View Code

        

     

      8.创建软链接,把qemu写入PATH变量

    1     # ln -sv /usr/libexec/qemu-kvm /usr/bin/
    2     # qemu-kvm -h
    View Code

      9.安装VNC图形工具

    1     # yum install vnc-server tigervnc -y
    2     # vncpasswd
    3     # vncserver
    View Code

        

      10.创建虚拟机所需要的iso镜像和磁盘

    1     # mkdir /kvm/images -pv
    2     # qemu-img create -o preallocation=metadata -f qcow2 /kvm/images/centos.qcow2 60G
    View Code

        

      11.创建虚拟机

     1     # qemu-kvm -cpu host -smp 1 -name centos   -m 512 -drive file=/kvm/images/centos.qcow2,if=ide,media=disk,format=qcow2 -drive file=/var/lib/libvirt/images/CentOS-7-x86_64-DVD-1804.iso,media=cdrom -boot     dc  -usbdevice  tablet
     2 
     3     -cpu  :指定CPU的模式
     4 
     5     -smp  :指定CPU的个数
     6 
     7     -name  :指定虚拟机的名字
     8 
     9     -m   :指定虚拟机内存大小
    10 
    11     -drive file :指定硬盘设备文件
    12 
    13     if=ide  :指定硬盘设备连接的借口类型
    14 
    15     media=disk  :指定硬盘设备为磁盘
    16 
    17     format=qcow2 :指定映像文件的格式 
    18 
    19     -boot    :定义启动引导次序
    View Code

        

        


      12.另开终端打开安装

    1     # vncviewer :5900
    View Code

        

      13.开始安装

        

  • 相关阅读:
    如何把自己的百度网盘的内容分享给别人
    postman 中post方式提交数据
    在ThinkPHP中,if标签和比较标签对于变量的比较。
    Linux SVN搭建模式 规格严格
    Redmine安装201209 规格严格
    GBK 规格严格
    MySQL分区优化 规格严格
    Null 规格严格
    Compiler 规格严格
    UDP VS TCP 规格严格
  • 原文地址:https://www.cnblogs.com/jay-fred/p/9962887.html
Copyright © 2011-2022 走看看