CentOS 7.5 安装KVM虚拟机及KVM基本命令
一、KVM环境搭建
1.开启虚拟机处理器虚拟化引擎:(注意在搭建KVM环境时可以先把IOS镜像文件传送到虚拟机内)
2.检测系统是否支持
cat /proc/cpuinfo | egrep 'vmx|svm'
KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。
有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
3.关闭SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
4.安装KVM环境
安装kvm基础包
yum -y install kvm
安装kvm核心包--虚拟操作系统模拟器加速模块
yum -y install qemu-kvm qemu-kvm-tools
安装kvm管理工具
yum -y install libvirt python-virtinst libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
libvirt:必须要装的核心工具
virt-manager:虚拟机图形管理工具(宿主机有桌面环境时可以考虑安装,命令操作或者远程控制则不需要)
bridge-utils:虚拟机与外界通信的命令管理工具
virt-install:虚拟机安装工具
pyhon-virtinst: 包含python模块和工具(virt-install,virt-clone和virt-image)
重启宿主机,加载kvm相关模块
shutdown -r now
查看kvm模块是否被正确加载
lsmod | grep kvm
出现以下信息则表示正确加载
kvm_intel 162153 0
kvm 525259 1 kvm_intel
irqbypass 13503 1 kvm
开启kvm服务,并设置开机启动
systemctl start libvirtd.service
systemctl enable libvirtd.service
查看操作结果,出现Active:active(running)字样则说明运行情况良好
systemctl status libvirtd
systemctl is-enabled libvirtd
二、网桥搭建
如果是在局域网内安装kvm虚拟机,为了方便连接和维护管理,kvm虚拟机的网络模式我们建议使用Bridge模式(另外还有NAT模式),这样kvm虚拟机和宿主机就处在同一个网段,局域网内其它主机就直接连接
1.查看宿主机网卡信息
ip a 或者 ifconfig a
一般物理网卡名称为eth0、eth1或ens开头的等等,我本机上的就是ens33
复制ens33网卡配置文件到br0文件
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0
2.宿主机物理网卡配置
vim ifcfg-ens33
TYPE=Ethernet #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=ens33
UUID=5169b9de-3b6a-425e-8f92-3c74e1e8d97d
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0 #在原来的ifcfg-ens33配置文件中必须添加的(这块网卡桥接到br0设备上)
NM_CONTROLLED=no #是否由NetworkManger服务控制该网络接口,修改后立即生效,无需重启,一般设置成no
# 因为要设置桥接,这几项IP地址等原来的配置信息必须关闭,在br0配置文件中再设置
#IPADDR=192.168.0.9
#NETMASK=255.255.255.0
#GATEWAY=192.168.0.1
#DNS1=114.114.114.114
#DNS2=8.8.8.8
#PREFIX=24
3.桥接网卡配置(因为是复制的ens33网卡需要重新生成一个UUID号)
vim ifcfg-br0
TYPE=Bridge #TYPE必须为Bridge
DEVICE=br0
NAME=br0
BOOTPROTO=static
DEFROUTE=yes #是否使用默认路由
PEERDNS=no #是否指定DNS,如果使用DHCP协议,默认为yes
PEERROUTES=no #是否指定路由
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no #同样设置为no,不让NetworkManager服务管理br0网卡
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_DEFROUTE=yes
IPV6_AUTOCONF=yes
IPV6_FAILURE_FATAL=no
IPADDR=192.168.0.9
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=114.114.114.114
DNS2=8.8.8.8
PREFIX=24
4.查看设置结果
关闭NetworkManager服务,也可以用service stop NetworkManager,systemctl是现在linux发行版通用的服务管理工具,CentOS中使用service命令会自动调用systemctl工具
systemctl stop NetworkManager.service
重启网络服务,如果重启不成功,一般是ens33和br0配置文件中配置项冲突造成的
systemctl restart network.service
查看网络配置是否正确,可以ip a查看是否ens33和br0信息,推荐使用brctl show命令,如果提示没有brctl命令,yum -y install bridge-utils安装
brctl show
如果结果中出现类似下面的信息,则表明桥接初步设置成功,主要是第一项,第二项,第四项,常见的情况是第四项为空,原因是物理网卡配置文件中Bridge=br0这一项缺少
三、添加IOS镜像文件,创建虚拟机。(镜像文件可以提前先下载好用winscp传进来)
[root@localhost ~]# virt-manager//打开虚拟机管理界面
(1)创建存储池:
双击
选择存储项点击下面的+号键:
创建IOS镜像存储池:(镜像文件就存在这个文件夹中)
点下一步完成就行
创建虚拟机存储卷:
新建虚拟机:
然后点击前进完成:
然后就是按正常的按照装虚拟机的步骤安装虚拟机
四、KVM基本功能管理及基本命令:
配置虚centos7.0拟机网络://因为是桥接模式所有这里的IP地址需要和外面的IP地址是在同一个网段,
(1)查看命令帮助:
root@localhost ~]# virsh -h
(2)查看KVM的配置文件存放目录
[root@localhost ~]# ls /etc/libvirt/qemu/
centos7.0.xml networks
(3)查看虚拟机centos7.0状态:
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
4 centos7.0 running
(4)虚拟机centos7.0关机与开机
[root@localhost ~]# virsh shutdown centos7.0
域 centos7.0 被关闭
[root@localhost ~]# virsh start centos7.0
域 centos7.0 已开始
(5)强制实例关闭电源:
[root@localhost ~]# virsh destroy centos7.0
域 centos7.0 被删除
(6)通过配置文件启动虚拟机系统实例:
[root@localhost qemu]# virsh create /etc/libvirt/qemu/centos7.0.xml
域 centos7.0 被创建(从 /etc/libvirt/qemu/centos7.0.xml)
[root@localhost qemu]# virsh list --all
Id 名称 状态
----------------------------------------------------
6 centos7.0 running
(7)挂起虚拟机:
[root@localhost qemu]# virsh suspend centos7.0
域 centos7.0 被挂起
[root@localhost qemu]# virsh list --all
Id 名称 状态
----------------------------------------------------
6 centos7.0 暂停
(8)恢复虚拟机
[root@localhost qemu]# virsh resume centos7.0
域 centos7.0 被重新恢复
(9)配置虚拟机实例伴随宿主机自动启动
[root@localhost qemu]# virsh autostart centos7.0
域 centos7.0标记为自动开始
(10)导出虚拟机配置和虚拟机备份很像
[root@localhost qemu]# virsh dumpxml centos7.0 > /etc/libvirt/qemu/test02.xml
(11)虚拟机的删除与添加:
[root@localhost qemu]# virsh shutdown centos7.0
域 centos7.0 被关闭
[root@localhost qemu]# virsh undefine centos7.0
域 centos7.0 已经被取消定义
查看删除结果,centos7.0 的配置文件被删除,但是磁盘文件不会被删除
[root@localhost qemu]# ls /etc/libvirt/qemu
autostart networks test01.xml test02.xml
通过virsh list --all查看不到centos7.0的信息。说明此虚拟机被删除。
[root@localhost qemu]# virsh list --all
Id 名称 状态
----------------------------------------------------
通过备份文件的配置文件重新定义虚拟机:
[root@localhost qemu]# cd /etc/libvirt/qemu/
[root@localhost qemu]# mv test02.xml centos7.0.xml
重新定义虚拟机:
[root@localhost qemu]# virsh define centos7.0.xml
定义域 centos7.0(从 centos7.0.xml)
查看虚拟机:
[root@localhost qemu]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7.0 关闭
(12)virt-df命令查看虚拟机磁盘信息:
[root@localhost qemu]# virt-df -h centos7.0
文件系统 大小 已用空间 可用空间 使用百分比%
centos7.0:/dev/sda1 1014M 97M 917M 10%
centos7.0:/dev/centos/root 17G 949M 16G 6%
(13)虚拟机克隆
1.从centos7.0克隆test01:注意在关机状态下才能克隆
[root@localhost qemu]# virt-clone -o centos7.0 -n test02 -f /var/lib/libvirt/images/test01/test02.qcow2 -f后面是test02虚拟机的存储位置
[root@localhost qemu]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7.0 关闭
- test02 关闭
2.启动test02虚拟机
[root@localhost qemu]# virsh start test02
域 test02 已开始
3.对centos7.0创建快照:
[root@localhost qemu]# virsh snapshot-create centos7.0
已生成域快照 1594644790
3.1查看虚拟机快照版本信息:
[root@localhost qemu]# virsh snapshot-current centos7.0
<domainsnapshot>
<name>1594644790</name>
3.2关闭censto7.0虚拟机创建快照:
[root@localhost qemu]# virsh shutdown centos7.0
域 centos7.0 被关闭
[root@localhost qemu]# virsh snapshot-create centos7.0
已生成域快照 1594644967
3.3恢复虚拟机状态到1594644790
[root@localhost qemu]# virsh snapshot-revert centos7.0 1594644790
查看虚拟机快照信息:
[root@localhost qemu]# virsh snapshot-current centos7.0
<domainsnapshot>
<name>1594644790</name>
3.5查看虚拟机快照信息:
[root@localhost qemu]# virsh snapshot-list centos7.0
名称 生成时间 状态
------------------------------------------------------------
1594644790 2020-07-13 20:53:10 +0800 running
1594644967 2020-07-13 20:56:07 +0800 shutoff
3.6删除快照:
[root@localhost qemu]# virsh snapshot-delete centos7.0 1594644790
已删除域快照 1594644790