如何轻松调整KVM虚拟磁盘大小(扩展)

你是否曾经发现自己处于KVM虚拟机磁盘上空间耗尽的困境中?好,你并不孤单!无论是安装新软件,容纳更多数据,还是只是给虚拟机一点喘息的空间,扩展您的KVM虚拟磁盘大小都是我们在某个时候都面临的任务。但不要担心!

在本文中,我们将指导您高效安全地调整KVM虚拟磁盘大小的大小,确保您以无忧的方式拥有所需的所有空间。

但是,在我们卷起袖子并进入磁盘调整大小之前,让我们快速绕道了解我们故事中的主要角色:KVM磁盘类型。

KVM 虚拟磁盘类型

KVM(基于内核的虚拟机)世界主要使用两种类型的磁盘文件 - qcow2qcow2和原始文件,其中qcow2是最常见的。

  • qcow2 : 将qcow2视为磁盘文件的瑞士军刀。它灵活,支持快照(在特定时间点捕获VM的状态),压缩(节省空间)和加密(保持数据安全)等功能。它是一种文件格式,旨在尽可能方便,平衡性能和功能。
  • 原始磁盘 :原始磁盘类型是简单,无装饰选项。它就像一个空白的画布,提供高性能和简单。原始文件本质上是虚拟机可以直接有效地访问的未格式化块。它们缺乏qcow2的高级功能,但它们的简单性和速度对于特定任务来说是无与伦比的。

有了这些知识,您就可以调整KVM虚拟磁盘的尺寸,确保您的虚拟机拥有蓬勃发展所需的所有空间。让我们来告诉你怎么做。

扩展 KVM 虚拟机磁盘大小

首先,这就是我们的KVM虚拟机的情况,我们想要扩展其磁盘。

KVM虚拟机耗尽了磁盘空间。

KVM虚拟机耗尽了磁盘空间。

是的,似乎我们处于一个紧张的位置 - 我们的20 GB磁盘几乎以98%的容量最大化,正如你可以从图像中看到的。但不要担心。如上所述,我们可以在几分钟内扩展它。所以,让我们潜入并开始

步骤1:识别虚拟磁盘

首先,我们需要识别您希望调整大小的KVM的虚拟磁盘文件。让我们首先列出所有使用虚拟机的虚拟机virsh命令:

sudo virsh list --allCode language:代码:PHP (php)

所有 KVM 虚拟机的列表。

所有 KVM 虚拟机的列表。

ubuntu我们将扩展磁盘的KVM虚拟机被命名为“ubuntu”(在KVM术语中,虚拟机的名称称为术语域),目前已关闭。但是,如果它是打开的,我们必须先关闭它,因为我们无法在运行时调整磁盘的大小。要关闭它,只需运行:

sudo virsh shutdown <vm_name>代码:HTML,XML(xml)

哪一个,在我们的例子中,将是:

sudo virsh shutdown ubuntu

在确定虚拟机的精确名称后,我们的下一步是定位其虚拟磁盘的绝对路径,该路径对应于单个物理文件。为此,我们将执行以下命令:

sudo virsh domblklist ubuntu

查找 KVM 虚拟机磁盘的完整路径。

查找 KVM VM 磁盘的完整路径。

上面的命令输出显示ubuntu,“/data/kvm/ubuntu22.04通往“ubuntu”虚拟机虚拟磁盘的完整路径是“/data/kvm/ubuntu22.04”。

此外,我们可以通过执行虚拟磁盘来检索有关虚拟磁盘的更多详细信息,例如其当前大小。qemu-img info命令以 VM 磁盘的完整路径为下:

sudo qemu-img info /data/kvm/ubuntu22.04

显示磁盘详细信息。

如您所见,显示的信息确认我们当前的磁盘大小为20 GB。

步骤 2:检查快照

在继续之前,确保我们的虚拟机没有快照是很重要的。这是因为KVM不允许在存在快照时调整磁盘大小。要验证是否有特定虚拟机的快照,我们执行以下命令:

sudo virsh snapshot-list ubuntuCode language:代码:PHP (php)

检查可用的 VM 快照。

检查可用的 VM 快照。

就我们而言,没有为此虚拟机创建快照。但是,如果有,在继续之前,应使用下面的命令删除它们。

sudo virsh snapshot-delete <vm_name> <snapshot_name>代码:HTML,XML(xml)

步骤3:调整KVM虚拟磁盘的大小

现在,我们都设置为使用以下命令调整 KVM 虚拟磁盘文件的大小:qemu-img命令。例如,要将我们的“ ubuntu” VM 磁盘的大小从 20 GB 增加到 30 GB,或者换句话说,添加更多 10 GB,我们将使用:

