LVMが再帰生成機能を提供しないのはなぜですか?

LVMが再帰生成機能を提供しないのはなぜですか?

LVMの上に再帰的にLVMを作成しようとしましたが、この機能を提供していないようです。私がする方法は次のとおりです。

まず、物理デバイスに物理ボリュームとボリュームグループを作成しました。

$ vgcreate vgtest /dev/sda
Physical volume "/dev/sda" successfully created.
Volume group "vgtest" successfully created

vgtest次に、生成された論理ボリュームの上に論理ボリュームを生成しました。

$ lvcreate -n lvtest -L 1G vgtest
Logical volume "lvtest" created.

その後、論理ボリュームにLVMを作成しようとしましたが、lvtest次のように失敗しました。

$ vgcreate vgtest_recursive /dev/vgtest/lvtest
Cannot use /dev/vgtest/lvtest: device is an LV

LVMを使用してデバイス上でのみボリュームを作成できますが、これはluksの機能と一致しません。 luksを使用すると、他のデバイスでもすべてのファイルにファイルを生成できます。別のLVM内にLVMを繰り返し作成したい場合は、LVMの2つの層の間にlukを利用する必要があります。

LVMデザインの選択の根拠は何ですか?これは、「すべてはファイルです」というLinuxの基本原則に準拠しているようです。

答え1

「ネスト」LVMはデフォルトで無効になっています。 VGからVGを作成するには、まず次のことを行う必要がありますscan_lvsLVMの構成。これらの構成は通常、仮想化(ゲストのバックアップブロックデバイスとして使用されるLV)と組み合わせて使用​​されるため、通常、ホストとゲストLVMツール間の競合を回避するためにこれらのVGを使用しません。このscan_lvsプロパティの説明では、/etc/lvm/lvm.confこれについてさらに詳しく説明します。

    # Configuration option devices/scan_lvs.
    # Scan LVM LVs for layered PVs, allowing LVs to be used as PVs.
    # When 1, LVM will detect PVs layered on LVs, and caution must be
    # taken to avoid a host accessing a layered VG that may not belong
    # to it, e.g. from a guest image. This generally requires excluding
    # the LVs with device filters. Also, when this setting is enabled,
    # every LVM command will scan every active LV on the system (unless
    # filtered), which can cause performance problems on systems with
    # many active LVs. When this setting is 0, LVM will not detect or
    # use PVs that exist on LVs, and will not allow a PV to be created on
    # an LV. The LVs are ignored using a built in device filter that
    # identifies and excludes LVs.
    # This configuration option has an automatic default value.
    # scan_lvs = 0

答え2

LVMの設計を間違って理解したようです。ボリュームグループは物理ボリュームで構成されます。すべてのブロックデバイスで作成できます。したがって、それを含むVGをpvcreate最初に作成する必要があります。lvtest

関連情報