kvm压缩虚拟机磁盘

2024-08-22 22:20
文章标签 压缩 虚拟机 磁盘 kvm

本文主要是介绍kvm压缩虚拟机磁盘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

kvm压缩虚拟机磁盘

kvm通过图形界面创建虚拟机后,如果指定的磁盘为200G,创建后查看物理位置文件大小为200G,注意,这里创建的时候并没有勾选“立即分配磁盘空间”。

出现以上原因会造成虚拟机安装完操作系统或者其他软件后,物理位置虚拟机文件大小会超过200G!明显是不合理的。如果用图形化界面创建虚拟机后,会造成“镜像空洞”。

解决方案:
1.创建的时候提前在需要保存的路径使用命令先创建镜像文件:

# 使用qemu-img命令创建kvm虚拟机镜像文件
qemu-img create -f qcow2 xxx.qcow2 200G

2.或者虚拟机创建完成后使用相应工具压缩镜像文件

#第一种方案
qemu-img convert -c -O qcow2 /path/xxx.qcow2 /newpath/xxx.qcow2
#第二种方案
sudo apt-get install libguestfs-tools
sudo virt-sparsify --compress /path/xxx.qcow2 /newpath/xxx.qcow2

注意:如果是执行qemu-img命令创建的,这个文件创建后会非常小,安装完操作系统后文件会随之变大。

例如:
1.使用命令创建

# 此时创建的文件122k
qemu-img create -f qcow2 win2022.qcow2 200G

2.kvm创建虚拟机,选择win2022.qcow2文件
3.设置kvm虚拟机其他选项
4.安装windows操作系统后清理windows磁盘,优化windows磁盘
5.关闭kvm虚拟机
6.查看win2022.qcow2文件大小为12G
7.使用命令压缩:

sudo virt-sparsify --compress /home/temp/win.qcow2 /home/temp/test/win2022.qcow2

注意:使用virt-sparsify压缩的时候,会产生临时文件到/tmp目录中,如果/tmp目录比较小,则建议进行如下操作,否则压缩会失败

注意,一定要用root的身份登录后操作,不要使用sudo

# mkdir /home/temp/linux-temp
# chmod 1777 /home/temp/linux-temp
# export TEMP=/home/temp/linux-temp
# export TMPDIR=/home/temp/linux-temp

8.将压缩后的虚拟机镜像移动到指定存放路径后重新迁移虚拟机(其实这里就就相当于把虚拟机磁盘优化到最小后,重新指定了镜像位置)

这篇关于kvm压缩虚拟机磁盘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097556

相关文章

虚拟机与物理机的文件共享方式

《虚拟机与物理机的文件共享方式》文章介绍了如何在KaliLinux虚拟机中实现物理机文件夹的直接挂载,以便在虚拟机中方便地读取和使用物理机上的文件,通过设置和配置,可以实现临时挂载和永久挂载,并提供... 目录虚拟机与物理机的文件共享1 虚拟机设置2 验证Kali下分享文件夹功能是否启用3 创建挂载目录4

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

不删数据还能合并磁盘? 让电脑C盘D盘合并并保留数据的技巧

《不删数据还能合并磁盘?让电脑C盘D盘合并并保留数据的技巧》在Windows操作系统中,合并C盘和D盘是一个相对复杂的任务,尤其是当你不希望删除其中的数据时,幸运的是,有几种方法可以实现这一目标且在... 在电脑生产时,制造商常为C盘分配较小的磁盘空间,以确保软件在运行过程中不会出现磁盘空间不足的问题。但在

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

Qt实现文件的压缩和解压缩操作

《Qt实现文件的压缩和解压缩操作》这篇文章主要为大家详细介绍了如何使用Qt库中的QZipReader和QZipWriter实现文件的压缩和解压缩功能,文中的示例代码简洁易懂,需要的可以参考一下... 目录一、实现方式二、具体步骤1、在.pro文件中添加模块gui-private2、通过QObject方式创建

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

HotSpot虚拟机的经典垃圾收集器

读《深入理解Java虚拟机》第三版笔记。 关系 Serial、ParNew、Parallel Scavenge、Parallel Old、Serial Old(MSC)、Concurrent Mark Sweep (CMS)、Garbage First(G1)收集器。 如图: 1、Serial 和 Serial Old 收集器 2、ParNew 收集器 3、Parallel Sc