1、KVM安装部署

作者: 小短腿电工 | 来源:发表于2019-02-15 16:57 被阅读7次
    (1)
    yum install virt-install qemu-kvm qemu-img libvirt libvirt-python.x86_64 virt-manager python-virtualenv libvirt-client
    (2)
    yum groupinstall -y "虚拟化主机|Virtualization Host"
    yum install -y virt-manager
    ssh -X ip:port #带x11图形链接虚拟机
    

    1)kvm相关安装包及其作用

    qemu-kvm          主要的KVM程序包
    python-virtinst   创建虚拟机所需要的命令行工具和程序库
    virt-manager      GUI虚拟机管理工具
    virt-top          虚拟机统计命令
    virt-viewer       GUI连接程序,连接到已配置好的虚拟机
    libvirt           C语言工具包,提供libvirt服务
    libvirt-client    虚拟客户机提供的C语言工具包
    virt-install      基于libvirt服务的虚拟机创建命令
    bridge-utils      创建和管理桥接设备的工具
    

    配置远程图形化支持

    yum install -y xrdp
    

    手动加载内核模块

    [root@master ~]# modprobe kvm
    [root@master ~]# lsmod |grep kvm
    kvm                   586948  0 
    irqbypass              13503  1 kvm
    

    启动libvirtd服务

    systemctl restart libvirtd.service
    

    这个服务会在本地安装一个虚拟网卡

    3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
        link/ether 52:54:00:aa:e2:da brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
           valid_lft forever preferred_lft forever
    4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
        link/ether 52:54:00:aa:e2:da brd ff:ff:ff:ff:ff:ff
    

    安装完成后他会默认帮您开启ip转发和IP伪装

    [root@master ~]# sysctl -p
    [root@master ~]# sysctl -a |grep ip_forward
    sysctl: reading key "net.ipv6.conf.all.stable_secret"
    sysctl: reading key "net.ipv6.conf.default.stable_secret"
    sysctl: reading key "net.ipv6.conf.ens33.stable_secret"
    sysctl: reading key "net.ipv6.conf.lo.stable_secret"
    (*net.ipv4.ip_forward = 1)
    net.ipv4.ip_forward_use_pmtu = 0
    sysctl: reading key "net.ipv6.conf.virbr0.stable_secret"
    sysctl: reading key "net.ipv6.conf.virbr0-nic.stable_secret"
    

    安装kvm

    1)检查cpu是否支持虚拟化
    [root@kevin ~]# grep vmx /proc/cpuinfo
    如果有vmx信息输出,就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机。
    
    2)确保BIOS里开启虚拟化功能,即查看是否加载KVM模块
    [root@kevin ~]# lsmod | grep kvm
    kvm_intel             170086  0
    kvm                   566340  1 kvm_intel
    irqbypass              13503  1 kvm
    =========================================================
    如果没有加载,运行以下命令:
    [root@kevin ~]# modprobe kvm
    [root@kevin ~]# modprobe kvm-intel
    [root@kevin ~]# lsmod | grep kvm
    kvm_intel             170086  0
    kvm                   566340  1 kvm_intel
    irqbypass              13503  1 kvm
    =========================================================
    
    内核模块导出了一个名为/dev/kvm的设备,这个设备将虚拟机的的地址空间独立于内核或者任何应用程序的地址空间。
    [root@kevin ~]# ll /dev/kvm
    crw-rw-rw-. 1 root kvm 10, 232 1月  29 11:56 /dev/kvm
    
    3)桥接网络
    如果没有brctl命令(用来管理网桥的工具),则需要安装bridge-utils ,
    [root@kevin ~]# yum -y install bridge-utils
    [root@kevin ~]# systemctl restart network
    
    配置KVM的网桥模式
    [root@kevin ~]# cd /etc/sysconfig/network-scripts/
    [root@openstack network-scripts]# cp ifcfg-eno1 ifcfg-br0
    [root@openstack network-scripts]# cat ifcfg-br0
    TYPE="Bridge"                                        //这一行修改为Bridge
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="no"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="br0"                                           //修改设备名称为br0
    #UUID="fdbad04f-dae3-440e-8a8b-01d6a7bc9fe0"         //这一行注释
    DEVICE="br0"                                         //修改设备为br0
    ONBOOT="yes"
    IPADDR="192.168.10.210"
    PREFIX="24"
    GATEWAY="192.168.10.1"
    DNS1="8.8.8.8"
    
    [root@openstack network-scripts]# cat ifcfg-eno1
    TYPE="Ethernet"
    BRIDGE=br0                                           //添加这一行
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="no"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="eno1"
    UUID="fdbad04f-dae3-440e-8a8b-01d6a7bc9fe0"
    DEVICE="eno1"
    ONBOOT="yes"
    #IPADDR="192.168.10.210"                          //注释掉这几行
    #PREFIX="24"
    #GATEWAY="192.168.10.1"
    #DNS1="8.8.8.8"
    
    重启网卡服务
    [root@openstack network-scripts]# systemctl restart network
    
    查看网卡
    [root@openstack network-scripts]# brctl show
    bridge name bridge id   STP enabled interfaces
    br0   8000.0894ef518b22 no    eno1
    virbr0    8000.52540095d7c2 yes   virbr0-nic
    
    查看ip信息
    [root@openstack network-scripts]# ifconfig |head -20
    br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.10.210  netmask 255.255.255.0  broadcast 192.168.10.255
            inet6 fe80::a94:efff:fe51:8b22  prefixlen 64  scopeid 0x20<link>
            ether 08:94:ef:51:8b:22  txqueuelen 1000  (Ethernet)
            RX packets 856  bytes 52981 (51.7 KiB)
            RX errors 0  dropped 2  overruns 0  frame 0
            TX packets 120  bytes 23450 (22.9 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            ether 08:94:ef:51:8b:22  txqueuelen 1000  (Ethernet)
            RX packets 10077  bytes 793083 (774.4 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1184  bytes 228415 (223.0 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            device interrupt 16 
    
    eno2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            ether 08:94:ef:51:8b:23  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
    
    [root@openstack network-scripts]# ping www.baidu.com
    PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
    64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=2.08 ms
    64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=1.80 ms
    ........
    
    4)安装libvirt及kvm
    libvirt是管理虚拟机的API库,不仅支持KVM虚拟机,也可以管理Xen等方案下的虚拟机。
    [root@kevin ~]#  yum -y install libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.x86_64  libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64
    libvirt-java.noarch  libvirt-python.x86_64 libiscsi-1.7.0-5.el6.x86_64  dbus-devel  virt-clone tunctl virt-manager libvirt libvirt-python python-virtinst
    
    由于要用virt-manager图形化安装虚拟机,所以还需要安装X-window(这个在前面部署VNC环境里就已经安装了)
    [root@kevin ~]# yum groupinstall "X Window System"
    
    安装中文字符,解决界面乱码问题
    [root@kevin ~]# yum install -y dejavu-lgc-sans-fonts
    [root@kevin ~]# yum groupinstall -y "Fonts"
    
    启用libvirt
    [root@kevin ~]# systemctl enable libvirtd
    [root@kevin ~]# systemctl start libvirtd
    
    

    4)使用virt-manager管理kvm(通过VNC连接服务器)

    提前将ISO系统镜像存放到服务器的一个目录里,比如/data/iso

    [root@openstack ~]# mkdir /data/iso
    [root@openstack ios]# ll
    总用量 3356384
    -rw-r--r--. 1 qemu qemu 3436937216 1月  29 11:41 win-server2008_R2.iso
    
    
    image image image image image image

    5)解决KVM虚拟机在使用vnc连接时鼠标不同步的问题

    在VNC界面中感觉virt-manager管理的虚拟机界面总是鼠标跟不上,指到哪儿也看不出来,界面上一直显示press control_l+a/t_l来移动鼠标!十分郁闷!
    想要修改鼠标和宿主机界面同步方法如下:

    [root@openstack ~]# cd /etc/libvirt/qemu
    [root@openstack qemu]# ls
    networks  test-win2008.xml
    [root@openstack qemu]# cp test-win2008.xml /opt/
    [root@openstack qemu]# vim test-win2008.xml               //在<devices>标签中添加下面这段配置
    <devices>   
    ......                                      
      <input type='tablet' bus='usb'/>                        //即添加这句话即可!
    ......    
    </devices>
    
    [root@openstack qemu]# virsh define /etc/libvirt/qemu/test-win2008.xml
    定义域 test-win2008(从 /etc/libvirt/qemu/test-win2008.xml)
    
    

    然后重启虚拟机后,发现虚拟机中的鼠标就会好事了,打开VNC查看虚拟机界面后默认情况下虚拟机中的鼠标指针和实体机的鼠标指针就是重合的,且两者运动速度也是同步的,
    这下就彻底解决了鼠标指针漂移/不同步的情况了!

    6)重定向USB设备

    (即将宿主机上的USB设备指定到目标虚拟机上)。适合挂载银行前置机设备!

    先将USB设备插到宿主机上,接着在virt-manager界面里打开虚拟机,然后虚拟机界面上栏里打开”虚拟机”->”重定向USB设备(R)”。(特别注意:如下选择将usb设备挂载到虚拟机上后,不要关闭这个挂载界面,否则usb挂载动作就会结束!)

    image image

    查看虚拟机,发现指定的USB设备已经挂载到该虚拟机上了!

    image

    如果要卸载该虚拟机上挂载的这个USB设备,即在”重定向设备usb(R)”里将这个USB设备去掉,然后”确定”即可!

    image image

    相关文章

      网友评论

        本文标题:1、KVM安装部署

        本文链接:https://www.haomeiwen.com/subject/gqjmeqtx.html