【虚拟化】KVM常用命令操作(virsh虚拟机常用操作之开关|连接|自启|克隆|快照)

news2024/11/12 12:36:28

目录

​编辑一、KVM概述

1.1 KVM工具栈

1.2 libvirt架构概述

二、使用virsh管理虚拟机

三、kvm基本功能管理

1.帮助命令

2.KVM的配置文件存放目录

3.查看虚拟机状态

4.虚拟机关机与开机

5.强制虚拟机系统关闭电源

6.通过配置文件启动虚拟机系统

7.修改虚拟机配置文件

8.设置虚拟机自启

9.导出虚拟机配置

10.创建虚拟机(create)

11.删除和导入虚拟机(define)

12.挂起/恢复虚拟机

13.连接虚拟机

14.查看虚拟机信息

15.虚拟机克隆

查看vnc端口号

四、虚拟机快照

4.1 对虚拟机拍摄快照

4.2 查看快照详细信息

4.3 恢复快照

4.4 删除快照

4.4 编辑快照文件


一、KVM概述


1.1 KVM工具栈


上图所示主要描述了kvm的主要工具栈,从大的类别可以分为libvirt和qemu这两大类,其中libvirt中分virtual machine manager 和 virsh。virtual machine manager中的virt-manager是基于图形界面的管理,其他都是可以在命令行直接使用命令来管理虚拟机。

virsh是基于终端命令行管理。两者都是通过libvirt连接至libvirtd进行管理,对于qemu来说,它管理虚拟机上直接调用kvm内核中模块的API进行管理;

1.2 libvirt架构概述


libvirt是用来管理虚拟机或虚拟化功能的软件集合,主要包括:libvirt API,libvirtd进程和virsh工具集三部分。最初的目的是为不同的hypervisor提供统一的管理接口。

libvirtd该后台进程主要实现以下功能:

(1)远程代理所有remote client发送来的命令,由该进程监测执行;

(2)本地环境初始化libvirt服务的启停,用户connection的响应等;

(3)根据环境注册各种Driver(qemu, xen, storage…)的实现

查看libvirtd服务状态

 systemctl status libvirtd

如果libvirtd服务停止运行,那么你将不能管理虚拟机,也就是不能使用virt-manager等工具来管理虚拟机。

查看配置文件

虚拟机的所有配置是放置在一个xml文件中,位置在/etc/libvirt/qemu/目录中

[root@kvm ~]# ll /etc/libvirt/qemu
total 12
drwxr-xr-x. 2 root root   25 Aug  7 10:08 autostart
drwx------. 3 root root   42 Apr 28  2021 networks
-rw-------. 1 root root 3826 Aug  3 20:03 study01.xml
-rw-------. 1 root root 4737 Aug  7 10:08 study02.xml


二、使用virsh管理虚拟机


virsh是使用libvirt management API构建的管理工具,virsh的名称的含义是virtualization shell。

virsh工具功能非常丰富,它可以全生命周期的管理kvm;比如创建虚拟机,查看虚拟机,动态热插拔硬盘,给虚拟机做快照,迁移、启动、停止、挂起、暂停、删除虚拟机等等操作。

它有两种工作模式:

立即模式

交互模式

常用命令参数:

命令

描述

attach-device

使用XML文件中的设备定义在虚拟机中添加设备

attach-disk

在虚拟机中附加新磁盘设备

attach-interface

在虚拟机中附加新网络接口

create

在XML配置文件生成虚拟机并启动新虚拟机

define

为虚拟机输出XML配置文件

destroy

强制关闭虚拟机

detach-device

从虚拟机中分离设备,使用同样的XML描述作为命令attach-device

detach-disk

从虚拟机中分离磁盘设备

detach-interface

从虚拟机中分离网络接口

domifstat

显示正在运行的虚拟机的网络接口统计

dominfo

显示虚拟机信息

dumpxml

输出虚拟机XML配置文件

help

显示帮助命令

list

列出所有虚拟机

migrate

列出虚拟机迁移到两外一台主机中

nodeinfo

有关管理程序的输出信息

edit

编辑域的XML配置

reboot

重启虚拟机

restore

恢复以前保存在文件中的虚拟机

save

将虚拟机当前状态保存到某个文件中

setmaxmem

为管理程序设定内存上限

setmem

为虚拟机设定分配的内存

setvcpus

修改为虚拟机分配的虚拟cpu数量

shutdown

关闭虚拟机

undefine

删除与虚拟机关联的所有文件

vcpuinfo

