KVM安装

 

检查CPU是否支持硬件虚拟化

在开始安装KVM之前,需要检查系统中的CPU是否支持硬件虚拟化的特性,执行下面的命令:

grep -E '(vmx|svm)' /proc/cpuinfo

观察输出结果中是否包含vmx或svm,如果没有输出信息或者不包含vmx或svm,则说明不支持硬件虚拟化。

安装KVM和其关联的包

运行下面的命令来安装KVM和其相关联的包(以管理员权限安装):

sudo yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils

安装完成后,输出内容:

已安装:
  libvirt.x86_64 0:3.2.0-14.el7_4.3                    libvirt-client.x86_64 0:3.2.0-14.el7_4.3             
  libvirt-python.x86_64 0:3.2.0-3.el7_4.1              virt-install.noarch 0:1.4.1-7.el7                    
  virt-manager.noarch 0:1.4.1-7.el7                    virt-viewer.x86_64 0:5.0-7.el7                       

作为依赖被安装:
  gnutls-dane.x86_64 0:3.3.26-9.el7                                                                         
  gnutls-utils.x86_64 0:3.3.26-9.el7                                                                        
  ldns.x86_64 0:1.6.16-10.el7                                                                               
  libvirt-daemon-config-nwfilter.x86_64 0:3.2.0-14.el7_4.3                                                  
  libvirt-daemon-driver-lxc.x86_64 0:3.2.0-14.el7_4.3                                                       
  python-ipaddr.noarch 0:2.1.11-1.el7                                                                       
  unbound-libs.x86_64 0:1.4.20-34.el7                                                                       
  virt-manager-common.noarch 0:1.4.1-7.el7 

启动和启用 libvirtd 服务

执行:

systemctl start libvirtd

结果:

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ===

执行:

systemctl enable libvirtd

结果:

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ===
Authentication is required to manage system service or unit files.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Authentication is required to reload the systemd state.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ===

检查KVM模块是否正确加载

lsmod | grep kvm

 其结果应该包含如下两条内容:

kvm_intel             170086  0 
kvm                   566340  1 kvm_intel

如果不包含 kvm_intel,则说明BIOS中的CPU设置 Intel Virtual Technology 没有启用,需要启用。

启动Virt Manager

执行以下命令,启动vir manager,virt manager是一个图形化界面:

virt-manager

打开的图形窗口如下所示:

配置桥接方式(Bridge Interface)

如果需要在虚拟网络连接之外的地方访问虚拟机,就需要配置该种方式的网络链接。

首先拷贝一份配置文件,注意这个文件“ifcfg-enp3s0”,可能有些版本这个文件的名称是不同的,根据文件名称的形式应该能够识别出来。

cd /etc/sysconfig/network-scripts/
cp ifcfg-enp3s0 ifcfg-br0

原文件内容为:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPADDR=192.168.0.251
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
DNS1=192.168.0.1
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp3s0"
UUID="99244a4d-8cac-4023-9a09-8e50c547cd3a"
DEVICE="enp3s0"
ONBOOT="yes"

 

修改后的文件内容:

sudo vi ifcfg-enp3s0

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp3s0"
UUID="99244a4d-8cac-4023-9a09-8e50c547cd3a"
DEVICE="enp3s0"
ONBOOT="yes"
BRIDGE="br0"

 

修改桥接文件内容:

sudo vi ifcfg-br0

TYPE="Bridge"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPADDR=192.168.0.201
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
DNS1=192.168.0.1
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
UUID="99244a4d-8cac-4023-9a09-8e50c547cd3a"
DEVICE="br0"
ONBOOT="yes"

 

使用桥接方式设置网络链接,配置的操作系统就相当于处于宿主机所在局域网中的一台独立的主机,因此,配置时网管、DNS等要与宿主机一致。而IP地址则随便配置一个尚未分配的即可。

重启网络服务,启用这些配置:

 systemctl restart network

重启之后查看网络连接信息:

@iflysse packages]$ ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.251  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::8b3:3ff:fe3f:4da8  prefixlen 64  scopeid 0x20<link>
        ether b0:6e:bf:bb:12:ad  txqueuelen 1000  (Ethernet)
        RX packets 2395927  bytes 3139412719 (2.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1143045  bytes 69576537 (66.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether b0:6e:bf:bb:12:ad  txqueuelen 1000  (Ethernet)
        RX packets 9658569  bytes 3628451207 (3.3 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1157607  bytes 70419297 (67.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 4863  bytes 483460 (472.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4863  bytes 483460 (472.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:14:bd:2f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

并且能够正常访问网络,说明配置成功。

 

开始创建虚拟机

使用如下命令打开图形窗口:

virt-manager

在文件选项中点击“新建虚拟机”:

我这里使用ISO文件进行安装,接下来选择镜像文件的路径:

点击下一步,选择内存和CPU资源:

然后选择硬盘,此处由于默认位置太少,所以重新选择一个存储池。点击窗口左侧列表下面的绿色的加号,会出现添加新存储池的窗口:

选择一个新的存储池的位置,我的系统中home目录空间比较大,因此我就放在我的目录下:

完成之后点击右侧窗口上半部分的加号,创建镜像文件:

在弹出来的添加存储卷窗口中设置文件名称和格式以及大小:

创建完成后,选择该文件即可:

点击选择卷即可。

然后继续前进,设置虚拟机名称和网络链接方式,然后点击完成,即可启动虚拟机。

 

KVM——以桥接的方式搭建虚拟机网络配置

posted @ 2017-10-30 14:50  大肥肥就是我  阅读(896)  评论(3编辑  收藏  举报