【文件】Linux Kernel 5.8 将为 blk-mq 引入内联加密支持

为了提供更好的加密性能 , 目前谷歌工程师正在为 Linux 文件系统加密管理工具 fscrypt 添加内联加密支持 。而与之相关的开发包括在 Linux 5.8 的块设备队列管理 blk-mq 中引入内联加密 。
【文件】Linux Kernel 5.8 将为 blk-mq 引入内联加密支持
文章图片

文章图片

【【文件】Linux Kernel 5.8 将为 blk-mq 引入内联加密支持】fscrypt 是用于 Linux 文件系统加密管理的高级工具 , 它管理元数据、密钥生成、密钥封装与 PAM 集成 , 并提供用于创建和修改加密目录的统一界面 。fscrypt 的内核部分已集成到诸如 ext4 的文件系统中 。
blk-mq 则是 Linux 的块设备层多队列机制 , 它将 Linux 内核存储栈中请求层的单队列改成多队列 , 理论上提升性能 。
如果接下来 blk-mq 支持内联加密 , 那么它能够在存储栈中向下传递加密上下文 , 目前 Linux 内核源码 commit 中解释:我们必须通过某种方式让存储设备驱动程序知道它应该用于加密/解密请求的加密上下文 。而上层(例如文件系统/fscrypt)知道情况并且管理加密上下文 。这样 , 当上层提交 BIO 到块层 , 这个 BIO 最终到达的设备驱动程序支持内联加密 , 那么设备驱动程序则已经表明了 BIO 的加密上下文 。
代码上具体改动是将 struct bio_crypt_ctx 添加到 struct bio 中 , 用来表示加密上下文 , 同时引入各种用于操作 bio_crypt_ctx 并使 bio/request 合并函数逻辑知晓 bio_crypt_ctx 。


    推荐阅读