sudo qemu-img resize /data/kvm/ubuntu22.04 +10G

重新检查虚拟磁盘的文件大小后,我们会发现它已经成功增加了10 GB,从20 GB增加到30 GB。

sudo qemu-img info /data/kvm/ubuntu22.04

调整 KVM 虚拟磁盘的大小

调整 KVM 虚拟磁盘的大小

然而,something very important你有没有在上图中发现一些非常重要的东西?虚拟大小已经达到30 GB,但根磁盘大小字段仍然徘徊在20 GB左右。

如果您潜入虚拟机,您会注意到根文件系统大小似乎仍然是20 GB。同时,当我们使用lsblk要列出块设备,它方便地显示30 GB的更新大小。

检查磁盘大小。

检查磁盘大小。

你可能会问:“发生了什么?我糊涂了”。别担心,一切都应该如此。让我为你分解它。

当你使用qemu-img resize命令,你正在扩展所有数据所在的磁盘文件,使其能够容纳更多的东西。这有点像为学校买一个更大的背包。然而,仅仅因为背包更大并不意味着你自动拥有更多的笔记本或教科书。

类似地,虚拟机中的文件系统——决定数据存储方式的组织结构——不会自动拉伸以填补新空间。它仍然使用它以前的旧设置。

要使用额外的空间,您需要告诉文件系统在较大的容器中扩展和占用房间。否则,新容量将无法访问KVM虚拟机上的Linux操作系统。

这正是我们现在将向您展示如何做到这一点。

调整分区和文件系统的大小

必须了解,调整文件系统分区的大小是一个两步过程:

  1. 使用新大小删除和重新创建分区表
  2. 从操作系统中吸收新的尺寸

虽然第一步是所有情况下的通用,但步骤二严格特定于您的文件系统。下面,我们将介绍如何使用Linux三种最广泛使用的文件系统类型——ext4、XFS和Btrfs。Linux’s three most widely used file system types

登录到 KVM 虚拟机,您的磁盘将调整大小。要了解您正在使用的文件系统,请键入以下命令:

df -Th

确定 Linux 中的文件系统类型。

确定 Linux 中的文件系统类型。

“Type/dev/vda3列表示我们计划调整大小的“/dev/vda3”分区的文件系统为 ext4。这个文件系统是Linux生态系统中应用最广泛的。

从这里开始,必须谨慎执行以下命令。我们将使用fdisk调整磁盘分区大小的工具。

sudo fdisk /dev/vda


p按“p”并点击“Enter”以查看磁盘的分区布局。对我们来说,分区设置为扩展10 GB,因为qemu-img resize命令是根(“/”)分区,/dev/vda3标识为“/dev/vda3”。

查看磁盘的分区布局。

查看磁盘的分区布局。

&quot; d &quot; 键 &quot; 进入 &quot; 。然后,系统将提示您选择一个分区进行删除。我们选择 3,/dev/vda3因为这个数字对应于我们的“/dev/vda3”分区。

重要的是要明白,您不是通过删除它来擦除存储在此分区上的数据。相反,你只是删除分区的信息表,这并不等于物理删除存储在它上的文件。

删除磁盘分区。

删除磁盘分区。

要重新创建磁盘分区,请按“n”,Enter然后通过点击“Enter”来确认。当提示分区号时,输入您之前删除的一个,即3。有关“第一扇”和“最后一个扇区”的以下提示First sectorLast sector,Enter只需按“Enter”即可接受默认值。当被问及是否要删除当前分区的签名时,n回答“n”。

系统会通知您已成功创建新分区。它现在拥有所需的30 GB的尺寸,其中包括通过30 GB添加的额外10 GB。qemu-img resize命令。

重新创建磁盘的分区布局。

重新创建磁盘的分区布局。

最后,wEnter键入“w”并用“Enter”确认以保存您的更改并退出fdisk程序。

保存对磁盘上分区表所做的更改。

保存对磁盘上分区表所做的更改。

这完成了我们任务的第一部分,其中包括更新分区表以包含额外空间。然而,我们的工作还没有结束。还有一步要完成,具体涉及所使用的文件系统类型,如前所述。

这是最后的触摸,取决于所使用的文件系统。

ext4

指示操作系统采用更改的分区布局,resize2fs命令,后面跟着相关分区的完整路径,必须使用。它是一个专门设计的工具,可与 ext2、ext3 或 ext4 文件系统配合使用。

sudo resize2fs /dev/vda3

调整 ext4 磁盘分区大小。

调整 ext4 磁盘分区大小。

