SSD 上的 LVM 加密 LUKS - 恢复到快照的问题

SSD 上的 LVM 加密 LUKS - 恢复到快照的问题
  • Ubuntu 14.04.4 LTS
  • SSD 是唯一的驱动器 (/dev/sda)
  • /dev/sda1 是启动分区
  • /dev/sda5 是加密的 LUKS 分区
  • 逻辑卷位于 LUKS 分区的顶部

恢复快照似乎可行(恢复的系统显示正常),但该过程导致 BLKDISCARD 失败。在以下终端中,我从实时 ISO 会话运行 lvconvert --merge。

xubuntu@xubuntu:~$ sudo lvconvert --merge /dev/vg1/lvsnapshot14
Merging of volume lvsnapshot14 started.
lvroot: Merged: 92.7%
lvroot: Merged: 100.0%
Merge of snapshot into logical volume lvroot has finished.
/dev/mapper/sda5_crypt: BLKDISCARD ioctl at offset 121333874688 size 3221225472 failed: Operation not supported.
Logical volume "lvsnapshot14" successfully removed
xubuntu@xubuntu:~$ 

我认为这可能与 TRIM 有关,但我确实在所有级别都启用了 TRIM:

  • 通过 /etc/cron.weekly/fstrim 文件系统
  • 通过 /etc/lvm/lvm.conf 进行 lvm
  • 通过 /etc/crypttab 进行 dm-crypt

并且手动运行修剪成功。

对于导致失败的原因您有什么想法吗?

答案1

搞清楚了。问题是,虽然我在系统的加密级别启用了 TRIM 支持,但我没有在实时会话中启用它。

cryptsetup luksOpen /dev/sda5 sda5_crypt我在运行之前lvconvert --merge按照问题所述使用。这里未启用 Trim 支持,因此当快照合并后运行 BLKDISCARD 时,它会失败。

解决方案是使用cryptsetup luksOpen --allow-discards /dev/sda5 sda5_crypt。这将在加密级别启用 TRIM 支持。可以使用以下命令验证这一点dmsetup table /dev/mapper/sda5_crypt --showkeys- 结果应该在末尾显示“allow_discards”。

lvconvert --merge此后执行即可正常工作:

xubuntu@xubuntu:~$ sudo lvconvert --merge /dev/vg1/lvsnapshot14
Merging of volume lvsnapshot14 started.
lvroot: Merged: 95.6%
lvroot: Merged: 100.0%
Merge of snapshot into logical volume lvroot has finished.
Logical volume "lvsnapshot14" successfully removed
xubuntu@xubuntu:~$ 

相关内容