LVM在哪里存储其配置?


17

我试图了解LVM如何/在何处存储其配置数据。

  • 是否pvcreate /dev/sdb将任何元数据写入/dev/sdb?如果是这样写的是什么?
  • vgcreate data /dev/sdb /dev/sdc卷组的配置存储在哪里?
  • LVM在逻辑盘区和物理盘区之间的映射存储在哪里?
  • LVM配置中是否有任何特定于计算机的配置?
  • 假设我有一个配置有2个磁盘的计算机到一个逻辑卷中,是否可以将这些磁盘从该计算机中取出并放入另一台计算机中,并希望该逻辑卷可以在新计算机上工作?

Answers:


10

pvcreate / dev / sdb是否将任何元数据写入/ dev / sdb?如果是这样写的是什么?

如果将-vv标志传递给pvcreate命令,它将使命令更加冗长,并且您将看到pvcreate在磁盘上创建了元数据区域。

 Writing physical volume data to disk "/dev/sdc1"
        lvmcache: /dev/sdc1: now in VG #orphans_lvm2 (#orphans_lvm2) with 0 mdas
        Creating metadata area on /dev/sdc1 at sector 8 size 2040 sectors
        Opened /dev/sdc1 RW O_DIRECT
        /dev/sdc1: block size is 1024 bytes
        /dev/sdc1: physical block size is 512 bytes
        /dev/sdc1: Preparing PV label header xxx.xxxxx.xxxxxxxxxxxxxxx

      /dev/sdc1: Writing label to sector 1 with stored offset 32.

什么写入元数据区域?

我不知道可用于查看元数据的命令,但是该命令vgcfgbackup可用于备份元数据,并且可以打开由此创建的备份文件以查看元数据

vgcfgbackup -f /path/of/your/choice/file <your_vg_name>

/path/of/your/choice/file由上述命令创建将包含PV,VG和LVM元数据。其中一部分如下所示:

physical_volumes {

                pv0 {
                        id = "abCDe-TuvwX-DEfgh-daEb-Xys-6Efcgh-LkmNo"
                        device = "/dev/sdc1"    # Hint only

                        status = ["ALLOCATABLE"]
                        flags = []
                        dev_size = 10477194     # 4.99592 Gigabytes
                        pe_start = 2048
                        pe_count = 1278 # 4.99219 Gigabytes
                }
        }

我建议您看一下目录的内容/etc/lvm和命令的输出lvm dumpconfig

假设我有一个配置有2个磁盘的计算机到一个逻辑卷中,是否可以将这些磁盘从该计算机中取出并放入另一台计算机中,并希望该逻辑卷可以在新计算机上工作?

是的你可以。

您可以将卷组迁移到另一台主机。尽管它不是完全即插即用的,但是执行此操作的过程非常简单。在线提供了数十种如何进行此操作的教程。

这个serverfault线程讨论了有关使用dd命令将LVM分区移动到另一个主机的信息。


14

是否pvcreate /dev/sdb将任何元数据写入/dev/sdb?如果是这样写的是什么?

是的,但是将块设备标记为LVM PV仅仅是一些标题和标识数据。创建卷组时会出现“实际”元数据。

vgcreate data /dev/sdb /dev/sdc卷组的配置存储在哪里?

在属于卷组的每个物理卷上。默认情况下,在卷组中每个物理卷中的每个元数据区域中维护元数据的相同副本。LVM卷组元数据很小,并以ASCII形式存储。

LVM在逻辑盘区和物理盘区之间的映射存储在哪里?

这是上述卷组元数据的一部分。

LVM配置中是否有任何特定于计算机的配置?

不可以。通过使用在创建PV时分配的唯一标识符,可以找到并组装属于VG的PV。

假设我有一个配置有2个磁盘的计算机到一个逻辑卷中,是否可以将这些磁盘从该计算机中取出并放入另一台计算机中,并希望该逻辑卷可以在新计算机上工作?

是。如果组成VG的所有PV均存在,则该VG上的LV将起作用。


3
  • 是否pvcreate /dev/sdb将任何元数据写入/dev/sdb?如果是这样写的是什么?
  • vgcreate data /dev/sdb /dev/sdc卷组的配置存储在哪里?

pvcreate为PV创建一个“标签”和一个“标题”,还为卷上的元数据分配空间(由该--[pv]metadata选项指定)。标头是二进制数据结构,包括指向该PV上元数据区域的指针。

vgcreate命令将卷组当前状态的文本描述存储到先前在关联的PV上分配的元数据区域中(由--[vg]metadatacopies选项等控制)。这些是vgcfgbackup命令支持的描述,并且在大多数情况下是人们想要检查的元数据。

有关更模糊的PV标签/标题信息:可以在LVM Internalshttp://mo.morsi.org/blog/node/392)中找到一个概述说明(其中包括指向可以解析标签的Ruby脚本的链接) / header,。lvm-parser.rb

pvdissecthttp://www.syslinux.org/wiki/index.php?title=Development/LVM_support的底部可以找到类似的Python模块。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.