使用 LVM 移动 /home

ton*_*sdg 6 partitioning ssd lvm hard-drive

我目前在一台带有 96-GB SSD 的机器上安装了 Ubuntu 16.04 Server。对于服务器上的所有用户来说,这不再有足够的空间,所以我想添加一个 1 TB 硬盘并将/home文件夹明确移动到这个 1 TB 驱动器上的新分区。

最初,我计划使用此处的说明执行此操作。但是,仔细查看系统后,我发现 LVM 已启用:

Filesystem                   Size  Used Avail Use% Mounted on
udev                          63G     0   63G   0% /dev
tmpfs                         13G  9.5M   13G   1% /run
/dev/mapper/ubuntu--vg-root   98G   76G   18G  82% /
tmpfs                         63G     0   63G   0% /dev/shm
tmpfs                        5.0M     0  5.0M   0% /run/lock
tmpfs                         63G     0   63G   0% /sys/fs/cgroup
/dev/sda2                    473M  111M  338M  25% /boot
/dev/sda1                    512M  136K  512M   1% /boot/efi
tmpfs                         13G     0   13G   0% /run/user/1001
Run Code Online (Sandbox Code Playgroud)

根据我目前阅读的内容,我需要将新驱动器添加到ubuntu-vg卷组(如本答案的步骤 2-3 中所示)。但我不确定在此之后如何继续——我应该继续第4-5 步吗?或者是否有另一种方法可以明确移动/home到 1 TB HDD 并留/在 SSD 上?

Rod*_*ith 6

有很多方法可以做你想做的事,但我推荐的方法是:

  1. 对新磁盘进行分区。它可以是一个大的 LVM 分区,也可以留出一个或多个非 LVM 分区用于其他目的。我有时会创建多个 LVM 分区(也称为物理卷或 PV),以便将来在需要时可以从 LVM 配置中删除其中一个或多个。请注意,我建议将 PV 数据结构直接放在没有分区的磁盘上,如您参考的 LVM 答案所示。虽然这是合法的,但它可能会导致混淆,因为硬盘通常是分区的。
  2. 使用pvcreate命令准备 PV(s) 以供 LVM 使用,如sudo pvcreate /dev/sdb1.
  3. 使用 将新 PV(s) 添加到现有卷组 (VG) vgextend,如sudo vgextend ubuntu--vg /dev/sdb1
  4. 键入sudo pvdisplay以显示有关 PV 的统计信息,包括其大小。
  5. 创建一个新的逻辑卷 (LV) lvcreate,如sudo lvcreate -L 900G -n home ubuntu--vg /dev/sdb1。请注意,我已经指定了一种语法,使您能够设置大小 (via -L) 和将在其上创建 LV 的 PV ( /dev/sdb1)。
  6. sudo pvdisplay再次键入以验证您是否创建了大小合适的 LV。如果没有,您可以使用 调整大小lvresize或删除它,lvremove然后重试。
  7. 在 LV 上创建一个文件系统,如sudo mkfs -t ext4 /dev/mapper/ubuntu--vg-home.
  8. 将新 LV 安装在方便的地方,如sudo mount /dev/mapper/ubuntu--vg-home /mnt.
  9. /home使用tarcprsync或您喜欢的任何工具复制您的目录。
  10. 编辑/etc/fstab以在/home.
  11. 将当前/home名称重命名为其他名称(例如,/home-orig)并创建一个新的空/home目录作为挂载点。
  12. 重新启动并希望它有效。
  13. 如果一切正常,请删除旧/home-orig目录。

步骤 8-11 与您参考的 wiki 页面中概述的过程中的等效步骤非常相似因此我已经详细介绍了这些步骤。

请注意,虽然我自己已经做过很多次这种事情,但我展示的示例命令是基于我对相关手册页的阅读,所以我可能遗漏了一些细节。我建议您查看手册页,如果出现错误,请在找出错误后进行调整。此外,我发现 Ubuntu 的默认 LVM 命名令人困惑,因此我可能误解了该细节,您可能需要进行调整。

完成此操作后,您的 SSD 上的 PV 中将有未使用的空间。您可以将根 ( /) LV 扩展到此空间,扩展/homeLV 以跨越两个磁盘,为某些特殊目的创建另一个 LV,等等。

此过程的一个变体可能是将当前/homeLV保留在原处,在新磁盘上创建一个新 LV,然后开始使用新 LV 作为溢出空间。您注意到您的计算机是一个多用户服务器,所以这可能很尴尬,但可能有这样做的理由——例如,如果只有一两个用户消耗了大部分磁盘空间,您可以移动只是他们的主目录到新空间或为他们提供新空间上的目录(带有挂载点或符号链接以使其更容易访问)并指示他们将大文件移动到新空间。这种方法的优点是不会对其他用户产生负面影响,因为新的硬盘存储空间可能明显比旧的 SSD 存储空间慢。