SMB 卷驱动¶
https://blueprints.launchpad.net/cinder/+spec/smbfs-volume-driver
目前,Cinder 卷驱动利用网络附加存储文件系统,例如 GlusterFS 或 NFS。此蓝图的目的是添加一个支持基于 SMB 的卷后端的卷驱动。
问题描述¶
SMB 是一种广泛使用的协议,尤其是在 Microsoft 环境中。其简单性以及 SMB 3 引入的重大改进使得这种类型的卷后端成为一个很好的替代方案。
SMB 3 带来了诸如透明故障转移、使用多个网卡的通道、加密通信和 RDMA 等特性。
最近版本的 Samba 改进了对 SMB 3 协议的支持,以及 Active Directory 集成。
此驱动将向后兼容,支持旧版本的 SMB。它将支持使用任何类型的 SMB 共享,包括
从 Scale-Out 文件服务器到基本的 Windows 共享;
Linux Samba 共享;
供应商特定的硬件导出 SMB 共享。
用例¶
提议的变更¶
提议的驱动将使用 Samba 以安全的方式挂载和使用 SMB 共享,支持基于 Active Directory 的身份验证。
此驱动将包含 Juno 版本所需的所有功能。它将与其他网络附加文件系统驱动程序具有相似的流程,将托管在 SMB 共享上的镜像作为卷进行管理。
它将支持 raw、qcow2、vhd 和 vhdx 镜像。即便如此,因为它将使用 qemu-img 进行镜像相关操作,因此由于 qemu-img 的限制,尚未支持 vhd 和 vhdx 格式的快照。
快照管理将以类似于 Gluster 驱动程序的方式进行,使用一个附加的“.info”文件,其中包含快照 ID 与其实际路径之间的映射。这是必需的,因为路径可能会随着时间的推移而改变(例如,当从链中删除快照时,备份文件将被更改)。
将为 Windows 环境提出另一个基于此的驱动程序,完全支持 vhd/vhdx。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
驱动程序将定期确保选择的共享已挂载,并检索诸如可用空间或已分配的总空间等信息。
某些卷相关操作需要同步。
为了使用本地共享,共享路径将从 Samba 配置文件中读取。
其他部署者影响¶
用户将提供一个 SMB 共享列表,卷可以在其上驻留。此列表将放置在 Cinder 配置文件中配置的路径上的文件中。此共享列表可以包含 SMB 挂载选项,例如标志或凭据。
配置文件还将包含 Samba 配置文件的路径。还可以配置超额订阅和已用空间比率。
用户将能够选择将用作卷类型的类型,以及选择是否使用稀疏文件或 qcow2 文件而不是原始文件。根据可用的 qemu-img 版本,vhd 和 vhdx 格式也可能被使用。
卷类型可以在创建卷时作为额外的规范进行解析。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
- 其他贡献者
工作项¶
提供支持在 remotefs 客户端中挂载 SMB 共享,以及使用本地共享。
获取 SMB 共享状态,例如可用空间或已分配空间。
提供使用托管在 SMB 共享上的镜像的卷相关操作支持。
依赖项¶
Libvirt smbfs 卷驱动蓝图:https://blueprints.launchpad.net/nova/+spec/libvirt-smbfs-volume-support
Hyper-V smbfs 卷驱动蓝图:https://blueprints.launchpad.net/nova/+spec/hyper-v-smbfs-volume-support
测试¶
Cinder CI 将测试 SMB 相关功能。
文档影响¶
将记录使用 SMB 后端的内容。
参考资料¶
Samba wiki 页面:https://wiki.samba.org/index.php/Main_Page