Windows SMB 驱动程序

虽然通用驱动程序仅支持 Linux 实例,但当需要 Windows 虚拟机时,您可以使用 Windows SMB 驱动程序。

此驱动程序扩展了通用驱动程序,以便提供 Windows 实例支持。 它可以与 Active Directory 域通过 Manila 安全服务功能集成,从而简化访问控制。

虽然 Samba 是一个优秀的 SMB 共享服务器,但 Windows 实例可能提供改进的 SMB 3 支持。

限制

  • 目前不支持 IP 访问规则,只能使用基于用户的 ACL。

  • SMB(也称为 CIFS)是唯一支持的共享协议

  • 虽然它可以处理 Windows 虚拟机,但 Manila 目前无法在 Windows 上运行。 另一方面,虚拟机完全可以在 Hyper-V、KVM 或 Nova 支持的任何其他虚拟机监控程序上运行。

先决条件

此驱动程序需要安装 cloudbase-init 的 Windows Server 镜像。 Cloudbase-init 是在 OpenStack 上运行 Windows 虚拟机的标准工具。 该驱动程序依赖于它来执行诸如

  • 使用密码或证书身份验证配置 WinRM 访问

  • 网络配置

  • 设置主机名

注意

最初开发此驱动程序时,是考虑到 Windows Nano Server 的。 不幸的是,微软不再支持在裸机或虚拟机上运行 Nano Server,因此您可能需要使用 Windows Server Core 镜像。

配置

以下是一个启用 Windows SMB 驱动程序的配置示例。

[DEFAULT]
manila_service_keypair_name = manila-service
enabled_share_backends = windows_smb
enabled_share_protocols = CIFS

[windows_smb]
service_net_name_or_ip = private
tenant_net_name_or_ip = private

share_mount_path = C:/shares
# The driver can either create share servers by itself
# or use existing ones.
driver_handles_share_servers = True
service_instance_user = Admin
service_image_name = ws2016

# nova get-password may be used to retrieve passwords generated
# by cloudbase-init and encrypted with the public key.
path_to_private_key = /etc/manila/ssh/id_rsa
path_to_public_key = /etc/manila/ssh/id_rsa.pub
winrm_cert_pem_path = /etc/manila/ssl/winrm_client_cert.pem
winrm_cert_key_pem_path = /etc/manila/ssl/winrm_client_cert.key
# If really needed, you can use password based authentication as well.
winrm_use_cert_based_auth = True
winrm_conn_timeout = 40
max_time_to_build_instance = 900

share_backend_name = windows_smb
share_driver = manila.share.drivers.windows.windows_smb_driver.WindowsSMBDriver
service_instance_flavor_id = 100