ProxmoxVE(PVE) 减小缩减虚拟机硬盘设置的空间大小


ProxmoxVE(PVE) 减小缩减虚拟机硬盘设置的空间大小

注意!!!操作有风险,一定要先备份!!!

Proxmox VE WEB UI上调整虚拟机磁盘大小只能增加,不能减小。
如果想减小空间设置,需要通过命令行调整
即是调整LV的大小,命令操作如下

以下命令需在节点得Shell中执行

查看虚拟机硬盘大小

先通过 lvs 命令查看虚拟机所设置的空间大小

root@pve:~# lvs
  LV                              VG  Attr       LSize   Pool Origin                  Data%  Meta%  Move Log Cpy%Sync Convert
  data                            pve twi-aotz-- <10.77t                              0.72   0.63                            
  root                            pve -wi-ao----  96.00g                                                                     
  snap_vm-100-disk-0_Init         pve Vri-a-tz-k 100.00g data vm-100-disk-0           4.82                                   
  snap_vm-101-disk-0_Init         pve Vri---tz-k 500.00g data vm-101-disk-0                                                  
  snap_vm-102-disk-0_Docker       pve Vri-a-tz-k 500.00g data vm-102-disk-0           1.99                                   
  snap_vm-102-disk-0_Init         pve Vri-a-tz-k 500.00g data vm-102-disk-0           1.89                                   
  snap_vm-102-disk-0_set_timezone pve Vri---tz-k 500.00g data vm-102-disk-0                                                  
  snap_vm-103-disk-0_Init         pve Vri---tz-k 500.00g data                                                                
  snap_vm-103-disk-0_MariaDB      pve Vri---tz-k 500.00g data vm-103-disk-0                                                  
  snap_vm-105-disk-0_Init         pve Vri---tz-k   1.00t data vm-105-disk-0                                                  
  snap_vm-106-disk-0_Docker       pve Vri---tz-k 100.00g data vm-106-disk-0                                                  
  snap_vm-106-disk-0_Init         pve Vri-a-tz-k 100.00g data vm-106-disk-0           2.28                                   
  snap_vm-107-disk-0_Rancher      pve Vri---tz-k 100.00g data vm-107-disk-0                                                  
  snap_vm-108-disk-0_Init         pve Vri---tz-k  10.00g data vm-108-disk-0                                                  
  snap_vm-108-disk-1_Init         pve Vri---tz-k  52.00m data vm-108-disk-1                                                  
  snap_vm-108-disk-2_Init         pve Vri---tz-k   4.00t data vm-108-disk-2                                                  
  snap_vm-108-disk-3_Init         pve Vri---tz-k   4.00t data vm-108-disk-3                                                  
  snap_vm-108-disk-4_Init         pve Vri---tz-k   4.00t data vm-108-disk-4                                                  
  swap                            pve -wi-ao----   8.00g                                                                     
  vm-100-disk-0                   pve Vwi-a-tz-- 100.00g data                         4.82                                   
  vm-101-disk-0                   pve Vwi-a-tz-- 500.00g data                         1.71                                   
  vm-102-disk-0                   pve Vwi-a-tz-- 500.00g data                         1.99                                   
  vm-103-disk-0                   pve Vwi-aotz-- 500.00g data snap_vm-103-disk-0_Init 2.02                                   
  vm-105-disk-0                   pve Vwi-aotz-- 924.00g data                         0.71                                   
  vm-106-disk-0                   pve Vwi-a-tz-- 100.00g data                         2.69                                   
  vm-106-state-Docker             pve Vwi-a-tz-- <16.49g data                         9.09                                   
  vm-107-disk-0                   pve Vwi-aotz-- 100.00g data                         7.46                                   
  vm-107-state-Rancher            pve Vwi-a-tz-- <16.49g data                         33.82                                  
  vm-108-disk-0                   pve Vwi-aotz--  10.00g data                         16.56                                  
  vm-108-disk-1                   pve Vwi-aotz--  52.00m data                         62.74                                  
  vm-108-disk-2                   pve Vwi-aotz--   4.00t data                         0.15                                   
  vm-108-disk-3                   pve Vwi-aotz--   4.00t data                         0.15                                   
  vm-108-disk-4                   pve Vwi-aotz--   4.00t data                         0.15                                   
  vm-108-state-Init               pve Vwi-a-tz-- <16.49g data                         3.89               

查看硬盘路径

