>>> import lvm2py
>>> d = dict()
>>> lvm = lvm2py.LVM()
>>> for v in lvm.vgscan():
... d.update({v.name:v})
...
>>> d
{'stack-volumes-lvmdriver-1': <lvm2py.vg.VolumeGroup object at 0x7f3e233e7550>, 'centos': <lvm2py.vg.VolumeGroup object at 0x7f3e233e75d0>}
>>> d['centos'].lvscan()
[<lvm2py.lv.LogicalVolume object at 0x7f3e233e7490>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7590>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7650>]
>>> d['centos'].lvscan()
[<lvm2py.lv.LogicalVolume object at 0x7f3e233e74d0>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e76d0>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7710>]
>>> d['centos'].lvscan()
[<lvm2py.lv.LogicalVolume object at 0x7f3e233e7490>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7690>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7610>]
>>> for k in d.keys():
... d[k].lvscan()
...
[]
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 429, in lvscan
self.open()
File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 80, in open
raise HandleError("Failed to initialize VG Handle.")
lvm2py.exception.HandleError: Failed to initialize VG Handle.
>>> d['centos'].lvscan()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 429, in lvscan
self.open()
File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 80, in open
raise HandleError("Failed to initialize VG Handle.")
lvm2py.exception.HandleError: Failed to initialize VG Handle.
本来想获取 Volume Group 和 Logical Volume 的对应关系, 但这里出错了
>>> import lvm2py
>>> VG_MAP_LV = dict()
>>> [
... VG_MAP_LV.update({
... vg.name: [
... "%s-%s" % (vg.name, lv.name)
... for lv in vg.lvscan()
... ]
... })
... for vg in lvm2py.LVM().vgscan()
... ]
Traceback (most recent call last):
File "<stdin>", line 8, in <module>
File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 429, in lvscan
self.open()
File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 80, in open
raise HandleError("Failed to initialize VG Handle.")
lvm2py.exception.HandleError: Failed to initialize VG Handle.
[root@localhost tmp]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 vfat 9C98-C01B /boot/efi
├─sda2 xfs 8d90e8a5-07d6-42e0-8f3b-e93704410d2d /boot
├─sda3 LVM2_member szoVYV-JLyI-TuI2-D6ub-4Dhy-h0mw-VdedPU
│ ├─centos-root xfs fe58a080-5218-489b-aca1-ab60ee7e2221 /
│ ├─centos-swap swap d2fbac1f-5801-40d9-a170-09f7a498d64d [SWAP]
│ └─centos-home xfs e5ab0cfe-91e1-4de1-ab5c-bc31dd6ab93e /home
└─sda4 LVM2_member QVWGxl-0Jz6-Y7tG-Vgjm-nKdf-0Rsl-rtROEt
sdb
sdc
[root@localhost tmp]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
[root@localhost tmp]# cat /proc/version
Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018
本来想获取 Volume Group 和 Logical Volume 的对应关系, 但这里出错了