显示虚拟机的虚拟cpu信息

vcpupin

控制虚拟机的虚拟cpu亲和性

start

启动未激活的虚拟机


三、kvm基本功能管理


1.帮助命令

总结:从上面的信息可以看到,virsh命令大概分类:

  • Domain Management(域管理)
  • Domain Monitoring(域监控)
  • Host and Hypervisor(主机及虚拟化)
  • Interface(网卡接口)
  • Network Filter(网络防火墙)
  • Networking(网络)
  • Node Device(节点设备驱动)
  • Secret(加密)
  • Snapshot(快照)
  • Storage Pool(存储池或存储策略)
  • Storage Volume(存储卷)
  • Virsh itself(virsh shell自身相关)

查看某一组帮助信息,我们可以使用virsh help +组名;比如查看storage volume组相关命令有哪些,可以使用virsh help volume;

2.KVM的配置文件存放目录

重启,快照文件,网络文件保存目录

3.查看虚拟机状态

list只能查看启动状态下的虚拟机,加参数--all可以查看全部虚拟机,但未启动的虚拟机不会有id。

4.虚拟机关机与开机

通过上面查看的虚拟机状态,这里把myvm01关闭,myvm02开启。

5.强制虚拟机系统关闭电源

当虚拟机出现故障,通过上面温柔的关机方式,无法关闭时。这时你就需要用到暴力(拔电源)关机了,这种方式关机速度快,但是不推荐!!!

virsh destroy study02

6.通过配置文件启动虚拟机系统

启动方式不止start一种,也可以通过启动配置文件来开启虚拟机。

virsh create /etc/libvirt/qemu/study02.xml

7.修改虚拟机配置文件

vim /etc/libvirt/qemu/stuy01.xml
virsh edit stuy01

8.设置虚拟机自启

设置虚拟机随宿主机开启而开启,执行创建命令时在/etc/libvirt/qemu/autostart/目录里面创建开机自启的系统文件链接。

查看自启动配置文件

9.导出虚拟机配置

下面命令是备份虚拟机myvm01,路径还是放qemu目录下。

virsh dumpxml myvm01 > /etc/libvirt/qemu/study02_bak.xml

10.创建虚拟机(create)

如下准备使用study01.xml 拷贝为 stuby03.xml修改部分配置后运行。

为study03虚拟机创建存储

qemu-img create -f qcow2 /images/kvm/study03.qcow2 40G  

提示:qemu-img create 表示使用qemu创建一个磁盘文件,-f指定文件格式,常用的磁盘格式有raw,cow,qcow2;当然qemu-img支持创建很多格式的磁盘文件,这个命令的主要作用就是对磁盘文件的管理,比如创建磁盘,转换磁盘格式,检查磁盘,对磁盘做快照等等操作;

查看磁盘信息

修改study

创建study03虚拟机

用virt-manager验证,看看c1虚拟机是否有系统运行

11.删除和导入虚拟机(define)

删除虚拟机前需要先关闭虚拟机,让虚拟机处于关机状态。需要注意的是,上面已经备份了myvm01的虚拟机,如果没有备份,建议先备份,以便后面的导入操作。

virsh shutdown study02
virsh undefine study02
virsh list --all

通过备份的配置文件stuby02_bak.xml重新定义虚拟机

virsh define /etc/libvirt/qemu/study02_bak.xml

注意:define和creater本质上两者一样的,都是从xml配置文件创建虚拟机

  • define 丛xml配置文件创建主机但是不启动
  • create 同样是丛xml配置文件创建主机,但是可以指定很多选项,比如是否启动,是否连接控制台等。

12.挂起/恢复虚拟机

# 挂起虚拟机
virsh suspend myvm01
# 恢复虚拟机
virsh resume myvm01

13.连接虚拟机

14.查看虚拟机信息

15.虚拟机克隆


复制一个虚拟机,改变所有独特的主机端配置,如MAC地址,名称等。
虚拟机的内容不会改变:virt-clone不会改变客户操作系统内部的任何东西,它只是复制磁盘和主机端更改。因此,诸如更改密码,更改静态IP地址等都不在此工具的范围内。有关这些类型的更改,请参见virt-sysprep(1)。

查看虚拟机状态

克隆study01的虚拟机,到study01_clong

virt-clone -o study01 -n study01_clong -f /images/kvm/study01_clong.qcow2

参数:

  • -o 需要克隆的虚拟机名称;
  • -n 新虚拟机名称;
  • -f 指定克隆到哪个文件目录并命名
