【4】KVM管理 | 虚拟机的管理 | 克隆 | 快照

news2025/1/16 21:46:37

目录

1、虚机基本管理

2、虚机的克隆

3、增量镜像

4、虚机快照


1、虚机基本管理

查看正在运行的虚机

[root@localhost ~]# virsh list 
 Id    Name                           State
----------------------------------------------------

查看所有的虚机

[root@localhost ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     win2k12r2                      shut off

查看KVM虚拟机配置文件

[root@localhost ~]# virsh dumppxml win2k12r2

如果直接用vim编辑器修改配置文件的话,需要重启libvirtd服务

启动/暂停/恢复虚拟

[root@localhost ~]# virsh start win2k12r2
[root@localhost ~]# virsh suspend win2k12r2
[root@localhost ~]# virsh resume win2k12r2

关闭虚机

[root@localhost ~]# virsh shutdown win2k12r2

或者

[root@localhost ~]# virsh destroy win2k12r2

重启虚机

[root@localhost ~]# virsh reboot win2k12r2

重置虚机

[root@localhost ~]# virsh reset win2k12r2

删除虚机

[root@localhost ~]# virsh undefined win2k12r2

注意:虚拟机在开启的情况下undefine是无法删除的,但是如果再destroy会直接被删除掉

设置虚机开机自启

[root@localhost ~]# virsh autostart win2k12r2
Domain win2k12r2 marked as autostarted

或者 /etc/libvirt/qemu/autostart/ //此目承默认不存在,

取消开机自启

[root@localhost ~]# virsh autostart --disable win2k12r2
Domain win2k12r2 unmarked as autostarted

查看所有开机自启的虚机

[root@localhost autostart]# virsh list --all --autostart
 Id    Name                           State
----------------------------------------------------

2、虚机的克隆

图形界面

[root@localhost ~]# virt-manager
  • Applications(左角) ----> System Tools -.---->Virtual Machine Manager关闭要克降的虚拟机,右键点击虚拟机选择Clone

命令模式

[root@localhost autostart]# virt-clone -o win2k12r2 --auto-clone
  • -o:origin
[root@localhost autostart]# virt-clone -o win2k12r2 -n vm2 --auto-clone
  • 设置图形设置端口为自动端口,以避免相互冲突
[root@localhost autostart]# virt-clone -o win2k12r2 -n vm2 -f  /var/lib/libvirt/image/vm2.img
  • -f : --file  为虚拟机使用新的磁盘镜像文件

3、增量镜像

概述:
实验目的:

  • 通过一个基础镜像(node.img),里面把各个虚拟机都需要的环境都搭建好,然后基于这个镜像建立起一个个增量镜像,每个增量镜像对应一个虚拟机,虚拟机对镜像中所有的改变都记录在增量镜像里面,基础镜像始等保持不变。

功能:

  • 节省磁盘空间,快速复制虚拟机。

环境:

  • 基本镜像文件: node.img 虚拟机ID: node
  • 增量镜像文件: node4.img 虚拟机ID: node4

要求:

  • 以基本镜像文件node.img为基础,创建一个镜像文件node4.img,以此创建一个虚拟机node4,虚拟机node4的改变将存储于node4.img中。

开始实验:

【1】创建增量镜像文件 

[root@localhost qemu]# qemu-img create -b /var/lib/libvirt/images/win2k12r2.img -f qcow2 /var/lib/libvirt/images/node4.img
Formatting '/var/lib/libvirt/images/node4.img', fmt=qcow2 size=10737418240 backing_file='/var/lib/libvirt/images/win2k12r2.img' encryption=off cluster_size=65536 lazy_refcounts=off 

【2】检查一下增量镜像文件的详细信息 

[root@localhost qemu]# qemu-img info /var/lib/libvirt/images/node4.img 
image: /var/lib/libvirt/images/node4.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
backing file: /var/lib/libvirt/images/win2k12r2.img
Format specific information:
    compat: 1.1
    lazy refcounts: false

【3】创建虚拟机node4的XML配置文件

[root@localhost qemu]# cp /etc/libvirt/qemu/win2k12r2.xml  /etc/libvirt/qemu/node4.xml

【4】修改配置文件

[root@localhost qemu]# vi  /etc/libvirt/qemu/node4.xml

需要修改的地方

 #名字
 <name>node4</name> 

#唯一的uuid
  <uuid>b7777618-f76e-4fa2-8da6-b2733a6ae501</uuid>

#镜像地址
<source file='/var/lib/libvirt/images/node4.img'/>

#修改mac地址
<mac address='52:54:00:82:de:d5'/>


 【5】根据xml配置定义虚拟机node4并开启虚机

[root@localhost ~]# virsh define /etc/libvirt/qemu/node4.xml 
Domain node4 defined from /etc/libvirt/qemu/node4.xml

[root@localhost ~]# virsh start node4
Domain node4 started

【6】测试

看一下原始镜像和增量的增量的大小

[root@localhost ~]# du -h /var/lib/libvirt/images/win2k12r2.img 
11G	/var/lib/libvirt/images/win2k12r2.img
[root@localhost ~]# du -h /var/lib/libvirt/images/node4.img 
8.0M	/var/lib/libvirt/images/node4.img

4、虚机快照

为虚拟机创建一个快照 

可以通过图形化界面:

[root@localhost ~]# virt-manager 

 也可以通过命令行的方式:

[root@localhost ~]# virsh snapshot-create-as node4 node4.snap
Domain snapshot node4.snap created
[root@localhost ~]# qemu-img info /var/lib/libvirt/images/node4.img 
image: /var/lib/libvirt/images/node4.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 428M
cluster_size: 65536
backing file: /var/lib/libvirt/images/win2k12r2.img
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         node4.snap             397M 2023-02-04 03:23:07   00:08:15.403
Format specific information:
    compat: 1.1
    lazy refcounts: false

查看虚机快照

[root@localhost ~]# virsh snapshot-list node4
 Name                 Creation Time             State
------------------------------------------------------------
 node4.snap           2023-02-04 03:23:07 -0500 running

raw
使用文件来模拟实际的硬盘(当然也可以使用一块真实的硬盘或一个分区)。由于原生的裸格式,不支持snapshot也是很正常的。但如果你使用LVM的裸设备,那就另当别论。说到LVM还是十分的犀利的目前来LVM的snapshot.性能、可扩展性方面都还是有相当的效果的。目前来看的话,备份的话也问题不大。就是在虚拟机迁移方面还是有很大的限制。但目前虚拟化的现状来看,真正需要热迁移的情况目前需求还不是是否的强烈。虽然使用LVM做虚拟机镜像的相关公开资料比较少,但目前来看牺牲一点灵活性,换取性能和便于管理还是不错的选择。
qcow2
现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前qCow2的性能上接近raw裸格式的性能,这个也算是redhat的官方渠道了
对于qcow2的格式,几点还是比较突出的,qcow2的snapshot,可以在镜像上做N多个快照:

  • 更小的存储空间
  • Copy-on-write support
  • 支持多个snapshot,对历史snapshot进行管理
  • 支持zlib的磁盘压缩
  • 支持AES的加警

恢复快照 

[root@localhost ~]# virsh snapshot-revert node4 node4.snap

删除快照

[root@localhost ~]# virsh snapshot-delete --snapshotname node4
error: command 'snapshot-delete' requires <domain> option
[root@localhost ~]# virsh snapshot-delete --snapshotname node4.snap node4
Domain snapshot node4.snap deleted

[root@localhost ~]# virsh snapshot-list node4
 Name                 Creation Time             State
------------------------------------------------------------

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

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

相关文章

Apache Oozie(1):Apache Oozie简介

1 Oozie 概述 Oozie 是一个用来管理 Hadoop 生态圈 job 的工作流调度系统。由Cloudera 公司贡献给 Apache。Oozie 是运行于 Java servlet 容器上的一个 java web 应用。Oozie 的目的是按照 DAG&#xff08;有向无环图&#xff09;调度一系列的 Map/Reduce或者Hive 等任务。Ooz…

Java SE 进阶(二)之 HashSet底层原理

文章目录前言HashSet底层原理1.哈希表2.哈希值3.底层原理4.回答三个问题前言 关于Set和HashSet的API使用可参见 集合基础入门&#xff08;Collection&#xff0c;ArrayList&#xff0c;HashSet&#xff0c;HashMap&#xff09; HashSet底层原理 1.哈希表 HashSet集合底层采…

Vue组件 —— 单文件组件

追溯vue组件问题 在未讲项目之前&#xff0c;在 这一篇内容当中就讲到了组件引入使用&#xff0c;有内置的组件和动态组件以及封装一个swiper组件&#xff0c;组件也分为全局组件和局部组件&#xff0c;在讲在项目当中去使用组件之前先简单的回顾一下组件的编写&#xff1a; &…

89.【SpringBoot-02】

SpringBoot聊一聊如何构建一个网站(十四)、.SpringBoot整合数据库操作1.整合JDBC(1).SpringData简介(2).整合JDBC(3).JdbcTemplate ⭐2. 整合Druid数据源 &#xff08;德鲁伊&#xff09;(1).Druid简介(2).配置数据源(3).配置Druid数据源监控(4).配置Druid数据源过滤器(5).注解…

Echarts的Y轴添加定值横线的示例

第010个点击查看专栏目录Echarts折线图的y轴要画一条横线&#xff0c;主要是在series中设置markLine的图表标线参数&#xff0c;具体的参考源代码。文章目录示例效果示例源代码&#xff08;共142行&#xff09;相关资料参考专栏介绍示例效果 示例源代码&#xff08;共142行&…

怎么在Windows电脑更新 DirectX ?

玩游戏的人应该都对DirectX不陌生&#xff0c;它可以提高游戏或多媒体程序的运行效率&#xff0c;增强3d图形和声音效果。但很多人都不知道DirectX该如何更新&#xff0c;这篇文章将以Win10为例&#xff0c;教大家怎么在电脑上更新DirectX。 一、检查当前DirectX版本 如果你不…

简单聊一聊组件封装

封装一个思维导图组件 最近封装了一个简单的思维导图组件&#xff0c;在此简单记录一下心里历程 组件样式 组件结构设计 节点之间的线分成三部分&#xff0c;分别是竖线左边的横线A、竖线B、竖线右边的横线C&#xff0c;所以一个节点可以包含以下几个元素&#xff1a; 横线…

VBA提高篇_18 VBA代码录制优化Select(tion)及表格合并Merge(cells()/Rows()/Columns()

文章目录1. Cells(1,1)2. Rows(Str)和Columns(Str)3. VBA合并单元格3.1 Range.MergeCells属性:3.2 Range.Merge/UnMerage属性:3.3 Range.Merge(参数True/False)3.4 操作合并/取消合并单元格的两种方法4. Select / Selection 和 录制宏的代码优化4.1 Select / Selection4.2 录制…

anconda的pip下载包出现的问题

问题一: 在anconda里面如何创建新的python环境(也就是更换新的python版本) 1.先打开anconda软件,创建需要的环境 2. 环境创建好之后,去pycharm里面进行配置解释器 3. 这样就可以用了 问题二:pip的安装软件时出现包找不到的问题? 注意:因为我们刚刚创建了一个python环境,等…

Python基于已知的分幅条带号筛选出对应遥感影像文件的方法

本文介绍基于Python语言&#xff0c;结合已知研究区域中所覆盖的全部遥感影像的分幅条带号&#xff0c;从大量的遥感影像文件中筛选落在这一研究区域中的遥感影像文件的方法。 首先&#xff0c;先来明确一下本文所需实现的需求。现已知一个研究区域&#xff08;四川省&#xff…

【C++】C++入门 函数重载

前言 自然语言中&#xff0c;一个词可以有多重含义&#xff0c;人们可以通过上下文来判断该词真实的含义&#xff0c;即该词被重载了。 函数重载一、函数重载定义二、函数重载的条件1. 参数类型不同2. 参数个数不同3. 参数类型顺序不同三、函数重载的原理--名字修饰(name Mangl…

怎么把网页变成灰色?怎么让头像或某一部分不变灰色?filter/backdrop-filter/mix-blend-mode/svg/grayscale(1)

在国家公祭日&#xff0c;我们哀悼沉思&#xff0c;势要勿忘国耻振兴中华&#xff1b;在国家重要人物逝世后&#xff0c;举国哀悼&#xff1b;这些时段很多网站都会积极呼应&#xff0c;给与自己的网页设置成灰色&#xff1b;那给网页设置成灰色是经过怎样的设置来实现的呢&…

利用pandas_udf加速机器学习任务

note pandas udf和python udf区别&#xff1a;前者向量化是在不同partition上处理pandas_udf使用panda API来处理分布式数据集&#xff0c;而toPandas()将分布式数据集转换为本地数据&#xff0c;然后使用pandas进行处理&#xff0c;如果Pyspark的dataframe非常大&#xff0c;…

快速排序和归并排序哪个快?

两个排序的基本思想都是分治&#xff08;分而治之&#xff09;,实现一般都使用递归实现。1.快速排序双边指针&#xff08;交换法&#xff09;&#xff1a;记录分界值 &#xff0c;创建左右指针&#xff08;记录下标&#xff09;。以第一个元素为分界值&#xff0c;先从右向左找…

C语言指针变量作为函数参数

在C语言中&#xff0c;函数的参数不仅可以是整数、小数、字符等具体的数据&#xff0c;还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部&#xff0c;使得在函数内部可以操作函数外部的数据&#xff0c;并且这些数据不会随着函数的结束而被销毁…

ocelot的单节点解决方案

ocelot的问题前面我们解决了consul的单节点的集群扩建。这里讨论如果在多客户端访问时&#xff0c;单网关也会有瓶颈。如果单台挂掉&#xff0c;那么也会麻烦&#xff0c;所以根据项目需要解决问题。ocelot多节点部署最简单的粗暴解决&#xff0c;多部署几台网关。但是我们需要…

mac环境和windows环境下GeoServer如何安装部署

geoserver是从事GIS行业都应当了解的一个gis服务器。 所以说学会geoserver是一个非常必要的事情。那么这篇文章呢我就带着大家来一起学习如何在Mac机器上和windows机器上安装并部署Geoserver。 首先不管是哪个环境我们都需要去官网上先下载安装包。 第一步我们要去geoserver的…

【计算机组成原理】y = a * b + c 的执行具体流程

文章目录1.2.2 认识各个硬件部件1. 主存储器的基本组成2. 运算器的基本组成3. 控制器的基本组成4. 计算机的工作流程1.2.2 认识各个硬件部件 1. 主存储器的基本组成 存储体&#xff1a;存放数据和指令地址寄存器&#xff1a;用来存放读取存储体数据时存放的具体位置数据寄存器…

12、字符(串)输入、输出

目录 一、字符数据输入&#xff0f;输出 1. 字符数据输入 2. 字符数据输出 二、字符串输入&#xff0f;输出 1. 字符串输入函数 2. 字符串输出函数 一、字符数据输入&#xff0f;输出 1. 字符数据输入 字符数据输入使用的是getchar函数&#xff0c;其作用是从终端&…

前端遇到的问题

inputs-outputs https://angular.cn/guide/inputs-outputs 用于父组件与子组件间的值传递 在项目中引入核心组件 父组件在其html界面绑定属性 在子组件里通过Input传递值 具体里: 使用默认规则数组绑定固定值(比如id)的错误 这里两个ts文件之间传值,采用了一个get函数,…