VMware VMDK 驱动¶
使用 VMware VMDK 驱动来启用 OpenStack 块存储卷在 vCenter 管理的数据存储上的管理。卷由使用任何 VMware 兼容存储技术(如 NFS、iSCSI、FiberChannel 和 vSAN)的数据存储上的 VMDK 文件支持。
注意
VMware VMDK 驱动需要 vCenter 5.1 或更高版本。
功能上下文¶
VMware VMDK 驱动通过 vCenter 连接,从而可以动态访问受管集群中的 ESX 主机可见的所有数据存储。
创建卷时,VMDK 驱动会按需创建 VMDK 文件。VMDK 文件创建仅在稍后将卷附加到实例时完成。要求的原因是可见于实例的数据存储决定了放置卷的位置。在服务创建 VMDK 文件之前,将卷附加到目标实例。
正在运行的 vSphere VM 会自动重新配置,以将 VMDK 文件作为额外的磁盘附加。附加后,您可以登录到正在运行的 vSphere VM 以重新扫描并发现此额外的磁盘。
随着 ESX 版本更新到 6.0,VMDK 驱动现在支持 NFS 4.1 版本。
配置¶
VMware vCenter VMDK 驱动是 OpenStack 块存储的推荐卷驱动。配置驱动程序时,必须将其与 VMware 的相应 OpenStack Compute 驱动程序匹配,并且这两个驱动程序都必须指向同一服务器。
在 nova.conf 文件中,使用此选项定义 Compute 驱动程序
compute_driver = vmwareapi.VMwareVCDriver
在 cinder.conf 文件中,使用此选项定义卷驱动程序
volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver
下表列出了 OpenStack 块存储配置 (cinder.conf) 中驱动程序支持的各种选项
配置选项 = 默认值 |
描述 |
|---|---|
[DEFAULT] |
|
|
(字符串) 用于附加卷的默认适配器类型。 |
|
(整数) 在连接相关问题上必须重试 VMware vCenter 服务器 API 的次数。 |
|
(字符串) 用于验证 vCenter 服务器证书的 CA 捆绑包文件。 |
|
(多值) 应在其中创建卷的 vCenter 计算集群的名称。 |
|
(整数) http 连接池中的最大连接数。 |
|
(字符串) 连接到 VMware vCenter 服务器的 IP 地址。 |
|
(字符串) 使用 VMware vCenter 服务器进行身份验证的密码。 |
|
(端口号) 连接到 VMware vCenter 服务器的端口号。 |
|
(字符串) 使用 VMware vCenter 服务器进行身份验证的用户名。 |
|
(字符串) 可选字符串,用于指定 VMware vCenter 服务器的版本。驱动程序尝试从 VMware vCenter 服务器检索版本。仅当您想要覆盖 vCenter 服务器版本时才设置此配置。 |
|
(整数) Cinder 和 Glance 之间 VMDK 卷传输的超时时间(秒)。 |
|
(布尔值) 如果为 true,则不验证 vCenter 服务器证书。如果为 false,则使用默认 CA 信任库进行验证。如果设置了“vmware_ca_file”,则忽略此选项。 |
|
(整数) 每次批量检索的最大对象数。查询结果将从服务器批量获取,而不是一次性获取。服务器仍然可以将计数限制为配置值以下的值。 |
|
(浮点数) 轮询在 VMware vCenter 服务器上调用的远程任务的间隔(秒)。 |
|
(字符串) 在卷备份和恢复期间存储虚拟磁盘的目录。 |
|
(字符串) 将包含 Cinder 卷的 vCenter 目录名称。此文件夹将在“OpenStack/<project_folder>”下创建,其中 project_folder 的格式为“Project (<volume_project_id>)”。 |
|
(字符串) 可选的 VIM 服务 WSDL 位置,例如 http://<server>/vimService.wsdl。可选的覆盖默认位置,用于解决错误或使用较新版本的 vCenter。 |
VMDK 磁盘类型¶
VMware VMDK 驱动程序支持创建 VMDK 磁盘文件类型 thin、lazyZeroedThick(有时称为 thick 或 flat)或 eagerZeroedThick。
Thin 虚拟磁盘按需分配和清零,随着空间的使用。Thin 磁盘上未使用的空间可供其他用户使用。
Lazy zeroed thick 虚拟磁盘将在磁盘创建时分配所有空间。这将保留整个磁盘空间,因此它在任何时候都不可供其他用户使用。
Eager zeroed thick 虚拟磁盘类似于 lazy zeroed thick 磁盘,即整个磁盘在创建时分配。但是,在这种类型中,任何先前的数据将在写入之前从磁盘中擦除。这可能意味着磁盘创建需要更长的时间,但也可以防止物理介质上的旧数据问题。
使用带有适当值的 vmware:vmdk_type 附加规范键来指定 VMDK 磁盘文件类型。下表显示了附加规范条目与 VMDK 磁盘文件类型之间的映射
磁盘文件类型 |
附加规范键 |
附加规范值 |
|---|---|---|
thin |
|
|
lazyZeroedThick |
|
|
eagerZeroedThick |
|
|
如果您没有指定 vmdk_type 附加规范条目,则磁盘文件类型将默认为 thin。
以下示例显示了如何使用适当的 vmdk_type 创建 lazyZeroedThick VMDK 卷
$ openstack volume type create THICK_VOLUME
$ openstack volume type set --property vmware:vmdk_type=thick THICK_VOLUME
$ openstack volume create --size 1 --type THICK_VOLUME VOLUME1
克隆类型¶
使用 VMware VMDK 驱动程序,您可以从另一个源卷或快照点创建卷。VMware vCenter VMDK 驱动程序支持 full 和 linked/fast 克隆类型。使用 vmware:clone_type 附加规范键来指定克隆类型。下表捕获了克隆类型之间的映射
克隆类型 |
附加规范键 |
附加规范值 |
|---|---|---|
full |
|
|
linked/fast |
|
|
如果您没有指定克隆类型,则默认值为 full。
以下示例显示了从源卷进行链接克隆,该源卷是从镜像创建的
$ openstack volume type create FAST_CLONE
$ openstack volume type set --property vmware:clone_type=linked FAST_CLONE
$ openstack volume create --size 1 --type FAST_CLONE --image MYIMAGE SOURCE_VOL
$ openstack volume create --size 1 --source SOURCE_VOL DEST_VOL
适配器类型¶
VMware vCenter VMDK 驱动程序支持适配器类型 LSI Logic Parallel、BusLogic Parallel、LSI Logic SAS、VMware Paravirtual 和 IDE 用于卷。使用 vmware:adapter_type 附加规范键来指定适配器类型。下表捕获了适配器类型之间的映射
适配器类型 |
附加规范键 |
附加规范值 |
|---|---|---|
BusLogic Parallel |
|
|
IDE |
|
|
LSI Logic Parallel |
|
|
LSI Logic SAS |
|
|
VMware Paravirtual |
|
|
如果您没有指定适配器类型,则默认值为配置选项 vmware_adapter_type 指定的值。
使用 vCenter 存储策略指定后端数据存储¶
本节介绍如何使用存储策略配置后端数据存储。在 vCenter 5.5 及更高版本中,您可以创建一个或多个存储策略,并将其作为块存储卷类型暴露给 vmdk 卷。存储策略通过带有 vmware:storage_profile 键的附加规范属性暴露给 vmdk 驱动程序。
例如,假设 vCenter 中的存储策略名为 gold_policy.,块存储卷类型名为 vol1,带有附加规范键 vmware:storage_profile 设置为值 gold_policy。使用 vol1 卷类型创建的任何块存储卷都仅放置在与 gold_policy 存储策略匹配的数据存储中。
vSphere 数据存储的块存储后端配置是根据 vCenter 配置自动确定的。如果在 cinder.conf 文件中配置了连接以连接到 vCenter 版本 5.5 或更高版本,则自动支持使用存储策略配置后端数据存储。
注意
您必须为 Compute 服务配置您为块存储服务配置的任何数据存储。
要使用存储策略配置后端数据存储
在 vCenter 中,标记要用于后端的存储。
OpenStack 还支持通过供应商特定功能创建的策略;例如 vSAN 特定存储策略。
注意
标签值充当策略。有关详细信息,请参阅 vCenter 中的基于存储策略的配置。
将附加规范键
vmware:storage_profile设置在所需的块存储卷类型中,以设置为在上一步骤中创建的策略名称。可选地,对于
vmware_host_version参数,输入您的 vSphere 平台的版本号。例如,5.5。此设置会覆盖相应 WSDL 文件的默认位置。在其他方案中,您可以使用此设置来防止在开发阶段出现 WSDL 错误,或与较新版本的 vCenter 一起工作。
根据需要完成其他 vCenter 配置参数。
注意
如果创建的卷没有关联的策略(也就是说,没有指定 vmware:storage_profile 附加规范的关联卷类型),则该卷没有基于策略的放置。
支持的操作¶
VMware vCenter VMDK 驱动程序支持以下操作
创建、删除、附加和分离卷。
注意
当卷附加到实例时,将对实例执行重新配置操作,以将卷的 VMDK 添加到实例。用户必须手动重新扫描并从客户操作系统挂载设备。
创建、列出和删除卷快照。
注意
仅当卷未附加到实例时才允许。
从快照创建卷。
注意
如果 vCenter 版本为 6.0 或更高版本,并且目标卷类型中的附加规范键
vmware:clone_type设置为linked,则 vCenter 中的 vmdk UUID 将不会设置为卷 UUID。将镜像复制到卷。
注意
仅支持
vmdk磁盘格式和bare容器格式的镜像。镜像的vmware_disktype属性可以是preallocated、sparse、streamOptimized或thin。将卷复制到镜像。
注意
仅当卷未附加到实例时才允许。
此操作创建一个
streamOptimized磁盘镜像。
克隆卷。
注意
仅当源卷未附加到实例时才支持。
如果 vCenter 版本为 6.0 或更高版本,并且目标卷类型中的附加规范键
vmware:clone_type设置为linked,则 vCenter 中的 vmdk UUID 将不会设置为卷 UUID。
备份卷。
注意
此操作以
streamOptimized磁盘格式创建卷的备份。恢复备份到新的或现有卷。
注意
仅当现有卷不包含快照时才支持。
更改卷的类型。
注意
只有在卷状态为
可用时才支持此操作。扩展卷。
vCenter 中的基于存储策略的配置¶
您可以为支持 OpenStack 实现的计算、镜像服务和块存储组件的 vCenter 数据存储配置基于存储策略的管理 (SPBM) 配置。
在 vSphere OpenStack 部署中,SPBM 使您可以委托多个数据存储用于存储,从而降低耗尽存储空间的风险。策略逻辑基于可访问性和可用存储空间选择数据存储。
先决条件¶
确定 SPBM 策略要使用的数据存储。
确定标识 OpenStack 组件配置中数据存储的标签。
为不同的 OpenStack 组件创建单独的策略或数据存储集。
在 vCenter 中创建存储策略¶
在 vCenter 中,创建标识数据存储的标签
从 主页 屏幕,单击 标签。
为标签指定名称。
指定标签类别。例如,
spbm-cinder。
将标签应用于 SPBM 策略要使用的数据存储。
注意
有关在 vSphere 中创建标签的详细信息,请参阅 vSphere 文档。
在 vCenter 中,创建一个基于标签的存储策略,该策略使用一个或多个标签来标识一组数据存储。
注意
有关在 vSphere 中创建存储策略的详细信息,请参阅 vSphere 文档。
数据存储选择¶
如果启用了存储策略,驱动程序最初会选择与关联存储策略匹配的所有数据存储。
如果两个或多个数据存储匹配存储策略,驱动程序将选择连接到最多主机的那个数据存储。
在出现平局的情况下,驱动程序将选择空间利用率最低的数据存储,其中空间利用率由 (1-freespace/totalspace) 指标定义。
这些操作减少了在将卷附加到实例时卷迁移的数量。
如果实例的 ESX 主机无法访问包含该卷的数据存储,则必须迁移该卷。