# 查看状态并启动
virsh start study01_clong
# virsh list --all

查看vnc端口号

virsh vncdisplay study01

四、虚拟机快照


快照实际上做的是虚拟机的XML配置文件,默认快照XML文件,在/var/lib/libvirt/qemu/snapshot/虚拟机名/下,快照只支持qcow2磁盘格式的系统。

4.1 对虚拟机拍摄快照

拍摄快照有两种方式,第一种是随机生成名称,第二种是指定名称,最后查看虚拟机快照,生成两个虚拟机快照。

# 随机生成名称方式
virsh snapshot-create study01_snapshot
# 指定名字
virsh snapshot-create-as study01 study01_snapshot

4.2 查看快照详细信息

virsh snapshot-info study01 study01_snapshot
virsh snapshot-current study01

4.3 恢复快照

virsh snapshot-revert study01 study01_snapshot

4.4 删除快照

virsh snapshot-delete study01 study01_snapshot

4.4 编辑快照文件

virsh snapshot-edit study01  study01_snapshot_02


参考原文链接:【KVM虚拟化】· virsh管理命令_virsh 暂停-CSDN博客

https://blog.51cto.com/u_16099166/10110774

https://www.cnblogs.com/qiuhom-1874/p/13508231.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【项目实战】MobileNetV3 医学病理识别+不使用全连接预测+迁移学习+附代码数据教程

目录 简言. 环境搭建&快速开始 1. 数据集制作 2、训练教程 2.1 迁移学习 2.2 卷积自编码器,不使用全连接 2.3训练 3 实际推理 结果: 简言. 环境搭建&快速开始 大家好,我是cv君,今天带来以前的干货,mobilenet v3的优化,能在医学病理分类中得到优异准确率…

C++语法基础(一)

第一个C程序 1. <iostream>&#xff08;C&#xff09; <iostream> 是 C 标准库中的头文件&#xff0c;用于处理输入输出操作。它提供了基于流&#xff08;stream&#xff09;的输入输出机制。 特点&#xff1a; 面向对象&#xff1a;C 中的输入输出操作是基于流…

力扣面试经典算法150题:加油站

加油站 今天的题目是力扣面试经典150题中的数组的中等难度题&#xff1a;加油站。 题目链接&#xff1a;https://leetcode.cn/problems/gas-station/description/?envTypestudy-plan-v2&envIdtop-interview-150 问题描述 在一条环路上有 n 个加油站&#xff0c;其中第 i…

pySCENIC报错、解决和完整流程(IOS系统)

该文首发于生信技能树&#xff0c;推文链接&#xff1a;https://mp.weixin.qq.com/s/W23Reg6Hi4XWxpMvfctP8g 明白了基因调控网络的基础知识之后&#xff0c;就可以尝试实际操作一下SCENIC分析。 基因调控网络的基础知识可见推文&#xff1a;https://mp.weixin.qq.com/s/sL_8…

海康二次开发学习笔记4-参数模块配置

参数模块配置 参数配置控件 工具箱中提供了两个参数配置控件. VmParamsConfigControl是不带渲染的参数配置控件.VmParamsConfigWithRenderControl是带渲染的参数配置控件. 1. VmParamsConfigWithRenderControl 配置模块数据源 private void button3_Click(object sender, …

90%的设计师都不知道的设计神器,教你一招快速搞定中秋节创意海报设计!

设计师们&#xff0c;这是不是你&#xff1a;素材多到眼花缭乱&#xff0c;想用的时候总是找不到&#xff1f;海报设计千篇一律&#xff0c;完美没灵感&#xff1f;别担心&#xff0c;今天就来聊聊如何用千鹿设计助手&#xff0c;快速制作一张创意满满的中秋海报&#xff01; …

若依后端 MyBatis改为MyBatis-Plus

引用 1.引入MyBatis-Plus依赖 在总目录的pom.xml&#xff0c;导入依赖 <mybatis-plus.version>3.4.3</mybatis-plus.version> <!-- mybatis-plus 增强CRUD --> <dependency> <groupId>com.baomidou</groupId> <artifactId>…

关机软件项目规划

一、概述 1.1 编写目的 此项目开发规划书的编写主要是为《UPS SNMP卡网络监控系统》中配套使用的关机软件做主要的规划和整合&#xff0c;在开发过程中起到引导作用&#xff0c;以及给使用者提供简要的说明。 1.2 项目背景 关机软件是UPS网络监控适配器项目监控层的组成部分…

16岁激活交学费银行卡需要本人实名电话卡,线下营业厅不给办,怎么办?

16岁激活交学费银行卡需要本人实名电话卡&#xff0c;线下营业厅不给办&#xff0c;怎么办&#xff1f; 话卡办理规定&#xff1a; 根据《民法典》和《电话用户真实身份信息登记规定》的相关要求&#xff0c;未满16周岁的用户通常需要在监护人的陪同下办理电话卡&#xff0c;并…

IO多路复用几种函数

1. select() 函数原型 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);参数说明 nfds&#xff1a;指定文件描述符的范围。这个值应设置为所有文件描述符中最大值加一。例如&#xff0c;如果监视的文件描述符是 0 到 …

