繁体   English   中英

openstack cinder 如何在配置两个 ceph 后端池时分配没有特殊类型的卷

[英]how openstack cinder distribute volume without special type while configure two ceph backend pools

我发现cinder-volume根据它们的虚拟或实际可用容量将卷分配到池中,同时请求创建一个没有特殊卷类型的新卷并且有两个或更多后端池而没有设置default_volume_type配置选项。

实际上,在我的例子中,有一个ceph_common池为MAX AVAIL保留30 TiB ,另一个是ceph_specs池,为MAX AVAIL保留10 TiB ,它将在ceph_specs池中创建一个新卷,同时创建没有卷类型作为openstack volume create --size 10 test_vol_without_type

我已经从这些链接中进行了检查,但无法获得任何线索:

谁能给点建议? 这种情况的原理是什么? 谢谢。

根据默认的cinder.conf ,有两个步骤(filter 和 weight)来确定分配卷的主机。

# Which filter class names to use for filtering hosts when not specified in the
# request. (list value)
#scheduler_default_filters = AvailabilityZoneFilter,CapacityFilter,CapabilitiesFilter

# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
  • 1,我们使用默认可用区,并没有定义特殊卷类型来创建新卷,所以AvailabilityZoneFilterCapabilitiesFilter返回True
  • 2、在CapacityFilter中,如果有足够的容量创建卷的大小,它会为主机返回True
total_physical_capacity * max_over_subscription_ratio - backend_provisioned

total_physical_capacity:     the pool TOTAL size get by `ceph df` command
max_over_subscription_ratio: Default ratio is 20.0, meaning provisioned capacity can be 20 times of the total physical capacity
backend_provisioned:         the pool PROVISIONED TOTAL size get by `rbd du -p pool_name`
  • 3、在CapacityWeigher中,将select最可用的容量主机部署卷。

所以在某些情况下似乎随机将新卷分发到不同的后端池。 实际上,这是因为CapacityWeigher

如何解决我的问题:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM