将内存、vCPU、硬盘添加到 Linux KVM 虚拟机
在之前的 Linux KVM 系列文章中,解释了如何安装 Linux KVM并创建一个 Guest VM。
但是,一旦您创建了访客虚拟机,您就需要知道如何在虚拟机上执行一些日常维护活动。
本教程将解释如何执行以下 Linux KVM VM 活动:
- 向虚拟机添加内存
- 将 vCPU 添加到 VM
- 将磁盘添加到 VM
- 保存虚拟机配置
- 删除虚拟机
1.添加内存到虚拟机
要向 VM 添加额外内存,您应该执行以下操作:
- 关闭你的虚拟机
- 编辑 VM 文件并增加分配给此 VM 的最大内存值
- 重启虚拟机
- 使用 virsh setmem 将内存设置为为此 VM 分配的最大内存。
在这个例子中,让我们将 myRHELVM1 的 VM 的内存从 2GB 增加到 4GB。
首先,使用 virsh shutdown 关闭虚拟机,如下所示:
# virsh shutdown myRHELVM1
Domain myRHELVM1 is being shutdown
接下来,使用 virsh edit 编辑 VM:
# virsh edit myRHELVM1
查找下面的行并将内存的值更改为以下内容。在我的示例中,之前它是 2097152:
<memory unit='KiB'>4194304</memory>
请注意,上述值以 KB 为单位。进行更改后,保存并退出:
# virsh edit myRHELVM1
Domain myRHELVM1 XML configuration edited.
使用更新的配置文件重新启动 VM。现在您将看到最大内存从 2G 增加到 4G。
您现在可以将 VM 内存动态修改为最大 4G 限制。
使用 virsh create 创建域 XML 文件
# virsh create /etc/libvirt/qemu/myRHELVM1.xml
Domain myRHELVM1 created from /etc/libvirt/qemu/myRHELVM1.xml
查看此域的可用内存。如下所示,即使最大可用内存为 4GB,该域也只有 2GB(已用内存)。
# virsh dominfo myRHELVM1 | grep memory
Max memory: 4194304 KiB
Used memory: 2097152 KiB
使用 virsh setmem 将此域的内存设置为 4GB,如下所示:
# virsh setmem myRHELVM1 4194304
现在,以下内容表明我们已为该域分配了 4GB(已用内存)。
# virsh dominfo myRHELVM1 | grep memory
Max memory: 4194304 KiB
Used memory: 4194304 KiB
2. 将 VCPU 添加到 VM
要增加分配给 VM 的虚拟 CPU,请执行 virsh 编辑并更改 vcpu 参数,如下所述。
在这个例子中,让我们将 myRHELVM1 的 VM 的内存从 2GB 增加到 4GB。
首先,使用 virsh shutdown 关闭虚拟机,如下所示:
# virsh shutdown myRHELVM1
Domain myRHELVM1 is being shutdown
接下来,使用 virsh edit 编辑 VM:
# virsh edit myRHELVM1
查找以下行并将 vcpu 的值更改为以下内容。在我的示例中,之前它是 2。
<vcpu placement='static'>4</vcpu>
使用 virsh create 创建域 XML 文件
# virsh create /etc/libvirt/qemu/myRHELVM1.xml
Domain myRHELVM1 created from /etc/libvirt/qemu/myRHELVM1.xml
查看分配给该域的虚拟 CPU,如下所示。这表明我们已将 vCPU 从 2 增加到 4。
# virsh dominfo myRHELVM1 | grep -i cpu
CPU(s): 4
CPU time: 21.0s
3.添加磁盘到虚拟机
在此示例中,我们在此 VM 上只有两个虚拟磁盘(vda1 和 vda2)。
# fdisk -l | grep vd
Disk /dev/vda: 10.7 GB, 10737418240 bytes
/dev/vda1 * 3 1018 512000 83 Linux
/dev/vda2 1018 20806 9972736 8e Linux LVM
创建新存储设备并将其附加到 Linux KVM 来宾 VM 涉及两个步骤:
- 一、创建虚拟磁盘镜像
- 将虚拟磁盘映像附加到 VM
让我们再创建一个虚拟磁盘并将其附加到我们的 VM。为此,我们首先需要使用 qemu-img create 命令创建一个磁盘映像文件,如下所示。
在以下示例中,我们将创建一个大小为 7GB 的虚拟磁盘映像。磁盘映像通常位于 /var/lib/libvirt/images/ 目录下。
# cd /var/lib/libvirt/images/
# qemu-img create -f raw myRHELVM1-disk2.img 7G
Formatting 'myRHELVM1-disk2.img', fmt=raw size=7516192768
要附加新创建的磁盘映像,请使用 virsh attach-disk 命令,如下所示:
# virsh attach-disk myRHELVM1 --source /var/lib/libvirt/images/myRHELVM1-disk2.img --target vdb --persistent
Disk attached successfully
上面的 virsh attach-disk 命令有以下参数:
- myRHELVM1 虚拟机的名称
- –source 源磁盘映像的完整路径。这是我们使用上面的 qemu-image 命令创建的。即:myRHELVM1-disk2.img
- --target 这是设备挂载点。在此示例中,我们要将给定的磁盘映像附加为 /dev/vdb。请注意,我们实际上并不需要指定 /dev。只要指定 vdb 就足够了。
- –persistent 表示附加到 VM 的磁盘将是持久的。
如下所示,新的 /dev/vdb 现在可以在 VM 上使用。
# fdisk -l | grep vd
Disk /dev/vda: 10.7 GB, 10737418240 bytes
/dev/vda1 * 3 1018 512000 83 Linux
/dev/vda2 1018 20806 9972736 8e Linux LVM
Disk /dev/vdb: 7516 MB, 7516192768 bytes
现在,您可以对 /dev/vdb 设备进行分区,并创建多个分区 /dev/vdb1、/dev/vdb2 等,并将其挂载到 VM。如前所述,使用fdisk 创建分区。
与从来宾 VM 分离磁盘类似,您可以使用以下命令。但请注意指定正确的 vd*,否则您最终可能会删除错误的设备。
# virsh detach-disk myRHELVM1 vdb
Disk detached successfully
4. 保存虚拟机配置
如果您对 VM 进行了大量更改,建议您保存配置。
使用 virsh dumpxml 文件进行备份并保存 VM 的配置信息,如下所示。
# virsh dumpxml myRHELVM1 > myrhelvm1.xml
# ls myrhelvm1.xml
myrhelvm1.xml
获得 XML 格式的配置文件后,您始终可以使用 virsh create 命令从此 XML 文件重新创建来宾 VM,如下所示:
virsh create myrhelvm1.xml
5.删除KVM虚拟机
如果您出于测试目的创建了多个 VM,并且想删除它们,则应执行以下三个步骤:
- 关闭虚拟机
- 销毁虚拟机(并取消定义)
- 删除磁盘映像文件
在此示例中,让我们删除 myRHELVM2 虚拟机。首先,关闭这个虚拟机:
# virsh shutdown myRHELVM2
Domain myRHELVM2 is being shutdown
接下来,销毁此 VM,如下所示:
# virsh destroy myRHELVM2
Domain myRHELVM2 destroyed
除了销毁它之外,您还应该取消定义 VM,如下所示:
# virsh undefine myRHELVM2
Domain myRHELVM2 has been undefined
最后,从 /var/lib/libvirt/images 目录中删除您为此 VM 创建的所有磁盘映像文件:
现在您可以删除 /var/lib/libvirt/images 下的磁盘 img 文件
rm /var/lib/libvirt/images/myRHELVM2-disk1.img
rm /var/lib/libvirt/images/myRHELVM2-disk2.img
- 点赞
- 收藏
- 关注作者
评论(0)