Windows SMB 卷驱动

https://blueprints.launchpad.net/cinder/+spec/hyper-v-smbfs-volume-driver

目前,Cinder 卷驱动利用网络附加存储文件系统,例如 GlusterFS 或 NFS。此蓝图的目的是添加一个支持基于 SMB 的卷后端的卷驱动。

此驱动将支持 Windows Server 2012(包括 R2)。

问题描述

SMB 是一种广泛使用的协议,尤其是在 Microsoft 世界中。它的简单性以及 SMB 3 引入的重大改进使得这种类型的卷后端成为一个很好的替代方案。

SMB 3 带来了诸如透明故障转移、使用多个网卡的通道、加密通信和 RDMA 等功能。

此驱动将向后兼容,支持旧版本的 SMB。它将支持使用任何类型的 SMB 共享,包括

  • 从 Scale-Out 文件服务器到基本的 Windows 共享;

  • Linux Samba 共享;

  • 供应商特定的硬件导出 SMB 共享。

用例

提议的变更

此驱动将包含 Juno 版本所需的所有功能。它将与其他网络附加文件系统驱动程序具有相似的流程,将托管在 SMB 共享上的镜像作为卷进行管理。

它将支持 vhd 和 vhdx 镜像,这些镜像将托管在 SMB 共享上。该驱动将支持基于密码的身份验证来挂载 SMB 共享。

快照管理将以类似于 Gluster 驱动程序的方式进行,使用一个额外的“.info”文件,其中包含快照 ID 与其实际路径之间的映射。这是必需的,因为路径可能会随着时间的推移而改变(例如,当从链中删除快照时,备份文件将被更改)。将使用差异 vhd/vhdx 镜像作为备份文件。

此驱动将基于适用于 Linux 发行版的 SMB 卷驱动。

备选方案

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

该驱动将定期确保选择的共享已挂载,并检索诸如可用空间或总分配空间等信息。

某些卷相关操作需要同步。

其他部署者影响

用户将提供一个 SMB 共享列表,卷可以在其上驻留。此列表将放置在 Cinder 配置文件中配置的路径上的文件中。此共享列表可以包含 SMB 挂载选项,例如标志或凭据。

配置文件还将包含 Samba 配置文件的路径。也可以配置超额提交和已用空间比率。

用户可以选择使用 vhd 或 vhdx 镜像。卷类型可以在创建卷时作为额外的规范进行解析。

开发人员影响

实现

负责人

主要负责人

<lpetrut@cloudbasesolutions.com>

工作项

提供使用托管在 SMB 共享上的镜像的卷相关操作支持。

覆盖特定于平台的 Linux 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

Linux smbfs 卷驱动蓝图

https://blueprints.launchpad.net/cinder/+spec/smbfs-volume-driver

测试

Cinder CI 将测试 SMB 相关功能。

文档影响

将记录使用 SMB 后端的内容。

参考资料