重新启动虚拟机。然后,检查可用的磁盘空间。

df -h

你会很高兴找到这个:

成功的KVM虚拟机磁盘调整大小。

成功的KVM虚拟机磁盘调整大小。

已经变成这个:

成功的KVM虚拟机磁盘调整大小。

成功的KVM虚拟机磁盘调整大小。

任务完成!您已经成功地将KVM虚拟机的磁盘大小扩展了10 GB,因此您完全有理由拍拍自己的背,以便完成出色的工作。

XFS

对于在 XFS 文件系统上投注的 Linux 发行版,例如 Red Hat Enterprise Linux、AlmaLinux、Rocky Linux 等,要利用额外的磁盘空间,您应该执行以下命令:

sudo xfs_growfs -d <partition_mount_point>代码:HTML,XML(xml)

但是,除了执行上述命令之外,还需要执行上述命令,因为这些发行版在幕后使用逻辑卷管理(LVM)。因此,有必要首先调整LVM卷的大小。这里是如何做到这一点。

最重要的是,确保你已经完成了fdisk部分并将所需的磁盘空间添加到磁盘分区表中,然后继续执行下一个 LVM 操作。

以下是在 LVM 操作之前的 KVM 虚拟机。

KVM虚拟机耗尽了磁盘空间。

KVM虚拟机耗尽了磁盘空间。

查找 LVM 物理卷的名称。

sudo pvdisplay

查找 LVM 物理卷的名称。

查找 LVM 物理卷的名称。

一旦你知道它的名字,在我们的例子中是“/dev/vda2”,调整它的大小。

sudo pvresize /dev/vda2

更改 LVM 物理卷的大小。

更改 LVM 物理体积的大小。

如果我们再次检查,我们将看到我们的LVM卷现在包括由以下人员添加的10 GB:qemu-img resize命令。

检查 LVM 物理体积的大小。

检查 LVM 物理体积的大小。

确定您要调整的 LVM 卷的路径。在我们的例子中,它是根分区,/dev/rl_rocky/root安装在“/dev/rl_rocky/root”上。我们将在下面的命令中将此名称用作参数。

找到逻辑卷路径。

找到逻辑卷路径。

将未使用的空间添加到逻辑卷,该卷现已从17 GB扩展到27 GB。

sudo lvextend -l +100%FREE /dev/rl_rocky/root

扩展逻辑体积大小。

扩展逻辑体积大小。

调整根(“/”)文件系统的大小:

sudo xfs_growfs -d /

扩展 XFS 文件系统大小。

扩展 XFS 文件系统大小。

重新启动 KVM 虚拟机。检查后,您会注意到磁盘空间已成功采用额外的10 GB。

在 KVM 来宾机操作系统上成功调整 XFS 文件系统的大小。

在 KVM 来宾机操作系统上成功调整 XFS 文件系统的大小。

Btrfs 空军

Btrfs是Linux中最受欢迎的“三大”文件系统之一,像Fedora和openSUSE这样的发行版都在它上下注。

我们假设您已经完成了qemu-img resizefdisk步骤。以下是我们Fedora系统在干预之前的状态。

检查磁盘使用大小。

检查磁盘使用大小。

从上图可以看出,操作系统目前占用20 GB的磁盘空间,而实际的KVM磁盘容量为30 GB。要利用可用的10 GB,我们可以使用以下命令毫不费力地扩展Btrfs文件系统,指定挂载路径作为最后一个参数,在我们的例子中,它是根(“/”)文件系统。

sudo btrfs filesystem resize max /

调整 Btrfs 文件系统的大小。

调整 Btrfs 文件系统的大小。

重新启动系统,检查后,您会发现10 GB已成功添加到文件系统中,操作系统现在使用新添加的空间。

在 KVM 客户机操作系统上成功调整 Btrfs 文件系统的大小。

在 KVM 客户机操作系统上成功调整 Btrfs 文件系统的大小。

结论

调整 KVM 虚拟机的虚拟磁盘大小是一个简单的过程,可以显著增强虚拟环境的灵活性和可扩展性。按照上述步骤,您可以确保您的虚拟机具有增长和适应要求的空间。

无论您是需要额外的空间来安装额外的软件,存储更多数据,还是想给虚拟环境一些喘息空间,我们制定的流程都可确保您实现目标,而不必担心数据丢失或不必要的麻烦。因此,庆祝您的成功,享受您扩展的虚拟磁盘空间带来的新可能性。

最后,但绝对不是最不重要的,感谢您信任我们的指导 - 它确实意味着世界!我们很想听听你的反馈或想法,所以请不要犹豫,在下面的评论框中与我们分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值