blk-mq获得了Linux Kernel 5.8的加密支持
扫描二维码
随时随地手机看文章
为了提高加密性能,Google工程师目前正在扩展内联加密支持的Linux文件系统加密管理工具fscrypt。 相关的研发包括在Linux 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 的函数。