Openstack平台列表缓存概要设计

2022-01-04  本文已影响0人  LC0127

问题描述

当OpenStack集群部署规模大,资源数量多时(虚机资源,镜像资源,云硬盘资源,网络,子网,Port资源等)越来越多时, 浏览器前端列表显示随着资源增大会越来越慢。目前前端列表都是在前端JS分页,列表的API都是返回所有数据。

方案提议

缓存数据结构

key value 说明
instance_uuids [uuid1, uuid2…] value为所有云主机uuid列表
instance_tenant_uuid1 [uuid1, uuid2…] key的末尾的uuid为租户uuid, value为对应租户下所有云主机 uuid列表
uuid1 {...} value为uuid1对应云主机的数据

项目剖析

FAQ
[1] OpenStack中某些操作缺失notification(eg:nova删除错误虚机时不会发送port.delete.end的notification,会导致neutron中port数据没删除)
解决方案:

  1. 删除错误虚机时,cache的nova plugin收到instance.delete.end消息时判断虚机状态,如果是error望neutron plugin的queue中放入一个port.delete.end msg(使用该方案)
  2. sqlalchemy中添加trigger,这样可以不通过notification来更新缓存中数据
上一篇下一篇

猜你喜欢

热点阅读