Google Cloud 上的 IBM Db2 Warehouse 部署策略

本文档是一个多部分文档系列的第一部分,该系列讨论在 Google Cloud 上部署 IBM Db2 Warehouse 的选项。本部分简要介绍了 DB2 Warehouse 及其用途、规划部署时需要考虑的重点以及部署选项。
该系列包括以下部分:

简介

IBM Db2 Warehouse 是使用 Docker 容器部署的分析数据仓库。Db2 Data Warehouse 提供可扩缩的数据库内分析、内存处理和对数据应用的支持。

术语

以下术语对于了解 Google Cloud 上的 Db2 Warehouse 部署非常重要。

数据节点
任何 Db2 IBM Warehouse 集群成员。
头节点
一个被指定的数据节点,该数据节点运行管理网页控制台并充当集群管理器。每个集群中只有一个头节点。
IBM Db2 Warehouse 集群
作为一个 IBM Db2 warehouse 实例运行的一组机器,对其进行配置以用于连接、领导者选举、故障转移和扩缩。集群由一个头节点和两个或多个另外的数据节点组成。
共享文件系统
在所有集群集节点上作为读写资源挂载的文件系统。Db2 Warehouse 集群必须具有共享文件系统。

什么情况下在 Google Cloud 上部署 IBM Db2 Warehouse

在以下情况下,您可以考虑在 Google Cloud 上部署 Db2 Warehouse:

  • 您已在本地或其他云提供商处运行 Db2 Warehouse,并且您希望将工作负载移动(“直接迁移”)到 Google Cloud,而无需迁移到其他数据仓库产品。
  • 您正在考虑进行混合部署,用于灾难恢复或提高可用性。
  • 您已经在使用 Db2 Warehouse,并希望利用团队的技能和经验为新的分析工作负载部署数据仓库。

Db2 Warehouse 集群的概要架构

下图展示了一个典型的 Db2 Warehouse 部署。部署包括一个头节点、两个数据节点和共享文件系统,还包括交互式用户登录和应用连接。

在 GCP 上部署 Db2 Warehouse 的概要架构

以下内容对所有 Db2 Warehouse 部署都适用:

  • Db2 Warehouse Docker 映像是从 Docker Store 获取的。部署新实例(例如扩缩)以及需要将现有实例升级到新版本的 Db2 Warehouse 时都需要这些映像。
  • 需要具备相应的许可才能在生产环境中运行工作负载(除非在免费试用期内)。
  • Db2 Warehouse 集群采用固定网络拓扑,这意味着节点的 IP 地址和 DNS 名称不会随时间变化。如需对集群配置进行更改,必须关闭集群并手动进行配置更新。
  • 您正在使用的共享文件系统必须在所有集群节点上以读写模式挂载。
  • 为便于集群节点进行通信,需要打开多个端口

部署考虑事项

本部分概述了在 Google Cloud 上部署和运行 Db2 Warehouse 的不同选项。

计算资源

本系列教程演示了如何以两种不同的方式在 Google Cloud 上部署 Db2 Warehouse:

何时选择 Compute Engine

Compute Engine 是 IaaS 级别的服务。如果您需要完全控制虚拟化计算资源和网络配置,请选择 Compute Engine。Db2 Warehouse 部署的构建要素是虚拟机。IBM Db2 Warehouse 是一个企业级数据仓库。因此,这种工作负载非常适合这一 IaaS 方式。

何时选择 GKE

GKE 帮助您管理 Kubernetes 集群。Db2 Warehouse 这样的数据仓库工作负载通常不会部署在 GKE 上,因此,要在 GKE 上部署 IBM Db2 Warehouse,您需要对 Kubernetes 有深入的了解。如果您的开发运营团队通常只使用 GKE 进行部署,那么使用 GKE 进行 Db2 Warehouse 部署也是顺其自然的。

存储选项

可为 Db2 Warehouse 选择不同的共享存储系统。例如,您可以选择 NFS 卷、IBM Spectrum Scale File System (GPFS)GlusterFS。 以上每种系统都要求在 Db2 Warehouse 数据节点和共享存储系统之间建立快速可靠的网络连接。

选择共享存储系统时,您应考虑以下事项:

  • 许可和费用。例如,GlusterFS 是一个开源解决方案,而 IBM Spectrum Scale 则要求购买许可。
  • 服务管理。如果您需要全代管式解决方案,则可以选择 Filestore。另一方面,如果您需要能够微调存储解决方案,那么架设自己的 NFS 服务器或使用分布式文件系统可能会更好地满足您的需求。
  • 网络。共享文件系统要求快速可靠的网络,以在集群中的节点之间进行通信。带宽要求是所需读写吞吐量的函数。不同的存储解决方案之间存在一些差异。例如,当您使用远程 NFS 存储时,必须要能够从节点到 NFS 服务器进行快速连接。如果分布式文件系统部署在节点本身上,则与远程 NFS 相比,节点间通信需要更多带宽。
  • 团队经验和技能。如果您的团队对某项技术或解决方案有丰富的经验,从时间和资源的角度考虑,继续使用该技术通常更便宜。
  • 当前工具。如果您已经在使用一个成熟的工具链来管理现有存储解决方案,那么为管理新部署的存储组件提供专用工具链可能会昂贵而且耗时。

在本系列的教程中,您将使用两种不同的存储类型:

  • NFS。您将使用 Filestore,它是一种高性能、全代管式的文件存储服务,具有文件系统接口,可用于共享数据。可以使用网络文件系统 (NFS) 协议访问通过 Filestore 管理的数据卷。
  • GlusterFS,是一个可扩缩的分布式文件系统,具有强大的扩缩和复制能力。它提供多种访问接口,包括 GlusterFS 原生客户端、基于 FUSE 的客户端和 NFS。使用 GlusterFS,您还可以微调环境的存储后端配置(例如,副本数量)。GlusterFS 服务器可以在 Compute Engine 上运行,也可以在 Kubernetes 集群中运行(在这种情况下,服务器在 GKE 中创建和管理)。请注意,在配置 GlusterFS 时,还应配置专用块存储设备,这些设备将由 GlusterFS 守护程序专门管理。

后续步骤