KVM 虚机镜像扩容和压缩的操作

KVM 虚机镜像扩容和压缩的操作

KVM 是一种基于 Linux 内核的虚拟化技术,能够实现将一台物理机器上的计算资源分隔成多个虚拟机从而提高硬件资源的利用率和灵活性。使用虚拟机的过程中,由于系统和软件的安装,虚拟机的磁盘镜像经常需要进行扩容或压缩。本文就介绍如何在 KVM 虚拟机上实现磁盘镜像的扩容和压缩。

KVM 虚机磁盘扩容

步骤一:关闭虚拟机

在扩容磁盘的过程中,必须先关闭虚拟机。使用下面的命令可以关闭虚拟机:

virsh shutdown <虚拟机名称>

步骤二:编辑 XML 配置文件

使用下面的命令,编辑虚拟机的 XML 配置文件,找到磁盘镜像对应的部分:

virsh edit <虚拟机名称>

找到磁盘镜像所在的设备,在 <disk> 标签内部加入 <capacity unit='G'>扩容大小</capacity> 标签,如下所示:

<disk type='file' device='disk'>
   <driver name='qemu' type='qcow2'/>
   <source file='/var/lib/libvirt/images/<镜像文件名>.qcow2'/>
   <target dev='vda' bus='virtio'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
   <discard mode='unmap'/>
   <capacity unit='G'>10</capacity>
</disk>

注意修改 <capacity> 标签中的 10 参数为需要扩容的大小(GB)。

步骤三:启动虚拟机并扩容磁盘

保存 XML 配置文件后,使用下面的命令重新启动虚拟机:

virsh start <虚拟机名称>

虚拟机启动后,使用下面的命令重新配置磁盘大小:

qemu-img resize <镜像文件名>.qcow2 +<扩容大小>G

注意,<镜像文件名>.qcow2 指的是虚拟机磁盘镜像文件的名称,+<扩容大小>G 表示将磁盘扩容 <扩容大小>GB。

完成以上步骤后,开机登录虚拟机,使用 lsblk 命令可以查看磁盘是否扩容成功。

KVM 虚机磁盘压缩

示例一:进入虚拟机压缩磁盘

如果磁盘压缩前的使用率较低,那么进入虚拟机,删除一些不必要的文件或者清理系统缓存,可以减少文件系统的大小,然后再执行磁盘压缩操作。虚拟机磁盘压缩操作需要使用 qemu-img 命令。对于 qcow2 格式的文件,压缩会把文件里面已经标记为删除的虚拟块删除,然后将使用的块移到文件最后面,并将文件截断,因此可以减小文件大小。

连接到虚拟机上,执行下面的命令:

sudo apt-get install zerofree
sudo apt-get autoremove && sudo apt-get clean

zerofree 是一个用于清空虚拟机系统磁盘空间的工具。autoremoveclean 命令则是用于删除不再需要的软件包和缓存文件。

执行以上命令后,我们再执行 sudo shutdown -h now 命令,等待虚拟机关闭即可。

示例二:使用 qemu-img 压缩虚拟磁盘

执行下面的命令,压缩虚拟机磁盘:

qemu-img convert -c -f qcow2 <原镜像文件>.qcow2 <新镜像文件>.qcow2

这个命令将会使用 qcow2 格式重新编码虚拟磁盘文件,从而压缩文件。<原镜像文件>.qcow2 是虚拟机磁盘镜像文件的名称,<新镜像文件>.qcow2 是新的压缩后磁盘镜像文件的名称。

等待命令执行完成后,我们更新 XML 配置文件,修改虚拟磁盘文件名并删除原始文件。

virsh edit <虚拟机名称>

找到磁盘镜像所在的设备,修改 <source file='原文件地址'/> 中的文件名为新的镜像文件名。

然后使用下面的命令删除原始文件:

rm <原镜像文件>.qcow2

重新启动虚拟机,使用 lsblk 命令可以查看磁盘是否压缩成功。

总结

