配置网络后,您就可以创建 AWS 实例并安装 Vertica。执行以下过程在 AWS 上安装和运行 Vertica。
为 Vertica 数据库群集部署 AWS 实例
- 1: 配置并启动实例
- 2: 连接到实例
- 3: 准备实例以形成群集
- 4: 在 AWS 上更改实例
- 5: 配置存储
- 6: 创建群集
- 7: 在 AWS 上使用管理控制台 (MC)
- 7.1: 登录 MC 并管理群集
1 - 配置并启动实例
在 AWS 上配置网络设置后,配置并启动要在其中安装 Vertica 的实例。没有 Vertica AMI 的 Elastic Compute Cloud (EC2) 实例类似于传统主机。与内部部署群集一样,您必须先在硬件级别准备和配置群集和网络,然后才能安装 Vertica。
当您使用 Vertica AMI 在 AWS 上创建 EC2 实例时,该实例包括 Vertica 软件和推荐的配置。Vertica 建议您使用未经修改的 Vertica AMI。Vertica AMI 充当模板,需要较少的配置步骤:
-
(可选)将 EBS 卷配置为 RAID 阵列。
-
启动实例并验证它们是否正在运行。
在 AWS 中配置 EC2 实例
-
从 AWS Marketplace 中选择 Vertica AMI。
-
选择所需的实现方法。
-
配置以下内容:
向实例添加存储
向实例添加存储时,请考虑以下问题:
-
添加与实例中物理核心数相等的驱动器数量,例如,对于 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 阵列(就像本示例中的情况)。
注意
如果您的 EC2 实例启用了超线程,vioperf 可能会错误地计算系统中的核心数。每个核心 20MB/s 吞吐量的要求仅适用于物理核心,而不适用于虚拟核心。如果您的 EC2 实例启用了超线程,请将计数器值(输出中的第 4 列)除以物理核心数。请参阅 AWS 文档主题优化 CPU 选项中的“每个实例类型的每个 CPU 核心的 CPU 核心数和线程数”部分,了解每种实例类型的物理核心列表。如果您确定需要将 EBS 卷配置为 RAID 0 阵列,请参阅 AWS 文档主题 Linux 上的 RAID 配置,了解您需要采取的步骤。
安全组和访问权限
-
在以前配置的安全组或默认安全组之间进行选择。
-
通过创建 IAM 角色并将其分配给 EC2 实例,来配置节点的 S3 访问权限。有关详细信息,请参阅AWS 身份验证。
2 - 连接到实例
使用私钥,执行以下步骤以通过您已附加弹性 IP 地址的实例连接到群集:
-
作为 dbadmin 用户,通过替换 ssh 密钥键入以下命令:
$ ssh --ssh-identity <ssh key> dbadmin@elasticipaddress
-
从导航面板中选择 实例 (Instances)。
-
选择附加到弹性 IP 的实例。
-
单击连接。
-
在连接到您的实例 (Connect to Your Instance) 上,选择以下选项之一:
-
直接从我的浏览器连接到 Java SSH 客户端 - 在私钥路径 (Private key path) 字段中添加私钥路径,然后单击启动 SSH 客户端 (Launch SSH Client)。
-
使用独立 SSH 客户端连接** - **按照独立 SSH 客户端所需的步骤进行操作。
-
使用 putty 从 Windows 连接到实例
如果从 Windows 操作系统连接到实例,请使用 Putty:
-
使用 PuTTYgen 转换密钥文件。
-
使用转换后的密钥(即
*ppk
文件)连接 Putty 或 WinSCP(通过弹性 IP 连接)。 -
使用 Putty 或 WinSCP 将密钥文件(
*pem
文件)移动到根目录。
3 - 准备实例以形成群集
创建实例后,您需要准备它们以形成群集。通过添加您的 AWS .pem
密钥和 Vertica 许可证来准备您的实例。
默认情况下,每个 AMI 都包含一个社区版许可证。安装 Vertica 后,您可以在以下位置找到许可证:
/opt/vertica/config/licensing/vertica_community_edition.license.key
-
作为 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
-
将您的 Vertica 许可证复制到主实例,将其放置在主目录或其他已知位置。
4 - 在 AWS 上更改实例
您可以在 AWS 上更改实例类型。例如,您可以将 c3.8xlarge 实例降级到 c3.4xlarge。有关有效 AWS 实例的列表,请参阅支持的 AWS 实例类型。
当更改 AWS 实例时,您可能需要:
-
重新配置内存设置
-
重置资源池中的内存大小
-
重置资源池中的 CPU 数量
重新配置内存设置
如果更改为需要不同内存量的 AWS 实例类型,则可能需要重新计算以下内容,然后重置相应的值:
注意
您可能需要 root 用户权限才能重置这些值。重置资源池中的内存大小
如果您在资源池中使用了绝对内存,则可能需要使用 ALTER RESOURCE POOL 中的 MEMORYSIZE 参数重新配置内存。
注意
如果在创建原始资源池时将内存大小设置为百分比,则无需在此处进行更改。重置资源池中的 CPU 数量
如果新实例需要不同数量的 CPU,则可能需要重置 ALTER RESOURCE POOL 中的 CPUAFFINITYSET 参数。
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
重要
忽略根卷。请勿在 RAID 创建过程中包含任何根卷。组合存储卷
configure_software_raid.sh
Shell 脚本将 EBS 卷组合成一个 RAID 0 阵列。
当心
仅当您的全新配置没有现有的 RAID 设置时,才会采用默认设置运行 configure_software_raid.sh
。
如果存在现有的 RAID 设置,请在文本编辑器中打开该脚本,并手动编辑 raid_dev
值以反映当前的 RAID 设置。如果存在现有的 RAID 设置,并且未编辑该脚本,则该脚本会删除重要的操作系统设备文件。
或者,使用管理控制台 (MC) 添加存储节点,而无需对操作系统设备文件进行不必要的更改。有关详细信息,请参阅管理数据库群集。
以下步骤使用 configure_software_raid.sh
脚本将 EBS 卷组合为 RAID 0 阵列:
-
按如下方式编辑
/opt/vertica/sbin/configure_software_raid.sh
Shell 文件:-
注释掉开头的安全
exit
命令。 -
将示例卷名称更改为您之前记下的您自己的卷名称。如有必要,添加更多卷。
-
-
运行
/opt/vertica/sbin/configure_software_raid.sh
Shell 文件。运行此文件会创建一个 RAID 0 卷,并将其挂载到/vertica/data
。 -
使用
chown
将新创建的卷的所有者更改为 dbadmin。 -
对群集中的每个节点重复步骤 1-3。
6 - 创建群集
在 AWS 上,使用
install_vertica
脚本组合实例并创建群集。检查 AWS 上的我的实例 (My Instances) 页面,以获取当前实例及其关联 IP 地址的列表。运行 install_vertica
时需要这些 IP 地址。
按如下方式创建群集:
-
当连接到主实例时,输入以下命令以将实例组合为一个群集。替换您的实例的 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
注意
* 如果您使用的是 Vertica 社区版(它限制您只能使用三个实例),则可以指定 `-L CE` 而不使用许可证文件。 * 当在 Vertica AMI 脚本上发出 install_vertica 或 update_vertica 时,\--point-to-point 是默认设置。此参数将
Spread 配置为在所有 Vertica 节点之间使用直接点对点通信,这是 AWS 上群集的要求。
* 如果使用 IPv6 网络地址来标识群集中的主机,请在 `install_vertica` 命令中使用 \--ipv6 标志。您还必须使用 IP 地址而不是主机名,因为 AWS DNS 服务器无法将主机名解析为 IPv6 地址。
-
组合实例后,Vertica 建议从群集中删除
*.pem
密钥以降低安全风险。下面的示例使用shred
命令删除该文件:$ shred name-of-pem.pem
-
创建一个或多个群集后,创建数据库。
有关 install_vertica
脚本及其参数的完整信息,请参阅使用安装脚本安装 Vertica。
重要
在未首先关闭数据库的情况下停止或重新启动实例或群集,可能会导致磁盘或数据库损坏。要安全地关闭并重新启动群集,请参阅操作数据库。使用 netcat 实用程序手动检查打开的端口
群集启动并运行后,您可以使用 netcat (nc) 实用程序通过命令行手动检查端口。下面是使用该实用程序检查端口的示例。
在执行此过程之前,请选择群集中两个节点的专用 IP 地址。
下面给出的示例使用具有专用 IP 的节点:
10.0.11.60 10.0.11.61
在您的节点上安装 nc 实用程序。安装后,您可以发出命令从另一个节点检查一个节点上的端口。
-
要检查 TCP 端口:
-
将一个节点置于侦听模式并指定端口。以下示例显示如何将 IP
10.0.11.60
置于端口480
的侦听模式。[root@ip-10-0-11-60 ~]# nc -l 4804
-
从另一个节点,运行
nc
以指定您刚刚置于侦听模式的节点的 IP 地址和相同的端口号。[root@ip-10-0-11-61 ~]# nc 10.0.11.60 4804
-
从任一节点输入示例文本,它应该显示在另一个节点上。要在检查端口后取消,请输入 Ctrl+C。
注意
注意: 要检查 UDP 端口,请使用带有–u
选项的相同nc
命令。[root@ip-10-0-11-60 ~]# nc -u -l 4804 [root@ip-10-0-11-61 ~]# nc -u 10.0.11.60 4804
-
7 - 在 AWS 上使用管理控制台 (MC)
管理控制台 (MC) 是一种数据库管理工具,可用于查看和管理群集的各个方面。Vertica 提供了一个 MC AMI,您可以将其与 AWS 一起使用。MC AMI 允许您创建专用于运行 MC 的实例,您可以将该实例连接到 AWS 上新的或现有的 Vertica 群集。您可以随时创建 MC 实例并将其连接到 AWS 群集上的 Vertica。
有关要求和安装 MC 的信息,请参阅安装管理控制台。