CloudStack 学习小记 3 —— 部署架构介绍

“Hi,这是小5自学 CloudStack 相关知识的第3篇笔记。这期我们将对 CloudStack 的部署架构进行介绍。”

摘要

部署中使用的架构会根据部署的规模和用途而有所不同。以下将包含部署架构示例,包括适用于测试和试用的小规模部署,以及用于生产部署的完全冗余的大规模设置。

  • 小规模部署

小规模 CloudStack 部署的网络架构包含:

1. 防火墙提供与互联网的连接。该防火墙配置为 NAT 模式。防火墙将来自互联网的 HTTP 请求和 API 调用转发到管理服务器。管理服务器位于管理网络中。

2. 二层交换机连接所有物理服务器和存储设备。

3. 单个 NFS 服务器同时充当主存储和辅助存储。

4. 管理服务器已连接到管理网络。


  • 大规模冗余设置

大规模 CloudStack 部署的网络架构包含:

1. 数据中心的核心是三层交换层。应部署路由器冗余协议,例如 VRRP。通常,高端核心交换机还包含防火墙模块。如果三层交换机不具备集成防火墙功能,也可以使用独立的防火墙设备。防火墙配置为 NAT 模式。防火墙提供以下功能:

      1.1 将来自互联网的HTTP请求和API调用转发到管理服务器。管理服务器位于管理网络上。

      1.2 当云跨越多个区域时,防火墙应启用站点到站点 VPN,以便不同区域中的服务器可以直接相互访问。

2. 每个 pod 都建立了一个二层接入交换层。可以堆叠多个交换机来增加端口数量。无论哪种情况,都应该部署冗余的二层交换机对。

3. 管理服务器集群(包括前端负载均衡器、管理服务器节点和 MySQL 数据库)通过一对负载均衡器连接到管理网络。

4. 辅助存储服务器连接到管理网络。

5. 每个 pod 都包含存储服务器和计算服务器。每台存储服务器和计算服务器都应该有冗余网卡,并连接到独立的二层接入交换机。

独立存储网络

在上一节所述的大规模冗余架构中,存储流量可能会导致管理网络过载。部署时可以选择使用独立的存储网络。诸如 iSCSI 之类的存储协议对网络延迟非常敏感。独立的存储网络可以确保客户网络流量争用不会影响存储性能。

多节点管理服务器

CloudStack 管理服务器部署在一个或多个前端服务器上,这些服务器连接到同一个 MySQL 数据库。可选地,可以使用一对硬件负载均衡器来分发来自 Web 的请求。为了增强灾难恢复能力,可以在远程站点部署一个使用 MySQL 复制的备份管理服务器集。

管理员必须决定以下事项:

1. 是否使用负载均衡器。

2. 将部署多少台管理服务器?

3. 是否会部署 MySQL 复制以实现灾难恢复。


  • 多站点部署

CloudStack平台通过区域划分,可以很好地扩展到多个站点。下图展示了一个多站点部署示例。 

数据中心 1 内设有主管理服务器和区域 1。MySQL 数据库实时复制到数据中心 2 中的辅助管理服务器。

此图展示了一种采用独立存储网络的架构。每台服务器有四个网卡,其中两个连接到集群级网络交换机,另外两个连接到存储网络交换机。

配置存储网络有两种方法:
1. 可以为 NFS 部署绑定网卡和冗余交换机。在 NFS 部署中,冗余交换机和绑定网卡仍然会形成一个网络(一个 CIDR 块 + 默认网关地址)。
2. iSCSI 可以利用两个独立的存储网络(两个 CIDR 块,每个块都有自己的默认网关)。多路径 iSCSI 客户端可以在不同的存储网络之间进行故障转移和负载均衡。

此图展示了网卡绑定和多路径 I/O (MPIO) 之间的区别。网卡绑定配置仅涉及一个网络,而 MPIO 涉及两个独立的网络。


  • 虚拟机管理程序

CloudStack 支持多种主流的虚拟机管理程序。云可以完全由运行单一虚拟机管理程序的主机组成,也可以使用多个虚拟机管理程序。每个主机集群必须运行相同的虚拟机管理程序。
您可能已经拥有运行特定虚拟机管理程序的节点,在这种情况下,您已经选择了该虚拟机管理程序。如果是从零开始,则需要确定哪种虚拟机管理程序软件最符合需求。


  • 主存储的虚拟机管理程序支持

不同虚拟机管理程序的存储选项和参数

XenServer 使用集群式 LVM 系统将实例镜像存储在 iSCSI 和光纤通道卷上,并且其虚拟机管理程序不支持过度配置。但是,存储服务器本身支持精简配置。因此,CloudStack 可以通过运行在精简配置的存储卷上来支持存储过度配置。

KVM 支持“共享挂载点”存储。共享挂载点是给定集群中每台服务器的本地文件系统路径。该路径在集群中的所有主机上必须相同,例如 /mnt/primary1。此共享挂载点假定为集群文件系统,例如 OCFS2。在这种情况下,CloudStack 不会像使用 NFS 那样尝试挂载或卸载存储。CloudStack 要求管理员确保存储可用。

使用 NFS 存储时,CloudStack 会管理超额配置。在这种情况下,全局配置参数 storage.overprovisioning.factor 控制超额配置的程度。这与虚拟机管理程序类型无关。

本地存储是 vSphere、XenServer 和 KVM 的主存储选项之一。启用本地磁盘选项后,系统会在每台主机上自动创建一个本地磁盘存储池。要将本地存储用于系统虚拟机(例如虚拟路由器),请在全局配置中将 `system.vm.use.local.storage` 设置为 `true`。

CloudStack 支持集群中存在多个主存储池。例如,您可以在主存储中配置 2 个 NFS 服务器。或者,您可以先配置 1 个 iSCSI LUN,然后在第一个 iSCSI LUN 容量接近饱和时添加第二个 iSCSI LUN。


以上内容主要来自对 docs.cloudstack.apache.org 的学习,在此特别声明。