Centos7.4安装kvm虚拟机(使用virt-manager管理)

Centos7.4安装kvm虚拟机(使用virt-manager管理)

  • sa 发布于 2018-02-05
  •  
  • 分类:未分类
  •  
  • 阅读(9865)
  •  
  • 评论(0)
  •  
  •  

文章目录html

[隐藏]java

以前介绍了使用WebVirtMgr或Openstack来部署及管理kvm虚拟机,下面简单介绍centos7.4下使用virt-manager部署及管理kvm虚拟机的作法:python

0)KVM是什么

KVM(Kernel-based Virtual Machine, 即内核级虚拟机) 是一个开源的系统虚拟化模块。它使用Linux自身的调度器进行管理,因此相对于Xen,其核心
源码不多。目前KVM已成为学术界的主流VMM之一,它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko 或 kvm-amd.ko)。kvm
还须要一个通过修改的QEMU 软件(qemu-kvm),做为虚拟机上层控制和界面。KVM的虚拟化须要硬件支持(如 Intel VT技术或者AMD V技术)。是基于硬件的
彻底虚拟化。 KVM能够运行多个其自己运行未改动的镜像的虚拟机,例如Windows,Mac OS X ,每一个虚拟机都有各自的虚拟硬件,好比网卡、硬盘核图形适配
器等。linux

KVM和QEMU的关系
QEMU是个独立的虚拟化解决方案,从这个角度它并不依赖KVM。而KVM是另外一套虚拟化解决方案,不过由于这个方案实际上只实现了内核中对处理器(Intel VT)
, AMD SVM)虚拟化特性的支持,换言之,它缺少设备虚拟化以及相应的用户空间管理虚拟机的工具,因此它借用了QEMU的代码并加以精简,连同KVM一块儿构成了
另外一个独立的虚拟化解决方案:KVM+QEMU。ios

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      建立和管理桥接设备的工具

2)centos7安装VNC环境

请参考:http://www.cnblogs.com/kevingrace/p/5821450.htmlvim

3)安装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/isowindows

[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

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

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

[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挂载动做就会结束!)

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

若是要卸载该虚拟机上挂载的这个USB设备,即在”重定向设备usb(R)”里将这个USB设备去掉,而后”肯定”便可!

原文出处:cnblogs -> http://www.cnblogs.com/kevingrace/p/8377645.html

打赏

相关文章
相关标签/搜索