一、kvm安装条件
情况1、若电脑的cpu是inter的,则该cpu必须支持xvm功能;
情况2、若电脑的cpu是amd的,则该cpu必须支持svm功能。
这些功能为全虚拟化功能,若没有这些功能,将无法进行虚拟化实验
如下图:是一台具有inter的cpu、支持vmx功能的计算机
可用cat /proc/cpuinfo命令查看关于cpu的信息
二、kvm虚拟化安装
1、配置网络为桥接模式
cd /etc/sysconfig.network-scripts
vim ifcfg-br0 #编写ifcfg-br0文件
文件内容如下:
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.169.0.110
NETMASK=255.255.255.0
NAME=br0
DEVICE=br0
ONBOOT=yes
vim ifcfg-ens160 #编写ifcfg-ens160文件
文件内容如下:
DEVICE=ens160
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
systemctl restart NetworkManager #重启网络服务
nmcli connection show #查看
2、配置yum源,具体配置方法见下面博客的第四小节:
配置yum源
3、安装好安装虚拟化所需要的组件
安装虚拟化所需要的组件 | 解释 |
---|---|
Virtualization Client | 虚拟化客户端 |
Virtualization Tools | 虚拟化工具 |
Virtualization Hypervisor | 虚拟化核心套件 |
安装这三个组件的命令:
dnf group list命令可以查看组
dnf group install "Virtualization Client" "Virtualization Hypervisor" "Virtualization Tools" -y
如图:安装成功
4、手动安装虚拟机
注意:如果使用虚拟化时(安装虚拟机时)一定要保证libvirtd服务是开启的(systemctl start libvirtd),不然虚拟化是无法使用的
重要步骤说明:
<1> virt-manager打开虚拟机管理器,选择创建新的虚拟机,安装方式根据自己的实际情况进行选择,这里选择镜像文件安装,注意,网络安装必须配置dhcp服务,导入已有硬盘安装是直接使用系统中已有的虚拟机进行安装(快照)
<2> 选择提前准备好的镜像以及需要安装的版本
<3> 因为安装的是虚拟机,所以网卡要选虚拟网卡
三、kvm虚拟化相关信息
相关信息 | 相关文件位置 |
---|---|
服务名称 | libvirtd |
虚拟化核心 | qemu/kvm |
虚拟化存储目录(虚拟机硬盘) | /var/lib/libvirt/images/xxxx.qcow2 |
虚拟化硬件信息 | /etc/libvirt/qemu/xxxx.xml |
如图:虚拟化存储目录和硬件信息
注意:删除虚拟机时需要将虚拟化存储目录和虚拟化硬件信息全部删除
如下操作:
四、虚拟机管理命令
命令 | 作用 |
---|---|
virt-viewer rhel8.0 | 显示westos虚拟机 |
virt-manager | 打开虚拟机控制器(图形界面) |
virsh list | 列出运行的虚拟机 |
virsh list --all | 列出所有虚拟机 |
virsh start rhel8.0 | 开启虚拟机 |
virsh shutdown rhel8.0 | 正常关闭rhel8.0虚拟机 |
virsh destroy rhel8.0 | 断电rhel8.0虚拟机 |
virsh define rhel8.0.xml | 通过硬件信息文件恢复虚拟机 |
virsh create rhel8.0.xml | 通过硬件信息文件打开虚拟机 |
virsh undefine rhel8.0 | 删除虚拟机硬件信息 |
注意:
<1>
用virsh undefine rhel8.0命令删除虚拟机时只能删除硬件信息,要想彻底删除虚拟机,还需要删掉虚拟机硬盘中的/var/lib/libvirt/images/xxxxx.qcow2文件
<2>
如果要将虚拟机拷贝到别的主机中,需要将/var/lib/libvirt/images/xxxx.qcow2文件和/etc/libvirt/qemu/xxxx.xml文件拷贝到别的主机(在别的主机中也要是相同目录,否则还需要修改文件中的进入虚拟机位置的路径),然后在目标主机中执行virsh define rhel8.0.xml命令恢复该虚拟机
部分命令示例:
五、虚拟机的快照
快照的原理:
快照是访问原文件的另一条路径。快照是在数据改变之前将数据原封不动的保存到快照空间里面,快照是一种基于时间点的数据拷贝技术,它的目的在于能够记录出某一个时刻的数据信息并将其保存,如果之后发生某些故障需要数据恢复的时候,可以通过快照来将数据恢复到之前时间点的状态,而该时间点之后的数据都会丢失。
快照与克隆的区别:
克隆:对原虚拟机的复制
快照:相当于特殊的快捷方式软链接(它只更改链接本身,不更改原始设备),没有复制,只是看的时候看原虚拟机,更改的时候在快照上
快照只保存虚拟机当前的状态,占用磁盘空间非常小,而克隆出来的虚拟机是一个全新的虚拟机,会占用磁盘空间
快照命令:
qemu-img create -f qcow2 -b /var/lib/libvirt/images/westos.qcow2 /var/lib/libvirt/
images/node1.qcow2
# -f:类型
该快照的方式不仅命令长且复杂,而且每次快照的时候都需要执行该命令,并且需要手动对快照进行设置,我们可以写一个脚本文件让快照自动生成
六、虚拟机快照脚本
1、
vim virt_snapshot.sh #文件名任意
文件内容如下:
#!/bin/bash #指定命令运行环境
##create storage file##
qemu-img \
create -f qcow2 \
-b /var/lib/libvirt/images/rhel8.0.qcow2 /var/lib/libvirt/images/$1.qcow2 &
##import source into virtual ##
virt-install \
--name $1 \ #虚拟机名字
--memory 1024 \ #虚拟机内存大小
--vcpus 1 \ #cpu个数
--disk /var/lib/libvirt/images/$1.qcow2 \ #镜像文件
--os-variant rhel8.0 \ #添写系统版本
--import &> /dev/null & #虚拟机安装方式为导入已存在的虚拟机
注意:" \"表示换行;“$1”表示虚拟机的名字为建立虚拟机时手动输入的名字;
“&”表示在后台运行该文件,否则会占用终端
2、
使用命令sh virt_snapshot.sh 虚拟机名称,即可全自动完成快照的整个过程
直接进入安装界面,如下:
结束!!!