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의 두 레이어 사이에 luk를 활용해야 합니다.
LVM 디자인 선택의 근거는 무엇입니까? 이는 "모든 것은 파일이다"라는 Linux의 기본 원칙을 준수하는 것으로 보입니다.
답변1
"중첩" LVM은 기본적으로 비활성화되어 있습니다. VG에서 VG를 생성하려면 먼저 다음을 수행해야 합니다 scan_lvs
.LVM 구성. 이러한 구성은 일반적으로 가상화(게스트의 백업 블록 장치로 사용되는 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