这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

使用用于云的 vertica

欢迎学习用于云的 vertica 指南。此部分介绍如何创建在不同云平台上运行的 Vertica 群集。它不包括使用存储在云中的现有数据。有关加载数据的信息,请参阅数据加载

本文档假定您熟悉将在其上创建 Vertica 群集的云环境。

1 - 用于 Amazon Web Services 的 Vertica

此部分介绍如何在 AWS 上创建和管理 Vertica 群集。

当您在 AWS 资源上启动群集并准备创建数据库时,请考虑是在 Eon 模式还是 企业模式下运行它。这两种模式的区别在于它们的架构、部署和可扩展性:

  • 企业模式 将数据本地存储在数据库中的节点上。

  • Eon 模式 将其数据存储在 S3 存储桶中。


    Eon 模式将计算过程与数据库的公共存储层分开。通过这种分离,您可以弹性地改变数据库群集中的节点数,以适应不同的工作负载。

    Vertica 通过 AWS Marketplace 提供 CloudFormation 模板 (CFT)。这些 CFT 还部署管理控制台。

有关两种数据库模式之间差异的详细信息,请参阅体系结构

此部分内容

1.1 - Amazon Web Services (AWS) 上 Vertica 的概述

AWS 上的 Vertica 群集可以在使用 CloudFormation 模板自动配置的 EC2 实例上运行,也可以从 Amazon Machine Image (AMI) 手动部署。

可以在 AWS 上的 Vertica 群集中以 Eon 模式或企业模式创建数据库。

有关 Amazon 群集实例及其限制的详细信息,请参阅 Amazon 文档

此部分内容

1.1.1 - CloudFormation 模板

Vertica 通过 AWS Marketplace 提供 Cloud Formation 模板 (CFT)。向模板提供一些参数后,创建一个堆栈,以便自动为 Vertica 系统配置 AWS 资源。

在创建堆栈后,您可以在管理控制台 (MC) 中创建和管理群集和数据库。请参阅 使用 MC 在 AWS 中创建 Eon 模式数据库使用 MC 在 AWS 中创建企业模式数据库

1.1.2 - AWS 上的 Vertica 产品

使用 CloudFormation 模板 (CFT) 概述中所述的许可证模型和 CFT,您可以安装以下 Vertica 产品:

  • Vertica BYOL,Amazon Linux 2.0

  • 按小时计算的 Vertica,Amazon Linux 2.0

  • Vertica BYOL, Red Hat

  • 按小时计算的 Vertica,Red Hat

有关安装这些产品的信息,请参阅使用 CloudFormation 模板启动 MC 和 AWS 资源

1.1.3 - 适用于 AWS 的 Vertica AMI 操作系统

Vertica 在以下操作系统中提供 Vertica 和管理控制台 AMI。

  • Red Hat 7.4 及更高版本

  • Amazon Linux 2.0 及更高版本

可以使用 AMI 部署 MC 主机或群集主机。

1.1.4 - 支持的 AWS 实例类型

Vertica 支持一系列 Amazon Web Services 实例类型,每种类型都针对不同的目的进行了优化。选择最符合您的要求的实例类型。下面的两个表列出了 Vertica 支持用于 Vertica 群集主机以及要在 MC 中使用的 AWS 实例类型。有关详细信息,请参阅有关实例类型和卷的 Amazon Web Services 文档

适用于 Vertica 群集主机的实例类型

每个 Amazon EC2 实例类型本身提供以下存储选项之一:

  • Elastic Block Store (EBS) 提供持久存储:停止实例后,存储在实例上的数据文件仍然存在。

  • 实例存储提供临时存储:停止实例后,存储在实例上的数据文件会丢失。

适用于 MC 主机的实例类型

更多信息

有关 Amazon 群集实例及其限制的详细信息,请参阅 Amazon Web Services 文档中的管理群集

1.1.5 - 选择 AWS Eon 模式实例类型

本主题列出了在 AWS 中运行的 Eon 模式数据库中使用的推荐实例类型。

根据成本和可用性,为您的存储库选择支持临时实例存储或 EBS 卷的实例类型。不一定非要拥有 EBS 支持的存储库,因为在 Eon 模式下,数据的副本安全地存储在公共存储中。Vertica 建议将 r4 或 i3 实例用于生产群集。

下表提供的信息可帮助您决定如何选择具有临时实例存储或纯 EBS 存储的实例。请与 AWS 联系,了解最新的每小时费用。

1.1.6 - Vertica AMI 休眠 C 状态

默认情况下,以下实例在 Vertica AMI 中将其处理器 C 状态设置为值 1:

  • c4.8xlarge

  • d2.8xlarge

  • m4.10xlarge

此度量值旨在通过限制运行 Vertica 的实例使用的休眠状态来提高性能。

有关休眠状态的详细信息,请访问 AWS 文档

1.1.7 - Vertica 支持的 AWS 功能

Vertica 支持以下 AWS 功能:

  • 增强网络:Vertica 建议您使用 AWS 增强网络以获得最佳性能。有关详细信息,请参阅 AWS 文档中的在 VPC 中的 Linux 实例上启用增强网络

  • 命令行界面:将 Amazon 命令行界面 (CLI) 与您的 Vertica AMI 结合使用。有关详细信息,请参阅什么是 AWS 命令行界面?

  • 弹性负载均衡:对长达一小时的查询使用弹性负载均衡 (ELB)。当启用 ELB 时,将计时器配置为 3600 秒。有关详细信息,请参阅 AWS 文档中的弹性负载均衡

1.1.8 - AWS 身份验证

Amazon 定义了两种方法来控制对 AWS 资源的访问(例如 S3):IAM 角色以及 ID、密钥和(可选)会话令牌的组合。对于非公共存储桶的长期访问,您应该使用 IAM 角色来集中进行访问控制。如果要更改应用程序的访问设置,则无需更改应用程序的配置。您只需更改应用于您的 EC2 实例的 IAM 角色。

但是,对于备份和还原数据库或将数据加载到非公共存储桶或从非公共存储桶加载数据等一次性任务,您应该使用 AWS 访问密钥

Vertica 使用这两种身份验证方法来支持不同的功能和用例:

  • Eon 模式数据库对公共存储和编录存储的 S3 访问必须始终使用 IAM 角色身份验证。IAM 角色是 AWS 资源的默认访问控制方法。如果您未配置旧版访问控制会话参数,Vertica 将使用此方法。

  • 单个用户可以从 S3 存储位置而不是 Vertica 用于公共存储的位置读取数据。例如,用户可以使用 COPY 将数据从 S3 存储桶加载到 Vertica,或查询存储在 S3 上的外部表。如果分配给 Vertica 节点的 IAM 角色无权访问此外部 S3 数据,则用户必须在会话变量中设置 ID、密钥和(可选)访问令牌以授权访问该数据。这些会话变量会覆盖服务器上设置的 IAM 角色。有关这些会话参数的列表,请参阅 S3 参数

  • 单个用户可以使用文件导出将数据导出到 S3。文件导出不能使用 IAM 授权。要将数据导出到 S3 的用户必须在会话变量中设置 ID、密钥和(可选)访问令牌值。

配置 IAM 角色

要配置 IAM 角色以授予 Vertica 对 AWS 资源的访问权限,您必须:

  1. 创建一个 IAM 角色以允许 EC2 实例访问特定资源。

  2. 授予该角色访问您的资源的权限。

  3. 将此 IAM 角色附加到 Vertica 群集中的每个 EC2 实例。

要查看 Vertica 群集的 IAM 角色示例,请查看 Vertica 提供的 Cloud Formation 模板之一中定义的角色。您可以从 Amazon 市场中的任何 Vertica 条目下载这些模板。在每个条目的“使用信息 (Usage Information)”部分下,单击“查看 CloudFormation 模板 (View CloudFormation Template)”链接,然后单击“下载 CloudFormation 模板 (Download CloudFormation Template)”。

有关 IAM 角色的详细信息,请参阅 AWS 文档中的适用于 Amazon EC2 的 IAM 角色

1.2 - 使用 CloudFormation 模板安装 Vertica

Vertica 在 AWS Marketplace 上提供 CloudFormation 模板 (CFT),使您能够快速启动并运行群集。使用该模板,您可以自动配置 AWS 资源,并启动 Vertica 群集和管理控制台,只需进行最少的配置。

如果您希望手动部署 VPC、实例和相关资源,请参阅使用手动部署的 AWS 资源安装 Vertica

有关在使用 CFT 创建群集后创建 Eon 模式或企业模式数据库的详细信息,请参阅 MC 中的 Amazon Web Services

1.2.1 - CloudFormation 模板 (CFT) 概述

借助 AWS 上的 Vertica,使用 CloudFormation 模板 (CFT) 通过正在运行的 Vertica 系统轻松管理 AWS 资源的配置。

要访问 Vertica CFT,请转至 AWS Marketplace。CFT 的许可模式包括:

  • 自带许可证 (BYOL):默认情况下,安装免费的 CE 许可证,涵盖 3 个节点和 1 TB 数据。要扩展节点或大小,您可以购买 Vertica BYOL 许可证。
    在 CFT 上的 BYOL 许可证之外,您还可以在没有许可证文件的情况下访问社区版:

    • 如果您使用的是管理控制台,只需将许可证字段留空即可。

    • 如果您使用的是命令行(请参阅使用安装脚本安装 Vertica),请在安装期间在 --license 参数中指定 CE。

  • 按小时:一种即用即付模式,您只需为每个节点使用的小时数付费。使用付费列表的一个优点是,所有费用都会显示在 Amazon AWS 账单上。这提供了购买完整 Vertica 许可证的替代方法。这消除了提前计算潜在存储需求的需要。

可用的 Vertica CFT 包括:

  • 管理控制台,涵盖 3 个 Vertica 节点:部署 Vertica 的最简单方法。默认情况下,此 CFT 部署一个 Eon 模式数据库。但是,这种环境也可以用于创建企业模式数据库。有关详细信息,请参阅创建数据库

  • 将管理控制台部署到新 VPC:此 CFT 部署所有必需的 AWS 资源,并安装 Vertica 管理控制台 (MC)。在堆栈创建完成后,登录到 MC 以配置 Vertica 数据库群集。

  • 将管理控制台部署到现有 VPC:此 CFT 在现有的 VPC 和子网中部署 Vertica 管理控制台 (MC)。在堆栈创建完成后,MC 将可用。登录到 MC,以配置 Vertica 数据库群集或 Eon 模式数据库群集。

    对于此 CFT,您必须先设置 VPC、子网和相关网络资源。有关为 Vertica 正确配置这些资源的详细信息,请参阅 AWS 文档中的以下主题: * 创建虚拟私有云 * 配置网络

有关详细信息

有关这些 CFT 支持的操作系统,请参阅适用于 AWS 的 Vertica AMI 操作系统

有关 AWS 上可用的 Vertica 产品,请参阅 AWS 上的 Vertica 产品

1.2.2 - 使用 CFT 的先决条件

