Openstack使用MYSQL作为后端,用于持久化服务架构和各种工件(节点,角色,网络,安全组等)的状态。持久性存储的事务强度不是那么“密集”,因此NoSQL通常是一个不错的选择。以下是一些优点/缺点:
优点:
- 持久性存储开箱即用的高可用性
- 实时水平可伸缩性
- 考虑到Cassandra
的大型原理图范围和可扩展性,更好的多租户
- 支持分析:坐在NoSQL商店上,在openstack中引入分析功能变得更加直接
CONS:
- 代码重新设计:openstack的代码以关系数据库模型为中心。迁移到NoSQL需要对所有openstack项目/代码进行相关的重新设计,并且需要引入cassandra中的模型索引以允许关联数据。这样的变化通常需要时间,思考和稳定性
- 比Mysql更复杂的管理/维护
- 数据冲突的可能性:Cassandra有一个最终一致的模型,但是,鉴于并发交易使用openstack,这不应该是一见钟情
- 性能,虽然再次,因为openstack不是真正的“事务性”,并且因为它有自己的性能问题(基于python的代码和服务),所以这也不应该是一个大问题。