斯坦福大学cs231n (图像分类)

1.介绍 当作图像分类时&#xff0c;分类系统接收一些分类图像&#xff0c;比如猫咪。并且系统清楚了一些已经确定了分类或者标签的集合。那么&#xff0c;计算机的工作就是根据图片&#xff0c;给他分配一些固定的分类或者标签。 对于一个计算机来说&#xff0c;这是一个非常…

【CVPR‘24】DeCoTR:使用 2D 和 3D 注意力增强深度补全

DeCoTR: Enhancing Depth Completion with 2D and 3D Attentions DeCoTR: Enhancing Depth Completion with 2D and 3D Attentions 中文解析摘要介绍方法方法3.1 问题设置3.2 使用高效的 2D 注意力增强基线3.3 3D中的特征交叉注意力点云归一化位置嵌入3.4 捕捉 3D 中的全局上下…

软件测试常见面试题汇总(2024版)

一、常见的面试题汇总 1、你做了几年的测试、自动化测试&#xff0c;说一下 selenium 的原理是什么&#xff1f; 我做了五年的测试&#xff0c;1年的自动化测试&#xff1b; selenium 它是用 http 协议来连接 webdriver &#xff0c;客户端可以使用 Java 或者 Python 各种编…

MySQL的InnoDB、MyISAM的参数及常见错误码

1&#xff1a;参数 参数&#xff0c;也被称之为MySQL的系统变量&#xff0c;这些变量是影响MySQL运行的关键&#xff0c;对每个参数做出不同调整&#xff0c;都有可能直接影响到线上数据库的性能&#xff0c;具体的完整系统参数可参考《MySQL官网文档-系统变量》&#xff0c;官…

图表检测检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

图表检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

通过写文件方式写入 Hive 数据

通过写文件方式写入 Hive 数据 Hive最简单的写入数据方式就是通过Hive Jdbc写入Hive数据&#xff0c;但这并不是写入Hive最高效的方法。 Hive通过读取相关Hdfs的文件来获取数据信息&#xff0c;而通过直接写入Hdfs文件数据达到写入Hive数据的效果&#xff0c;这是目前最高效的…

《python语言程序设计》2018版第8章第2题检测子串,你可以用str类中的find方法检测一个字符串

我先用in来做一次 def find_text(text_input1, text_input2):a str(text_input1)b str(text_input2)if b in a:print(f"The {b} is in {a} ")else:print(f"The {b} is not in {a} ")text_n1 "Welcome to shenyang" text_n2 "to"fi…

zdppy_cache缓存框架升级,支持用户级别的缓存隔离,支持超级管理员管理普通用户的缓存

启动服务 import zdppy_api as api import zdppy_cachekey1 "admin" key2 "admin"app api.Api(routes[*zdppy_cache.zdppy_api.cache(key1, key2, api) ])if __name__ __main__:import zdppy_uvicornzdppy_uvicorn.run(app, host"0.0.0.0",…

JVM-类加载过程

类加载过程是 Java 虚拟机 (JVM) 将 Java 代码编译后的字节码文件加载到内存中&#xff0c;并进行解析和验证&#xff0c;最终使程序能够运行的关键步骤。 类加载过程&#xff1a;加载->连接->初始化。连接过程又可分为三步&#xff1a;验证->准备->解析。 1. 加载…

Vitis AI 基本认知(Tiny-VGG 标签获取+预测后处理)

目录 1. 简介 2. 解析 2.1 获取标签 2.1.1 载入数据集 2.1.2 标签-Index 2.1.3 保存和读取类别标签 2.2 读取单个图片 2.3 载入模型并推理 2.3.1 tiny-vgg 模型结构 2.3.2 运行推理 2.4 置信度柱状图 2.5 预测标签 3. 完整代码 4. 总结 1. 简介 本博文在《Vitis …