在您可以使用 CloudFormation 模板 (CFT) 在 AWS 上安装 Vertica 之前,请确认您具有:

  • 有权创建 VPC、子网、安全组、EC2 实例和 IAM 角色的 AWS 帐户(有关 AWS 帐户的详细信息,请参阅 AWS 文档

  • 通过 SSH 访问 EC2 实例的 Amazon 密钥对。(有关密钥对,请参阅 AWS 文档。)

1.2.3 - 使用 CloudFormation 模板启动 MC 和 AWS 资源

使用可通过 AWS Marketplace 获得的 CloudFormation 模板 (CFT) 启动 管理控制台 (MC) 及其关联的 AWS 资源。有关可用 CFT 的列表,请参阅 CloudFormation 模板 (CFT) 概述

从 AWS Marketplace 开始,启动可从中安装 Vertica 的配置实例:

  1. 使用 AWS 帐户登录到 AWS Marketplace(请参阅上面的先决条件 一节)。

  2. 在 AWS Marketplace 中搜索“Vertica”。

  3. 选择 Vertica CFT。每个 CFT 都会引导您进入产品概述页面,其中包含定价估算值。(另请参阅 CloudFormation 模板 (CFT) 概述,了解可用模板和产品的概述)。

  4. 单击“继续 (Continue)”以订阅。

  5. 在下一页上,根据部署要求选择启动设置。

  6. 如果您之前未同意 AWS Marketplace 上的 Vertica EULA 条款,请单击“接受软件条款 (Accept Software Terms)”进行订阅。

  7. 单击使用 CloudFormation 控制台启动 (Launch with CloudFormation Console)。此时 CloudFormation 控制台将打开。

  8. CloudFormation 控制台会自动在指定 Amazon S3 模板 URL (Specify an Amazon S3 template URL) 字段中提供 URL。单击下一步 (Next)

  9. 遵循 CloudFormation 工作流,并输入参数(统称为堆栈)。

  10. 在确认您为新堆栈提供的详细信息后,单击创建 (Create)。AWS 控制台会将您带到“堆栈 (Stacks)”页面,您可以在其中查看创建过程的进度。该过程需要几分钟时间。

  11. 输出 (Outputs) 选项卡显示有关在该过程完成后访问环境的信息。

接下来,访问管理控制台 (MC) 以部署群集实例并创建数据库,如访问管理控制台中所述。

1.2.4 - 访问管理控制台

您可以使用 MC 部署 Vertica 群集实例,并创建数据库。还可以使用 MC 管理和监控您的数据库。您将使用管理控制台在刚刚启动的 AWS 资源上配置 Vertica 群集和数据库。

  1. 在 AWS CloudFormation 堆栈页面上,选择新堆栈并查看输出 (Outputs) 选项卡。此选项卡提供有关访问您的环境以及文档和许可资源的信息。

  2. 单击访问 管理控制台 URL。此链接将带您进入 MC 登录页面。

  3. 要登录,输入您使用 CloudFormation 控制台创建的 MC 用户名和密码。

    登录后,MC 会显示主页,其中包含用于配置新群集或数据库或者导入现有群集或数据库的选项。 如果选择的 CFT 也创建数据库,则新数据库也会显示在主页上。

    此页面还提供了一个“资源 (Resources)”部分,其中包含指向在线培训、博客、社区和帮助资源的链接。

您已成功在 AWS 资源上启动管理控制台。

如果您尚未配置 Vertica 群集和数据库,请完成以下过程之一中的步骤:

1.3 - 使用手动部署的 AWS 资源安装 Vertica

Vertica 提供了一个 AMI,您可以在手动部署的 AWS 资源上安装该 AMI。此部分将指导您在 AWS 上配置网络设置、使用 Vertica AMI 启动和准备 EC2 实例,以及在这些 EC2 实例上创建 Vertica 群集。

如果您熟悉如何配置 AWS 并且具有许多具体的 AWS 配置需求,请选择此安装方法。(要改为自动部署 AWS 资源和 Vertica 群集,请参阅使用 CloudFormation 模板安装 Vertica。)

1.3.1 - 配置网络

在创建群集之前,您必须配置将运行 Vertica 的网络。Vertica 需要许多特定的网络配置,才能在 AWS 上运行。除了默认的 Vertica 设置之外,您可能还有特定的网络配置需求。

以下几节介绍了您需要为创建实例配置哪些 Amazon EC2 功能。

1.3.1.1 - 创建放置组、密钥对和 VPC

为 AWS 配置网络的一环是创建以下内容:

创建放置组

放置组是单个可用性区域中实例的逻辑分组。群集需要放置组,并且所有 Vertica 节点必须位于同一个放置组中。

Vertica 建议将放置组用于那些受益于低网络延迟、高网络吞吐量或两者兼有的应用程序。要为放置组提供最低延迟、最高每秒数据包数网络性能,请选择支持增强网络的实例类型

有关创建放置组的信息,请参阅 AWS 文档中的放置组

创建密钥对

您需要一个密钥对,才能使用 SSH 访问实例。使用 AWS 界面创建密钥对,并将密钥 (*.pem) 文件的副本存储在本地计算机上。当访问实例时,需要知道密钥的本地路径。

使用密钥对可以:

  • 以 dbadmin 身份,从群集外部对到实例的连接进行身份验证。

  • 在 AWS 实例上安装和配置 Vertica。

有关创建密钥对的信息,请参阅 AWS 文档中的 Amazon EC2 密钥对

创建虚拟私有云 (VPC)

您在 Amazon 上创建虚拟私有云 (VPC),以便可以创建 EC2 实例的网络。您在 VPC 中的实例都共享相同的网络和安全设置。

AWS 上的 Vertica 群集在逻辑上必须位于同一网络中。创建 VPC 以确保群集中的节点可以在 AWS 中相互通信。

使用以下配置创建单个公共子网 VPC:

有关创建 VPC 的信息,请参阅 AWS 文档中的创建虚拟私有云 (VPC)

1.3.1.2 - 网络 ACL 设置

Vertica 需要在运行 Vertica AMI 的 AWS 实例上进行以下基本网络访问控制列表 (ACL) 设置。Vertica 建议您使用适合您情况的其他 ACL 设置来保护您的网络。

入站规则

出站规则

您可以使用上表中指定的整个端口范围,或者通过输入以下命令查找特定的临时端口:

$ cat /proc/sys/net/ipv4/ip_local_port_range

更多信息

有关 AWS 中网络 ACL 的详细信息,请参考 Amazon 文档中的网络 ACL

有关 AWS 中临时端口的详细信息,请参考 Amazon 文档中的临时端口

1.3.1.3 - 使用 AWS 网络负载均衡器配置 TCP keepalive

AWS 支持三种类型的弹性负载均衡器 (ELB):

经典负载均衡器

应用程序负载均衡器

网络负载均衡器

Vertica 强烈推荐使用 AWS 网络负载均衡器 (NLB),它可以为您的 Vertica 数据库提供最佳性能。网络负载均衡器充当客户端(例如 JDBC)和 Vertica 服务器之间的代理。经典负载均衡器和应用程序负载均衡器在企业模式或 Eon 模式下不适用于 Vertica。

为避免在通过 NLB 连接到 Vertica 时出现超时和挂起,请务必了解 AWS NLB 如何处理连接的空闲超时。对于 NLB,AWS 将空闲超时值设置为 350 秒,您无法更改此值。超时适用于两个连接点。

对于长时间运行的查询,如果客户端或服务器一方未能发送适时的 keepalive,则连接的那一方将被终止。这可能会导致 JDBC 客户端挂起并等待永远不会返回的结果,因为服务器未能在 350 秒内发送 keepalive。

要识别空闲超时/keepalive 问题,请通过 JDBC 等客户端运行如下查询:

=> SELECT SLEEP(355);

如果出现问题,则会发生以下情况之一:

  • 客户端连接在 355 秒之前终止。在这种情况下,请降低 JDBC keepalive 设置,以便 keepalive 的发送间隔小于 350 秒。

  • 客户端连接在 355 秒后不返回结果。在这种情况下,您需要调整服务器 keepalive 设置(tcp_keepalive_time 和 tcp_keepalive_intvl),以便 keepalive 的发送间隔小于 350 秒。

有关 AWS 网络负载均衡器的详细信息,请参阅 AWS 文档中的什么是网络负载均衡器?

1.3.1.4 - 创建和分配 Internet 网关

当创建 VPC 时,会自动为其分配 Internet 网关。您可以使用该网关,也可以分配自己的网关。如果您使用的是默认 Internet 网关,请继续执行创建安全组中所述的过程。

否则,请创建特定于您的需求的 Internet 网关。将该 Internet 网关与您的 VPC 和子网相关联。

有关如何创建 Internet 网关的信息,请参阅 AWS 文档中的 Internet 网关

1.3.1.5 - 分配弹性 IP 地址

弹性 IP 地址是一个不变的 IP 地址,可用于从外部连接到群集。Vertica 建议您将单个弹性 IP 分配给群集中的节点。然后,您可以使用 VPC 设置规定的内部 IP 地址,从主节点连接到群集中的其他节点。

创建弹性 IP 地址。有关信息,请参阅 AWS 文档中的弹性 IP 地址

1.3.1.6 - 创建安全组

Vertica AMI 具有特定的安全组要求。当创建虚拟私有云 (VPC) 时,AWS 会自动创建一个默认安全组,并将其分配给 VPC。您可以使用默认安全组,也可以命名和分配您自己的安全组。

使用以下基本安全组设置,创建并命名您自己的安全组。您可以根据特定的需求进行其他修改。

入站

出站

有关什么是安全组以及如何创建安全组的信息,请参阅 AWS 文档中的适用于 Linux 实例的 Amazon EC2 安全组

1.3.2 - 为 Vertica 数据库群集部署 AWS 实例

配置网络后,您就可以创建 AWS 实例并安装 Vertica。执行以下过程在 AWS 上安装和运行 Vertica。

1.3.2.1 - 配置并启动实例

在 AWS 上配置网络设置后,配置并启动要在其中安装 Vertica 的实例。没有 Vertica AMI 的 Elastic Compute Cloud (EC2) 实例类似于传统主机。与内部部署群集一样,您必须先在硬件级别准备和配置群集和网络,然后才能安装 Vertica。

当您使用 Vertica AMI 在 AWS 上创建 EC2 实例时,该实例包括 Vertica 软件和推荐的配置。Vertica 建议您使用未经修改的 Vertica AMI。Vertica AMI 充当模板,需要较少的配置步骤:

  1. 配置 EC2 实例

  2. 向实例添加存储

  3. (可选)将 EBS 卷配置为 RAID 阵列

  4. 设置安全组和 S3 访问权限

  5. 启动实例并验证它们是否正在运行。

在 AWS 中配置 EC2 实例

  1. 从 AWS Marketplace 中选择 Vertica AMI。

  2. 选择所需的实现方法。

  3. 配置以下内容:

向实例添加存储

向实例添加存储时,请考虑以下问题:

  • 添加与实例中物理核心数相等的驱动器数量,例如,对于 c3.8xlarge 实例,添加 16 个驱动器;对于 r3.4xlarge,添加 8 个驱动器。

  • 请勿将您的信息存储在根卷上。

  • Amazon EBS 提供持久的块级存储卷,您可以将其附加到正在运行的实例。有关选择和配置 Amazon EBS 卷类型的指导,请参阅 Amazon EBS 卷类型

将 EBS 卷配置为 RAID 阵列

您可以将 EBS 卷配置为 RAID 0 阵列以提高磁盘性能。在执行此操作之前,请使用 vioperf 实用程序来确定 EBS 卷的性能是否足够快,而无需在 RAID 阵列中使用它们。向 vioperf 传递指向 EBS 卷的挂载点的路径。在此示例中,EBS 卷挂载到名为 /vertica/data 的目录中:

[dbadmin@ip-10-11-12-13 ~]$ /opt/vertica/bin/vioperf /vertica/data

The minimum required I/O is 20 MB/s read and write per physical processor core on
each node, in full duplex i.e. reading and writing at this rate simultaneously,
concurrently on all nodes of the cluster. The recommended I/O is 40 MB/s per
physical core on each node. For example, the I/O rate for a server node with 2
hyper-threaded six-core CPUs is 240 MB/s required minimum, 480 MB/s recommended.

Using direct io (buffer size=1048576, alignment=512) for directory "/vertica/data"

test      | directory     | counter name        | counter | counter   | counter       | counter       | thread | %CPU  | %IO Wait  | elapsed | remaining
          |               |                     | value   | value (10 | value/core    | value/core    | count  |       |           | time (s)| time (s)
          |               |                     |         | sec avg)  |               | (10 sec avg)  |        |       |           |         |
--------------------------------------------------------------------------------------------------------------------------------------------------------
Write     | /vertica/data | MB/s                | 259     | 259       | 32.375        | 32.375        | 8      | 4     | 11        | 10      | 65
Write     | /vertica/data | MB/s                | 248     | 232       | 31            | 29            | 8      | 4     | 11        | 20      | 55
Write     | /vertica/data | MB/s                | 240     | 234       | 30            | 29.25         | 8      | 4     | 11        | 30      | 45
Write     | /vertica/data | MB/s                | 240     | 233       | 30            | 29.125        | 8      | 4     | 13        | 40      | 35
Write     | /vertica/data | MB/s                | 240     | 233       | 30            | 29.125        | 8      | 4     | 13        | 50      | 25
Write     | /vertica/data | MB/s                | 240     | 232       | 30            | 29            | 8      | 4     | 12        | 60      | 15
Write     | /vertica/data | MB/s                | 240     | 238       | 30            | 29.75         | 8      | 4     | 12        | 70      | 5
Write     | /vertica/data | MB/s                | 240     | 235       | 30            | 29.375        | 8      | 4     | 12        | 75      | 0
ReWrite   | /vertica/data | (MB-read+MB-write)/s| 237+237 | 237+237   | 29.625+29.625 | 29.625+29.625 | 8      | 4     | 22        | 10      | 65
ReWrite   | /vertica/data | (MB-read+MB-write)/s| 235+235 | 234+234   | 29.375+29.375 | 29.25+29.25   | 8      | 4     | 20        | 20      | 55
ReWrite   | /vertica/data | (MB-read+MB-write)/s| 234+234 | 235+235   | 29.25+29.25   | 29.375+29.375 | 8      | 4     | 20        | 30      | 45
ReWrite   | /vertica/data | (MB-read+MB-write)/s| 233+233 | 234+234   | 29.125+29.125 | 29.25+29.25   | 8      | 4     | 18        | 40      | 35
ReWrite   | /vertica/data | (MB-read+MB-write)/s| 233+233 | 234+234   | 29.125+29.125 | 29.25+29.25   | 8      | 4     | 20        | 50      | 25
ReWrite   | /vertica/data | (MB-read+MB-write)/s| 234+234 | 235+235   | 29.25+29.25   | 29.375+29.375 | 8      | 3     | 19        | 60      | 15
ReWrite   | /vertica/data | (MB-read+MB-write)/s| 233+233 | 236+236   | 29.125+29.125 | 29.5+29.5     | 8      | 4     | 21        | 70      | 5
ReWrite   | /vertica/data | (MB-read+MB-write)/s| 232+232 | 236+236   | 29+29         | 29.5+29.5     | 8      | 4     | 21        | 75      | 0
Read      | /vertica/data | MB/s                | 248     | 248       | 31            | 31            | 8      | 4     | 12        | 10      | 65
Read      | /vertica/data | MB/s                | 241     | 236       | 30.125        | 29.5          | 8      | 4     | 15        | 20      | 55
Read      | /vertica/data | MB/s                | 240     | 232       | 30            | 29            | 8      | 4     | 10        | 30      | 45
Read      | /vertica/data | MB/s                | 240     | 232       | 30            | 29            | 8      | 4     | 12        | 40      | 35
Read      | /vertica/data | MB/s                | 240     | 234       | 30            | 29.25         | 8      | 4     | 12        | 50      | 25
Read      | /vertica/data | MB/s                | 238     | 235       | 29.75         | 29.375        | 8      | 4     | 15        | 60      | 15
Read      | /vertica/data | MB/s                | 238     | 232       | 29.75         | 29            | 8      | 4     | 13        | 70      | 5
Read      | /vertica/data | MB/s                | 238     | 238       | 29.75         | 29.75         | 8      | 3     | 9         | 75      | 0
SkipRead  | /vertica/data | seeks/s             | 22909   | 22909     | 2863.62       | 2863.62       | 8      | 0     | 6         | 10      | 65
SkipRead  | /vertica/data | seeks/s             | 21989   | 21068     | 2748.62       | 2633.5        | 8      | 0     | 6         | 20      | 55
SkipRead  | /vertica/data | seeks/s             | 21639   | 20936     | 2704.88       | 2617          | 8      | 0     | 7         | 30      | 45
SkipRead  | /vertica/data | seeks/s             | 21478   | 20999     | 2684.75       | 2624.88       | 8      | 0     | 6         | 40      | 35
SkipRead  | /vertica/data | seeks/s             | 21381   | 20995     | 2672.62       | 2624.38       | 8      | 0     | 5         | 50      | 25
SkipRead  | /vertica/data | seeks/s             | 21310   | 20953     | 2663.75       | 2619.12       | 8      | 0     | 5         | 60      | 15
SkipRead  | /vertica/data | seeks/s             | 21280   | 21103     | 2660          | 2637.88       | 8      | 0     | 8         | 70      | 5
SkipRead  | /vertica/data | seeks/s             | 21272   | 21142     | 2659          | 2642.75       | 8      | 0     | 6         | 75      | 0

如果 EBS 卷读写性能(输出的第 1 列中带有 Read 和 Write 的条目)大于每个物理处理器核心的 20MB/s(第 6 列和第 7 列),则无需将 EBS 卷配置为 RAID 阵列即可满足运行 Vertica 的最低要求。如果性能低于每个物理核心的最佳 40MB/s,您仍然可以考虑将 EBS 卷配置为 RAID 阵列(就像本示例中的情况)。

如果您确定需要将 EBS 卷配置为 RAID 0 阵列,请参阅 AWS 文档主题 Linux 上的 RAID 配置,了解您需要采取的步骤。

安全组和访问权限

  1. 在以前配置的安全组或默认安全组之间进行选择。

  2. 通过创建 IAM 角色并将其分配给 EC2 实例,来配置节点的 S3 访问权限。有关详细信息,请参阅AWS 身份验证

1.3.2.2 - 连接到实例

使用私钥,执行以下步骤以通过您已附加弹性 IP 地址的实例连接到群集:

  1. 作为 dbadmin 用户,通过替换 ssh 密钥键入以下命令:

    $ ssh --ssh-identity <ssh key> dbadmin@elasticipaddress
    
  2. 从导航面板中选择 实例 (Instances)

  3. 选择附加到弹性 IP 的实例。

  4. 单击连接

  5. 连接到您的实例 (Connect to Your Instance) 上,选择以下选项之一:

    • 直接从我的浏览器连接到 Java SSH 客户端 - 在私钥路径 (Private key path) 字段中添加私钥路径,然后单击启动 SSH 客户端 (Launch SSH Client)

    • 使用独立 SSH 客户端连接** - **按照独立 SSH 客户端所需的步骤进行操作。

使用 putty 从 Windows 连接到实例

如果从 Windows 操作系统连接到实例,请使用 Putty:

  1. 使用 PuTTYgen 转换密钥文件。

  2. 使用转换后的密钥(即 *ppk 文件)连接 Putty 或 WinSCP(通过弹性 IP 连接)。

  3. 使用 Putty 或 WinSCP 将密钥文件(*pem 文件)移动到根目录。

1.3.2.3 - 准备实例以形成群集

创建实例后,您需要准备它们以形成群集。通过添加您的 AWS .pem 密钥和 Vertica 许可证来准备您的实例。

默认情况下,每个 AMI 都包含一个社区版许可证。安装 Vertica 后,您可以在以下位置找到许可证:

/opt/vertica/config/licensing/vertica_community_edition.license.key
  1. 作为 dbadmin 用户,将您的 *pem 文件(从本地保存位置)复制到主实例。

    根据您用于复制文件的过程,文件的权限可能会发生更改。如果权限发生更改,install_vertica 脚本将失败,并显示类似以下内容的消息:

    FATAL (19): Failed Login Validation 10.0.3.158, cannot resolve or connect to host as root.
    

    如果您收到失败消息,请输入以下命令更正 *pem 文件的权限:

    $ chmod 600 /<name-of-pem>.pem
    
  2. 将您的 Vertica 许可证复制到主实例,将其放置在主目录或其他已知位置。

1.3.2.4 - 在 AWS 上更改实例

您可以在 AWS 上更改实例类型。例如,您可以将 c3.8xlarge 实例降级到 c3.4xlarge。有关有效 AWS 实例的列表,请参阅支持的 AWS 实例类型

当更改 AWS 实例时,您可能需要:

  • 重新配置内存设置

  • 重置资源池中的内存大小

  • 重置资源池中的 CPU 数量

重新配置内存设置

如果更改为需要不同内存量的 AWS 实例类型,则可能需要重新计算以下内容,然后重置相应的值:

重置资源池中的内存大小

如果您在资源池中使用了绝对内存,则可能需要使用 ALTER RESOURCE POOL 中的 MEMORYSIZE 参数重新配置内存。

重置资源池中的 CPU 数量

如果新实例需要不同数量的 CPU,则可能需要重置 ALTER RESOURCE POOL 中的 CPUAFFINITYSET 参数。

1.3.2.5 - 配置存储

Vertica 建议您将信息(尤其是数据和编录目录)存储在使用受支持的文件系统格式化的专用 Amazon EBS 卷上。/opt/vertica/sbin/configure_software_raid.sh 脚本会自动执行存储配置过程。

在每节点 EBS 卷高达 2TB 的情况下,Vertica 对 Eon 模式进行性能测试。为了获得最佳性能,请将多个 EBS 卷组合为一个 RAID 0 阵列。

有关 RAID 0 阵列和 EBS 卷的详细信息,请参阅 Linux 上的 RAID 配置

确定卷名称

由于存储配置脚本需要使用您要配置的卷名称,因此您必须标识计算机上的卷。以下命令列出了 /dev 目录的内容。搜索以 xvd 开头的卷:

$ ls /dev

组合存储卷

configure_software_raid.sh Shell 脚本将 EBS 卷组合成一个 RAID 0 阵列。

以下步骤使用 configure_software_raid.sh 脚本将 EBS 卷组合为 RAID 0 阵列:

  1. 按如下方式编辑 /opt/vertica/sbin/configure_software_raid.sh Shell 文件:

    1. 注释掉开头的安全 exit 命令。

    2. 将示例卷名称更改为您之前记下的您自己的卷名称。如有必要,添加更多卷。

  2. 运行 /opt/vertica/sbin/configure_software_raid.sh Shell 文件。运行此文件会创建一个 RAID 0 卷,并将其挂载到 /vertica/data

  3. 使用 chown 将新创建的卷的所有者更改为 dbadmin。

  4. 对群集中的每个节点重复步骤 1-3。

1.3.2.6 - 创建群集

在 AWS 上,使用 install_vertica 脚本组合实例并创建群集。检查 AWS 上的我的实例 (My Instances) 页面,以获取当前实例及其关联 IP 地址的列表。运行 install_vertica 时需要这些 IP 地址。

按如下方式创建群集:

  1. 当连接到主实例时,输入以下命令以将实例组合为一个群集。替换您的实例的 IP 地址,并包括您的根 *.pem 文件名。

    $ sudo /opt/vertica/sbin/install_vertica --hosts 10.0.11.164,10.0.11.165,10.0.11.166 \
      --dba-user-password-disabled --point-to-point --data-dir /vertica/data \
      --ssh-identity ~/name-of-pem.pem --license license.file
    
  2. 组合实例后,Vertica 建议从群集中删除 *.pem 密钥以降低安全风险。下面的示例使用 shred 命令删除该文件:

    $ shred name-of-pem.pem
    
  3. 创建一个或多个群集后,创建数据库

有关 install_vertica 脚本及其参数的完整信息,请参阅使用安装脚本安装 Vertica

使用 netcat 实用程序手动检查打开的端口

群集启动并运行后,您可以使用 netcat (nc) 实用程序通过命令行手动检查端口。下面是使用该实用程序检查端口的示例。

在执行此过程之前,请选择群集中两个节点的专用 IP 地址。

下面给出的示例使用具有专用 IP 的节点:

10.0.11.60 10.0.11.61

在您的节点上安装 nc 实用程序。安装后,您可以发出命令从另一个节点检查一个节点上的端口。

  1. 要检查 TCP 端口:

    1. 将一个节点置于侦听模式并指定端口。以下示例显示如何将 IP 10.0.11.60 置于端口 480 的侦听模式。

      [root@ip-10-0-11-60 ~]# nc -l 4804
      
    2. 从另一个节点,运行 nc 以指定您刚刚置于侦听模式的节点的 IP 地址和相同的端口号。

      [root@ip-10-0-11-61 ~]# nc 10.0.11.60 4804
      
    3. 从任一节点输入示例文本,它应该显示在另一个节点上。要在检查端口后取消,请输入 Ctrl+C

    [root@ip-10-0-11-60 ~]# nc -u -l 4804
    [root@ip-10-0-11-61 ~]# nc -u 10.0.11.60 4804
    

1.3.2.7 - 在 AWS 上使用管理控制台 (MC)

管理控制台 (MC) 是一种数据库管理工具,可用于查看和管理群集的各个方面。Vertica 提供了一个 MC AMI,您可以将其与 AWS 一起使用。MC AMI 允许您创建专用于运行 MC 的实例,您可以将该实例连接到 AWS 上新的或现有的 Vertica 群集。您可以随时创建 MC 实例并将其连接到 AWS 群集上的 Vertica。

有关要求和安装 MC 的信息,请参阅安装管理控制台

另请参阅

1.3.2.7.1 - 登录 MC 并管理群集

启动 MC 实例并配置安全组设置后,登录到数据库。为此,请使用在实例创建期间指定的弹性 IP。

通过这一弹性 IP,可以使用标准 MC 过程在 AWS 上管理 Vertica 数据库。

在 AWS 上使用 MC 时的注意事项

  • 由于 MC 已安装在 MC AMI 上,因此 MC 安装过程不适用。

  • 要在 AWS 上卸载 MC,请在终止 MC 实例之前按照“卸载管理控制台”中提供的过程进行操作。

相关主题

1.4 - 将节点添加到云上正在运行的群集

可通过两种方法向 AWS 群集中添加节点:

  • 使用管理控制台

  • 使用 admintools

当您使用 MC 将节点添加到云中的群集时,MC 会配置实例,将新实例添加到现有 Vertica 群集,然后将这些主机添加到数据库中。但是,当您使用 admintools 将节点添加到群集时,您需要自己执行这些步骤,如使用 admintools 添加节点中所述。

使用管理控制台添加节点

在 Vertica 管理控制台中,您可以通过多种方式添加节点,具体取决于您的数据库模式。

对于 Eon 模式数据库,MC 支持以下公共和私有云提供商的子群集和节点管理操作:

对于企业模式下的数据库,MC 支持以下操作:

  • 在 AWS 上的云中:“添加节点 (Add Node)”操作,添加实例 (Add Instance)”操作。

  • 内部部署:“添加节点 (Add Node)”操作。

在 Eon 模式数据库中添加节点

在 Eon 模式数据库中,每个节点都必须属于一个子群集。要添加节点,请始终将它们添加到数据库中的子群集之一:

在 AWS 上的企业模式数据库中添加节点

在 AWS 上的企业模式数据库中,要将实例添加到群集中:

  1. 在 MC 主页上,单击查看基础架构 (View Infrastructure) 以转到基础架构页面。此页面列出了 MC 正在监控的所有群集。

  2. 单击“基础架构 (Infrastructure)”页面上显示的任何群集。

  3. 从显示的对话框中选择查看 (View)管理 (Manage),以查看其群集 (Cluster) 页面。在云环境中,如果 MC 通过云模板进行部署,则该按钮显示“管理 (Manage)”。否则,按钮会显示“查看 (View)”。

  1. 群集管理 (Cluster Management) 页面上的实例列表 (Instance List) 中,单击“添加 (Add)”(+) 图标。

    MC 会将一个节点添加到选定群集中。

使用 admintools 添加节点

此部分概述使用 admintools 管理群集时如何添加节点。每个主要步骤都指向另一个带有完整说明的主题。

步骤 1:开始之前

在将节点添加到群集之前,请确认您已启动并运行 AWS 群集,并且您已经:

  • 创建数据库。

  • 定义数据库架构。

  • 加载数据。

  • 运行 Database Designer。

  • 连接到数据库。

步骤 2:启动新实例以添加到现有群集

执行配置并启动实例中的过程,以创建随后将添加到现有群集中的新实例(主机)。请务必选择您在创建原始实例时选择的相同详细信息(VPC、放置组、子网和安全组)。

步骤 3:将新实例作为群集节点包括在内

当运行 install_vertica 脚本以将新实例作为群集节点包括在内时,您需要 IP 地址。

如果您要配置 Amazon Elastic Block Store (EBS) 卷,请务必先在节点上配置卷,然后再将节点添加到群集。

要将新实例作为节点添加到现有群集:

  1. 配置并启动新实例

  2. 连接到分配给弹性 IP 的实例。如果您需要更多信息,请参阅连接到实例

  3. 运行 Vertica 安装脚本,将新实例作为节点添加到群集中。指定实例的内部 IP 地址和您的 *.pem 文件名。

    $ sudo /opt/vertica/sbin/install_vertica --add-hosts instance-ip --dba-user-password-disabled \
      --point-to-point --data-dir /vertica/data --ssh-identity ~/name-of-pem.pem
    

步骤 4:添加节点

将新实例添加到现有群集后,将它们作为节点添加到您的群集中,如向数据库中添加节点中所述。

步骤 5:重新平衡数据库

将节点添加到数据库后,请始终重新平衡数据库。

1.5 - 从正在运行的 AWS 群集中移除节点

使用以下过程从 AWS 群集中移除实例/节点。

为避免数据丢失,Vertica 强烈建议您在移除节点之前备份数据库。有关详细信息,请参阅备份和还原数据库

此部分内容

1.5.1 - 从数据库中移除主机

在从数据库中移除主机之前,请验证您已经:

  • 备份数据库。

  • 降低数据库的 K-safety。

要从数据库中移除主机:

  1. 当以 dbadmin 身份登录时,启动管理工具。

    $ /opt/vertica/bin/admintools

  2. 主菜单 (Main Menu) 中,选择高级菜单 (Advanced Menu)

  3. 高级菜单 (Advanced Menu) 中,选择群集管理 (Cluster Management)。单击确定 (OK)

  4. 群集管理 (Cluster Management) 中,选择移除主机 (Remove Host(s))。单击确定 (OK)

  5. 选择数据库 (Select Database) 中,选择您计划从中移除主机的数据库。单击确定 (OK)

  6. 选择要移除的主机。单击确定 (OK)

  7. 单击是 (Yes) 确认移除主机。

  8. 单击确定 (OK)。系统会显示一条消息,告诉您主机已被移除。还会发生自动重新平衡。

  9. 单击确定 (OK) 以确认。管理工具会将您带回群集管理 (Cluster Management) 菜单。

1.5.2 - 从群集中移除节点

要从群集中移除节点,请运行 update_vertica 脚本并指定:

  • 选项 --remove-hosts,后跟要移除的节点的 IP 地址。

  • 选项 --ssh-identity,后跟 *pem 文件的位置和名称。

  • 选项 --dba-user-password-disabled

以下示例会从群集中移除一个节点:

$ sudo /opt/vertica/sbin/update_vertica  --remove-hosts 10.0.11.165  --point-to-point  \
  --ssh-identity ~/name-of-pem.pem --dba-user-password-disabled

1.5.3 - 停止 AWS 实例(可选)

从群集中移除一个或多个节点后,为了节省与正在运行的实例相关的成本,您可以选择停止以前属于群集的 AWS 实例。

要停止 AWS 中的实例:

  1. 在 AWS 上,导航到实例 (Instances) 页面。

  2. 右键单击实例,并选择停止 (Stop)

此步骤是可选的,因为从 Vertica 群集中移除节点后,Vertica 不再将该节点视为群集的一部分,即使它仍在 AWS 中运行也是如此。

1.6 - 在 AWS 上升级 Vertica

在升级到最新版本的 Vertica 之前,请执行以下操作:

  1. 备份现有的数据库。

  2. 下载 Vertica 安装包,如下载并安装 Vertica 安装包中所述。

在 AWS 上升级到最新版本的 Vertica

要在 AWS 上升级到最新版本的 Vertica,请按照升级 Vertica 中的说明进行操作。

如果您是第一次在 AWS 上安装 Vertica 群集,请按照在 AWS 上安装和运行的过程进行操作。

升级在 AWS 上运行的 Vertica

Vertica 支持升级在从 Vertica AMI 创建的 AWS 实例上运行的 Vertica 服务器。要升级 Vertica,请按照升级 Vertica 中提供的说明进行操作。

请确保将以下实参添加到升级脚本:

  • --dba-user-password-disabled

  • --point-to-point

1.7 - 在 AWS 上复制和导出数据:须知事项

在 AWS 群集上导出或复制数据时会出现一些常见问题,如下所述。除了这些与 AWS 相关的特定问题外,复制和导出数据的工作原理如数据库导出和导入中所述。

要在 AWS 上复制或导出数据:

  1. 验证是否为源群集和目标群集中的所有节点分配了自己的弹性 IP(或公共 IP)。

    如果目标群集与源群集位于同一 VPC 中,请继续执行步骤 3。一个群集中的每个节点都必须能够与另一个群集中的每个节点进行通信。因此,每个源节点和目标节点都需要分配有一个弹性 IP(或公共 IP)。

  2. (对于非 CloudFormation 模板安装)创建 S3 网关终结点。

    如果您不使用 CloudFormation 模板 (CFT) 来安装 Vertica,则必须在 VPC 中创建一个 S3 网关终端节点。有关详细信息,请参阅 AWS 文档

    例如,Vertica CFT 具有以下 VPC 终端节点:

    "S3Enpoint" : {
        "Type" : "AWS::EC2::VPCEndpoint",
        "Properties" : {
        "PolicyDocument" : {
            "Version":"2012-10-17",
            "Statement":[{
            "Effect":"Allow",
            "Principal": "*",
            "Action":["*"],
            "Resource":["*"]
            }]
        },
        "RouteTableIds" : [ {"Ref" : "RouteTable"} ],
        "ServiceName" : { "Fn::Join": [ "", [ "com.amazonaws.", { "Ref": "AWS::Region" }, ".s3" ] ] },
        "VpcId" : {"Ref" : "VPC"}
    }
    

  3. 验证您的安全组允许 AWS 群集进行通信。

    检查源和目标 AWS 群集的安全组。验证端口 5433 和 5434 已打开。如果 AWS 群集之一位于单独的 VPC 上,请验证网络访问控制列表 (ACL) 允许在端口 5434 上进行通信。

  4. 如果群集之间有一个或多个弹性负载均衡器 (ELB),请验证 ELB 和群集之间的端口 5433 已打开。

  5. 如果使用 Vertica 客户端连接到一个或多个 ELB,则 ELB 仅分发传入连接。数据传输路径发生在群集之间。

2 - Microsoft Azure 上的 Vertica

您可以在以 企业模式Eon 模式运行的 Microsoft Azure 云上部署 Vertica 数据库。在 Eon 模式下,Vertica 使用 Azure 块 Blob 存储以公共方式存储其数据。

此部分介绍如何将 Vertica 数据库部署到 Microsoft Azure。

有关 Azure 的详细信息,请参阅 Azure 文档

2.1 - 从 Azure Marketplace 部署 Vertica

使用 Azure Marketplace 中的 Vertica Analytics Platform 条目在 Microsoft Azure 云中部署 Vertica。Vertica 提供以下部署选项:

  • Eon 模式:部署管理控制台 (MC) 实例,然后从 MC 配置和创建 Eon 模式数据库。有关群集和存储要求,请参阅 Azure 上 Eon 模式的先决条件

  • 企业模式:部署由一个 MC 实例和三个数据库节点组成的四节点企业模式数据库。这需要一个至少具有 12 个核心的 Azure 订阅,用于 Vertica 市场解决方案。

    企业模式部署主要使用 MC 作为监控工具。例如,您不能使用企业模式 MC 配置和创建数据库。有关创建和管理企业模式数据库的信息,请参阅使用管理工具创建数据库

创建部署

Eon 模式和企业模式需要大量相同的信息进行部署。这两种部署类型都不需要的任何信息都会被清楚地标记。

1. 选择部署类型

  1. 登录到您的 Microsoft Azure 帐户。在主页 (Home) 屏幕中,选择 Azure 服务 (Azure services) 下的创建资源 (Create a resource)

  2. 搜索 Vertica Analytics Platform,并从搜索结果中选择它。

  3. Vertica Analytics Platform 页面上,选择以下选项之一:

    • 要部署可以管理 Eon 模式数据库的 MC 实例,请选择 Vertica 数据仓库,Eon BYOL (Data Warehouse, Eon BYOL)

    • 要部署企业模式数据库,请选择 Vertica Analytics Platform

  4. 在下一个屏幕上,选择创建 (Create)

选择部署类型后,将显示创建 Vertica Analytics Platform (Create Vertica Analytics Platform) 页面上的基本 (Basics) 选项卡。

2. 在“基本 (Basics)”选项卡上添加项目和实例详细信息

项目详细信息 (Project details)实例详细信息 (Instance details) 部分中提供以下信息:

  1. 订阅 (Subscription):Azure 会为此订阅的群集资源计费。

  2. 资源组 (Resource group):保存所有 Azure 资源的位置。创建一个新资源组,或从下拉列表中选择一个现有资源组。

  3. 区域 (Region):运行 MC 实例的虚拟机的部署位置。

  4. VerticaManagement 控制台用户 (VerticaManagement Console User):仅限 Eon 模式。MC 的管理员用户名。

  5. 用于操作系统访问的 SSH 公钥 (SSH public key for OS Access):提供与 Vertica 用户 关联的 SSH 公钥,以便通过命令行访问虚拟机。

  6. 用于 MC 访问的密码 (Password for MC Access):输入密码以登录到管理控制台。请注意,管理控制台要求您在初次登录后更改密码。

  7. 确认密码 (Confirm password):重新输入您在用于 MC 访问的密码 (Password for MC Access) 中输入的值。

  8. 选择下一步: 虚拟机设置 (Next: Virtual Machine Settings) >

3. 选择虚拟机设置

虚拟机设置 (Virtual Machine Settings) 选项卡上提供以下信息:

  1. 管理控制台 VM 大小 (Management Console VM size):选择“更改大小 (Change size)”以自定义 VM 设置或选择默认值。有关用例推荐的 VM 类型的列表,请参阅推荐的 Azure VM 类型

  2. Eon 数据库的存储帐户 (Storage account of Eon DB):仅限 Eon 模式。与数据库部署关联的存储帐户。

  3. Vertica 群集节点的数量 (Number of Vertica Cluster nodes):仅限 Enterprise 模式。除了 MC 实例之外,要在群集中部署的节点数。
    社区版 (CE) 许可证会自动应用到群集。此许可证限制为 1 TB 的 RAW 数据 3 个 Vertica 节点。如果在使用 CE 许可证的情况下选择超过 3 个节点,则会在前 3 个节点上创建初始数据库。有关升级许可证的信息,请参阅管理许可证

  4. Vertica 节点 VM 大小 (Vertica Node VM size):仅限 Enterprise 模式。选择要在群集中部署的 VM 类型。使用默认值或选择更改大小 (Change size) 以自定义 VM 设置。有关用例推荐的 VM 类型的列表,请参阅推荐的 Azure VM 类型

  5. 每个节点的总 RAW 存储 (Total RAW storage per node):仅限 Enterprise 模式。从下拉列表中选择每个节点的存储量。每个 VM 都有一组高级数据磁盘,这些磁盘被配置并显示为单个存储位置。

  6. 选择下一步: 网络设置 (Next: Network Settings) >

4. 选择网络设置

网络设置 (Network Settings) 选项卡中提供以下信息:

  1. 虚拟网络 (Virtual Network):托管 Vertica 群集的虚拟网络。创建一个新虚拟网络,或从下拉列表中选择一个现有虚拟网络。
    如果您选择现有虚拟网络,Vertica 建议您已创建用于部署的子网。

  2. 第一个子网 (First subnet):关联虚拟网络 的子网。创建一个新子网,或从下拉列表中选择一个现有子网。

  3. 公共 IP 地址资源名称 (Public IP Address Resource Name):为每个 VM 都配置了一个可公开访问的 IP 地址。此字段允许您指定这些 IP 地址的资源名称,以及它们是静态的还是动态的。第一个公共 IP 地址资源完全按照输入的内容创建,并与 VerticaManagement 控制台相关联。Azure 会将一个 1 到 16 之间的数字附加到创建的每个其他 Vertica 群集节点的资源名称中。此数字将每个 VM 与资源相关联。

  4. 管理控制台的域名标签 (Domain Name Label for Management Console):因为每个 VM 都有一个公共 IP 地址,所以每个节点都需要一个 DNS 名称。输入名称的前缀。第一个 DNS 名称完全按照输入的内容创建,并与 VerticaManagement 控制台相关联。Azure 会将一个 1 到 16 之间的数字附加到创建的每个 Vertica 群集节点的 DNS 名称。该数字将每个 VM 与资源相关联。Azure 会根据创建群集的位置添加完全限定域名的其余部分。

  5. 选择下一步: 审阅 + 创建 (Next: Review + create) >

5. 在审阅 + 创建时验证

当加载审阅 + 创建 (Review + create) 页面时,Azure 会验证您的设置。通过验证后,请检查您的设置。如果您对选择感到满意,请选择创建 (Create)

部署后访问 MC

成功部署资源后,您将进入主页 (Home) > resources-name > 部署 (Deployments) 上的概述 (Overview) 页面。您必须检索管理控制台 IP 地址和用户名才能登录。

  1. 概述 (Overview) 页面中,选择左侧导航中的输出 (Outputs)

  2. 复制 Vertica 管理控制台 URLVertica 管理控制台用户名

  3. Vertica 管理控制台 URL 粘贴到浏览器地址栏中,然后按 Enter

  4. 根据您的浏览器,您可能会收到安全风险警告。如果您收到警告,请选择高级 (Advanced) 按钮,然后按照浏览器的指示继续进入管理控制台。

  5. 在 VerticaManagement 控制台登录页面中,粘贴 vertica 管理控制台用户名,然后输入您在部署 MC 实例时在基本 (Basics) > 项目详细信息 (Project details) 上输入的用于 MC 访问的密码 (Password for MC Access)

删除资源组

有关 Azure 资源管理器和删除资源组的详细信息,请参阅 Azure 文档

2.2 - 在 Microsoft Azure 上手动部署 Vertica

通过为 Vertica 部署手动创建数据库群集,您可以自定义 VM 以满足您的特定需求。当部署 Vertica 群集以托管 Eon 模式数据库时,您通常需要手动配置 VM。

要开始使用手动步骤在 Azure 中创建 Vertica 群集,您首先需要创建一个 VM。在 VM 创建过程中,您可以创建和配置群集所需的其他资源,这些资源随后可用于您创建的任何其他 VM。

此部分中的主题介绍如何在 Azure 上手动部署 Vertica。

2.2.1 - 推荐的 Azure VM 类型

Vertica 支持一系列 Microsoft Azure 虚拟机 (VM) 类型,每种类型都针对不同的目的进行了优化。作为用户,选择最符合您的性能和价格需求的 VM 类型。

为了在大多数常见情况下获得最佳性能,请使用以下 VM 之一:

2.2.2 - 支持的 Azure 操作系统

为了获得最佳性能,当在 Azure 上部署 Vertica 时,请使用以下操作系统之一:

  • Red Hat 7.3 或更高版本

  • CentOS 7.3 或更高版本。从撰写本文(2017 年 6 月)开始,Azure Marketplace 解决方案基于 CentOS 7.3.1611。

有关详细信息,请参阅支持的平台

2.2.3 - 配置并启动新实例

Azure VM 类似于传统主机。与内部部署群集一样,您必须在安装 Vertica 之前为群集和网络准备和配置硬件设置。

最初的步骤包括:

  1. 从 Azure 市场中,选择 Vertica 支持的操作系统。

  2. 选择 VM 类型。请参阅推荐的 Azure VM 类型

  3. 选择部署模型。为获得最佳结果,请选择资源管理器部署模型。

配置网络安全组

Vertica 具有特定的网络安全组要求,如 网络安全组配置中所述。

按照这些指导原则,创建并命名您自己的网络安全组。

您必须将 SSH 配置为:

  • 协议:TCP

  • 源端口范围:任意

  • 目标端口范围:22

  • 来源:任意

  • 目标:任意

您可以根据特定的要求进行其他修改。

添加磁盘容器

创建一个 Azure 存储帐户,该帐户稍后包含群集存储磁盘容器。

为了获得最佳吞吐量,请选择“高级存储 (Premium storage)”,并根据所选的 VM 类型调整存储。

有关存储帐户是什么以及如何创建存储帐户的详细信息,请参阅关于 Azure 存储帐户

对于企业模式数据库部署,请配置足够的空间。

配置凭据

创建密码或分配 SSH 密钥对以用于 Vertica。

有关如何在 Azure 中使用密钥对的信息,请参阅如何在 Azure 中为 Linux VM 创建和使用 SSH 公钥和私钥对

分配公共 IP 地址

公共 IP 是可用于从外部连接到群集的 IP 地址。为了获得最佳结果,请将单个静态公共 IP 分配给群集中的节点。然后,您可以使用 Azure 在您指定虚拟网络设置时生成的内部 IP 地址,从主节点连接到群集中的其他节点。

默认情况下,公共 IP 地址是动态的;每次关闭服务器时它都会更改。您可以选择静态 IP 地址,但这样做会增加部署成本。

在 VM 安装期间,您无法设置 DNS 名称。如果使用动态公共 IP,请在部署后在每个 VM 的公共 IP 资源中设置 DNS 名称。

有关公共 IP 地址的信息,请参阅 Azure 中的 IP 地址类型和分配方法

创建额外的 VM

如果需要,要创建其他 VM,请重复本文档中前面的说明。

2.2.4 - 连接到虚拟机

在您可以连接到您创建的任何 VM 之前,您必须先使虚拟网络可以从外部访问。为此,必须将在网络配置期间创建的公共 IP 地址连接到您的 VM 之一。

连接到您的 VM

要连接到您的 VM,请完成以下任务:

  1. 使用在配置步骤中创建的公共 IP 地址,通过 SSH 连接到您的 VM。

  2. 使用在 VM 创建过程中指定的凭据和身份验证方法进行身份验证。

连接到其他 VM

首先使用 SSH 连接到公共连接的 VM,从而连接到虚拟网络中的其他虚拟机。然后,从该 VM 再次使用 SSH 通过其他 VM 的专用 IP 地址进行连接。

如果您使用的是私钥身份验证,则可能需要将密钥文件移动到公共连接的 VM 的根目录中。然后,使用 PuTTY 或 WinSCP 连接到虚拟网络中的其他 VM。

2.2.5 - 准备虚拟机

创建 VM 后,您需要准备它们以形成群集。

添加 Vertica 许可证和私钥

通过将私钥(如果使用的话)添加到每个节点和 Vertica 许可证来准备节点。这些步骤假定您配置的初始用户是 DBADMIN 用户。

  1. 以 dbadmin 用户身份将私钥文件从本地保存位置复制到主节点。

    根据您用于复制文件的过程,文件的权限可能会发生更改。如果权限发生更改,install_vertica 脚本将失败,并显示类似以下内容的消息:

    Failed Login Validation 10.0.2.158, cannot resolve or connect to host as root.
    

    如果收到失败消息,请输入以下命令来更正私钥文件的权限:

    $ chmod 600 /<name-of-key>.pem
    
  2. 将 Vertica 许可证复制到主 VM。将其保存在主目录或其他已知位置。

在 Azure 上安装 Vertica 的软件依赖项

除了进行 Vertica 标准软件包依赖项以外,您还必须以 root 用户身份安装以下软件包,然后才能在 Azure 上安装 Vertica:

  • pstack

  • mcelog

  • sysstat

  • dialog

2.2.6 - 配置存储

使用专用的 Azure 存储帐户进行节点存储。

当配置存储时,请确保使用受支持的文件系统。有关详细信息,请参阅推荐的存储格式类型

将磁盘容器连接到虚拟机 (VM)

使用您先前创建的存储帐户,将磁盘容器连接到所需的 VM。

为获得最佳性能,请将多个存储卷组合到 RAID-0。对于大多数 RAID-0 实施,每个 VM 连接 6 个存储磁盘容器。

组合磁盘容器进行存储

如果您使用 RAID,请按照以下步骤在 VM 上创建 RAID-0 驱动器。以下示例展示了如何从如下 6 个单独的卷中创建一个名为 md10 的 RAID-0 卷:

  • sdc

  • sdd

  • sde

  • sdf

  • sdg

  • sdh

  1. 使用 mdadm 实用程序生成一个 RAID-0 卷:

    $ mdadm --create /dev/md10 --level 0 --raid-devices=6 \
      /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh
    
  2. 将文件系统格式化为 Vertica 支持的文件系统:

    $ mkfs.ext4 /dev/md10
    
  3. 使用 blkid 命令在新生成的 RAID 卷上查找 UUID。在输出中,查找您分配给 RAID 卷的设备:

    $ blkid
     . . .
     /dev/md10 : UUID="e7510a6f-2922-4413-b5fa-9dcd725967fd" TYPE="ext4" PARTUUID="fb9b7449-08c3-4231-9ee5-086f7b0c9001"
     . . .
    
  4. RAID 设备可以在重启后重命名。为确保文件系统挂载在 VM 上的可预测位置,请创建一个目录用作挂载点以挂载文件系统。例如,您可以选择创建一个名为 /data 的挂载点,用于存储数据库的编录和数据或(如果您在 Eon 模式下运行 Vertica)存储库。

    $ mkdir /data
    
  5. 使用文本编辑器,在 /etc/fstab 文件中为文件系统的 UUID 和挂载点添加一个条目,以便在系统启动时挂载它:

    UUID=RAID_UUID mountpoint      ext4    defaults,nofail,nobarrier    0   2
    

    例如,如果您有上一个示例中显示的 UUID 和挂载点 /data,则将以下行添加到 /etc/fstab 文件中:

    UUID=e7510a6f-2922-4413-b5fa-9dcd725967fd  /data      ext4    defaults,nofail,nobarrier    0   2
    
  6. 挂载您添加到 fstab 文件的 RAID 文件系统。例如,要挂载一个名为 /data 的挂载点,请使用以下命令:

    $ mount /data
    
  7. 在挂载点下为您的 Vertica 数据和编录创建文件夹。

    $ mkdir /data/vertica
    $ mkdir /data/vertica/data
    

    如果您计划在 Eon 模式下运行 Vertica,请为存储库(而不是数据)创建一个目录:

    $ mkdir /data/vertica/depot
    

创建交换文件

除了用于存储数据的存储卷,Vertica 还需要交换卷或交换文件才能运行。

创建至少 2 GB 的交换文件或交换卷。以下步骤展示了如何在 Azure 上的 Vertica 中创建交换文件:

  1. 安装 devnull 和交换文件:

    $ install -o root -g root -m 0600 /dev/null /swapfile
    
  2. 创建交换文件:

    $ dd if=/dev/zero of=/swapfile bs=1024 count=2048k
    
  3. 使用 mkswap 准备交换文件:

    $ mkswap /swapfile
    
  4. 使用 swapon 指示 Linux 在交换文件上进行交换:

    $ swapon /swapfile
    
  5. 将交换文件保留在 FSTAB 中:

    $ echo "/swapfile       swap    swap    auto      0       0" >> /etc/fstab
    

对群集中的每个 VM 重复卷附加、组合和交换文件创建过程。

有关详细信息

2.2.7 - 下载 Vertica

要下载适合您的操作系统和许可证类型的 Vertica 服务器,请访问 www.vertica.com/download/vertica

运行 rpm 以提取文件。

完成下载和提取后,下一节将介绍如何使用 install_vertica 脚本形成群集并安装 Vertica 数据库软件。

2.2.8 - 形成群集并安装 Vertica

使用 install_vertica 脚本将两个或多个单独的 VM 组合成一个群集并安装 Vertica 数据库。

开始之前

在运行 install_vertica 脚本之前:

  • 查看 虚拟网络 (Virtual Network) 页面,以获取当前 VM 及其关联私有 IP 地址的列表。

  • 确定您的存储位置。安装程序假定您已将存储挂载到 /vertica/data。要指定另一个位置,请使用 --data-dir 实参。

  • 确定您的存储位置。要在挂载的 RAID 驱动器上创建数据库的 data 目录,请在运行 install_vertica 脚本时,提供 /vertica/data 作为 --data-dir 选项的值。

组合虚拟机 (VM)

以下示例显示如何使用 install_vertica 脚本组合 VM。

  1. 当连接到主节点时,构造以下命令以将节点组合为一个群集。

    $ sudo /opt/vertica/sbin/install_vertica --hosts 10.2.0.164,10.2.0.165,10.2.0.166 --dba-user-password-disabled --point-to-point --data-dir /vertica/data --ssh-identity ~/<name-of-private-key>.pem --license <license.file>
    
  2. 替换 VM 的 IP 地址并包括您的根密钥文件名(如果适用)。

  3. 使用 --point-to-point 参数将 spread 配置为在所有 Vertica 节点之间使用直接的点对点通信。安装或更新 Vertica 时,需对 Azure 上的群集执行此操作。

  4. 如果您使用的是 Vertica 社区版(它限制您只能使用三个节点),请指定 -L CE 而不使用许可证文件。

  5. 合并节点后,为了降低安全风险,请将密钥文件保存在安全的位置(与群集分开)并使用 shred 命令删除群集上的密钥:

    $ shred examplekey.pem
    
  6. 重启群集以完成群集形成和 Vertica 安装过程。

有关 install_vertica 脚本及其参数的完整信息,请参阅使用安装脚本安装 Vertica

2.2.9 - 在群集启动并运行后

现在,您的群集已配置并且正在运行,请执行以下步骤:

  1. 使用数据库管理员帐户(默认名为 dbadmin)登录到其中一个数据库节点。

  2. 创建并启动数据库:

  3. 配置您的数据库。请参阅配置数据库

2.3 - Azure 上的 Eon 模式数据库

您可以在 Azure 上托管的群集上创建 Eon 模式数据库。在此配置中,您的数据库将其数据以公共方式存储在 Azure Blob 存储中。请参阅 Eon 模式,了解有关此数据库模式的详细信息。

Azure 上的 Eon 模式数据库支持 Azure 存储中内置的一些加密功能。您可以透明地使用其静态加密功能,无需配置 Vertica 即可利用它。您可以使用 Microsoft 管理的密钥或客户管理的密钥进行存储加密。Vertica 不支持 Azure 存储的客户端加密和使用客户提供的密钥进行加密。有关 Azure 存储中的静态加密功能的详细信息,请参阅 Azure 文档中的 Azure 数据静态加密页面

此部分介绍如何创建在 Azure 云上运行的 Eon 模式数据库。

2.3.1 - Azure 上 Eon 模式的先决条件

在 Azure 上创建 Eon 模式数据库之前,必须具有数据库群集和 Azure Blob 存储容器来存储数据库的数据。

群集要求

在 Azure 上创建 Eon 模式数据库之前,必须配置一个群集来托管它。有关选择 VM 配置以及群集开始时应使用的节点数的建议,请参阅为 Eon 模式配置 Vertica 群集

存储需求

Azure 上的 Eon 模式数据库将其数据以公共方式存储在 Azure Blob 存储中。Vertica 仅支持用于公共数据存储的块 Blob 存储,不支持追加或页 Blob 存储。

您必须创建供 Vertica 独占使用的存储路径。此路径可以是 Blob 容器,也可以是 Blob 容器中的文件夹。此路径不得包含任何文件。如果您尝试使用包含文件的容器或文件夹创建 Eon 模式数据库,则 admintools 会返回错误。

您使用 azb:// 架构向 Vertica 传递存储路径的 URI。有关此 URI 的格式,请参阅 Azure Blob 存储对象存储

您还必须配置存储容器,以便 Vertica 有权访问它。根据您使用的身份验证方法,您可能需要向 Vertica 提供凭据才能访问容器。Vertica 可以使用以下方法之一对 Blob 存储容器进行身份验证:

  • 使用 Azure 托管标识。这种身份验证方法是透明的,您无需向 Vertica 添加任何身份验证配置信息。Vertica 自动使用绑定到运行它的 VM 的托管标识,来对 Blob 存储容器进行身份验证。有关详细信息,请参阅 Azure 文档中的 Azure AD - Azure 资源托管标识文档页面。

    如果您为其他两种受支持的身份验证方法中的任何一种提供凭据,Vertica 将使用它们,而不是使用绑定到 VM 的托管标识进行身份验证。

  • 使用对 Blob 存储容器具有完全访问权限的服务帐户的帐户名称和访问密钥凭据。在这种情况下,您可以在创建 Eon 模式数据库时向 Vertica 提供凭据。有关详细信息,请参阅创建身份验证文件

  • 使用共享访问签名 (SAS) 授予 Vertica 对存储容器的访问权限。请参阅 Azure 文档中的使用共享访问签名 (SAS) 授予对 Azure 存储资源的有限访问权限。有关详细信息,请参阅创建身份验证文件

有关 Vertica 如何访问 Azure Blob 存储的详细信息,请参阅 Azure Blob 存储对象存储

2.3.2 - 在 Azure 上手动创建 Eon 模式数据库

满足在 Azure 上使用 Eon 模式数据库的群集和存储要求后,就可以创建 Eon 模式数据库了。可以使用 admintools create_db 工具创建 Eon 模式数据库。

创建身份验证文件

如果您的数据库将使用托管标识向 Azure 存储容器进行身份验证,则无需向 create_db 工具提供任何其他配置信息。

如果您的数据库不使用托管标识,则必须向 create_db 提供配置文件中的身份验证信息。它必须至少包含 AzureStorageCredentials 参数,该参数定义 Vertica 将用于访问 Blob 存储的一个或多个帐户名称和密钥。它还可以包含 AzureStorageEnpointConfig 参数,该参数定义要使用的备用终结点,而不是默认 Azure 主机名。如果使用 Azure 存储模拟器(例如 Azurite)创建测试环境,则此选项很有用。

下表定义了可以在这两个参数中设置的值。

AzureStorageCredentials
JSON 对象的集合,其中每个对象指定一个端点的连接凭据。此参数优先于 Azure 托管标识。

该集合必须至少包含一个对象,并且可能会包含多个对象。每个对象必须至少指定 accountNameblobEndpoint 之一,并且至少指定 accountKeysharedAccessSignature 之一。

  • accountName:如果未指定,则使用 blobEndpoint 标签。
  • blobEndpoint:带有可选端口的主机名 (host:port)。如果未指定,则使用 account.blob.core.windows.net
  • accountKey:帐户或端点的访问密钥。
  • sharedAccessSignature:用于更精细访问控制的访问令牌(如果 Azure 端点正在使用)。
AzureStorageEndpointConfig
JSON 对象的集合,其中每个对象指定一个端点的配置元素。每个对象必须至少指定 accountNameblobEndpoint 之一。
  • accountName:如果未指定,则使用 blobEndpoint 标签。
  • blobEndpoint:带有可选端口的主机名 (host:port)。如果未指定,则使用 account.blob.core.windows.net
  • protocol:HTTPS(默认)或 HTTP。
  • isMultiAccountEndpoint:如果端点支持多个帐户,则为 true,否则为 false(默认为 false)。要使用多帐户访问权限,则必须在 URI 中包含帐户名称。如果 URI 路径包含帐户,则系统将假定此值为 true,但显式设置为 false 则除外。

身份验证配置文件是一个包含配置参数名称及其值的文本文件。这些值采用 JSON 格式。该文件的名称并不重要。以下示例使用文件名 auth_params.conf

以下示例是托管在 Azure 上的存储帐户的配置文件。存储帐户名称为 mystore,键值为占位符。在您自己的配置文件中,您必须提供存储帐户的访问密钥。您可以通过右键单击 Azure 存储资源管理器中的存储帐户并选择复制主键 (Copy Primary Key) 来找到此值。

AzureStorageCredentials=[{"accountName": "mystore", "accountKey": "access-key"}]

以下示例显示了一个配置文件,该文件定义了使用 Azurite 存储系统托管在本地系统上的存储容器的帐户。默认情况下,用户帐户和密钥是 Azurite 提供的“已知”帐户。由于此配置使用备用存储终结点,因此它还定义了 AzureStorageEndpointConfig 参数。除了重申帐户名称和终结点定义之外,此示例还将协议设置为非加密 HTTP。

AzureStorageCredentials=[{"accountName": "devstoreaccount1", "blobEndpoint": "127.0.0.1:10000 ",
                          "accountKey":
"Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
                        }]

AzureStorageEndpointConfig=[{"accountName": "devstoreaccount1",
                             "blobEndpoint": "127.0.0.1:10000", "protocol": "http"}]

创建 Eon 模式数据库

可以使用 admintools create_db 工具创建 Eon 模式数据库。您传递给此工具的必需实参包括:

create_db 的其他一些常见可选实参包括:

要查看 create_db 工具的所有实参,请运行以下命令:

admintools -t create_db --help

以下示例演示了如何使用以下设置创建 Eon 模式数据库:

  • Vertica 将使用名为 mystore 的存储帐户。

  • 公共数据将存储在名为 verticadb 的目录中,该目录位于名为 db_blobs 的存储容器中。

  • Vertica 访问存储容器所需的身份验证信息位于当前目录中名为 auth_params.conf 的文件中。此文件的内容显示在创建身份验证文件下的第一个示例中。

  • 群集中节点的主机名是 node01 到 node03。

$ admintools -t create_db \
             --communal-storage-location=azb://mystore/db_blobs/verticadb \
             -x auth_params.conf -s node01,node02,node03  \
             -d verticadb --depot-path /vertica/depot --shard-count 3 \
             -p 'mypassword'

3 - 用于 Google Cloud Platform 的 vertica

欢迎学习用于 Google Cloud Platform 的 vertica 的指南。

Vertica 提供了两个模板来帮助您部署在 企业模式Eon 模式下运行的 Vertica 数据库。有关这些模式的详细信息,请参阅体系结构

以下主题介绍了在 Google Cloud Platform 上运行 Vertica 的几种部署方法。

3.1 - 支持的 GCP 计算机类型

Vertica 分析数据库支持一系列计算机类型,每种都针对不同的工作负载进行了优化。当您将 Vertica 分析数据库群集部署到 Google Cloud Platform (GCP) 时,可以使用不同的计算机类型,具体取决于您配置数据库的方式。

以下部分列出了 Vertica 支持用于 Vertica 群集主机以及用于管理控制台的 GCP 计算机类型。有关计算机类型选项配置的详细信息,请参阅 Google Cloud 文档的计算机类型页面。

可用于 MC 主机的计算机类型

Vertica 支持所有 N1、N2、E2、M1、M2 和 C2 计算机类型来部署实例以运行 Vertica 管理控制台。

可用于 Vertica 数据库群集主机的计算机类型

Vertica 支持所有 N1、N2、E2、M1、M2 和 C2 计算机类型来部署群集主机。

从管理控制台配置的 Vertica 数据库群集主机的计算机类型

下表列出了当您从管理控制台配置群集时 Vertica 支持的 GCP 计算机类型。

3.2 - 从 Google Cloud Marketplace 部署 Vertica

Google Cloud Launcher Marketplace 中的 Vertica 条目可让您在 Google Cloud Platform (GCP) 中快速部署 Vertica 群集。目前,有三个条目可让您选择数据库模式和要使用的许可证:

  • 企业模式启动器部署具有 3 个或更多节点的 Vertica 数据库,以及一个运行 管理控制台 (MC) 的附加 VM。有关详细信息,请参阅在 GCP 中从市场部署企业模式数据库

  • Eon 模式 BYOL(自带许可证)启动器部署单个运行 MC 的实例。您使用此 MC 实例部署在 Eon 模式下运行的 Vertica 数据库。此数据库最初应用了社区版许可证。您可以稍后将其升级为您从 Vertica 获得的许可证。有关详细信息,请参阅在 GCP 上部署 Eon 模式数据库

  • Eon 模式 BTH(按小时)启动器还会部署单个运行用于部署数据库的 MC 的实例。此数据库应用了按小时计算的许可证。您无需预先支付许可证费用,而是按小时支付 Vertica 和运行实例的费用。 BTH 许可证将自动应用于您使用 BTH MC 实例创建的所有群集。 有关详细信息,请参阅在 GCP 上部署 Eon 模式数据库。如果您愿意,则可以将这一每小时许可证升级到从 Vertica 购买的长期许可证。要将 BTH 群集迁移到 BYOL 许可证,请按照将云安装从按小时 (BTH) 计算迁移到自带许可证 (BYOL) 中的说明进行操作,以获取更多信息。

3.2.1 - 在 GCP 中从市场部署企业模式数据库

Vertica Cloud Launcher 解决方案创建一个 Vertica 企业模式数据库。该解决方案包括 Vertica 管理控制台 (MC) 作为您入门的主要 UI。

启动器使用社区版 (CE) 许可证自动创建名为 vdb 的数据库。CE 许可证限制为最多 3 个节点。您可以告诉启动器向您的部署中添加 3 个以上的节点。在这种情况下,它使用群集中的前三个节点来创建数据库。其余节点不是数据库的一部分,而是添加到您的群集中。要将这些节点添加到您的数据库中,您必须将社区版许可证替换为从软件授权支持站点获得的许可证密钥。有关详细信息,请参阅管理许可证

在启动器创建初始数据库后,它会将 MC 配置为自动附加到该数据库。

配置 Vertica Cloud Launcher 解决方案

要从 Google Cloud Launcher 开始部署 Vertica,请搜索 Vertica Data Warehouse, Enterprise Mode 条目。

请遵循以下步骤:

  1. 验证您的用户帐户具有编辑者 (Editor) 角色和 runtimeconfig.waiters.getIamPolicy 权限。

  2. 在列表页面中,单击启动 (LAUNCH)

  3. 在新 Vertica Analytics Platform 部署页面上,输入以下信息:

    • 部署名称 (Deployment name):每个部署必须具有唯一的名称。该名称用作部署期间创建的所有 VM 的名称的前缀。部署名称只能包含小写字符、数字和短划线。该名称必须以小写字母开头,不能以短划线结尾。

    • 分区 (Zone):GCP 将其云数据中心划分为区域和分区。区域是位于同一地理位置的分区的集合。分区是计算资源的集合,这些资源因分区而异。

      为获得最佳效果,请在指定区域中选择支持最新 Intel CPU 的分区。有关区域和分区(包括支持的处理器)的完整列表,请参阅区域和分区

    • 服务帐户:服务帐户允许自动化流程通过 GCP 进行身份验证。选择 project_number-compute@developer.gserviceaccount.com 标识的默认服务帐户。

    • Vertica 管理控制台 (Vertica Management Console) 下,选择将运行管理控制台的虚拟机的配置。Cloud Launcher 中的 Vertica Analytics Platform 始终将 Vertica 管理控制台 (MC) 部署为解决方案的一部分。

      MC 的默认计算机类型足以满足大多数部署的需求。您可以选择更适合任何其他用途的其他计算机类型,例如用作备份、数据转换或其他管理工具的目标节点。

    • Vertica 群集的节点计数 (Node count for Vertica Cluster):要在 Vertica 群集中部署的 VM 总数。默认值为 3。

    • Vertica 群集节点的计算机类型 (Machine type for Vertica Cluster nodes):Cloud Launcher 使用相同的计算机类型构建群集中的每个节点。根据您希望数据库处理的工作负载,修改节点的计算机类型。有关详细信息,请参阅支持的 GCP 计算机类型

    • 数据磁盘类型 (Data disk type):GCP 提供两种类型的永久性磁盘存储:标准和 SSD。与标准存储相关的成本较低,但 SSD 存储的性能要好得多。Vertica 建议您使用 SSD 存储。有关标准和 SSD 永久性磁盘存储的详细信息,请参阅存储选项

    • 磁盘大小 (GB) (Disk size in GB):磁盘性能与 GCP 中的磁盘大小直接相关。默认值 2000 GB (2 TB) 是 SSD 永久性磁盘的最小磁盘大小,可实现最大吞吐量。

      如果选择较小的磁盘大小,则吞吐量性能会降低。如果选择较大的磁盘大小,则性能与 2 TB 选项相同。

    • 网络 (Network):GCP 中的 VM 必须存在于虚拟私有云 (VPC) 上。当创建了 GCP 帐户时,会创建一个默认 VPC。创建额外的 VPC 以将解决方案或项目彼此隔离。Vertica Analytics Platform 在同一个 VPC 中创建所有节点。

    • 子网 (Subnetwork):正如一个 GCP 帐户可能有多个 VPC,每个 VPC 也可能有多个子网。使用其他子网对同一 VPC 中的解决方案进行分组或隔离。

    • 防火墙 (Firewall):如果您希望通过 Internet 访问您的 MC,请选中“允许从 Internet 访问管理控制台 (Allow access to the Management Console from the Internet)”框。Vertica 建议您使用防火墙保护您的 MC,该防火墙将访问限制为仅需要访问它的用户的 IP 地址。您可以输入一个或多个以逗号分隔的 CIDR 地址范围。

输入所有必需信息后,单击部署 (Deploy) 开始部署过程。

监控部署

部署开始后,Google Cloud Launcher 会自动打开“部署管理器 (Deployment Manager)”页面,其中显示了部署状态。仍在处理的项目的左侧有一个旋转的圆圈,文本为浅灰色。已创建的项目为深灰色,左侧有一个指定该资源类型的图标。

部署完成后,屏幕左上角的部署名称旁边会出现一个绿色复选标记。

部署后访问群集

部署完成后,屏幕右侧部分会显示以下信息:

  • dbadmin 密码 (dbadmin password):为节点上的 dbadmin 帐户随机生成的密码。出于安全原因,请在首次登录到其中一个 Vertica 群集节点时更改 dbadmin 密码。

  • mcadmin 密码 (mcadmin password):为用于访问管理控制台的 mcadmin 帐户随机生成的密码。出于安全原因,请在首次登录 MC 后更改 mcadmin 密码。

  • Vertica 节点 1 IP 地址 (Vertica Node 1 IP address):Vertica 群集中第一个节点的外部 IP 地址在此处公开,以便您可以使用标准 SSH 客户端连接到 VM。要访问 MC,请按该对话框的开始 (Get Started) 部分中的访问 Vertica MC (Access Vertica MC) 按钮。复制 mcadmin 密码并在需要时粘贴。

有关使用 MC 的详细信息,请参阅管理控制台

访问群集节点

有两种方法可以直接访问群集节点:

  • 通过选择开始 (Get Started) 部分中的“SSH”按钮,使用 GCP 的集成 SSH Shell。此 Shell 会在浏览器中打开一个弹出窗口,用于运行 GCP 的基于 Web 的 SSH 客户端。您将以您在 GCP 环境中进行身份验证的用户身份自动登录。

    在您有权访问第一个 Vertica 群集节点后,执行 su dbadmin 命令,并使用 dbadmin 密码进行身份验证。

  • 此外,使用其他标准 SSH 客户端直接连接到第一个 Vertica 群集节点。使用屏幕上列出的 Vertica 节点 1 IP 地址作为 dbadmin 用户,并使用 dbadmin 密码进行身份验证。

    按照屏幕上的说明使用 mcadmin 帐户登录并接受 EULA。通过身份验证后,通过单击最近使用的数据库 (Recent Databases) 部分中的 vdb 图标(外观为绿色圆柱体)来访问初始数据库。

通常,您应使用 GCP 部署创建的默认服务帐号 ( project_number-compute@developer.gserviceaccount.com),但如果您想使用自定义服务帐户:

  • 自定义服务帐户必须具有编辑 角色。

  • 个人用户帐户必须在自定义服务帐户中具有服务帐户用户 角色。

3.2.2 - GCP 上的 Eon 模式数据库

您可以使用 Google Cloud Platform Launcher 将 Eon 模式数据库部署到 GCP,以部署管理控制台 (MC) 实例。然后,使用 MC 实例配置和部署 Eon 模式数据库。

3.2.2.1 - GCP Eon 模式实例建议

当使用 MC 将 Eon 模式数据库部署到 Google Cloud Platform (GCP) 时,您可以选择要部署为数据库节点的实例类型。MC 中的默认实例设置是更保守的选项(当前为 n1-standard-16)。它们足以满足大多数工作负载的需求。但是,如果您的查询执行可能会溢出到磁盘的复杂联接,则可以选择具有更多内存的实例(例如 n1-highmem-16)。如果您执行高度复杂的计算密集型分析,则还可以选择具有更多核心的实例(例如 n1-standard-32)。以下链接提供了有关 GCP 计算机类型实例和 Vertica 的其他信息:

您选择的实例越强大,每小时的成本就越高。您需要权衡是要使用更少、功能更强但成本更高的实例,还是要依赖成本更低、功能更弱的实例。由于 Eon 模式的弹性,如果您选择使用功能较弱的实例,则始终可以添加更多节点来满足高峰需求。当您在非高峰时段将实例数量减少到最小值时,您花费的开销将比拥有类似数量的功能更强的实例时要少。

存储选项

MC 的部署向导还要求您为实例选择本地存储类型。您可以为 Vertica 使用的每种本地存储类型选择不同的选项:编录、存储库和临时空间。对于所有这些存储位置,您可以选择要使用的磁盘类型(标准与 SSD)。您会看到使用 SSD 磁盘时性能最佳。但是,SSD 磁盘的成本更高。

对于存储库,您还可以选择是使用本地磁盘还是永久性磁盘。本地选项更快,因为它直接驻留在虚拟机主机上。但是,每当您关闭节点时,此存储都会被清除干净。永久性存储比本地选项慢,因为它不直接存储在托管实例的计算机上。但是,每当您关闭实例时,它都不会被清除。有关详细信息,请参阅 Google Cloud 文档的存储选项页面。

您选择哪些选项取决于节点在启动时必须执行多长时间 存储库预热。如果节点的存储库内容随时间变化不大(或者您倾向于频繁启动和停止实例),则使用永久性存储是有意义的。在这种情况下,存储库预热期会更短,因为当节点启动时,节点参与查询所需的大部分数据可能仍在其存储库中。当节点参与查询时,节点将从公共存储中执行更少的数据提取。

如果您的工作数据集快速变化,或者您倾向于让节点长时间停止,那么最佳选择通常是使用本地存储。在这种情况下,当节点重新启动时,节点存储库中的数据通常是陈旧的。要参与查询,节点必须从公共存储中提取所需的大部分数据,从而导致性能降低,直到它预热了其存储库。在这里使用本地临时存储是有意义的,因为您将获得因存储库的存储速度提高所带来的好处。由于您的节点无论如何都必须预热它们的存储库,因此将存储库放在临时存储上的缺点较少。

有关为 Eon 模式数据库扩展群集的常规指导原则,请参阅为 Eon 模式配置 Vertica 群集

3.2.2.2 - GCP 上 Eon 模式的先决条件

在 GCP 上部署 Eon 模式数据库之前,您必须执行以下几个步骤:

  • 查看 GCP 项目的默认服务帐户的权限。

  • 创建要在创建群集时使用的 HMAC 密钥。

  • 创建公共存储位置。

服务帐户权限

服务帐户允许自动化流程通过 GCP 进行身份验证。Eon 模式数据库部署过程使用 GCP 项目的项目服务帐户来部署实例。当您创建新项目时,GCP 会自动为该项目创建一个默认服务帐户(由 project_number-compute@developer.gserviceaccount.com 标识),并授予其 IAM 角色编辑者。有关此角色和其他 IAM 角色的详细信息,请参阅 Google Cloud 文档的了解角色

编辑者角色允许服务帐户从市场创建资源。当您创建管理控制台 (MC) 的实例时,MC 使用该帐户部署更多资源,例如为数据库配置实例。

有关详细信息,请参阅 Google Cloud 文档的了解服务帐户页面。

权限和角色

要在 GCP 上部署 Vertica,您的用户帐户必须具有:

  • 编辑者 (Editor) 角色。

  • runtimeconfig.waiters.getIamPolicy 权限。

创建 HMAC 密钥

Vertica 使用基于哈希的消息身份验证代码 (HMAC) 密钥对访问公共存储位置的请求进行身份验证。此密钥有两部分:访问 ID 和密钥。当您在 GCP 中创建 Eon 模式数据库时,您需要提供 HMAC 密钥的两个部分供节点用于访问公共存储。

要创建 HMAC 密钥:

  1. 登录到您的 Google Cloud 帐户。

  2. 如果您将用于创建数据库的项目的名称未显示在顶部横幅中,请单击下拉列表并选择正确的项目。

  3. 在左上角的导航菜单中的“存储 (Storage)”标题下,单击存储 (Storage) 并选择设置 (Settings)

  4. 在“设置 (Settings)”页面中,单击互操作性 (Interoperability)

  5. 滚动到页面底部,并找到“用户帐户 HMAC (User account HMAC)”标题。

  6. 除非您已经设置了默认项目,否则您会看到一条消息,指出您尚未为用户帐户设置默认项目。单击设置 project-id 作为默认项目 (Set project-id as default project) 按钮选择当前项目作为默认项目以实现互操作性。

  7. 在您的用户帐户的“访问密钥 (Access keys)”下,单击创建密钥 (Create a key)

  8. 您的新访问密钥将显示在 HMAC 密钥列表中。当您创建 Eon 模式数据库时将需要它们。您可以将它们复制到方便的位置(例如文本编辑器),或使用一个浏览器选项卡打开此页面,同时使用另一个选项卡或窗口创建数据库。这些密钥在此页面上仍然可用,因此您无需担心它们会保存到其他位置。

创建公共存储位置

您的 Eon 模式数据库需要将一个存储位置作为其公共存储。在 GCP 上运行的 Eon 模式数据库使用 Google Cloud Storage (GCS) 作为其公共存储位置。当您创建新的 Eon 模式数据库时,您将为 MC 的向导提供存储位置的 GCS URL。

此位置需要满足以下条件:

  • URL 必须至少包含一个存储桶名称。您也可以使用一个或多个级别的文件夹。例如,以下 GCS URL 是有效的:

    • gs://verticabucket/mydatabase

    • gs://verticabucket/databases/mydatabase

    • gs://verticabucket

    多个数据库可以共享同一个存储桶,只要每个数据库都有自己的文件夹即可。

  • 如果提供,则 URL 中的最低级别文件夹应当尚不存在。例如,在 GCS URL gs://verticabucket/databases/mydatabase 中,必须存在名为 verticabucket 的存储桶和名为 databases 的目录。名为 mydatabase 的子目录不得存在。Vertica 安装过程应该自行创建最终文件夹。如果该文件夹已存在,则安装过程将失败。

  • 必须将存储桶的权限设置为允许服务帐户对存储桶具有读取、写入和删除权限。要获得这些权限,分配给用户的最佳角色是存储对象管理员

  • 为防止出现性能问题,存储桶必须与运行 Eon 模式数据库的所有节点位于同一区域。

  • 如果通过 admintools UI 创建数据库,则必须在 admintools.conf 中将 gcsauth 设置为引导参数。有关此参数和其他 GCP 参数的详细信息,请参阅 Google Cloud Storage 参数

    [BootstrapParameters]
    gcsauth = ID:secret
    

3.2.2.3 - 在 GCP 上部署 Eon 模式数据库

执行 GCP 上 Eon 模式的先决条件中列出的步骤后,您就可以在 GCP 中部署 Eon 模式数据库了。此过程包含两个步骤:部署单节点 MC 实例,然后使用 MC 配置和部署数据库。以下主题介绍了这些步骤。

3.2.2.3.1 - 将 MC 实例部署到 GCP 以用于 Eon 模式

要将能够部署 Eon 模式数据库的 MC 实例部署到 GCP:

  1. 登录到您的 GCP 帐户(如果您当前未登录)。

  2. 验证您的用户帐户具有编辑者 (Editor) 角色和 runtimeconfig.waiters.getIamPolicy 权限。

  3. 验证要用于部署的 GCP 项目的名称是否显示在顶部横幅中。如果没有,请单击项目名称旁边的向下箭头并选择正确的项目。

  4. 单击页面左上角的导航菜单图标,然后选择市场 (Marketplace)

  5. 搜索解决方案 (Search for solutions) 框中,键入 Vertica Eon Mode 并按 Enter。

  6. 单击 Vertica 数据仓库,Eon 模式 (Vertica Data Warehouse, Eon Mode) 的搜索结果。有两个许可证选项:按小时 (BTH) 和自带许可证 (BYOL)。有关此许可证选择的详细信息,请参阅从 Google Cloud Marketplace 部署 Vertica

  7. 在您喜欢的许可证选项上单击启动 (Launch)

  8. 在下一页面上,填写字段以配置您的 MC 实例:

    • 部署名称 (Deployment name):在 GCP 部署页面中标识您的 MC 部署。

    • 区域 (Zone):是运行 MC 实例的虚拟机的部署位置。将此位置设置为与公共存储桶所在的位置相同。

    • 服务帐户:服务帐户允许自动化流程通过 GCP 进行身份验证。选择 project_number-compute@developer.gserviceaccount.com 标识的默认服务帐户。

    • 计算机类型 (Machine Type):是将运行 MC 的实例的虚拟硬件配置。此处的默认值是“中间”设置,足以满足大多数用例。如果您正在进行一个小型的概念验证部署,则可以选择一个功能不那么强大的实例来节省资金。如果您计划部署多个大型数据库,请考虑增加虚拟 CPU 和 RAM 的计数。
      有关 Vertica 的默认卷配置的详细信息,请参阅GCP 的 Eon 模式卷配置默认值

    • 用于访问 MC 的用户名 (User Name for Access to MC):是 MC 的管理员用户名。如果需要,您可以自定义它。

    • 网络 (Network)子网 (Subnetwork):是您希望 MC 实例和 Vertica 节点使用的虚拟私有云 (VPC) 网络和该网络中的子网。此设置不会影响您的 MC 的外部网络地址。如果要将 Vertica 群集与项目中的其他 GCP 实例隔离,请在 GCP 项目中创建自定义 VPC 网络和子网(可选),然后在这些字段中选择它们。有关详细信息,请参阅 Google Cloud 文档的 VPC 网络概述页面。

    • 防火墙 (Firewall):允许通过在防火墙中打开端口 5450 从 Internet 访问 MC。您可以通过清除我接受在防火墙中为 Vertica 打开端口 (5450) (I accept opening a port in the firewall (5450) for Vertica) 框来选择不打开此端口。但是,如果您未在防火墙中打开端口,则只能从 VPC 网络内访问您的 MC 实例。不打开端口将使访问您的 MC 实例变得更加困难。

    • MC 流量的源 IP 范围 (Source IP ranges for MC traffic):如果选择打开 MC 进行外部访问,请将一个或多个 CIDR 地址范围添加到此框中,以指定您希望能够访问 MC 的网络地址。

  9. 单击部署 (Deploy) 按钮开始部署您的 MC 实例。

部署过程将需要几分钟时间。

通常,您应使用 GCP 部署创建的默认服务帐号 ( project_number-compute@developer.gserviceaccount.com),但如果您想使用自定义服务帐户:

  • 自定义服务帐户必须具有编辑 角色。

  • 个人用户帐户必须在自定义服务帐户中具有服务帐户用户 角色。

连接并登录到 MC 实例

在部署过程完成后,MC 实例的“部署管理器 (Deployment Manager)”页面包含通过浏览器或 SSH 连接到 MC 的链接。

要连接到 MC 实例:

  1. MC 管理员用户有一个随机生成的密码,您需要使用该密码登录 MC。将 MC 管理员密码 (MC Admin Password) 字段中的密码复制到剪贴板。

  2. 单击访问管理控制台 (Access Management Console)

  3. 将打开一个新的浏览器选项卡或窗口,向您显示标题为“重定向通知 (Redirection Notic)”的页面。单击 MC URL 的链接以继续进入 MC 登录页面。

  4. 您的浏览器可能会向您显示安全警告。MC 实例使用自签名安全证书。大多数浏览器将这些证书视为安全隐患,因为它们无法验证其来源。您可以放心地忽略此警告并继续。在大多数浏览器中,单击警告页面上的“高级 (Advanced)”按钮,然后选择选项以继续。在 Chrome 中,它是一个标题为“继续* xxx.xxx.xxx.xxx***(不安全) (Proceed toxxx.xxx.xxx.xxx(unsafe))**”的链接。在 Firefox 中,它是一个标有“接受风险并继续 (Accept the Risk and Continue)”的按钮。

  5. 在登录屏幕上的用户名 (Username) 框中输入 MC 管理员用户名。此用户名为 mcadmin,除非您在 MC 部署表单中更改了用户名。

  6. 将您之前从“MC 管理员密码 (MC Admin Password)”字段复制的自动生成的密码粘贴到密码 (Password) 框中。

  7. 单击登录 (Log In)

登录 MC 后,更改 MC 管理员帐户的密码。

要更改密码:

  1. 在 MC 主页的“MC 工具 (MC Tools)”部分下,单击 MC 设置 (MC Settings)

  2. 在左侧菜单中,单击用户管理 (User Management)

  3. 选择 MC 管理员帐户的条目,然后单击编辑 (Edit)

  4. 单击生成新的 (Generate new)编辑密码 (Edit password) 按钮以更改密码。如果单击生成新的 (Generate new) 按钮,请务必将自动生成的密码保存在安全位置。如果单击编辑密码 (Edit password),系统会提示您输入新密码两次。

  5. 单击保存 (Save) 以更新密码。

现在,您已经创建了 MC 实例,可以部署 Vertica Eon 模式群集了。请参阅使用 MC 在 GCP 中配置和创建 Eon 模式数据库

3.2.2.3.2 - 使用 MC 在 GCP 中配置和创建 Eon 模式数据库

将 MC 实例部署到 GCP 后,可以使用它来部署 Eon 模式数据库。

要使用 MC 在 GCP 上配置和部署新的 Eon 模式数据库:

  1. 在 MC 主屏幕中,单击创建新数据库 (Create new database),以启动“在 Google Cloud 上创建 Vertica 群集 (Create a Vertica Cluster on Google Cloud)”向导。

  2. 在该向导的第一页,输入以下信息:

    • Google Cloud Storage HMAC 访问密钥 (Google Cloud Storage HMAC Access Key)HMAC 密钥 (HMAC Secret Key):复制并粘贴您之前创建的 HMAC 访问密钥和秘密访问密钥。您可以在“存储设置 (Storage Settings)”页面的“互操作性 (Interoperability)”选项卡上找到这些值。有关详细信息,请参阅GCP 上 Eon 模式的先决条件

    • 分区 (Zone):此值默认为包含 MC 实例的区域。将此值设置为与 Google Cloud Storage 存储桶(您的数据库将使用该存储桶处理公共存储)所在的区域相同。

    • CIDR 范围 (CIDR Range):您要授予其数据库访问权限的客户端的 IP 地址范围。请尽可能限制此范围,以限制对数据库的访问。

  3. 单击下一步 (Next),并提供以下信息:

    • Vertica 数据库名称 (Vertica Database Name):新数据库的名称。有关数据库名称的要求,请参阅创建数据库名称和密码

    • Vertica 版本 (Vertica Version):选择所需的 Vertica 数据库版本。您可以选择最近发布的 Vertica 的最新修补程序。对于每个数据库版本,还可以选择操作系统。

    • Vertica 数据库用户名 (Vertica Database User Name)数据库超级用户 的名称。此名称默认为 dbadmin,但您可以在此处输入其他用户名。

    • 密码 (Password)确认密码 (Confirm Password):输入数据库超级用户帐户的密码。

    • 数据库大小 (Database Size):初始数据库中节点的数量。如果您在此处指定三个以上的节点,则必须在“Vertica 许可证 (Vertica License)”字段(如下)中提供有效的 Vertica 许可证文件。

    • Vertica 许可证 (Vertica License):单击浏览 (Browse) 以查找并上传 Vertica 许可证密钥文件。如果未在此处提供许可证密钥文件,向导将使用 Vertica Community Edition 许可证来部署数据库。此许可证限制只能有三个节点,因此如果未提供许可证,“数据库大小 (Database Size)”字段中的值不能大于 3。如果使用 Community Edition 许可证进行部署,则可以稍后升级该许可证以将群集负载扩展到超过 1TB 数据。有关详细信息,请参阅管理许可证

    • 加载示例数据 (Load example data):如果您希望部署的数据库加载一些示例点击流数据,请选中此框。如果您正在测试功能且仅想查询数据库中的一些预加载数据,则此选项十分有用。

  4. 单击下一步 (Next),并提供以下信息:

    • 实例类型 (Instance Type):MC 将用来部署数据库节点的虚拟机实例规范。有关每种实例类型的详细信息,请参阅 Google Cloud 文档的计算机类型页面。另请参阅 GCP Eon 模式实例建议

    • 数据库存储库路径 (Database Depot Path)磁盘类型 (Disk Type):存储库的本地挂载点,以及每个节点专用于该 存储库的本地磁盘的类型和数量。您无法更改存储库的挂载路径。您在磁盘类型 (Disk Type) 字段中选择的磁盘仅用于存储存储库。在向导的下一页上,您将为编录和临时磁盘空间配置磁盘。使用 SSD 磁盘时,您将获得最佳性能,不过它的成本会更高。您可以选择为存储库使用更快捷的本地存储。但是,本地存储是短暂的。只要您停止实例,GCP 就会将磁盘擦除干净。这意味着每次启动节点时,它都必须从头开始 预热其存储库,而不是利用其存储库中的当前任何数据。有关本地磁盘选项的详细信息,请参阅 Google Cloud 文档的存储选项页面。

    • 卷大小 (Volume Size):连接到群集中每个节点的每个磁盘上的可用磁盘空间量。此字段显示群集中每个节点的可用总磁盘空间。有关为节点选择磁盘空间量的最佳实践,请参阅为 Eon 模式配置 Vertica 群集

    • 数据分段分片 (Data Segmentation Shards):设置数据库中 分片的数量。设置此值后,以后将无法更改。如需建议,请参阅为 Eon 模式配置 Vertica 群集。默认值取决于您在先前指定的“数据库大小 (Database Size)”中输入的节点数。这通常已足够,除非您预计群集会急剧扩展并超出初始节点数。

    • 公共位置 (Communal Location):一个 Google Cloud Storage URL,用于指定存储数据库公共数据的位置。有关要求,请参阅 GCP 上 Eon 模式的先决条件

    • 实例 IP 设置 (Instance IP settings):指定数据库中的节点是具有可从 Internet 访问的静态或临时网络地址,还是只能从内部虚拟网络内访问的地址。

  5. 单击下一步 (Next)。该向导会验证公共存储位置 URL。如果您输入的 URL 有问题,则会显示错误消息并提示您修复 URL。

    公共存储 URL 通过验证后,请填写以下信息:

    • 数据库编录路径 (Database Catalog Path)磁盘类型 (Disk Type)每个可用节点的大小 (GB) (Size (GB) per Available Node):挂载点磁盘类型,以及每个节点上数据库 编录的本地副本的磁盘大小。您无法编辑挂载点。您选择用于编录的本地磁盘类型及其大小。您只能为编录选择永久性磁盘存储。SSD 驱动器比标准磁盘速度更快,但更昂贵。磁盘大小的默认设置足以满足大多数中型数据库的需求。如果您预计维护大型数据库,请增加大小。

    • 数据库临时路径 (Database Catalog Path)磁盘类型 (Disk Type)每个可用节点的大小 (GB) (Size (GB) per Available Node):挂载点磁盘类型,以及每个节点上临时存储空间的磁盘大小。您无法编辑挂载点。您可以选择要使用的本地磁盘类型及其大小。您只能为临时磁盘空间选择永久性磁盘存储。SSD 驱动器比标准磁盘速度更快,但更昂贵。对于大多数数据库,默认设置已足够。如果您执行许多要溢出到磁盘的复杂合并操作,请考虑增加临时空间。

    • 标签实例 (Label Instances):选中此框以启用向节点实例添加标签。许多组织都会使用标签来安排和跟踪职责并分配实例成本。有关详细信息,请参阅 Google Cloud 文档的标记资源页面。如果您选择添加标签,请输入标签名称和值,然后单击添加 (Add)

  6. 单击下一步 (Next)。查看所有数据库设置的摘要。如果需要进行更正,请使用“返回 (Back)”按钮返回至向导的前几页。

  7. 当您对数据库设置感到满意之后,选中接受条款和条件 (Accept terms and conditions),然后单击创建 (Create)

配置和创建数据库的过程需要几分钟。成功完成后,MC 将显示开始使用 (Get Started) 按钮。此按钮将指向一个包含多个有用链接的页面,帮助您开始使用新数据库。

另请参阅

3.3 - 在 GCP 上手动部署企业模式数据库

在使用手动步骤在 Google Cloud Platform (GCP) 中创建 Vertica 群集之前,您必须从 GCP 的“计算引擎 (Compute Engine)”部分创建一个虚拟机 (VM) 实例。

配置并启动新实例

您创建的所有 VM 实例都应在同一个虚拟公共云 (VPC) 中启动。

要配置并启动新的 VM 实例,请按照以下说明操作:

  1. 在 GCP 的“计算引擎 (Compute Engine)”部分中,从屏幕左侧站点的菜单中选择 VM 实例 (VM Instances)

    GCP 会显示到目前为止您创建的所有 VM 实例。

  2. 选择创建实例 (CREATE INSTANCE) 链接。

  3. 输入新实例的名称。

  4. 选择您计划在其中部署实例的分区。

    GCP 按区域和分区划分其云数据中心。区域是全部位于同一地理位置的分区的集合。分区是计算资源的集合,这些资源因分区而异。始终选择指定区域中支持最新 Intel CPU 的分区。

    有关区域和分区(包括支持的处理器)的完整列表,请参阅区域和分区

  5. 选择计算机类型。

    GCE 提供了许多不同类型的 VM 实例。为获得最佳效果,请仅在具有 8 个或更多 vCPu 且至少 30 GB RAM 的 VM 实例上部署 Vertica。

  6. 选择启动磁盘(映像)。

    您可以从公共映像或自定义映像创建 VM 实例。如果您是第一次在 GCP 中使用 Vertica,请选择 CentOS 7 或 RHEL 7 公共映像。这些映像已经在 Vertica 上进行了全面测试。

    有关部署 VM 实例的详细信息,请参阅创建和启动实例

将 VM 实例配置为用作 Vertica 群集节点后,GCP 允许您将该实例转换为自定义映像。这样做允许您部署该 VM 实例的多个版本;除了节点名称和 IP 地址之外,每个 VM 实例都是相同的。

有关创建自定义映像的详细信息,请参阅创建、删除和弃用自定义映像

连接到虚拟机

在您可以连接到您创建的任何 VM 之前,您必须先确定外部 IP 地址。GCP 的 VM 实例部分包含所有当前部署的 VM 及其关联的外部 IP 地址的列表。

连接到您的 VM

要连接到您的 VM,请完成以下任务:

  1. 使用在配置步骤中创建的外部 IP 地址,通过 SSH 连接到您的 VM。

  2. 使用在创建时提供给 GCP 帐户的凭据和 SSH 密钥进行身份验证。

连接到其他 VM

要连接到虚拟网络中的其他虚拟机:

  1. 通过 SSH 连接到公共连接的 VM。

  2. 从该 VM 再次使用 SSH 通过其他 VM 的专用 IP 地址进行连接。

由于 GCP 强制使用私钥身份验证,您可能需要将密钥文件移动到公共连接的 VM 的 root 目录中。然后,通过 SSH 连接到虚拟网络中的其他 VM。

准备虚拟机

创建 VM 后,您需要准备它们以形成群集。

添加 Vertica 许可证和私钥

通过将私钥(如果使用的话)添加到每个节点和 Vertica 许可证来准备节点。以下步骤假定您配置的初始用户是 DBADMIN 用户:

  1. 以 DBADMIN 用户身份将私钥文件从本地保存位置复制到主节点。

    根据您用于复制文件的过程,文件的权限可能会发生更改。如果权限发生更改,install_vertica 脚本将失败,并显示类似以下内容的消息:

    Failed Login Validation 10.0.2.158, cannot resolve or connect to host as root.
    

    如果您看到上述失败消息,请输入以下命令更正私钥文件的权限:

    $ chmod 600 /<name-of-key>.pem
    
  2. 将 Vertica 许可证复制到主 VM。将其保存在主目录或其他已知位置。

在 GCP 上安装 Vertica 的软件依赖项

除了 Vertica 标准软件包依赖项之外,作为 root 用户,您必须在安装 Vertica 之前安装以下软件包:

  • pstack

  • mcelog

  • sysstat

  • dialog

配置存储

为了在 GCP 中获得最佳磁盘性能,Vertica 建议客户使用 SSD 永久性存储,配置为至少 2TB (2000 GB) 大小。磁盘性能与 GCP 中的磁盘大小直接相关。2000 GB (2TB) 是 SSD 永久性磁盘的最小磁盘大小,可实现最大吞吐量。

当配置存储时,请确保使用受支持的文件系统。有关详细信息,请参阅推荐的存储格式类型

创建交换文件

除了存储卷来存储数据之外,Vertica 还需要交换卷或交换文件才能完成安装脚本。

创建至少 2 GB 的交换文件或交换卷。以下步骤显示了如何在 GCP 上的 Vertica 中创建交换文件:

  1. 安装 devnullswapfile 文件:

    $ install -o root -g root -m 0600 /dev/null /swapfile
    
  2. 创建交换文件:

    $ dd if=/dev/zero of=/swapfile bs=1024 count=2048k
    
  3. 使用 mkswap 准备交换文件:

    $ mkswap /swapfile
    
  4. 使用 swapon 指示 Linux 在交换文件上进行交换:

    $ swapon /swapfile
    
  5. 将交换文件保留在 FSTAB 中:

    $ echo "/swapfile swap swap auto 0 0" >> /etc/fstab
    
  6. 对群集中的每个 VM 重复卷附加、组合和交换文件创建过程。

下载 Vertica

要下载适合您的操作系统和许可证类型的 Vertica 服务器,请按照下载并安装 Vertica 服务器软件包中所述的步骤进行操作。

完成下载和提取后,使用 install_vertica 脚本形成群集并安装 Vertica 数据库软件,如下一节所述。

形成群集并安装 Vertica

使用 install_vertica 脚本将两个或多个单独的 VM 组合在一起,以形成群集并安装 Vertica 数据库。

在运行 install_vertica 脚本之前,请执行以下步骤:

  1. 检查 GCP 上“计算引擎 (Compute Engine)”部分的 VM 实例 (VM Instances) 页面,以找到当前 VM 及其关联的内部 IP 地址的列表。

  2. 确定 VM 上的存储位置。安装程序假定您已将存储挂载到 /home/dbadmin。要指定另一个位置,请使用 --data-dir 实参。

以下步骤显示了如何使用 install_vertica 脚本将虚拟机 (VM) 组合为一个群集:

  1. 当连接到主节点时,构造以下命令以将节点组合为一个群集。

    $ sudo /opt/vertica/sbin/install_vertica --hosts 10.2.0.164,10.2.0.165,10.2.0.166 --dba-user-password-disabled --point-to-point --data-dir /vertica/data --ssh-identity ~/.pem --license 
    
  2. 替换您的 VM 的 IP 地址,并包括您的根密钥文件名(如果适用)。

  3. 包括 --point-to-point 参数以将 Spread 配置为在所有 Vertica 节点之间使用直接点对点通信,这是安装或更新 Vertica 时 GCP 上的群集所需要的。

  4. 如果您使用的是 Vertica 社区版(它限制您只能使用三个节点),请指定 -L CE 而不使用许可证文件。

  5. 组合节点后,为降低安全风险,请将您的密钥文件保存在与群集分开的安全位置,并使用 shred 命令删除群集上的密钥:

    $ shred examplekey.pem
    

有关 install_vertica 脚本及其参数的完整信息,请参阅使用安装脚本安装 Vertica

在群集启动并运行后

现在,您的群集已配置并正在运行,并且 Vertica 正在运行,请执行以下步骤:

  1. 创建数据库。有关详细信息,请参阅创建数据库
  2. 安装 Vertica 时,创建了一个具有 DBADMIN 角色的数据库管理员用户(通常名为 dbadmin)。使用此帐户创建并启动数据库。
  3. 有关重要的数据库配置步骤,请参阅配置数据库

4 - 将云安装从按小时 (BTH) 计算迁移到自带许可证 (BYOL)

Vertica 为 Amazon Web Services MarketplaceGoogle Cloud Marketplace 中的一些条目提供两种许可选项:

  • 自带许可证 (BYOL):您通过在线许可门户获得的长期许可证。这些部署还可以使用免费的社区版许可证。如果您不安装购买的许可证,Vertica 会自动使用社区版许可证。(有关 Vertica 许可证的详细信息,请参阅管理许可证了解 Vertica 许可证。)
  • 按小时 (BTH) 计算的 Vertica:一种即用即付的环境,您需要为使用 Vertica 及其运行的实例按小时支付费用。按小时计算的 Vertica 部署提供了购买期限许可证的替代方案。如果您想在短时间内处理大量数据,此选项可能更适合您。 BTH 许可证将自动应用于您使用 BTH MC 实例创建的所有群集。

如果您从每小时许可证开始,则可以稍后决定对数据库使用长期许可证。运行数据库的实例中内置了对每小时许可证与长期许可证的支持。要将数据库从每小时许可证迁移到长期许可证,必须使用一组新实例创建新的数据库群集。

要从每小时许可证迁移到长期许可证,请执行以下步骤:

  1. 购买 BYOL 许可证。按照获取许可证密钥文件中所述的过程进行操作。

  2. 将新许可证应用到数据库。

  3. 关闭数据库。

  4. 使用 BYOL 市场条目创建新的数据库群集。

  5. 将数据库恢复到新群集上。

您必须采取的具体步骤取决于您的数据库模式和管理数据库的首选工具:

使用命令行将 Eon 模式数据库从 BTH 迁移到 BYOL

按照以下步骤将 Eon 模式数据库从每小时许可证迁移到长期许可证。

按照 获取许可密钥文件中所述,从在线许可门户获取长期 BYOL 许可证。将许可文件上传到数据库中的节点。请注意节点文件系统中的绝对路径,因为稍后安装许可证时将需要此路径。连接到您在上一步中将许可证文件上传到的节点。 使用 vsql 连接到数据库并查看许可证表:

=> SELECT * FROM licenses;

请注意 NAME 列中列出的每小时许可证的名称,以便稍后能够查看它是否仍然存在。

使用 INSTALL_LICENSE 函数将许可证安装在数据库中,且绝对路径指向您在步骤 2 中上传的许可证文件:

=> SELECT install_license('absolute path to BYOL license');

再次查看许可证表:

=> SELECT * FROM licenses;

如果表中仅显示新的 BYOL 许可证,请跳至步骤 8。如果您在步骤 4 中记下名称的每小时许可证仍出现在表中,请复制该名称并继续执行步骤 7。

调用 DROP_LICENSE 函数以删除每小时许可证:

=> SELECT drop_license('hourly license name');

  1. 在后面的步骤中,您将需要群集的公共存储的路径。如果您还不知道路径,则可以通过执行以下查询来查找此信息:

    => SELECT location_path FROM V_CATALOG.STORAGE_LOCATIONS
       WHERE sharing_type = 'COMMUNAL';
    
  2. 同步数据库的元数据。请参阅同步元数据

  3. 通过调用 SHUTDOWN 函数关闭数据库:

    => SELECT SHUTDOWN();
    
  4. 您现在需要创建一个新的 BYOL 群集,您将在该群集上恢复数据库。在所选云平台的市场中使用 BYOL 条目部署一个新群集,包括一个新的 MC 实例。请参阅:

  5. 将数据库恢复到新群集上。有关说明,请参阅恢复 Eon 模式数据库群集。因为您使用市场中的 BYOL 条目创建了新群集,所以数据库使用您之前应用的 BYOL。

  6. 在新 BYOL 群集上恢复数据库后,终止每小时许可证群集和 MC 的实例。有关说明,请参阅云提供商的文档。

使用 MC 将 Eon 模式数据库从 BTH 迁移到 BYOL

按照以下过程使用 MC 迁移到 BYOL 并恢复数据库:

  1. 按照获取许可证密钥文件中详述的步骤,从在线许可门户购买长期 BYOL 许可证。将文件保存到计算机上的某个位置。

  2. 您现在需要在数据库上安装新许可证。登录 MC 并在“最近使用的数据库 (Recent Databases)”列表中单击您的数据库。

  3. 在数据库的“概览 (Overview)”页面底部,单击许可证 (License) 选项卡。

  4. 在“安装的许可证 (Installed Licenses)”列表下,记下“许可证名称 (License Name)”列中的 BTH 许可证的名称。稍后您将需要它来检查在安装新的长期许可证后它是否仍然存在。

  5. 在“许可证历史记录 (License History)”页面顶部的功能区中,单击安装新许可证 (Install New License) 按钮。此时将打开“设置: 许可证 (Settings: License)”页面。

  6. 单击上传新许可证 (Upload a new license) 框旁边的浏览 (Browse) 按钮。

  7. 找到您在步骤 1 中获得的许可证文件,然后单击打开 (Open)

  8. 单击页面右上角的应用 (Apply) 按钮。

  9. 选中复选框以同意 EULA 条款,然后单击确定 (OK)

  10. 在 Vertica 安装许可证后,单击关闭 (Close) 按钮。

  11. 单击页面底部的许可证 (License) 选项卡。

  12. 如果安装的许可证 (Installed Licenses) 列表中仅显示新的长期许可证,请跳至步骤 16。如果按小时许可证也出现在列表中,请从 许可证名称 (License Name) 列中复制其名称。

  13. 您必须先删除按小时许可证,然后才能继续。在页面底部,单击查询执行 (Query Execution) 选项卡。

  14. 在查询编辑器中,输入以下语句:

    SELECT DROP_LICENSE('hourly license name');
    
  15. 单击执行查询 (Execute Query)。查询应该完成,指示许可证已被删除。

  16. 在后面的步骤中,您将需要群集的公共存储的路径。如果您还不知道路径,则可以通过在“查询执行 (Query Execution)”选项卡中执行以下查询来查找此信息:

    SELECT location_path FROM V_CATALOG.STORAGE_LOCATIONS
       WHERE sharing_type = 'COMMUNAL';
    
  17. 同步数据库的元数据。请参阅同步元数据

  18. 您现在必须停止按小时计算的数据库群集。在页面底部,单击管理 (Manage) 选项卡。

  19. 在页面顶部的横幅中,单击停止数据库 (Stop Database),然后单击确定 (OK) 进行确认。

  20. Amazon Web Services MarketplaceGoogle Cloud Marketplace 中,使用 BYOL 条目部署新的 Vertica 管理控制台。请勿部署完整的群集。您只需要一个 MC 部署。

  21. 登录到您的新 MC 实例并恢复数据库。有关详细说明,请参阅在 MC 中将 Eon 模式数据库恢复到 AWS 上

  22. 在新环境中恢复数据库后,终止每小时许可证环境的实例。为此,请在 AWS CloudFormation 堆栈页面上,选择每小时许可证环境的堆栈(其 AWS 资源集合),然后单击**操作 (Actions) ** > 删除堆栈 (Delete Stack)

使用备份和还原将企业模式数据库从每小时许可证迁移到 BYOL

在企业模式数据库中,按照以下过程迁移到 BYOL,然后备份和还原数据库:

按照 获取许可密钥文件中所述,从在线许可门户获取长期 BYOL 许可证。将许可文件上传到数据库中的节点。请注意节点文件系统中的绝对路径,因为稍后安装许可证时将需要此路径。连接到您在上一步中将许可证文件上传到的节点。 使用 vsql 连接到数据库并查看许可证表:

=> SELECT * FROM licenses;

请注意 NAME 列中列出的每小时许可证的名称,以便稍后能够查看它是否仍然存在。

使用 INSTALL_LICENSE 函数将许可证安装在数据库中,且绝对路径指向您在步骤 2 中上传的许可证文件:

=> SELECT install_license('absolute path to BYOL license');

再次查看许可证表:

=> SELECT * FROM licenses;

如果表中仅显示新的 BYOL 许可证,请跳至步骤 8。如果您在步骤 4 中记下名称的每小时许可证仍出现在表中,请复制该名称并继续执行步骤 7。

调用 DROP_LICENSE 函数以删除每小时许可证:

=> SELECT drop_license('hourly license name');

  1. 备份数据库。请参阅备份和还原数据库

  2. 使用 Amazon Web Services Marketplace 中的 BYOL 条目之一为您的数据库部署一个新群集。

  3. 从您之前创建的备份中还原数据库。请参阅备份和还原数据库。当您还原数据库时,它将使用您之前加载的 BYOL。

  4. 在新环境中还原数据库后,终止每小时许可证环境的实例。为此,请在 AWS CloudFormation 堆栈页面上,选择每小时许可证环境的堆栈(其 AWS 资源集合),然后单击**操作 (Actions) ** > 删除堆栈 (Delete Stack)

完成这些过程之一后,请参阅查看许可证状态以确认许可证删除和安装成功。

5 - 调整虚拟环境的 Spread 守护程序超时

Vertica 依靠 Spread 守护程序在数据库节点之间传递消息。有时,节点无法在指定的 Spread 超时内对消息做出响应。这些失败可能是由网络延迟峰值或节点 VM 中的短暂暂停(例如,计划的 Azure 维护超时)引起的。在任何一种情况下,Vertica 都假定无响应节点已关闭,并开始从数据库中移除它们,即使它们可能仍在运行。您可以根据需要通过调整 Spread 超时来解决此问题。

调整 Spread 超时

默认情况下,Spread 超时取决于配置的 Spread 段数:

如果 Spread 超时很可能在网络或数据库节点响应之前发生,则将超时增加到无响应时间最大长度加上五秒。例如,如果 Azure 保留内存的维护将节点 VM 最多暂停 30 秒,则将 Spread 超时设置为 35 秒。

如果您不确定网络或节点中断可能持续多长时间,则逐渐增加 Spread 超时,直到离开数据库的运行中节点实例减少。

要查看 Spread 超时的当前设置,请查询系统表 SPREAD_STATE。例如,以下查询显示当前超时设置 (token_timeout) 设置为 8000 毫秒:

=> SELECT * FROM V_MONITOR.SPREAD_STATE;
    node_name     | token_timeout
------------------+---------------
 v_vmart_node0003 |          8000
 v_vmart_node0001 |          8000
 v_vmart_node0002 |          8000
(3 rows)

要更改 Spread 超时,请调用元函数 SET_SPREAD_OPTION 并将令牌超时设置为新值。以下示例将超时设置为 35000 毫秒(35 秒):

=> SELECT SET_SPREAD_OPTION( 'TokenTimeout', '35000');
NOTICE 9003:  Spread has been notified about the change
                   SET_SPREAD_OPTION
--------------------------------------------------------
 Spread option 'TokenTimeout' has been set to '35000'.

(1 row)

=> SELECT * FROM V_MONITOR.SPREAD_STATE;
    node_name     | token_timeout
------------------+---------------
 v_vmart_node0001 |         35000
 v_vmart_node0002 |         35000
 v_vmart_node0003 |         35000
(3 rows);

Azure 维护和 Spread 超时

虚拟机上的 Azure 计划维护可能会使节点暂停的时间超过 Spread 超时期限。如果是这样,Vertica 可能会将未响应 Spread 消息的节点视为关闭,并将其从数据库中移除。

Azure 维护任务的长度通常是明确定义的。例如,在对托管 VM 的系统执行维护时,保留内存的更新可以将 VM 暂停最多 30 秒。此暂停不会中断节点,节点会在维护完成后恢复正常运行。为防止 Vertica 在节点进行 Azure 维护时移除节点,请根据需要调整 Spread 超时

另请参阅