OpenStack 冗余 Ceph/Cinder 存储架构

OpenStack 冗余 Ceph/Cinder 存储架构

大家好,Serverfault 社区,
我目前正在设计一个 OpenStack 集群。目前我遇到的问题就是存储架构。

我考虑在不同的机架上构建两个冗余的 Ceph 集群,使用不同的保险丝和 UPS。到目前为止一切顺利。问题是,Openstack Cinder 通过网络与 Ceph 通信。即使我安装了冗余交换机,如果 Ceph 网络的路由器/网关发生故障怎么办。因此,为了实现完全冗余,我需要两个冗余网关,对吗?

我对要做的事情做了一个抽象的描述:存储架构

在左侧,您可以看到 OpenStack Compute 节点,每个节点都通过两个单独的 10GE 链路连接到每个交换机。这些交换机通过 2x 10GE 中继连接到每个专用 Ceph 集群交换机,这些交换机彼此连接,因此 Ceph 节点可以相互通信以实现冗余。请注意,即使我使用了不同的颜色,整个网络拓扑也位于一个 VLAN 中。

从我的角度来看,一切都可能失败,而集群仍将正常运行。但是,如果存储网络的网关发生故障怎么办?那么我猜只要交换机缓存了 MAC ARP 条目,它就会工作,但是当它们过期时,集群就会关闭。您对如何使集群完全冗余并对其进行优化有什么建议吗?

我只关注 OpenStack 的存储组件,因此计算节点尚未连接到网络节点或管理网络。

谢谢

答案1

对于您问题中的 CEPH 部分:CEPH 使用 CRUSH 映射来决定存储对象的位置,您可以自定义它。使用 OSD 所属的机架进行标记并防止将同一对象的副本存储在同一机架中实际上非常常见。有关更多信息,请查看这里。因此,您不需要两个单独的 CEPH 集群。对于网络配置,CEPH 节点应位于可从 Cinder 节点访问的“集群网络”中,并具有用于 OSD 之间复制的私有集群网络。

至于 Cinder:是的,如果 Cinder 出现故障,您将失去访问权限。因此,您需要在 HA 配置中部署 Cinder。

相关内容