[英]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
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`
所以在某些情况下似乎随机将新卷分发到不同的后端池。 实际上,这是因为CapacityWeigher 。
如何解决我的问题:
openstack volume type create --property volume_backend_name='ceph_common' vol_type_common
cinder-api, cinder-scheduler, cinder-volume
等所有cinder组件中配置default_volume_type为vol_type_common 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.