KVM(Kernel-based Virtual Machine)是一种开源的硬件虚拟化解决方案,它是 Linux 内核的一部分,允许在支持虚拟化技术的硬件(如 Intel VT-x 或 AMD-V)上运行虚拟机。

KVM 将 Linux 内核转变为一个裸机虚拟机监控器(Hypervisor),使用户可以运行多个隔离的虚拟机,并且每个虚拟机都可以运行自己的操作系统(如 Linux、Windows 或其他)。

1. 虚拟机基本操作

1.1 查看虚拟机列表

virsh list --all

--all:显示所有虚拟机,包括运行中和停止的。

1.2 启动虚拟机

virsh start <虚拟机名称或ID>

1.3 关闭虚拟机

virsh shutdown <虚拟机名称或ID>

这是安全关闭,等效于按下虚拟机中的电源按钮。

1.4 强制关闭虚拟机

virsh destroy <虚拟机名称或ID>

注意:这是强制操作,可能导致数据丢失。

1.5 重启虚拟机

virsh reboot <虚拟机名称或ID>

等效:shutdown + start。

1.6 挂起和恢复虚拟机

挂起虚拟机:

virsh suspend <虚拟机名称>

恢复挂起的虚拟机:

virsh resume <虚拟机名称>

1.7 删除虚拟机

virsh undefine <虚拟机名称>

注意:此命令仅删除虚拟机配置,不删除磁盘文件。

2. 虚拟机资源管理

2.1 查看虚拟机信息

virsh dominfo <虚拟机名称>

输出信息包括 ID、状态、内存、CPU 等。

2.2 获取虚拟机的 XML 配置

virsh dumpxml <虚拟机名称>virsh dumpxml my-vm > my-vm.xml

2.3 编辑和导出虚拟机的 XML 配置

virsh edit <虚拟机名称>#将当前安装好的虚拟机配置文件导出 
virsh dumpxml linux1 >linux1.xml 
#生成新的UUID 
uuidgen 
#注:修改导出的xml文件,避免UUID和mac地址重复 

使用系统默认编辑器打开虚拟机的 XML 文件进行编辑。

2.4 定义新虚拟机

virsh define <XML配置文件>

2.5 调整虚拟机内存

virsh setmem <虚拟机名称> <内存大小>[K|M|G]virsh setmem my-vm 2G

2.6 调整虚拟机 CPU

virsh setvcpus <虚拟机名称> <CPU数量> --config

--config:永久更改。

3. 存储管理

3.1 查看存储池

virsh pool-list --all

3.2 创建存储池

virsh pool-create <XML配置文件>virsh pool-create pool.xml

3.3 查看存储卷

virsh vol-list <存储池名称>virsh vol-list default

3.4 创建存储卷

virsh vol-create <存储池名称> <XML配置文件>virsh vol-create default volume.xml

4. 网络管理

4.1 列出网络

virsh net-list --all

4.2 创建网络

virsh net-create <XML配置文件>

4.3 删除网络

virsh net-destroy <网络名称>
virsh net-undefine <网络名称>

5. 快照管理

5.1 创建快照

virsh snapshot-create-as <虚拟机名称> <快照名称> --description "<描述>"

5.2 恢复快照

virsh snapshot-revert <虚拟机名称> <快照名称>

5.3 其它命令

#Linux1为虚拟机名称,laster为快照名称 
virsh snapshot-create-as linux1 laster --disk-only 
#创建后查看快照 
virsh snapshot-list 
#恢复到指定快照 
virsh snapshot-revert linux1 laster 
#删除快照 
virsh snapshot-delete linux1 laster 
#查看当前虚拟机快照的xml文件 
virsh snapshot-current linux1 
#查看当前快照详细信息 
virsh snapshot-info linux1 laster3 
#列出所有快照 
virsh snapshot-list linux1 

5.2 恢复快照

6. 镜像管理

6.1 创建磁盘镜像

qemu-img create -f qcow2 <镜像路径> <大小>qemu-img create -f qcow2 /var/lib/libvirt/images/my-vm.qcow2 20G

6.2 查看镜像信息

qemu-img info <镜像路径>

7. 虚拟机控制台

7.2 打开虚拟机console

#进入虚拟机运行
grubby --update-kernel=ALL --args="console=ttyS0"

7.1 连接到虚拟机控制台

virsh console <虚拟机名称>

退出控制台:按 Ctrl + ]。

8. 性能监控

8.1 查看实时性能

virsh domstats <虚拟机名称>

8.2 查看虚拟机的 VCPU 信息

virsh vcpuinfo <虚拟机名称>

8.3 查看虚拟机 I/O 信息

virsh blkstat <虚拟机名称>

查看帮助信息

virsh help
virsh help <命令>

9. 安装虚拟机

9.1 安装

virt-install --name linux5 \ 
--vcpus=1 \ 
--ram=1024 \ 
--disk path=/mnt/data/linux5.qcow2,size=20 \ 
--location=/mnt/data/iso/openEuler-24.03-LTS-x86_64-dvd.iso \ 
--network bridge=br0  \ 
--nographic \ 
-x "console=ttyS0" \ 
--osinfo detect=on,require=off #-x  "console=ttyS0" 用于指定虚拟机启动时使用 ttyS0(串口 0)作为控制台。该虚拟机会通过串口输出信息,而不是图形界面。 
#--location指定安装程序的来源位置 
#--disk path 指定虚拟机的磁盘镜像文件及其大小 
#--nographic指示虚拟机以无图形模式(命令行模式)启动 

10. 压缩克隆虚拟机

10.1 压缩

#避免默认目录存储空间不足,这里修改默认缓存目录 
mkdir /mnt/new/data/tmp 
chmod 777/mnt/new/data/tmp/ #临时生效 
export TEMP=/mnt/new/data/tmp 
export TMPDIR=/mnt/new/data/tmp #写入配置文件,使其永久生效 
echo 'export TEMP=/mnt/new/data/tmp' >> /etc/profile 
echo 'export TMPDIR=/mnt/new/data/tmp' >> /etc/profile 
source /etc/profile #压缩文件 
#virt-sparsify --compress 源文件 压缩后的镜像名 
virt-sparsify --compress rocky9.qcow2 rocky_ll.qcow2 

10.2 克隆虚拟机

#-o 要克隆的虚拟机名  -n克隆后的虚拟机名   -f要存放的目录 
virt-clone -o linux2 -n linux5 -f /mnt/data/linux5 

这些命令适用于大多数 KVM 管理场景,配合 virt-manager 等图形化工具,可以更高效地管理 KVM 虚拟化环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94518.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94518.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/94518.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6s081环境配置以及使用vscode连接本地wsl2

6s081环境配置以及使用vscode连接wsl2 本人环境&#xff1a;windows11、wsl2ubuntu20.04 课程&#xff1a;6s081的2020版本的:https://pdos.csail.mit.edu/6.S081/2020/schedule.html 一、wsl2ubuntu20.04配置6s081环境 注&#xff1a;关于如何在window中安装wsl&#xff0c;这…

C++实现线程池(3)缓存线程池

三. CachedThreadPool 的实现3.1 需求:动态调整线程数量&#xff1a;与 FixedThreadPool 不同&#xff0c;CachedThreadPool 的线程数量是动态调整的。当有新任务提交时&#xff0c;如果线程池中有空闲的线程&#xff0c;则会立即使用空闲线程执行任务&#xff1b;如果线程池中…

WMS+自动化立库:无人仓的现在进行时

传统仓库正面临严峻挑战&#xff1a;效率瓶颈日益凸显&#xff0c;人力成本持续攀升&#xff0c;空间利用率逼近极限&#xff0c;而订单响应速度却难以满足市场需求。如何破局&#xff1f;WMS&#xff08;仓库管理系统&#xff09;与自动化立体库&#xff08;AS/RS&#xff09;…

多模态大模型研究每日简报【2025-08-05】

