使用 FlashBlade 安装 Eon 模式内部部署数据库

在将 Pure Storage FlashBlade 作为与 S3 兼容的公共存储的情况下,可以通过以下两个选项来安装 Eon 模式内部部署数据库:

要将 Pure Storage FlashBlade 设备用作 Eon 模式数据库的公共存储位置,您必须具有:

  • FlashBlade 设备的 IP 地址。如果 FlashBlade 未使用标准端口 80 或 443 访问存储桶,您还必须具有连接端口号。Vertica 群集中的所有节点都必须能够访问此 IP 地址。确保 FlashBlade 设备和节点之间的所有防火墙都配置为允许访问。

  • FlashBlade 上用于公共存储的存储桶名称。

  • 对存储桶具有读写访问权限的用户帐户的访问密钥和密钥。

有关如何创建存储桶和公共存储位置所需的访问密钥的说明,请参阅 Pure Storage 支持站点

要安装 Vertica:

  1. 通过查看 在安装 Vertica 之前 部分中的所有内容,确保节点配置正确。

  2. 使用 install_vertica 脚本验证节点是否已正确配置并在所有节点上安装 Vertica 二进制文件。按照使用命令行安装所述步骤安装 Vertica。

步骤 3:创建授权文件

在创建 Eon 模式内部部署数据库之前,您必须创建一个授权文件,admintools 将使用该文件向 FlashBlade 存储进行身份验证。

  1. 在将运行 admintools 以创建数据库的 Vertica 节点上,使用文本编辑器创建一个文件。您可以随意命名此文件。在这些步骤中,将它命名为 auth_params.conf。此文件的位置并不重要,只要它可供用于创建数据库的 Linux 用户(通常是 dbadmin)读取即可。

  2. 向此文件中添加以下各行:

    awsauth = FlasbBlade_Access_Key:FlashBlade_Secret_Key
    awsendpoint = FlashBladeIp:FlashBladePort
    
  3. 如果不对 Vertica 和 FlashBlade 之间的连接使用 TLS 加密,请向此文件中添加以下各行:

    awsenablehttps = 0
    
  4. 保存此文件并退出编辑器。

使用此示例 auth_params.conf 文件,可以通过标准端口 80 在 Vertica 群集与 IP 地址为 10.10.20.30 的 FlashBlade 设备之间建立非加密连接。

awsauth = PIWHSNDGSHVRPIQ:339068001+e904816E02E5fe9103f8MQOEAEHFFVPKBAAL
awsendpoint = 10.10.20.30
awsenablehttps = 0

在每个节点上,为存储库存储路径选择或创建一个目录。您为存储库存储路径参数提供的目录必须:

  • 在群集中的所有节点上具有相同的路径(即 /home/dbadmin/depot)。

  • 可由 dbadmin 用户读写。

  • 具有足够的存储空间。默认情况下,Vertica 将包含该目录的文件系统空间的 60% 用于存储库的存储。您可以使用 create_db 命令中的 --depot-size 实参来限制存储库的大小。有关为存储库选择大小的准则,请参阅为 Eon 模式配置 Vertica 群集

如果存储库路径不存在,admintools create_db 工具将尝试为您创建存储库路径。

步骤 5:创建 Eon 内部部署数据库

使用 admintools create_db 工具创建数据库。必须向此工具传递以下实参:

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

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

admintools -t create_db --help

以下示例演示了如何创建名为 verticadb 的三节点数据库,指定存储库将存储在 dbadmin 用户的主目录中。

$ admintools -t create_db -x auth_params.conf \
  --communal-storage-location=s3://verticadbbucket \
  --depot-path=/home/dbadmin/depot --shard-count=6 \
  -s vnode01,vnode02,vnode03 -d verticadb -p 'YourPasswordHere'

步骤 6:禁用流式传输限制

创建数据库后,禁用 AWSStreamingConnectionPercentage 配置参数。对于使用 Set Snippet Variable Value in Topic 上公共存储的内部 Eon 模式安装,此设置并非必要。此配置参数控制 Vertica 用于流式读取的对象存储的连接数。在云环境中,此设置有助于避免来自对象存储的流式数据传输耗尽所有可用的文件句柄。它为其他对象存储操作留下了一些可用的文件句柄。由于内部部署对象存储的延迟较低,因此,此选项并非必要。将其设置为 0 以禁用它。

以下示例显示如何使用 ALTER DATABASE...SET PARAMETER 禁用此参数:

=> ALTER DATABASE DEFAULT SET PARAMETER AWSStreamingConnectionPercentage = 0;
ALTER DATABASE

决定是否禁用存储库

FlashBlade 对象存储的性能足够快,可以考虑禁用 Vertica 数据库中的存储库。如果禁用存储库,则可以在节点上使用更少的本地存储。但是,禁用存储库始终会对性能产生影响。确切的影响主要取决于在数据库上运行的工作负载类型。可能会导致查询性能降低 30% 到 4000%。只有当降低节点存储要求会获得显著的好处时,才应考虑禁用存储库。在针对生产数据库禁用存储库之前,请始终运行概念验证测试,让该测试执行与生产数据库相同的工作负载。

要禁用存储库,请将 UseDepotForReads 配置参数设置为 0。以下示例演示了如何使用 ALTER DATABASE...SET PARAMETER 禁用此参数:


=> ALTER DATABASE DEFAULT SET PARAMETER UseDepotForReads = 0;
ALTER DATABASE