![LUKS加密在哪一层?](https://linux22.com/image/749232/LUKS%E5%8A%A0%E5%AF%86%E5%9C%A8%E5%93%AA%E4%B8%80%E5%B1%82%EF%BC%9F.png)
选项1:Linux 分区 -> LUKS -> LVM
选项2:Linux 分区 -> LVM -> LUKS
从系统负载方面来看哪个堆栈更好?
背景:在我的 Linux 服务器(CPU AMD Opteron 6338P、LSI 3ware SAS / SATA-RAID 控制器,带有两个 4TB HD(RAID 1)、64GB RAM)上运行着多个 LXC 容器,不幸的是,这些容器之间存在 I/O 延迟的依赖关系。我希望尽可能通过最佳系统布局来减少这种不必要的影响。因为我有一个来自托管提供商的“专用服务器”,所以我无法更改/优化硬件配置。
答案1
虽然你的服务器似乎没有提供硬件优化的空间,但为了灵活性,我会选择选项2(Linux分区=> LVM => LUKS)而不是选项1(Linux分区-> LUKS-> LVM)。例如:
在选项 2 中,您可以将一个或多个 LV 绑定到一个容器,并设置密码、密钥文件和其他 LUKS 参数(如密码和设备类型),这些参数对于该容器来说是唯一的。在选项 1 中,您还可以将一个或多个 LV 绑定到一个容器,但是所有 LV 必然会共享相同的参数,例如,您无法在一个容器上设置更强的密码,而在另一个容器上设置更弱的密码。
在选项 2 中,如果出于性能原因,除了加密 LV 之外,您还可以创建非加密 LV。在选项 1 中,您必须使用不同的 PV 创建新卷组才能执行此操作。
在选项 2 中,LUKS 标头损坏将仅导致一个逻辑卷丢失。在选项 1 中,LUKS 标头损坏将导致整个卷组丢失。
在选项 2 中,如果可以将固态磁盘连接到服务器,则设置会更容易lvm缓存 (7)在现有的卷组上,您可以选择单独的 LV 来进行缓存。
我猜测这两种选择都会有类似的表现。