4.3. 支持的格式


支持 Linux 统一密钥设置(LUKS)1 和 2。数据布局完全符合 LUKS 规格。dm-cryptQEMU 等外部 LUKS 兼容工具可以在加密的 RBD 镜像上安全地执行加密的输入/输出(I/O)。另外,您可以通过将原始 LUKS 数据复制到 RBD 镜像来导入外部工具创建的现有 LUKS 镜像。

目前,只支持高级加密标准(AES)128 和 256 加密算法。xts-plain64 目前是唯一支持的加密模式。

要使用 LUKS 格式,请使用以下命令格式化 RBD 镜像:

注意

您需要创建一个名为 passphrase.txt 的文件并输入密码短语。您可以随机生成密码短语,该密码短语可能包含 NULL 字符。如果密码短语以换行符结尾,它将被剥离。

语法

rbd encryption format POOL_NAME/LUKS_IMAGE luks1|luks2 PASSPHRASE_FILE

示例

[ceph: root@host01 /]# rbd encryption format pool1/luksimage1 luks1 passphrase.bin

注意

您可以选择 luks1luks 加密格式。

加密格式操作生成 LUKS 标头,并将它写入到 RBD 镜像开始时。在标头后面会附加一个 keylot。keyslot 包含随机生成的加密密钥,并由从密码短语读取的密码短语进行保护。默认情况下,xts-plain64 模式的 AES-256(当前推荐的模式)和默认用于其他 LUKS 工具。目前不支持添加或删除额外的密码短语,但可以使用 cryptsetup 等工具实现。LUKS 标头大小可能会有所不同,对于 LUKS 最多为 136MiB,但取决于安装的 libcryptsetup 版本,它通常最多为 16MiB。为获得最佳性能,加密格式设置数据偏移,使其与镜像对象大小保持一致。例如,在使用配置了 8MiB 对象大小的镜像时,至少需要 8MiB 的开销。

在 LUKS1 中,扇区(最小加密单元)的固定单位为 512 字节。LUKS2 支持较大的扇区,并且获得更好的性能,默认扇区大小设置为最大 4KiB。小于扇区的写入或与扇区启动不一致的写入,请在客户端上触发保护的 read-modify-write 链,并具有相当延迟的损失。此类未对齐写入的批处理可能会导致 I/O 争用,从而进一步降低性能。红帽建议在无法保证以 LUKS 扇区一致而使用 RBD 加密时避免使用 RBD 加密。

要映射 LUKS 加密的镜像,请运行以下命令:

语法

rbd device map -t nbd -o encryption-format=luks1|luks2,encryption-passphrase-file=passphrase.txt POOL_NAME/LUKS_IMAGE

示例

[ceph: root@host01 /]# rbd device map -t nbd -o encryption-format=luks1,encryption-passphrase-file=passphrase.txt pool1/luksimage1

注意

您可以选择 luks1luks2 加密格式。

注意

为安全起见,加密格式和加密负载操作都是 CPU 密集型,可能需要几秒钟才能完成。对于加密的 I/O,假设启用了 AES-NI,可能会添加相对较小的微秒延迟,以及 CPU 使用率小的增加。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.