训练数据相关 EditGarment: An Instruction-Based Garment Editing Dataset Constructed with Automated MLLM Synthesis and Semantic-Aware Evaluation (https://arxiv.org/abs/2508.03497)&#xff1a;提出了一种自动化的流程&#xff0c;用于构建服装编辑数据集EditGarmen…

4、docker数据卷管理命令 | docker volume

1、命令总览命令作用出现频率备注★ docker volume create新建卷高-d 指定驱动&#xff0c;-o 指定驱动选项★ docker volume ls列出卷高--filter danglingtrue 查孤儿卷★ docker volume inspect查看卷详情高输出 JSON&#xff0c;可加 --format★ docker volume rm删除卷高只…

计数组合学7.14(对偶 RSK 算法)

7.14 对偶 RSK 算法 存在 RSK 算法的一种变体&#xff0c;其与乘积 ∏i,j(1xiyj)\prod_{i,j}(1 x_{i}y_{j})∏i,j​(1xi​yj​) 的关系类似于 RSK 算法本身与 ∏i,j(1−xiyj)−1\prod_{i,j}(1 - x_{i}y_{j})^{-1}∏i,j​(1−xi​yj​)−1 的关系。我们称此变体为对偶 RSK 算法…

C语言中的进程、线程与进程间通信详解

目录 引言 基本概念 1. 进程&#xff08;Process&#xff09; 2. 线程&#xff08;Thread&#xff09; 线程编程实战 1. 常见线程库 2. 合理设置线程数 3. pthread 创建线程 线程同步机制 1. 互斥锁 pthread_mutex_t 2. 条件变量 pthread_cond_t 3. 读写锁 pthread…

[假面骑士] 555浅谈

假面骑士555(faiz)是我最先接触的一部平成系列的假面骑士&#xff0c;同时也是我个人最喜欢的一部假面骑士。一、大纲简介震惊&#xff0c;人类最新的进化形态——奥菲一诺&#xff0c;横空出世&#xff01;日本的顶级财团&#xff0c;Smart Brain&#xff0c;的前任社长&#…

Vue Router 路由的创建和基本使用(超详细)

一、路由的基本概念 你是否好奇单页应用&#xff08;SPA&#xff09;是如何在不刷新页面的情况下实现页面切换的&#xff1f;这就离不开路由的功劳。 路由&#xff1a;本质是一组 key-value 的对应关系&#xff0c;在前端领域中&#xff0c;key 通常是路径&#xff0c;value …

深入理解设计模式:策略模式的艺术与实践

在软件开发中&#xff0c;我们经常会遇到需要根据不同情况选择不同算法或行为的场景。传统的做法可能是使用大量的条件语句&#xff08;if-else或switch-case&#xff09;&#xff0c;但随着需求的增加和变化&#xff0c;这种硬编码的方式会导致代码难以维护和扩展。策略模式&a…

概率/期望 DP llya and Escalator

题目链接&#xff1a;Problem - D - Codeforces 看了这篇文章来的&#xff1a;【算法学习笔记】概率与期望DP - RioTian - 博客园 这篇博客写得挺好的&#xff0c;讲了一些常见方法&#xff0c;概率 / 期望的题多练练就上手了。 题目大意&#xff1a; n 个人排队上电梯&…

大陆电子MBDS开发平台转到其他国产控制器平台产生的问题记录

u8_StComLowSpdGearSwt变量为例&#xff0c;之前用的时候只有输入&#xff0c;没什么实际意义&#xff0c;导致新环境下编译报错&#xff0c;缺少声明&#xff0c;解决办法&#xff1a;注释掉输入模块。今天解决的另一个比较大的问题&#xff0c;不同模型函数公用函数模块生成代…

机器学习模型调优实战指南

文章目录模型选择与调优&#xff1a;从理论到实战1. 引言2. 模型评估&#xff1a;为选择提供依据2.1 偏差-方差权衡2.2 数据集划分与分层抽样2.3 交叉验证&#xff08;Cross-Validation&#xff09;2.4 信息准则&#xff08;AIC / BIC&#xff09;3. 超参数调优&#xff1a;让模…

【教程】Unity CI/CD流程

测试机&#xff1a;红帽 Linux8 源码仓库&#xff1a;Gitee - MrRiver/Unity Example   系统环境准备 1&#xff09;yum 源 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo sudo sed -i s/\$releasever/8/g /etc/yum.repos…

文献阅读 | Briefings in Bioinformatics | Hiplot:全面且易于使用的生物医学可视化分析平台

文献介绍文献题目&#xff1a; Hiplot&#xff1a;一个综合且易于使用的 Web 服务&#xff0c;用于增强出版物准备的生物医学数据可视化 研究团队&#xff1a; Openbiox/Hiplot 社区 发表时间&#xff1a; 2022-07-05 发表期刊&#xff1a; Briefings in Bioinformatics 影响因…

【数字图像处理系列笔记】Ch04:灰度变换与空间域图像增强(2)

目录 一、空域滤波基础 一、空域滤波的基本概念 二、空域滤波的数学原理 三、空域滤波器的分类与典型示例 &#xff08;一&#xff09;线性滤波器&#xff08;Linear Filter&#xff09; &#xff08;二&#xff09;非线性滤波器&#xff08;Non-linear Filter&#xff0…

AI浪潮下,FPGA如何实现自我重塑与行业变革

引言&#xff1a;AI 与 FPGA&#xff0c;新时代的碰撞 2025 年&#xff0c;人工智能技术迎来爆发式增长&#xff0c;大模型、生成式 AI 和多模态技术持续突破&#xff0c;人形机器人量产元年正式开启&#xff0c;自动驾驶商业化进程加速&#xff0c;工业数字化转型全面铺开(1)…

系统集成项目管理工程师【第十一章 规划过程组】定义范围、创建WBS、规划进度管理和定义活动篇

系统集成项目管理工程师【第十一章 规划过程组】定义范围、创建WBS、规划进度管理和定义活动篇 一、定义范围&#xff1a;给项目画好"边界线" 定义范围是明确项目和产品"做什么、不做什么"的过程&#xff0c;直接影响后续所有工作的方向。 1. 核心概念与作…

Spring Boot 参数校验全指南

Spring Boot 参数校验全指南 在 Web 开发中&#xff0c;参数校验是保障接口安全性和数据合法性的关键环节。手动编写校验逻辑不仅繁琐&#xff0c;还容易遗漏边界情况。Spring Boot 整合了 validation 工具&#xff0c;提供了一套简洁高效的参数校验方案&#xff0c;可快速实现…

常用技术资料链接

1.team技术 https://zhuanlan.zhihu.com/p/11389323664 https://blog.csdn.net/Lucky_Lu0/article/details/121697151 2.bond切换主备 https://www.xgss.net/3306.html 3.ssh详解&#xff1a; https://cloud.tencent.com/developer/news/105165 https://blog.huochengrm.c…