新的 LVM VDO 逻辑卷在启动时处于非活动状态,即使使用“--activate y”参数

新的 LVM VDO 逻辑卷在启动时处于非活动状态,即使使用“--activate y”参数

我正在尝试让 LVM VDO 在我的 Debian 11.3 上运行(从头开始安装的测试虚拟机)。我分享了我的安装过程这里如果有人想重现该问题。现在我被一个“基本”问题困住了:逻辑卷在启动时处于非活动状态。编译并安装 VDO 后,我运行以下脚本:

# Create zeroed VDO volume and format to ext4
DESTINATION_LVM_VG="/dev/Pepper-Potts-vg"
VDOLV_NAME="ZEROED-VDOLV-1"
VDOLV_PATH="$DESTINATION_LVM_VG/$VDOLV_NAME"

lvcreate -y --vdopool "ZEROED-VDOPOOL-1" --name $VDOLV_NAME --activate y --compression n --deduplication n --size 12G --virtualsize 24G --config "allocation/vdo_slab_size_mb=8192" $DESTINATION_LVM_VG && \
mkfs.ext4 -E nodiscard $VDOLV_PATH

# Reconfigure /etc/fstab to mount zeroed VDO partition to /mnt/ZEROED-VDOLV-1
MOUNT_POINT="/mnt/$VDOLV_NAME"
mkdir $MOUNT_POINT
DM_VDOLV_PATH=($(lvs --noheadings --options "lv_dm_path" $VDOLV_PATH))
# We use "@" because $DIRECTORY_TO_MOVE contains "/"
echo "$DM_VDOLV_PATH    $MOUNT_POINT    ext4    defaults,x-systemd.device-timeout=0,x-systemd.requires=vdo.service  0   0" >> /etc/fstab
mount -a

并且它运行良好,但重新启动虚拟机失败,因为 /dev/mapper/Pepper-Potts-vg-ZEROED--VDOPOOL--1 ( $DM_VDOLV_PATH) 不再存在(我已经检查过了)。所以我调查了一下,lvscan发现逻辑卷不存在于 /dev/mapper/ 中,因为它处于非活动状态。这样做vgchange -ay解决了启动问题,但下次重新启动时它又卡住了。

我尝试使用“经典”/非 VDO 逻辑卷运行相同的脚本,但没有遇到问题,因为逻辑卷保持活动状态。

编辑1:lvs输出如下:

LV               VG              Attr       LSize   Pool             Origin Data%  Meta%  Move Log Cpy%Sync Convert
ZEROED-VDOLV-1   Pepper-Potts-vg vwi-XXv-X-  24,00g ZEROED-VDOPOOL-1
ZEROED-VDOPOOL-1 Pepper-Potts-vg dwi-XX--X-  12,00g
home             Pepper-Potts-vg -wi-ao----  <9,08g
root             Pepper-Potts-vg -wi-ao----  <3,18g
swap_1           Pepper-Potts-vg -wi-ao---- 976,00m
tmp              Pepper-Potts-vg -wi-ao---- 316,00m
var              Pepper-Potts-vg -wi-ao----   1,37g

编辑2:我运行systemctl status /dev/mapper/Pepper--Potts--vg-ZEROED--VDO后得到以下结果:

● dev-mapper-Pepper\x2d\x2dPotts\x2d\x2dvg\x2dZEROED\x2d\x2dVDO.device - /dev/mapper/Pepper--Potts--vg-ZEROED--VDO
     Loaded: loaded
     Active: inactive (dead)

其他 LVloaded包括active (plugged)

● dev-mapper-Pepper\x2d\x2dPotts\x2d\x2dvg\x2dhome.device - /dev/mapper/Pepper--Potts--vg-home
   Follow: unit currently follows state of sys-devices-virtual-block-dm\x2d4.device
     Loaded: loaded
     Active: active (plugged) since Sat 2022-05-14 19:00:24 CEST; 5min ago
     Device: /sys/devices/virtual/block/dm-4

有什么想法吗?也许我应该创建一个虚拟设备,就像其他默认逻辑卷一样?

编辑 3:不,虚拟设备(/dev/dm-X)是在执行 lvcreate 时由 LVM 创建的

建议:

答案1

解决了这里

  1. 我的/etc/fstab台词直接取自Red Hat 文档但无法工作,因为vdo.service不再存在;VDO 模块现在与 LVM 集成。所以现在我运行:
echo "$DM_VDOLV_PATH    $MOUNT_POINT    ext4    defaults,x-systemd.device-timeout=0 0   0" >> /etc/fstab
  1. 我发现这lvm2-activation-generator不是一个要安装的软件包,apt install ...但它与 apt 一起打包,可以通过event_activation = 0在 LVM 配置文件 ( /etc/lvm/lvm.conf) 中添加配置行来使用。此配置文件在 LVM 的初始化阶段加载 (来源)。一旦“启用”,此生成器将为每个/etc/fstab条目(在/run/systemd/generator/目录中)生成 systemd 挂载单元,并且系统将正确启动。

相关内容