Atom feed of this document
  

 配置多后端存储

当您配置了多存储后端,您可以创建一些后端存储解决方案,服务于同一个 OpenStack 计算配置,并为每个后端存储或后端存储池启动一个 cinder-volume

在一个多存储后端的配置中,每个后端都有一个名称 (volume_backend_name)。一些后端可以有相同的名称。在这个情况下,调度器会适当地决定使用哪个后端来创建卷。

后端的名称声明为一个额外指定的卷类型 (例如,volume_backend_name=LVM_iSCSI)。当卷创建后,调度器根据用户指定的卷类型选择一个合适的后端来处理请求。

 激活后端多存储

要启用多存储后端,您必需设置 cinder.conf 文件中的 enabled_backends 标签。这个标签定义了不同后端的配置组的名称 (以逗号隔开):一个名称关联到一个配置组后端 (例如,[lvmdriver-1])。

[注意]注意

配置的组名和volume_backend_name没有关联。

[注意]注意

在一个已有 cinder 服务设置了 enabled_backends 标签后并重启块设备存储服务后,原来的 host 服务被新的 host 服务所代替。新服务会以一个类似于 host@backend 的名称出现。使用:

$ cinder-manage volume update_host --currentname CURRENTNAME --newname CURRENTNAME@BACKEND

来将当前的块设备转换为新的主机名称。

配置组的选项必须在组中 (或默认使用选项中) 定义。所有的标准块设备存储配置选项 (volume_groupvolume_driver 等) 都可以在配置组中使用。[DEFAULT] 配置组中的配置值没有被使用。

这些例子展示了三个后端:

enabled_backends=lvmdriver-1,lvmdriver-2,lvmdriver-3
[lvmdriver-1]
volume_group=cinder-volumes-1
volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver
volume_backend_name=LVM_iSCSI
[lvmdriver-2]
volume_group=cinder-volumes-2
volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver
volume_backend_name=LVM_iSCSI
[lvmdriver-3]
volume_group=cinder-volumes-3
volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver
volume_backend_name=LVM_iSCSI_b

在这个配置中,lvmdriver-1lvmdriver-2 有相同的 volume_backend_name。如果一个卷的创建请求 LVM_iSCSI 后端名称,调度器会使用容量过滤调度器来选择最合适的驱动,即 lvmdriver-1lvmdriver-2。容量过滤调度器是默认启用的。下一个小节提供了更多相关信息。另外,这个示例使用了 lvmdriver-3 后端。

[注意]注意

对于支持多路径的 Fiber Channel 驱动,配置组需要 use_multipath_for_image_xfer=true 选项。在下面的示例中,您可以看到 HP 3PAR 和 EMC Fiber Channel 驱动的详细信息。

[3par]
use_multipath_for_image_xfer = true
volume_driver = cinder.volume.drivers.san.hp.hp_3par_fc.HP3PARFCDriver
volume_backend_name = 3parfc

[emc]
use_multipath_for_image_xfer = true
volume_driver = cinder.volume.drivers.emc.emc_smis_fc.EMCSMISFCDriver
volume_backend_name = emcfc

 配置块存储多个后端调度

你要使用多存储后端的话必须启用filter_scheduler。过滤调度器:

  1. 后端的过滤器是可用的。默认情况下,启用的有AvailabilityZoneFilter, CapacityFilter 以及 CapabilitiesFilter

  2. 权衡预先过滤的后端。默认情况下,CapacityWeigher 是启用的。如果这个选项启用,那么过滤调度器会分配最高权重给拥有最多可用容量的后端。

调度器使用过滤器和权重来挑选最佳后端来应答请求。调度器使用卷类型来明确指定后端来创建卷。

 卷类型

在使用之前,一个卷的类型在块存储中声明。这可由下面的命令来完成:

$ cinder --os-username admin --os-tenant-name admin type-create lvm

然后,创建一个额外的说明,关联到卷的类型到后端的名称,运行此命令:

$ cinder --os-username admin --os-tenant-name admin type-key lvm set volume_backend_name=LVM_iSCSI

此例创建了一个lvm卷类型,volume_backend_name=LVM_iSCSI是其额外的说明。

创建另外的卷类型:

$ cinder --os-username admin --os-tenant-name admin type-create lvm_gold
$ cinder --os-username admin --os-tenant-name admin type-key lvm_gold set volume_backend_name=LVM_iSCSI_b

此处第二个卷类型的名称是 lvm_gold,后端的名称是LVM_iSCSI_b

[注意]注意

要列出额外的特定的内容,使用此命令:

$ cinder --os-username admin --os-tenant-name admin extra-specs-list
[注意]注意

如果在块存储的配置中卷类型指向的volume_backend_name不存在,filter_scheduler就会返回无法找到合法的合适的后端主机的错误。

 用量

当你创建一个卷的时候,你必须制定卷的类型。卷类型的额外说明用于决定使用那个后端。

$ cinder create --volume_type lvm --display_name test_multi_backend 1

考虑到之前cinder.conf的描述,调度器在lvmdriver-1lvmdriver-2之上创建卷。

$ cinder create --volume_type lvm_gold --display_name test_multi_backend 1

此第二个卷创建到了lvmdriver-3

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...