将LVM VolumeGroup / Volume标识符转换为设备名称,反之亦然

问题(S):

  • 将LVM VolumeGroup / Volume标识符(例如system/var )转换为设备名称(例如/dev/mapper/system-var/dev/system/var ),反之亦然?
  • 使用/dev/VolumeGroup/Volume还是有安全/dev/VolumeGroup/Volume (如在/dev/mapper/VolumeGroup-Volume表单中,特殊处理破折号)?
  • 使用/dev/mapper/VolumeGroup-Volume/dev/VolumeGroup/Volume什么本质区别? Pro / Con为每个表单?

背景:

我想自动创buildLVM快照以备用途。 configuration应该只包含文件系统中的源path(对于这个例子/var )。 parsing/etc/mtab产生装载在该path上的设备:

 # grep /var /etc/mtab /dev/mapper/system-var /var ext4 rw 0 0 

现在我可以使用lvs来查找VolumeGroup和Volume:

 # lvs --noheadings /dev/mapper/system-var var system -wi-ao 18,62g 

创build快照:

 # lvcreate -s -n var-snapshot -pr -l10%ORIGIN system/var 

现在我需要设备名称来装载快照。

问题的答案:

  1. /dev/
  2. 它是安全的
  3. /dev/mapper/$vg-$lv由dm udev规则处理, /dev/$vg/$lv/由lvm udev规则处理。

我以前的答案,如何找出答案:

我在看Ubuntu 12.04 LTS系统。

udev处理设备节点的创build。

/dev/mapper//dev/$vg/只包含符号链接。

grep lvm /lib/udev/rules.d/*与几个文件匹配。

60-persistent-storage-lvm.rules包含这一行:

 ENV{DM_VG_NAME}=="?*", ENV{DM_LV_NAME}=="?*", ENV{DM_LV_LAYER}=="", SYMLINK+="$env{DM_VG_NAME}/$env{DM_LV_NAME}" 

这似乎表明/dev/$vg/$lv链接将被创build

大多数文件还指向/usr/share/doc/lvm2/README.udev ,其中指出udev和lvm2将在/dev/$vg/为LV创build设备。

/dev/mapper/的符号链接似乎是55-dm.rules 。 无需逻辑卷pipe理器即可使用设备映射器,例如使用LUKS进行encryption。