KVM 虚机磁盘扩容和压缩是日常运维中的基本技能,上述步骤简明扼要,可以让大家迅速上手。需要注意的是,磁盘操作需要在关闭虚拟机后进行,而在操作磁盘后,需要及时更新虚拟机的 XML 配置文件,以保证正常启动虚拟机。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:KVM 虚机镜像扩容和压缩的操作 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Linux 内存泄漏

    1.1 什么是内存泄漏?指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。 1.2 以发生的方式来分类,内存泄漏可以分为4类:   1). 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。 …

    Linux 2023年4月11日
    00
  • vmware中CentOS7网络设置教程详解

    VMware中CentOS7网络设置教程详解 在VMware中安装CentOS7时,可能需要设置网络以便连接互联网。本教程将介绍如何在VMware中安装CentOS7并设置网络。 步骤1:安装CentOS 首先,到CentOS官网(https://www.centos.org/download/)下载CentOS7的DVD ISO文件。 打开VMware P…

    Linux 2023年5月24日
    00
  • linux下使用iperf测试服务器带宽

    准备工具 1、2台Linux服务器(要求其中至少1台主机为腾讯云主机,另外一台任意主机均可,确保2台主机可以互相访问即可)2、Iperf软件为专业网络性能测试工具。 测试目标 上海地区主机外网带宽是否满足100兆带宽 测试过程(示例测试采用2台腾讯云主机,其中一台为上海地区,另外一台为北京地区) 1、 登录北京地区主机,执行yum install iperf…

    Linux 2023年4月16日
    00
  • centos 7 安装卸载apache(httpd)服务的详细步骤

    以下是“CentOS 7安装卸载Apache(httpd)服务的详细步骤”的完整使用攻略,包含两个示例说明。 CentOS 7安装Apache(httpd)服务 以下是在CentOS 7上安装Apache(httpd)服务的步骤: 使用yum包管理器安装Apache(httpd)服务: bash sudo yum install httpd 启动Apache…

    Linux 2023年5月13日
    00
  • Linux Shell 之 if-then 的高级特性

    1、复合条件测试   if-then 语句允许你使用布尔逻辑来组合测试。有两种布尔运算符可用:   [ condition1 ] && [ condition2 ]   [ condition1 ] || [ condition2 ]   第一种布尔运算使用AND布尔运算符来组合两个条件。要让then部分的命令执行,两个条件都必须满足。   …

    Linux 2023年4月11日
    00
  • 16、文件操作系统入门基本概念 Linux内核笔记–深入理解文件描述符

    1、文件管理系统   在大多数应用中,文件是一个核心成分,处理实时应用和一些特殊的应用外,应用程序的输入都是通过文件的形式来完成的,实际上,所有应用程序的输出都保存在文件中,这便于信息的长期存储,也便于用户将来通过应用程序访问信息。   数据或者文件归根结底是存储于物理内存空间上的,操作系统可以通过文件系统方便的管理磁盘上的文件,Linux的文件系统模型如下…

    Linux 2023年4月11日
    00
  • Parallels desktop怎么安装linux系统 Mac虚拟机安装Linux Ubuntu教程(附视频教程)

    下面是详细的攻略: Parallels desktop安装Linux系统的完整攻略 步骤一:准备工作 下载Parallels desktop软件,安装并激活。 下载Linux Ubuntu系统的iso安装镜像。 步骤二:创建虚拟机 打开Parallels desktop软件,点击“新建”按钮,选择“使用本地镜像文件”,并选择下载好的Linux Ubuntu镜…

    Linux 2023年5月24日
    00
  • 主机和VMware中的Linux实现共享文件夹的图文教程

    下面是详细的攻略: 1. 确定主机和虚拟机之间的共享文件夹 在VMware内打开Linux虚拟机 点击VMware窗口上方的“虚拟机”->“共享文件”->“设置共享文件夹” 点击“总是启用共享文件夹”,并输入共享文件夹名称,选择共享文件夹的路径(可以是主机的文件夹路径) 关闭VMware虚拟机的界面 2. 在Linux中加载共享文件夹 打开终端(…

    Linux 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部