软件 RAID、LVM 和加密设置问题

软件 RAID、LVM 和加密设置问题

我有 4 个硬盘,每个硬盘上都有两个分区,一个10.1GB用于交换,一个990.1GB用于存放剩余数据。

我利用这个并用 RAID10 设置了两个 MD 设备,一个用于 4 个交换分区,另一个用于其他 4 个分区。

我将20.2GB软件 RAID 设备设置为交换并转到 LVM。

这是本指南我需要使用软件 RAID。我现在想在其上设置 LVM 和加密。

我创建了一个新的卷和逻辑卷;大小1.5TB。我加密了该卷,并将加密卷中的剩余部分设置1.4TB为根(f ext4 /)。

以下是我的问题:

20.2GB我是否应该为用作交换区域的软件 RAID 设备设置单独的卷/逻辑卷?

如果我加密该ext4 /区域,是否也应该加密该卷?

Finish partitioning and write changes to disk给出错误:

您已选择将根文件系统存储在加密分区上。此功能需要单独的 /boot 分区,内核和 initrd 可存储在该分区上。

您应该返回并设置 /boot 分区。

这个/boot分区需要设置在哪里?(在设置 RAID 之前,每个驱动器是否都应该有一个额外的分区?)

需要多少空间?

它应该是 LVM 的一部分吗?

是否应该加密?

答案1

/boot不需要加密,否则引导加载程序(除非我落后于时代,其中一个支持加密卷)将无法准备内核和 initrd。它不需要加密,因为它不应该包含内核、initrd 和可能的一些其他支持文件以外的任何内容。

您的 LVM PV 设备已加密,则/boot需要放在其他地方:可能是单独的 RAID 卷。如果用作 PV 的设备未加密(而是加密了要加密的 LV /),则/boot可能位于 LVM 中,但 GRUB 无法启动所有 RAID 类型问题除外(见下文)。

过去,它/boot必须位于磁盘的开头附近,但现代引导加载程序通常会取消此要求。几百 Mb 应该完全足够,但如今如此大的驱动器已成为标准,因此将其放大以防万一也无妨,除非您受制于试图将其放入非常小的设备(例如,Pi 或类似设备中的小型 SD 卡),嵌入式系统可能就是这种情况。

大多数引导加载程序不支持从 RAID 启动,或者即使支持,也只“偶然”支持从 RAID1(其中每个驱动器都有一份所有数据的副本)启动,因此请在所有驱动器上创建小分区并在其上使用 RAID1 阵列。/boot只要至少一个驱动器处于工作状态,这种方式就是可读的。确保在安装时将引导加载程序安装到所有四个驱动器的 MBR 中,否则,如果您的 BIOS 从另一个驱动器启动(例如由于第一个驱动器处于离线状态),您将不得不费力地将加载程序的 MBR 放到其他驱动器上,而不是它已经在那里了。

更新:根据下面 Nick 的评论,现代引导加载程序可以直接处理某些形式的加密卷,因此根据您的目标设置,现在无需担心太多事情。

答案2

我还没有使用安装程序设置软件 RAID-10,但我认为在使用 RAID-1 + LVM + 加密设置 Debian 时遇到的一些问题可能会有所帮助。我不知道 Debian 的控制台安装程序与 Ubuntu 的安装程序有何不同,所以我无法提供有关如何执行此操作的详细信息。

对于/boot,GRUB2 具有raid和模块,可以使用其命令lvm加载insmod它应该处理 Linux 的 md raid10 布局. 确切细节显然这里但该网站已关闭。根据我从他们的手册中得到的信息(你可能拥有 31KiB 到 1MiB 之间的某个空间,我的core.img已经是 24KB,和raid.mod每个lvm.mod都是 6KB),因此您可能能够或不能使用它,这取决于您的分区工具浪费了多少空间。即使它确实适合,您可能也无法让 Ubuntu 的安装程序为您设置它。除非您愿意冒更多时间的风险,否则我会坚持使用 David 使用 RAID-1 的单独分区(它不需要任何额外的模块,因为只要您将 grub 分别安装到所有驱动器的 MBR 上,它就会“意外”工作)。无论哪种方式,它都无法加密。

至于数据和交换,如果您计划对它们进行 RAID-10 并将它们输入 LVM 并加密,那么将它们分成单独的分区就毫无意义了。在每个驱动器上创建一个大分区并在 LVM 中处理划分。

因此,如果您不打算尝试 grub2 lvm+raid 模块,您的分区应该看起来像这样:

  • sd[abcd]1:100MB
  • sd[abcd]2:其他所有

  • sd[abcd]1 配置为 RAID 1
  • sd[abcd]2 配置为 RAID 10

此时,您可以使用较大的 RAID 设备作为其物理卷来创建一个 LVM 组,然后使用您想要的任何逻辑卷来创建它。

如果您确实需要全盘加密,那么我会将其设置/tmp为具有随机密钥的逻辑卷,然后/将其设置为覆盖其余空间的加密逻辑卷。将其设置/tmp为单独的分区至少可以防止人们用临时文件填满文件系统并导致日志记录和其他功能中断。

否则,请评估您要加密的内容。决定是否要使用单独的加密逻辑卷,以便您可以不必一直挂载某些加密数据(例如数据备份)。如果安装特定程序不是您要隐藏的内容,那么请考虑在未加密的/home情况下加密特定位置()/。当然,您可能有多个需要加密的位置,但不想输入六个密码来启动。

就我个人而言,我所做的是创建一个(完全不符合 FHS 标准的/crypt文件系统,并将我想要保护的每个目录符号链接到那里。(注意:这种技术很明显你有加密数据,并且可能什么数据。将符号链接命名为 Project_Orion_Nuclear_Spacedrive 可能会泄露比您想要的更多的信息。)如果规划正确,系统甚至可以无人值守启动,并且有人可以稍后输入密码。例如,我的数据库服务器及其加密驱动器设置为在启动时不会自动安装或运行,因此系统将启动足以让我 ssh 进入,然后我可以安装文件系统并在重新启动后启动数据库服务器。

相关内容