KVM虚拟机部署
一.安装前的准备
- 安装虚拟机
-
vmware虚拟机安装教程见虚拟机工具中此篇 https://blog.csdn.net/weixin_45878889/article/details/110424683
-
注意点
以我这边的配置参考:
CPU选择为4,内存选择8CB,硬盘选择160GB。镜像选择自己的镜像***.iso.如下图所示:
cpu硬件虚拟化打勾
-
设置虚拟机临时网关
在直连虚拟机的情况下,用root权限编辑网卡信息vi /etc/sysconfig/network-scripts/ens192 #编辑网卡信息 service network restart #网卡信息编辑保存后重启网卡
网卡信息如下:
其中IPADDR为虚拟机的ip地址
-
设置swappiness值为0:
[root@ncsp_cc5d9eaa ~]# sysctl -w vm.swappiness=0192
[root@ncsp_cc5d9eaa ~]# cat /proc/sys/vm/swappiness结果如下所示:
备注:安装centos7-1511-minimal操作系统时,配置分区建议是两个挂载点,分别是“/”和“swap”,swap分区建议设置一定大小(4GB或4GB以下内存的系统,建议swap分区2GB;大于4GB而小于16GB内存的系统,建议swap分区4GB;大于16GB而小于64GB内存的系统,建议swap分区8GB;大于64GB而小于256GB内存的系统,建议swap分区16GB),剩余的磁盘空间都分配给“/”分区,同时,为了最大限度使用物理内存,然后才是 swap空间,安装完成操作系统后建议修改swappiness值,将swappiness值设置为0(sysctl -w vm.swappiness=0,echo vm.swappiness = 0 >> /etc/sysctl.conf,该值默认值是30或者60,swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面)。
-
CPU虚拟化
(1)验证该服务器CPU是否支持虚拟化,如果有vmx或svm字样则说明CPU支持虚拟化。如下图所示:[root@ncsp_cc5d9eaa ~]# egrep ‘(vmx|svm)’ /proc/cpuinfo
(2)关闭防火墙
将该服务器的防火墙selinux关闭,即将enforcing修改为disabled,重启生效;或者通过执行命令“setenforce 0”临时禁用,则无需重启。#方法一
[root@ncsp_cc5d9eaa ~]# vi /etc/sysconfig/selinux #将enforcing修改为disabled,重启生效
[root@ncsp_cc5d9eaa ~]# cat /etc/sysconfig/selinux #查看状态防火墙状态是否关闭
#方法二
[root@ncsp_cc5d9eaa ~]# setenforce 0 #执行命令“setenforce 0”临时禁用,则无需重启
二.下载KVM依赖包
1.下载安装kvm及其依赖包
通过yum下载kvm及其依赖包
[root@ncsp_cc5d9eaa ~]# yum install -y qemu-kvm
[root@ncsp_cc5d9eaa ~]# yum install -y libvirt
[root@ncsp_cc5d9eaa ~]# yum install -y virt-install
[root@ncsp_cc5d9eaa ~]# yum install -y bridge-utils #执行该命令时,如果提示已经安装,
#则可以不安装
[root@ncsp_cc5d9eaa ~]# yum install -y net-tools
2.验证下载结果
下载完kvm及其依赖包之后要验证下载是否完成
[root@ncsp_cc5d9eaa ~]# lsmod | grep kvm
3.开启kvm服务
下载成功后需要开启kvm服务
[root@ncsp_cc5d9eaa ~]# systemctl start libvirtd
[root@ncsp_cc5d9eaa ~]# systemctl enable libvirtd
4.查看状态
通过查看kvm状态来确定是否正常启动,如图所示。表明运行情况良好。
[root@ncsp_cc5d9eaa ~]# systemctl status libvirtd
三.kvm下虚拟机的创建
1.创建br0交换机
创建一个br0交换机,步骤如下:
(1)在目录下添加br0接口配置文件和修改ens192
[root@ncsp_cc5d9eaa ~]# cp ifcfg-ens192 ifcfg-br0
示例:br0的网卡配置信息如下:
TYPE=BRIDGE
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=br0
UUID=1deb5600-fdd7-450f-b5bf-8ad5695368ff #每个人的都不同
DEVICE=br0
ONBOOT=yes
IPADDR = 虚拟机的ip地址
PREFIX=20
GATEWAY=网关地址
DNS1=192.168.1.1
NETMASK=255.255.240.0 #看个人情况定
NM_CONTROLLED=no
将原管理接口(比如:ens192)删除IPADDR地址,然后接入br0,ens192网卡信息修改入选:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
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=ens192
UUID=ae04f73d-e355-4f2e-a953-88465bce47bb
DEVICE=ens192
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
如果创建虚拟机时加了2个网卡,另一个网卡信息参考如下:
2.验证是否生效
远程连接br0管理ip—在br0网卡中配置的IPADDR,验证配置是否生效;如果可以正常远程连接到服务器,说明配置生效;并查看交换机信息:
[root@ncsp_cc5d9eaa ~]# brctl show
3.上传文件
(1)上传虚拟机镜像和xml文件到/home目录,进入/home目录,将需要的虚拟机镜像和xml文件上传到该目录下
(2)创建xml文件
修改xml文件,根据环境目前配置修改镜像的路径、接口类型(网桥bridge)、网桥名(我们是br0),如下红色表示字段
xml文件和镜像文件放在同一目录下,xml文件如下:
<domain type='kvm' id='70'>
<name>test</name> //**虚拟机名称**
<uuid>b4c03f53-900d-4fa9-af5f-7600100713e3</uuid> //**虚拟机uuid**
<memory unit='KiB'>4194304</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/test_V1.6R10F00SP11_20181203.qcow2'/> **//镜像文件的路径**
<backingStore/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<controller type='ide' index='0'>
<alias name='ide'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='usb' index='0' model='piix3-uhci'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<interface type='bridge'> //**接口类型为网桥模式bridge**
<mac address='52:54:00:f2:28:d3'/> //**接口mac地址,注意和其他mac不能重复。单播地址,可以自己生成一个,与本机其他mac地址不重复即可**
<source bridge='br0'/> //**接口接入的网桥为br0**
<target dev='test'/> //**接口名,可自定义,与其他虚机接口名不可重复**
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/12'/>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/12'>
<source path='/dev/pts/12'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<input type='mouse' bus='ps2'>
<alias name='input0'/>
</input>
<input type='keyboard' bus='ps2'>
<alias name='input1'/>
</input>
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='cirrus' vram='16384' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</memballoon>
</devices>
<seclabel type='none' model='none'/>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>+107:+107</label>
<imagelabel>+107:+107</imagelabel>
</seclabel>
</domain>
四.创建虚拟机
1.执行xml文件定义虚拟机
virsh define test.xml #xml文件自己命名
2.启动虚拟机
virsh start sash
virsh list --all # 启动之后查看虚拟机状态
virsh destroy test #停止虚拟机
virsh undefine test #删除主机
rm -rf ****.img #删除镜像文件
3.进入虚拟机
virsh console test
控制台账号:用户名/密码
如果遇到如下图问题,可以用Ctrl + d
(1)配置如下截图:
(2)配置虚拟机ip
(3)配置网关
(4)虚拟机内部ping网关
查看虚拟机是否创建配置成功,通过浏览器访问虚拟机的ip,可以访问到虚拟机登录界面即可;ip设置前先ping一下,要选择没有人用的ip。
安装过程中遇到的问题以及解决办法见下一篇kvm虚拟机安装问题解答