存储容量平衡策略¶
https://blueprints.launchpad.net/watcher/+spec/storage-capacity-balance
目前,Watcher 仅优化计算节点。存储优化对于集中式存储(非分布式存储)也是一项重要的功能。
此规范将添加存储容量平衡策略以平衡存储容量,这也可以被视为平衡存储工作负载的一种方式。我们可以使用现有的目标(workload_balancing)和动作(volume_migrate)来实现此存储容量平衡。
问题描述¶
在当前的数据中心,存储后端容量可能不平衡,有些极高,有些空闲。这种情况会降低 I/O 读取/写入的性能,最终影响 QoS。可以通过存储容量平衡策略解决此问题。
此策略基于 cinder 池的容量利用率迁移卷。当池的容量利用率百分比高于指定阈值时,它会做出迁移卷的决定。卷的迁移应使卷所在池的容量利用率低于存储容量利用率阈值。
用例¶
作为管理员,我希望能够触发一个审计,以将存储容量利用率控制在某个阈值以下。
提议的变更¶
扩展基础策略类,添加一个新的策略 - “存储容量平衡策略”
使用 Cinder 客户端获取状态为可用或正在使用的卷,且没有快照,以及获取配置文件中列出的 exclude_pools 中排除的池之外的所有池。
根据阈值将卷池分为两类:欠载或超载池
under_pools = list(filter(lambda p: float(p.total_capacity_gb) - float(p.free_capacity_gb) < float(p.total_capacity_gb) * threshold, pools)) over_pools = list(filter(lambda p: float(p.total_capacity_gb) - float(p.free_capacity_gb) >= float(p.total_capacity_gb) * threshold, pools))
根据某些因素确定 migrate_volumes、源池和目标池
一个卷是否挂载到虚拟机
卷的大小,
一个卷是否是镜像卷
priority
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
<yumeng-bao>,<li-canwei2>
工作项¶
定义合适的阈值
编写 execute 函数以定位超载池
生成动作:volume_migrate 或 volume_retype 的函数。
依赖项¶
无
测试¶
需要单元测试和功能测试。
文档影响¶
添加关于如何使用此策略的文档。
参考资料¶
无
历史¶
无