带有 iscsi 和嵌套 lvm 的 Ubuntu 20.04 在关机/重启时挂起

带有 iscsi 和嵌套 lvm 的 Ubuntu 20.04 在关机/重启时挂起

我在 Ubuntu 20.04 VM 上的 nvme+iscsi 组合上设置了有点复杂的 lvmcache。此 VM 确实可以完美启动,但卡在停止各种服务、lvm2-monitor.service、umount fs 或 sd-sync 线程。关闭进程卡在A stop job is running for LVM2 mirrors, ...,或开始向控制台发送日志,例如

INFO: task lvm:#### blocked for more than 120 seconds.

然后定期打印内核堆栈跟踪。

# lsblk
NAME                            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
loop5                             7:5    0 31.1M  1 loop /snap/snapd/10492
sda                               8:0    0  200G  0 disk
└─remote-data_corig             253:7    0  200G  0 lvm
  └─remote-data                 253:8    0  200G  0 lvm  /data
vda                             252:0    0   40G  0 disk
├─vda1                          252:1    0    1M  0 part
└─vda2                          252:2    0   40G  0 part
  ├─vg-boot                     253:0    0  500M  0 lvm  /boot
  ├─vg-swap                     253:1    0    4G  0 lvm  [SWAP]
  ├─vg-root                     253:2    0   30G  0 lvm  /
  └─vg-cachepv                  253:3    0    5G  0 lvm
    └─remote-cache_cvol         253:4    0    5G  0 lvm
      ├─remote-cache_cvol-cdata 253:5    0    5G  0 lvm
      │ └─remote-data           253:8    0  200G  0 lvm  /data
      └─remote-cache_cvol-cmeta 253:6    0    8M  0 lvm
        └─remote-data           253:8    0  200G  0 lvm  /data

# pvs
  PV              VG     Fmt  Attr PSize    PFree
  /dev/sda        remote lvm2 a--  <200.00g      0
  /dev/vda2       vg     lvm2 a--   <40.00g 520.00m
  /dev/vg/cachepv remote lvm2 a--    <5.00g      0

# lvs
  LV      VG     Attr       LSize    Pool         Origin       Data%  Meta%  Move Log Cpy%Sync Convert
  data    remote Cwi-aoC--- <200.00g [cache_cvol] [data_corig] 99.94  12.40           0.00
  boot    vg     -wi-ao----  500.00m                                                    
  cachepv vg     -wi-ao----    5.00g                                                    
  root    vg     -wi-ao----   30.00g                                                    
  swap    vg     -wi-ao----    4.00g 

其中 vda 是 nvme,sda 是 iscsi 设备。lvvg/cachepv用作嵌套 pv,然后附加到另一个 vg remote。为了实现嵌套 pv 设置,我已从中的scan_lvs = 1默认设置进行了更改。0/etc/lvm/lvm.conf

此时我在 上使用 lvmcache remote/data。我尝试过取消缓存并删除 lv remote/cache,但未能解决此问题。

在我的设置中,vg/rootremote/data都是 btrfs 卷。从 fstab,

/dev/mapper/vg-root / btrfs defaults,noatime,compress=lzo,subvol=@ 0 0
/dev/mapper/vg-boot /boot ext4 defaults 0 0
/dev/mapper/remote-data /data btrfs defaults,nofail,_netdev,noatime,compress=zstd:1,subvol=@data 0 0

我最初以为这是由于 LXD snap 占用了 /data 上的存储池所致。我已在 umount /data 之前添加了Requires=data.mountsnap.lxd.activate.service停用snap.lxd.daemon.service服务,但此问题仍然存在。

Ubuntu 20.04, 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# lvm version
  LVM version:     2.03.07(2) (2019-11-30)
  Library version: 1.02.167 (2019-11-30)
  Driver version:  4.41.0

如果有人有任何想法,请告诉我。

谢谢。

相关内容