KVM——虚拟机的复制与克隆

news2024/9/29 16:13:59

目录

一. 复制虚拟机 

二. 虚拟机克隆 

1. 使用 virt-clone

2.  使用 virt-manager(图形界面)

3. 使用 qemu-img (磁盘镜像克隆)


一. 复制虚拟机 

配置文件路径:/etc/libvirt/qemu/*.xml

磁盘镜像文件路径: /var/lib/libvirt/images/*.img

复制镜像文件 

[root@kvm-server ~]# cd /var/lib/libvirt/images/
[root@kvm-server images]# cp vm10.img vm20.img

 复制配置文件

[root@kvm-server images]# cd /etc/libvirt/qemu/
[root@kvm-server qemu]# cp vm10.xml vm20.xml

生成一个UUID,复制这个ID

[root@kvm-server qemu]# uuidgen
55fc4773-8335-4e13-a394-9328b1a980ce

修改配置文件

[root@kvm-server qemu]# vim vm20.xml

保存编辑并退出

定义虚拟机

[root@kvm-server qemu]# virsh define ./vm20.xml

 查看所有虚拟机列表

[root@kvm-server qemu]# virsh list --all
 Id   名称   状态
-------------------
 3    vm10   运行
 -    vm20   关闭

启动

[root@kvm-server qemu]# virsh start vm20

进入虚拟机

[root@kvm-server qemu]# virsh console vm20
连接到域 'vm20'
转义字符是 ^] (Ctrl + ])

[root@localhost ~]# 

快捷键 ctrl + ] 退出

二. 虚拟机克隆 

在 KVM (Kernel-based Virtual Machine) 中,克隆虚拟机可以通过几种不同的方式来完成 

1. 使用 virt-clone

virt-clone 是一个用于克隆虚拟机的工具,它是 libvirt 的一部分。使用它可以很方便地克隆虚拟机。以下是一个基本的命令示例:

virt-clone --original <原始虚拟机名称> --name <新虚拟机名称> --auto-clone
  • --original:指定要克隆的原始虚拟机名称。
  • --name:指定新虚拟机的名称。
  • --auto-clone:自动克隆虚拟机的磁盘。

示例:

virt-clone 要求源虚拟机必须是关闭状态才能进行克隆操作。 

[root@kvm-server qemu]# virsh list
 Id   名称   状态
-------------------
 3    vm10   运行
 7    vm20   运行

[root@kvm-server qemu]# virsh shutdown vm20
域 'vm20' 正在关闭

 克隆

[root@kvm-server qemu]# virt-clone -o vm20 -n vm30 -f /var/lib/libvirt/images/vm30.img 
正在分配 'vm30.img'                                                                        8% [======-                                                                     ] 234 MB/s | 454 MB  00:00:19 正在分配 'vm30.img'                                                                       14% [==========-                                                                 ] 241 MB/s | 723 MB  00:00:18 正在分配 'vm30.img'                                                                       18% [==============                                                              ] 237 MB/s | 944 MB  00:00:17 正在分配 'vm30.img'                                                                       22% [=================                                                           ] 234 MB/s | 1.1 GB  00:00:16 正在分配 'vm30.img'                                                                       26% [====================                                                        ] 223 MB/s | 1.3 GB  00:00:16 正在分配 'vm30.img'                                                                       29% [======================                                                      ] 210 MB/s | 1.5 GB  00:00:17 正在分配 'vm30.img'                                                                       32% [========================                                                    ] 195 MB/s | 1.6 GB  00:00:17 正在分配 'vm30.img'                                                                       100% [===========================================================================] 873 MB/s | 5.0 GB  00:00:00 正在分配 'vm30.img'                                                                                                                                                                   | 5.0 GB  00:00:07     

成功克隆 'vm30'。

 测试启动

[root@kvm-server qemu]# virsh list --all
 Id   名称   状态
-------------------
 3    vm10   运行
 -    vm20   关闭
 -    vm30   关闭

[root@kvm-server qemu]# virsh start vm30
域 'vm30' 已启动

常用参数和选项

--original <原始虚拟机名称> (-o)

指定要克隆的原始虚拟机名称。
--name <新虚拟机名称> (-n)

指定新虚拟机的名称。
--file <新磁盘镜像路径> (-f)

指定新虚拟机的磁盘镜像文件路径。
--auto-clone

自动克隆虚拟机的所有磁盘。这是默认行为,通常不需要单独指定。
--mac <MAC地址>

指定新虚拟机的 MAC 地址。如果不指定,virt-clone 会自动生成一个新的 MAC 地址。
--disk <路径>

允许指定其他磁盘镜像路径。格式类似于 --disk path=/path/to/disk.img。可以用于指定多个磁盘。
--network <网络配置>

指定网络配置。可以使用 --network network=<网络名> 或 --network bridge=<桥接名称> 来指定网络。
--no-virtio

禁用 virtio 设备类型,使用传统的设备类型(如 IDE)。
--no-checks

禁用所有检查,这在克隆复杂的虚拟机时可能有用,但一般不推荐使用。
--metadata <路径>

指定用于生成新虚拟机元数据的 XML 文件路径。
--no-uuid

禁用自动生成新的 UUID。适用于需要保留原始 UUID 的情况。
--bridge <桥接设备>

指定新虚拟机连接到的桥接网络设备。

2.  使用 virt-manager(图形界面)

 

3. 使用 qemu-img (磁盘镜像克隆)

如果只需要克隆虚拟机的磁盘镜像文件,可以使用 qemu-img 工具。

qemu-img 是 QEMU(一个开源虚拟化平台)中的一个工具,用于创建、转换和修改虚拟机磁盘镜像文件。它支持多种磁盘镜像格式,如 QCOW2、RAW、VMDK、VHD 等。 

克隆镜像文件的作用 :

  • 备份: 克隆镜像文件可以作为虚拟机的备份。当你需要在系统升级、迁移或其他操作前备份虚拟机时,可以克隆当前镜像,以便在需要时恢复到当前状态。

  • 测试与开发: 在开发或测试环境中,克隆镜像文件可以帮助创建多个相同配置的虚拟机实例。这对于测试不同配置或软件版本的兼容性非常有用。

  • 迁移: 克隆镜像文件可以用于迁移虚拟机到不同的物理服务器或存储位置。例如,你可以将虚拟机从一个存储系统迁移到另一个存储系统,同时保持虚拟机的状态不变。

  • 创建模板: 克隆镜像文件可以作为虚拟机的模板,用于快速创建多个相同配置的虚拟机实例。这在需要大量相似虚拟机的场景中非常有用,如大规模部署或实验室环境。

qemu-img convert -f <源格式> -O <目标格式> <源镜像文件> <目标镜像文件>
  • <源格式>:源镜像文件的格式,如 qcow2raw 等。如果你不知道格式,可以用 qemu-img info <源镜像文件> 来查看。
  • <目标格式>:目标镜像文件的格式。
  • <源镜像文件>:你要克隆的源镜像文件。
  • <目标镜像文件>:克隆后的目标镜像文件。
[root@kvm-server images]# virsh list
 Id   名称   状态
-------------------
 3    vm10   运行

[root@kvm-server images]# virsh shutdown vm10
域 'vm10' 正在关闭


# 进入镜像文件目录
[root@kvm-server qemu]# cd /var/lib/libvirt/images/

# 克隆镜像文件
[root@kvm-server images]# qemu-img convert -f qcow2 -O qcow2 vm10.img vm10-clone.img

[root@kvm-server images]# ll
总用量 3486824
-rw-r--r-- 1 root root 1780285440  8月  6 20:14 vm10-clone.img
-rw------- 1 root root 5369757696  8月  6 20:13 vm10.img

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

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

相关文章

【扒代码】regression_head.py

import torch from torch import nnclass UpsamplingLayer(nn.Module):# 初始化 UpsamplingLayer 类def __init__(self, in_channels, out_channels, leakyTrue):super(UpsamplingLayer, self).__init__() # 调用基类的初始化方法# 初始化一个序列模型&#xff0c;包含卷积层、…

LeetCode 7, 703, 287

文章目录 7. 整数反转题目链接标签思路反转操作反转的数的范围 代码 703. 数据流中的第 K 大元素题目链接标签思路代码 287. 寻找重复数题目链接标签思路代码 7. 整数反转 题目链接 7. 整数反转 标签 数学 思路 反转操作 反转实际上很简单&#xff0c;假设要反转数字 n…

数据结构之Map与Set(上)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 目录 二叉搜索树 Map和Set的介绍与使用 Map的常用方法及其示例 Set的常用方法及其示例 哈希表…

客户管理系统平台(CRM系统)是什么?它的核心主要解决哪些问题?

客户管理系统平台CRM是什么&#xff1f;客户关系管理系统CRM的核心主要解决哪些问题&#xff1f; CRM系统不仅仅是一套软件&#xff0c;更是一种策略&#xff0c;一种管理理念和一种企业发展方向。它通过整合客户数据、优化业务流程、提升客户体验&#xff0c;帮助企业在激烈的…

K8s第三节:k8s1.23.1升级为k8s1.30.0

上回书说到我们使用了kubeadm安装了k8s1.23.1,但是在k8s1.24之前还是使用docker作为容器运行时&#xff0c;所以这一节我打算将我安装的k8s集群升级为1.30.0版本&#xff1b; 1、修改containerd 配置 因为我们安装的docker自带containerd&#xff0c;所以我们不需要重新安装con…

蓝凌EKP二次开发资料大全 完整蓝凌二次开发资料 蓝凌 EKP开发实战教程 蓝凌OA二次开发资料大全 蓝凌OA java开发快速入门

蓝凌EKP二次开发资料大全 完整蓝凌二次开发资料 蓝凌 EKP开发实战教程 蓝凌OA二次开发资料大全 记得两年前花了非常贵的费用去现场学习的资料&#xff0c;把这些开发技术文档分享出来&#xff0c;希望通过这个资料&#xff0c; 为大家学习开发大大减少时间。期待大家能快速上…

《UE5_C++多人TPS完整教程》学习笔记32 ——《P33 动画蓝图(Animation Blueprint)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P33 动画蓝图&#xff08;Animation Blueprint&#xff09;》 的学习笔记&#xff0c;该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版&#xff0c;UP主&#xff08;也是译者…

Python实战:类

一、圆的面积、周长 class Circle:# 初始化一个类参数&#xff1a;rdef __init__(self,r):self.r r# 计算面积的方法def get_area(self):return 3.14*pow(self.r,2)# 计算周长的方法def get_perimeter(self):return 2*3.14*self.r#创建对象 r eval(input(请输入圆的半径&…

Vue 2 和 Vue 3 生命周期钩子

Vue 2 和 Vue 3 生命周期钩子 在 Vue.js 开发中&#xff0c;了解生命周期钩子对于编写有效的组件至关重要。Vue 2 和 Vue 3 在生命周期钩子上大致相同&#xff0c;但 Vue 3 的 Composition API 引入了一种新的方式来处理它们。这里我会概述两者的生命周期钩子&#xff0c;并指…

2024年8月7日(mysql主从 )

回顾 主服务器 [rootmaster_mysql ~]# yum -y install rsync [rootmaster_mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar [rootmaster_mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz [rootmaster_mysql ~]# cp -r mysql-8.0.33-linux-glibc2.…

QT找不到编辑框

问题展示&#xff1a; 解决办法&#xff1a;ALT0 然后我的变成了这种&#xff1a; 解决办法&#xff1a;文件系统改变成项目&#xff1a;

DNTR——F

文章目录 AbstractIntroductionContribution Related WorkAdvancements in Feature Pyramid Networks (FPNs)Coarse-to-Fine Image Partitioning in Drone Imagery DetectionDevelopments in Loss Function Approaches for Tiny Object DetectionR-CNN for Small Object Detect…

大炼模型进入尾声,“失眠”的欧洲和日本能否扳回一局?

大数据产业创新服务媒体 ——聚焦数据 改变商业 2022年末&#xff0c;ChatGPT-3.5的惊艳亮相&#xff0c;瞬间引爆了全球范围内的生成式AI&#xff08;GenAI&#xff09;热潮。 这场现代版的"淘金热"迅速在科技领域蔓延&#xff0c;尤其是在全球两大科技强国——中国…

简单分享下python打包手机app的apk

Python 把python程序打包成apk的完整步骤 1. 引言 在移动应用市场蓬勃发展的今天&#xff0c;开发人员常常需要将自己的Python程序打包成APK文件&#xff0c;以便在Android设备上运行。本文将详细介绍将Python程序打包成APK的完整步骤。 2. 准备工作 在开始打包前&#xff0c…

全网最详解LVS(Linux virual server)

目录 一、LVS&#xff08;Linux virual server&#xff09;是什么&#xff1f; 二、集群和分布式简介 2.1、集群Cluster 2.2、分布式 2.3、集群和分布式 三、LVS运行原理 3.1、LVS基本概念 3.2、LVS集群的类型 3.2.1 nat模式 3.2.2 DR模式 3.2.3、LVS工作模式总结 …

RSYSLOG收到华为防火墙日志差8小时的解决方法

RSYSLOG收到华为防火墙日志差8小时 这个问题其实不关Rsyslog配置的事&#xff0c;只要修改华为墙的配置就好 处理方法&#xff1a; info-center loghost 172.18.6.91 language Chinese local-time 在华为web界面添加ip是不会添加local-time这个参数的&#xff0c; 需要在命令…

sqli-labs第二关详解

首先让id1&#xff0c;正常显示&#xff0c;接着尝试and 11和and 12 and 11正常&#xff0c;and 12不正常 所以可以判断是数字型注入&#xff0c;使用order by 判断列数&#xff0c;发现有三个字段 使用union语句&#xff0c;找出能显示信息的地方 接下来就是找出数据库名称和版…

Leetcode75-7 除自身以外数组的乘积

没做出来 本来的思路是遍历一遍得到所有乘积和然后除就行 但是题目不能用除法 答案的思路 for(int i0;i<n;i) //最终每个元素其左右乘积进行相乘得出结果{res[i]*left; //乘以其左边的乘积left*nums[i];res[n-1-i]*right; //乘以其右边的乘积right*nums[n-1-i]…

搭建 Web 群集Haproxy

案例概述 Haproxy 是目前比较流行的一种群集调度工具&#xff0c;同类群集调度工具有很多&#xff0c;如 LVS 和Nginx。相比较而言&#xff0c;LVS 性能最好&#xff0c;但是搭建相对复杂;Nginx 的upstream模块支持群集功能&#xff0c;但是对群集节点健康检查功能不强&#xf…

海量数据处理商用短链接生成器平台 - 10

第二十一章 短链服务冗余双写-链路测试和异常消息处理实战 第1集 冗余双写MQ架构-消费者配置自动创建队列和集群测试 简介&#xff1a; 冗余双写MQ架构-MQ消费者配置自动创建队列 controller-service层开发配置文件配置MQ ##----------rabbit配置-------------- spring.rab…