LVM 配置在 nixos 上不持久

LVM 配置在 nixos 上不持久

我一直在用头撞墙试图让我的 nixos 缓存的 raid 工作,但无济于事。这是一个带有 optane 缓存的 LVM raid,lsblk首次创建后输出 如下:在此输入图像描述

/dev/nvme0n1p2 是 SSD 缓存,而 /dev/sda 和 /dev/sdb 是 raid 磁盘。

我使用以下命令生成磁盘配置:

cryptsetup luksFormat /dev/sda
cryptsetup luksFormat /dev/sdb
cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup luksOpen /dev/sda quad1
cryptsetup luksOpen /dev/sdb quad2
cryptsetup luksOpen /dev/nvme0n1p2 quadcache
lvs
pvcreate /dev/mapper/quad1 /dev/mapper/quad2 /dev/mapper/quadcache
pvs
vgcreate vgquad /dev/mapper/quad1 /dev/mapper/quad2 /dev/mapper/quadcache
vgs
lvcreate -n data-quad1 -l 100%FREE vgquad /dev/mapper/quad1
lvcreate -n data-quad2 -l 100%FREE vgquad /dev/mapper/quad2
lvcreate -n data-quadcache1 -L 10G vgquad /dev/mapper/quadcache
lvcreate -n data-quadcache2 -L 10G vgquad /dev/mapper/quadcache
lvconvert --type cache --cachevol data-quadcache1 --cachemode writethrough vgquad/data-quad1
lvconvert --type cache --cachevol data-quadcache2 --cachemode writethrough vgquad/data-quad2
mkfs.btrfs -m raid1 -d raid1 /dev/vgquad/data-quad1 /dev/vgquad/data-quad2
mount -t btrfs -o defaults,noatime,compress=zstd /dev/vgquad/data-quad1 /mnt/quad/
lsblk

我不是专家,但是让硬盘驱动器配置在 nix 启动时保持不变的一般建议是配置驱动器,运行nixos-generate-config然后sudo nixos-rebuild switch.就我而言,它不会生成正确的配置来安装所有 3 个磁盘,并且当我最终在重新启动后手动安装它们时cryptsetup,上面显示的表不再存在。我尝试过使用类似的方法手动安装所有 3 个磁盘,但无济于事:

boot.initrd.luks.devices = {
    [...]
    "luks-UUID" = {
      device = "/dev/disk/by-uuid/UUID";
      allowDiscards = true;
      preLVM = false;
    };
    [...]
  };

我已经无计可施了,我不知道我做错了什么。我是否遗漏了 LVM 在重新启动后如何持续存在的问题,或者这是 LVM 和 nixos 的一些特定问题?

相关内容