注意
本文档适用于 Ceph 开发版本。
Encryption
逻辑卷可以使用dmcrypt
通过在创建 OSD 时指定--dmcrypt
标志。在使用 LVM 时,逻辑卷可以ceph-volume
与 LVM 相比,它提供的选项较少,但它以一致且稳健的方式加密逻辑卷。
在这种情况下,ceph-volume lvm
遵循此约束:
非 LVM 设备(如分区)使用相同的 OSD 密钥进行加密。
LUKS
目前 LUKS 有两个版本,1 和 2。版本 2 实现起来稍微容易一些,但在所有 Ceph 支持的 Linux 发行版中并不普及。
Note
本文档中提到的 LUKS 版本 1 称为“LUKS”。本文档中提到的 LUKS 版本 2 称为“LUKS2”。
LVM 上的 LUKS
加密是在现有的逻辑卷之上完成的(这与加密物理设备不同)。任何单个逻辑卷都可以被加密,而其他卷保持未加密。这种方法还允许灵活的逻辑卷设置,因为加密会在逻辑卷创建后发生。
工作流程
在设置 OSD 时,会创建一个密钥。该密钥以 JSON 格式传递给监控器,stdin
以防止密钥被捕获在日志中。
JSON 负载看起来像这样:
{
"cephx_secret": CEPHX_SECRET,
"dmcrypt_key": DMCRYPT_KEY,
"cephx_lockbox_secret": LOCKBOX_SECRET,
}
密钥的命名约定严格,它们这样命名是为了 ceph-disk 使用的硬编码(遗留)名称。
cephx_secret
: 用于身份验证的 cephx 密钥dmcrypt_key
: 用于解锁加密设备的密钥(或私钥)cephx_lockbox_secret
: 用于检索dmcrypt_key
的身份验证密钥。它被命名为lockbox因为 ceph-disk 以前有一个以它命名的未加密分区,用于存储公钥和其他 OSD 元数据。
命名约定是严格的,因为监控器支持 ceph-disk 的命名约定,该约定使用了这些密钥名称。为了保持兼容性并防止 ceph-disk 出现问题,ceph-volume 使用相同的命名约定尽管这对新的加密工作流程来说没有意义。.
在“准备阶段”(使用bluestore)设置 OSD 的常见步骤之后,逻辑卷准备就绪,可以激活,无论设备的状态如何(加密或未加密)。
在其激活时,逻辑卷被解密。OSD 在进程正确完成后启动。
创建新 OSD 的加密工作流程总结
创建 OSD。lockbox 和 dmcrypt 密钥被创建并以 JSON 格式发送给监控器,表示加密的 OSD。
所有辅助设备(如日志、数据库或 wal)被创建并以相同的 OSD 密钥加密。密钥存储在 OSD 的 LVM 元数据中。
通过确保设备挂载、从监控器检索 dmcrypt 密钥并在 OSD 启动前解密来继续激活。
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.