KVM基础概念
KVM虚拟化架构
- KVM模块直接整合在Linux内核中
- KVM架构如下图所示:
KVM组成
-
KVM Driver
- 虚拟机创建
- 虚拟机内存分配
- 虚拟CPU寄存器读写
- 虚拟CPU运行
-
QEMU(快速仿真器)
- 模拟PC硬件的用户控件组件
- 提供i/O设备模型及访问
-
KVM 三大模式
-
客户模式
可以简单理解成客户机在操作系统运行中的模式,客户模式有分为内核模式和用户模式。客户模式中的内核模式和用户模式的作用如下:
-
用户模式(qemu)
为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,qemu运行在这个模式之下
-
内核模式
模拟CPU以及内存,实现客户模式的切换,处理从客户模式的退出。KVM内核运行在这个模式下。
-
-
部署KVM虚拟化平台
一.KVM虚拟化环境基本部署
[root@localhost ~]# yum -y install qemu-kvm-tools virt-install libvirt virt-manager libguestfs-tools
[root@localhost ~]# systemctl stop firewald
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# hostnamectl set-hostname kvm01
[root@localhost ~]# bash
[root@kvm01 ~]# vim /etc/hosts
192.168.10.101 kvm01
192.168.10.102 kvm02
[root@kvm01 ~]# poweroff
#检查是否支持虚拟化技术
[root@kvm01 ~]# cat /proc/cpuinfo | grep vm
[root@kvm01 ~]# lsmod | grep kvm
#设置KVM网络
[root@kvm01 ~]# cd /etc/sysconfig/network-scripts/
[root@kvm01 network-scripts]# cp ifcfg-ens33 ifcfg-br0
#设为桥接模式
[root@kvm01 network-scripts]# vim ifcfg-ens33
#添加
BRIDGE=br0
[root@kvm01 network-scripts]# vim ifcfg-br0
#更改为以下内容
TYPE=Bridge
NAME=br0
DEVICE=br0
[root@kvm01 ~]# systemctl restart network
[root@kvm01 ~]# ifconfig
[root@kvm01 ~]# powerroff
二.KVM管理
[root@kvm01 ~]# virt-manager #使用该命令能打开虚拟管理器
-
创建存储池
- 存储池的名称为:kgc
- 存储池的目录为:/data_kvm/store
-
创建存储卷
- 在bdqn的存储池中添加存储卷
- 存储卷名称为:test01
-
将Linux系统的ISO文件拷贝到/opt目录下,并关闭存储设置
-
在kvm01的主机上新建虚拟机,名称为test01
三.KVM命令集
1.KVM基本功能管理
[root@kvm01 ~]# virsh shutdown test01 #虚拟机关机
[root@kvm01 ~]# virsh start test01 #虚拟机开机
[root@kvm01 ~]# virsh destroy test01 #强制实例系统关闭电源
[root@kvm01 ~]# virsh create /etc/libvirt/qemu/test01.xml #通过配置文件启动虚拟机系统实例
[root@kvm01 ~]# virsh list --all #查看虚拟机状态
[root@kvm01 ~]# virsh suspend test01 #挂起虚拟机
[root@kvm01 ~]# virsh list --all #查看虚拟机状态
[root@kvm01 ~]# virsh resume test01 #恢复虚拟机
[root@kvm01 ~]# virsh list --all #查看虚拟机状态
[root@kvm01 ~]# virsh autostart test01 #配置虚拟机实例伴随宿主机自动启动
#导出虚拟机配置
[root@kvm01 ~]# virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml
#虚拟机的删除与添加
[root@kvm01 ~]# virsh shutdown test01 #停止虚拟机。
[root@kvm01 ~]# virsh undefine test01# 删除虚拟机。
[root@kvm01 ~]# ls /etc/libvirt/qemu/ #查看删除结果,test01 的配置文件被删除,但是磁盘文件不会被删除。
[root@kvm01 ~]# virsh list --all #通过该命令查看不到 test01 的信息,说明此虚拟机被删除。
[root@kvm01 ~]# cd /etc/libvirt/qemu
[root@bdqn qemu]# mv test02.xml test01.xml #通过备份的配置文件重新定义虚拟机。
[root@bdqn qemu]# virsh define test01.xml #重新定义虚拟机
[root@bdqn qemu]# virsh list --all #查看虚拟机信息
#修改虚拟机配置信息(用来修改系统内存大小、磁盘文件等信息)
#直接通过 vim 命令修改。
[root@kvm01 ~]# vim /etc/libvirt/qemu/test01.xml
#通过 virsh 命令修改。
[root@kvm01 ~]# virsh edit test01
2.KVM文件管理
#查看当前磁盘格式
[root@kvm01 ~]# qemu-img info /data_kvm/store/test01.qcow2
#virt-cat 命令,类似于 cat 命令
[root@kvm01 ~]# virt-cat -a /data_kvm/store/test01.qcow2 /etc/sysconfig/grub
#virt-edit 命令,用法与 vim 基本一致。
[root@kvm01 ~]# virt-edit -a /data_kvm/store/test01.qcow2 /etc/resolv.conf
#virt-df 命令 用于查看虚拟机磁盘信息。
[root@kvm01 ~]# virt-df -h test01
4.虚拟机克隆
#查看虚拟机状态
[root@kvm01 ~]# virsh list --all
#从 test01 克隆 test02
[root@kvm01 ~]# virt-clone -o test01 -n test02 -f /data_kvm/store/test02.qcow2
#查看虚拟机状态
[root@kvm01 ~]# virsh list --all
#启动虚拟机
[root@kvm01 ~]# virsh start test02
5.虚拟机快照
#对 test01 创建快照
[root@kvm01 ~]# virsh snapshot-create test01
已生成域快照 1722333054
#查看虚拟机快照版本信息
[root@kvm01 ~]# virsh snapshot-current test01
#查看快照信息
[root@kvm01 ~]# virsh snapshot-list test01
#创建新快照
[root@kvm01 ~]# virsh snapshot-create test01
#查看快照信息
[root@kvm01 ~]# virsh snapshot-list test01
#恢复虚拟机状态
[root@kvm01 ~]# virsh snapshot-revert test01 1722333054
#查看虚拟机快照版本信息
[root@kvm01 ~]# virsh snapshot-current test01
#删除快照
[root@kvm01 ~]# virsh snapshot-delete test01 1722333054
标签:KVM,虚拟化,虚拟机,平台,kvm01,virsh,test01,root
From: https://blog.csdn.net/weixin_67764171/article/details/140802958