公共云和私有云使现代企业能够摆脱传统的容易出错的架构,并以五个九和九个九的可用性运行应用程序。业务应用程序可以按需,即时且经济高效地进行调整。数据库应用程序一直是所有企业基础架构的关键组件,但在利用云的强大功能时,这些应用程序和关系数据库仍有很长的路要走。由于被设计为大型单片应用程序,当您尝试以可扩展的方式可靠地运行它们时,它们提出了重大挑战。
我们创建了一个演示,展示了Hedvig如何实现私有云和混合云数据库的可靠部署。在本演示中,我们将介绍运行数据库,高可用性数据库和测试/开发数据库的两种方案。您可以在本文末尾找到指向实际演示的链接。随意跳过阅读细节,并跳转到演示。
我们将从Hedvig的双层架构快速展示。有关更多架构详细信息,请在此处下载Hedvig的技术概述白皮书。
演示设置
Hedvig Cluster
- 数据中心
Hedvig集群横跨三个数据中心,其中两个是本地(DC1和DC2),另一个是云(Azure)。每个数据中心有三个存储节点(west1 / 2/3,east1 / 2/3,azurenode1 / 2/3),每个节点都连接有多个存储磁盘。Hedvig Web UI可用于显示所有磁盘,节点和数据中心,以及存储参数,例如群集大小,可用空间,已用空间,重复数据删除节省等。 - 存储代理
每个数据中心中的一个存储代理负责在相应数据中心中运行的应用程序的Hedvig卷I / O操作。这些存储代理可以将Hedvig卷呈现给可以访问存储代理的iSCSI目标端口的任何本地或远程客户端。
数据库客户端
主动/被动对
对于生产数据库演示,我们使用corosync和pacemaker在两个不同的数据中心中设置两个Linux客户端(dbclient1.dc1,dbclient2.dc2)作为主动/被动对。这些客户端上的MySQL数据库实例由corosync进程管理,这保证了在任何时间点只有一个数据库实例在活动客户端上运行。第三个远程客户端使用VIP(虚拟IP)访问活动客户端,以便当活动客户端发生故障并且被动客户端接管时,远程客户端将继续访问数据库实例而不会中断。
云实例
在Azure云(azureclient)中创建Linux客户端,该客户端可以访问从生产数据库克隆的Test / Dev数据库实例。
高度可用的数据库
我们首先配置Hedvig iSCSI卷并将数据副本设置为DC1和DC2。然后,我们在其上创建一个xfs文件系统,并授予对我们的主动/被动客户端(dbclient1.dc1,dbclient2.dc2)的访问权限。然后将此iSCSI卷安装在mysql目标目录中,以使与MySQL数据库对应的所有数据都驻留在此Hedvig卷中。corosync进程确保只有活动客户端已启动数据库实例。数据库开始运行后,我们在数据库中插入一些条目并停止活动客户端。一旦corosync进程意识到活动客户端发生故障,它就会使用相同的Hedvig卷在被动客户端上启动MySQL数据库。我们可以通过查询活动客户端插入的条目来确认我们的数据库已成功故障转移。
测试/开发数据库
在前面的场景中,我们创建了一个正在生产中由MySQL数据库使用的Hedvig卷。我们将拍摄该卷的快照,克隆它并更改数据驻留参数,以便现在其中一个副本驻留在云(Azure)中。我们将提供对Azure客户端的克隆卷访问,并查询生产数据库插入的条目。此外,将在此克隆数据库中插入新条目,确认生产和克隆数据库并行独立运行。