前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >libvirt 管理工具扩展虚拟机磁盘分区

libvirt 管理工具扩展虚拟机磁盘分区

作者头像
qsjs
发布2022-11-16 19:03:10
7390
发布2022-11-16 19:03:10
举报

使用libvirt 扩展虚拟机磁盘的方法: libvirt 工具支持KVM/Qemu,xen, lxc,openvz, esx, hyperv 等虚拟化,是一个使用及其广泛的虚拟化管理工具.

vrish , libvirt 的客户端管理工具,常用到的命令有: virsh list --all 列出所有的虚拟机,注意当前的user, 可能root 并不能列出已经存在的虚拟机,因为权限的问题; virsh shutdown VM_NAME 通过call ACPI接口关闭虚拟机,如果VM没有开启ACPI 接口,那么不会成功; virsh destroy VM_NAME 强行通过掉电的方式进行关机,不推荐,除非系统出现问题; virsh start VM_NAME 开启虚拟机 virsh suspend VM_NAME 休眠虚拟机 virsh resume VM_NAME 恢复虚拟机

virsh dominfo VM_NAME 列出虚拟机的基本信息 virsh dumpxml VM_NAME 列出虚拟机的配置文件,以xml格式的形式,在该配置文件中,可以找到cpu, mem, disk的相关配置,所以比较有用; virsh edit VM_NAME 编辑虚拟机的配置文件,一般是刚创建的时候使用; virsh setmem VM_NAME 512000 #给不活动虚拟机设置内存大小为512000 virsh setvcpus VM_NAME 4 #给不活动虚拟机设置cpu个数为4 值得注意的是,virsh 命令本身支持交互模式,这一点非常好用;

磁盘扩容的步骤(linux 环境):

A. 备份原来的磁盘文件, 参考命令如下:

代码语言:javascript
复制
$ sudo cp /var/lib/libvirt/images/vm-gitlab6/ubuntu-kvm/vm-gitlab6-img1.qcow2 /var/lib/libvirt/images/vm-gitlab6/ubuntu-kvm/vm-gitlab6-img1-back.qcow2 

B. 查看磁盘的使用情况, 参考命令如下:

代码语言:javascript
复制
$ sudo virt-df -h vm-gitlab6-img1.qcow2 
W: kvm binary is deprecated, please use qemu-system-x86_64 instead 
Filesystem                                Size       Used  Available  Use% 
vm-gitlab6-img1.qcow2:/dev/sda1            18G       1.1G        16G    6% 

C. 创建新的虚拟磁盘,指定 磁盘大小,这个磁盘将用来替换原来的磁盘(这个过程并不会检查系统中的空间是否足够分配指定的大小,所以确保系统有足够空间是我们需要关注的,这个过程基本不会失败,速度非常快,以下指定创建一个40GB的新磁盘):

代码语言:javascript
复制
$ sudo qemu-img create -f qcow2 vm-gitlab6-img1-big.qcow2 40G 

D. 通过virt-resize 命令对需要扩容的分区进行扩容,其过程基本是这样的: 从原来的磁盘获取分区信息,然后把用户指定的分区进行逻辑上的扩容,其余分区保持不变;最后把这个新的分区表写入到新的磁盘;从而在新磁盘上实现对分区的扩容操作;以下是扩展原来磁盘的/dev/sda1分区,并保留其他分区不变的操作过程,以及相应的提示;

代码语言:javascript
复制
$ sudo virt-resize --expand /dev/sda1 vm-gitlab6-img1.qcow2 vm-gitlab6-img1-big.qcow2 
Examining vm-gitlab6-img1.qcow2 ... 
W: kvm binary is deprecated, please use qemu-system-x86_64 instead 
********** 
Summary of changes: 
/dev/sda1: This partition will be resized from 18.6G to 32.5G.  The 
    filesystem ext4 on /dev/sda1 will be expanded using the 'resize2fs' 
    method. 

/dev/sda2: This partition will be left alone. 

********** 
Setting up initial partition table on vm-gitlab6-img1-1.qcow2 ... 
Copying /dev/sda1 ... 
 100% ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 00:00 
Copying /dev/sda2 ... 
 100% ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 00:00 
W: kvm binary is deprecated, please use qemu-system-x86_64 instead 
Expanding /dev/sda1 using the 'resize2fs' method ... 

Resize operation completed with no errors.  Before deleting the old 
disk, carefully check that the resized disk boots and works correctly. 

E. 以上完成了新磁盘的分区分配,然后用 virsh-df 命令查看新磁盘分区情况:

代码语言:javascript
复制
$ sudo virt-df -h vm-gitlab6-img1-big.qcow2 

W: kvm binary is deprecated, please use qemu-system-x86_64 instead 
Filesystem                                Size       Used  Available  Use% 
vm-gitlab6-img1-big.qcow2:/dev/sda1          32G       1.1G        29G    4% 

F. 最后是重命名这个新的磁盘和老的磁盘名称,这样就无需从系统层面做变更, 然后进行开机验证; 如果一切都OK, 那么就可以直接删除原来的老磁盘;

代码语言:javascript
复制
$ sudo rm vm-gitlab6-img1.qcow2 $ sudo mv vm-gitlab6-img1-big.qcow2 vm-gitlab6-img1.qcow2 $ sudo chmod 755 vm-gitlab6-img1.qcow2 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 磁盘扩容的步骤(linux 环境):
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档