Tho*_*mas 20 linux raid debian lvm luks
我将使用 Debian GNU/Linux 8 安装文件服务器。
我想要使用 mdadm 的软件 RAID-1 以及使用 LUKS 的加密磁盘。我也喜欢 LVM 的灵活性。
有不同的方法可以做到这一点。一种方法是:首先使用 mdadm 设置 RAID-1。然后设置 LVM PV 以覆盖创建的 /dev/mdX。然后设置 LV 并使用 LUKS 对其进行加密。然后用文件系统格式化这些文件,比如 ext4。这导致了这样的布局:
RAID --> LVM --> LUKS --> ext4
Run Code Online (Sandbox Code Playgroud)
或者我可以用不同的顺序:
RAID --> LUKS --> LVM --> ext4
Run Code Online (Sandbox Code Playgroud)
或者甚至:
LVM --> RAID --> LUKS --> ext4
Run Code Online (Sandbox Code Playgroud)
甚至可能是完全不同的顺序。
不同方法的优缺点是什么?什么才能提供最佳性能、安全性、可维护性等?
有没有这样做的“最佳方式”?
Yan*_* Li 21
首先,LUKS 和 LVM 的顺序取决于是否要为不同的 LV 设置不同的 LUKS 密码或其他设置。如果说,你需要为不同的LV设置不同的密码,你肯定需要把LUKS放在LVM之上。另一方面,如果所有 LV 共享相同的密码和设置,如 keylen,您希望 LVM 下有 LUKS,这样您就不必处理拥有多个 LUKS 分区的开销(想想您当您需要更改密码时必须这样做)。
其次,您几乎总是希望 RAID 处于最低级别,这样当一个磁盘死亡时,它可以轻松透明地进行交换。如果您要在 LVM 之上设置 RAID,您必须在一个磁盘死机时更换一个 PV,这将是一个很大的问题。此外,LVM 上的 RAID 会完全破坏 LVM 的灵活性。然后您可能需要再次在 RAID 之上设置第二层 LVM!
因此,因为在大多数情况下人们只需要使用一个密码,这就足够了:
RAID --> LUKS --> LVM --> ext4
在某些情况下,您可能需要使用 LVM 将多个 RAID 设备组合成一个大卷,那么您可以这样做:
RAID --> LVM --> LUKS (--> LVM) --> ext4
理论上,如果每一层都设置正确,顺序应该不会对性能产生太大影响,实际上我还没有看到这种设置有特别糟糕的性能。最重要的可能是对齐方式:
此外,如果在SSD上,请确保您启用陆氏TRIM /放弃直通加入rd.luks.options=discard到/etc/default/grub和discard到/etc/crypttab(这些是我在Red Hat / Fedora Linux系统做的。可能是在Debian略有不同。)LVM和RAID应该自动支持丢弃如果您使用新内核。
当然,这些只是一般准则。如果您有特殊需求,请随时在此处更新您的问题或评论。
如果你想要所有的 RAID、LUKS 和 LVM,我会推荐RAID -> LUKS -> LVM -> FS. RAID --> LVM --> LUKS --> LVM --> FS没有比RAID -> LUKS -> LVM- 扩展卷只需RAID -> LUKS向卷组添加更多设备。
RAID --> LVM --> LUKS --> FS - 仅加密特定的逻辑卷具有默认不加密所有内容的功能(可能被视为优点或缺点),但它会使扩展根 FS 更容易。
当用户以错误的顺序扩展/调整逻辑卷的大小时,在逻辑卷之上扩展 LUKS 是一个常见的问题根源。在整个 md RAID 设备上拥有 LUKS 将简化调整大小 - 添加新的 md 设备,在其上创建 LUKS,将设备添加到/etc/crypttab(至少在 Fedora 和 RHEL 克隆上)并扩展您的卷组。如果 root FS 在卷组上,您将需要rd.luks.uuid向内核 cmdline添加另一个条目(编辑/etc/default/grub并重新生成 grub.cfg。)
LUKS -> RAID通常是错误的 - 数据将被多次加密,消耗更多的 CPU 周期而没有任何收益。当磁盘出现故障时,也有可能在未设置 LUKS 的情况下错误地将故障磁盘替换为新磁盘。
延伸时总是从堆栈的底部开始,从顶部收缩时。
例子:
扩展 RAID -> LVM -> LUKS -> FS(如果卷组中有足够的可用空间,前两步是可选的):
收缩 RAID -> LVM -> LUKS -> FS:
| 归档时间: |
|
| 查看次数: |
15474 次 |
| 最近记录: |