然后执行 lvdisplay 来查看具体路径,我这个的路径是 /dev/pve/vm-105-disk-0

root@pve:~# lvdisplay
 
  --- Logical volume ---
  LV Path                /dev/pve/vm-105-disk-0
  LV Name                vm-105-disk-0
  VG Name                pve
  LV UUID                NC8FS6-aT32-vKvd-Die0-LgDr-FHgS-16UVXd
  LV Write Access        read/write
  LV Creation host, time pve, 2021-09-24 12:03:00 +0800
  LV Pool name           data
  LV Status              available
  # open                 1
  LV Size                924.00 GiB
  Mapped size            0.87%
  Current LE             236544
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:24
   
  --- Logical volume ---
  LV Path                /dev/pve/snap_vm-105-disk-0_Init
  LV Name                snap_vm-105-disk-0_Init
  VG Name                pve
  LV UUID                v5cCKU-Alrq-WnwA-L8dL-jaQp-7D5T-tUz4AA
  LV Write Access        read only
  LV Creation host, time pve, 2021-09-24 12:07:48 +0800
  LV Pool name           data
  LV Thin origin name    vm-105-disk-0
  LV Status              NOT available
  LV Size                1.00 TiB
  Current LE             262144
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto

缩减虚拟硬盘容量

执行下边的命令将空间大小减小100G

root@pve:~#  lvreduce -L -100G /dev/pve/vm-105-disk-0
  WARNING: Reducing active and open logical volume to 824.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce pve/vm-105-disk-0? [y/n]: y
  Size of logical volume pve/vm-105-disk-0 changed from 924.00 GiB (236544 extents) to 824.00 GiB (210944 extents).
  Logical volume pve/vm-105-disk-0 successfully resized.

注意!!! 有网友在后台反馈,在执行lvreduce命令时,需要增加参数--resizefs。下面是网友反馈的内容

lvreduce --resizefs -L 30G /dev/pve/vm-120-disk-0
lvchange --refresh /dev/pve/vm-120-disk-0
# 一定要增加--resizefs参数,也一定要refresh,
# 第一个命令如果不加resizefs会导致数据截断,丢失数据,如果是新机器,没有什么数据,可能不会促发,如何是曾经使用满磁盘,后来删除数据,大概率挂掉
# 第二个命令是map对齐的,不然会导致数据写到莫名奇妙的地方,大概率在新数据写入后那次就不能正常开机了

以上网友的反馈我这边并没有进行实际测试,需自行判断。

关于--resizefs--refresh命令解释(来自AI)

lvreduce --resizefs
命令概述
lvreduce 命令的用途是缩减逻辑卷(Logical Volume)的大小。--resizefs 是 lvreduce 命令的一个参数,它会在缩减逻辑卷大小的同时,对逻辑卷上的文件系统进行同步调整。
作用原理
当你执行 lvreduce --resizefs -L 30G /dev/pve/vm-120-disk-0 时,该命令会把 /dev/pve/vm-120-disk-0 这个逻辑卷的大小缩减至 30GB。与此同时,--resizefs 参数会确保逻辑卷上的文件系统也随之调整大小,从而保证文件系统能适配新的逻辑卷大小。若没有此参数,逻辑卷的大小虽会改变,但文件系统的大小仍保持不变,这可能会引发文件系统损坏或无法正常挂载等问题。
lvchange --refresh
命令概述
lvchange 命令用于改变逻辑卷的属性,而 --refresh 是 lvchange 命令的一个参数,其作用是刷新逻辑卷的状态信息。
作用原理
在执行了 lvreduce 命令缩减逻辑卷大小之后,系统可能未能及时更新逻辑卷的相关状态信息。此时执行 lvchange --refresh /dev/pve/vm-120-disk-0 命令,能够让系统重新读取逻辑卷的元数据,更新内核中关于该逻辑卷的状态信息,保证系统获取到的逻辑卷信息是最新的。这样做有助于避免因系统缓存的旧信息而产生的问题,例如在后续的操作中对逻辑卷大小的误判等。
综上所述,--resizefs 保证了文件系统和逻辑卷大小的一致性,--refresh 则确保了系统能正确识别逻辑卷的最新状态。

注意!!!操作有风险,一定要先备份!!!

声明:初心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - ProxmoxVE(PVE) 减小缩减虚拟机硬盘设置的空间大小


愿你勿忘初心,并从一而终