如何以人类可读的格式找出 LVM PV 上的可用空间?

Jos*_*osh 10 lvm

我正在寻找一种无需使用计算器即可获得 LVM 物理卷上的可用空间的方法。

我知道该pvdisplay命令将显示 PE 大小以及可用 PE 的大小,因此通过将 PE 大小乘以可用 PE,我知道可用空间(以 KB 为单位)。但我想要一个命令,它告诉我以兆字节、千兆字节等为单位的可用空间。

的输出pvdisplay是:

[root@df02 mysql]# pvdisplay
  /dev/cdrom: open failed: No medium found
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               MMB
  PV Size               29.71 GB / not usable 19.77 MB
  Allocatable           yes 
  PE Size (KByte)       32768
  Total PE              950
  Free PE               221
  Allocated PE          729
  PV UUID               QfZGfn-a3VV-IRkw-bV9g-6iqm-zXjN-y5e6gr
Run Code Online (Sandbox Code Playgroud)

因此,本例中的可用空间为 32768 KByte * 221 Free PE = 7241728 KiB,即 6.90625 GiB。但是,如果没有计算器,就需要做很多数学运算;-)

是否有命令可以为我提供 LVM 物理卷上的可用空间(以兆字节/千兆字节为单位)?

slm*_*slm 15

该工具pvs以您喜欢的任何单位显示输出。

$ pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda2  MMB  lvm2 a--  29.69G 6.91G
Run Code Online (Sandbox Code Playgroud)

我在手册页中注意到了这一点:

--units hHbBsSkKmMgGtTpPeE
       All  sizes  are  output in these units: (h)uman-readable, (b)ytes, 
       (s)ectors, (k)ilobytes, (m)egabytes, (g)igabytes,(t)erabytes, 
       (p)etabytes, (e)xabytes.  Capitalise to use multiples of 1000 (S.I.) 
       instead of 1024.  Can also specify custom units e.g. --units 3M
Run Code Online (Sandbox Code Playgroud)

例子

您可以像这样覆盖单位:

$ pvs --units m
  PV         VG             Fmt  Attr PSize     PFree
  /dev/sda2  vg_switchboard lvm2 a--  37664.00m    0m
Run Code Online (Sandbox Code Playgroud)