是否可以组合来自不同组的逻辑卷而不复制内容?

是否可以组合来自不同组的逻辑卷而不复制内容?

我使用 Arch Linux 内核4.18.12-arch1-1-ARCH(2018 年 11 月)。

我使用 SATA 托盘(适用于 Thinkpad T400),其中装有旧笔记本电脑的硬盘驱动器。我想决定组合内容并扩展逻辑卷rootvollvhome/或保持当前设置(见下文)。我只使用ext4文件系统,两个卷都包含数据。虽然这个问题似乎已经有了答案这里,我不知道如何防止数据丢失。

因此,目前我从 luks 加密的 SSD 启动,并且有一些符号链接指向$HOME延迟安装的硬盘驱动器上的目录以扩展存储,这允许我$HOME在硬盘驱动器上使用旧的。

NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT UUID
sda                    8:0    0 223.6G  0 disk             
└─sda1                 8:1    0 223.6G  0 part             3d17c5b4-a603-4600-9f36-c598a7da783e
  └─root             254:0    0 223.6G  0 crypt            PRGLfW-Q18M-pPu8-nr6a-tloV-SS4W-kK1ROX
    ├─matrix-swapvol 254:1    0     2G  0 lvm   [SWAP]     38e862ef-e919-4388-810f-63ce187b342c
    └─matrix-rootvol 254:2    0 221.6G  0 lvm   /          c71a8292-c678-4a53-90da-3e4bf78cedbb
sdb                    8:16   0 232.9G  0 disk             
├─sdb1                 8:17   0   512M  0 part             14c635fb-6ee7-45c0-aefd-d3d7440116c0
└─sdb2                 8:18   0 232.4G  0 part             c36535d9-4098-4939-9ebe-6a2be950f3ea
  └─caddy            254:3    0 232.4G  0 crypt            kTkSk4-oemR-1fJi-4brz-OXmW-DEZk-rqF2pN
    ├─vgarch-lvswap  254:4    0     4G  0 lvm              a1932471-209e-4d47-85dc-c4ea1ce37de8
    ├─vgarch-lvroot  254:5    0    15G  0 lvm              67d37f85-c2c0-40e7-88e9-afd4a6c1c561
    └─vgarch-lvhome  254:6    0 211.2G  0 lvm              dd89d271-776a-426a-826d-9f4d7056fc6a

可以看出,无论出于什么原因,我决定在 luks 上使用 lvm 两次。请注意,SSD 没有/boot分区:它是在 libreboot ROM 映像的帮助下解密的。在启动过程中,crypttabfor/dev/sdb2的 UUID 中的条目使用/.然后,我使用 systemd 的自动挂载服务在需要时挂载或卸载它:

# /etc/fstab
# /dev/mapper/vgarch-lvhome
UUID=dd89d271-776a-426a-826d-9f4d7056fc6a /mnt/caddy ext4 rw,noatime,data=ordered,noauto,nofail,x-systemd.automount,x-systemd.device-timeout=20,x-systemd.idle-timeout=2min 0 0

我递归地更改了lvhome.因为我不需要,lvroot所以lvswap我将把它们与包含 /boot 的 /dev/sdb1 一起删除。

那么如何将这些结合起来呢?这样做可取吗? (因为SSD和HDD的用途不同)建议先将内容复制到另一个文件系统,但这是否违背了lvm的目的?我认为扩大或缩小文件系统会很容易,但我想我想象的是 zfs 世界的功能。

答案1

LVM 提供逻辑卷,即逻辑块设备,并且可以轻松地对这些块设备进行增长、收缩、重定位、快照等。然后,您可以以任何您喜欢的方式使用这些块设备...它可以是文件系统,也可以是其他东西,例如具有自己的分区表和所有内容的虚拟机的虚拟硬盘。

LVM 在文件系统级别不执行任何操作。因此,由文件系统来支持处理这些增长或缩小的块设备,或者由虚拟机来调整其分区表的大小。

大多数文件系统支持增长(但有时不在线,或者不超过一定限制),但其中一些不支持收缩。因此,尽管 LVM 毫不犹豫地缩小块设备,但您必须首先缩小文件系统,而对于某些文件系统,这是不可能的。

通常不支持合并两个单独文件系统的内容。

所以,是的,在某些情况下,您必须以老式方式复制文件。然后放弃/删除这些文件所在的 LV,并使用释放的空间来扩展 LV 并扩展您将文件复制到的文件系统。

那么如何将这些结合起来呢?这样做可取吗? (因为SSD和HDD的用途不同)

我不会创建一半由 SSD 一半由 HDD 支持的块设备。我喜欢把它们分开。

在其他一些情况下这可能是有意义的,例如,您可以执行 SSD-HDD-RAID1,其中 HDD 设置为以写入为主,这意味着所有读取通常都由 SSD 提供,因为它速度更快。然而,随着 SSD 价格的下降,这种设置不再常见,因为您可以只使用两个 SSD 来实现常规 RAID1。

相关内容