本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用私有静态在 Amazon EC2 上部署 Cassandra 集群IPs以避免重新平衡
由 Dipin Jain 创作 () AWS
摘要
亚马逊弹性计算云 (AmazonEC2) 实例的私有 IP 将在其整个生命周期中保留。但是,在计划内或计划外系统崩溃期间,例如在 Amazon 系统映像 (AMI) 升级期间,私有 IP 可能会发生变化。在某些情况下,保留私有静态 IP 可以提高工作负载的性能并缩短恢复时间。例如为 Apache Cassandra 种子节点使用静态 IP 可以防止集群产生再平衡开销。
此模式描述了如何将辅助弹性网络接口连接到EC2实例,以便在重新托管期间保持 IP 静态。该模式侧重于 Cassandra 集群,但你可以将此实现用于任何受益于私有静态IPs的架构。
先决条件和限制
先决条件
有效的亚马逊网络服务 (AWS) 账户
产品版本
DataStax 版本 5.11.1
操作系统:Ubuntu 16.04.6 LTS
架构
源架构
源可以是本地虚拟机 (VM) 上的 Cassandra 集群,也可以是AWS云端EC2实例上的 Cassandra 集群。下图阐明了第二场景。此示例包括 4 个集群节点:3 个种子节点和 1 个管理节点。在源架构中,每个节点都连接有一个网络接口。
目标架构
目标集群托管在每个节点上都连接了辅助弹性网络 interface 的EC2实例上,如下图所示。
自动化和扩缩
您还可以自动将第二个弹性网络接口连接到 EC2 Auto Scaling 组,如AWS知识中心视频
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
启动EC2节点以托管 Cassandra 集群。 | 在 Amazon EC2 控制台 | 云工程师 |
确认节点通信。 | 确保四个节点可通过数据库和集群管理端口相互通信。 | 网络工程师 |
在管理节点DSE OpsCenter 上安装。 | 从管理节点上的 Debian 软件包中安装 DSE OpsCenter 6.1。有关说明,请参阅DataStax 文档 | DBA |
创建辅助网络接口。 | Cassandra 根据每个节点的EC2实例 IP 地址为该节点生成一个通用唯一标识符 (UUID)。UUID这用于在环上分发虚拟节点 (vnode)。在EC2实例上部署 Cassandra 时,会在创建实例时自动为其分配 IP 地址。 如果发生计划内或计划外停机,则新EC2实例的 IP 地址会发生变化,数据分布会发生变化,并且必须重新平衡整个环路。这是不可取的。要保留分配的 IP 地址,请使用具有固定 IP 地址的辅助弹性网络接口。
有关创建网络接口的更多信息,请参阅 Amazon EC2 文档。 | 云工程师 |
将辅助网络接口连接至集群节点。 |
有关连接网络接口的更多信息,请参阅 Amazon EC2 文档。 | 云工程师 |
在 Amazon 中添加路由EC2以解决非对称路由问题。 | 当您连接第二个网络接口时,网络很可能执行非对称路由。为避免这种情况,您可为新的网络接口添加路由。 有关非对称路由的深入解释和补救措施,请参阅AWS知识中心视频 | 网络工程师 |
更新DNS条目以指向辅助网络接口 IP。 | 将节点的完全限定域名 (FQDN) 指向辅助网络接口的 IP。 | 网络工程师 |
使用DSE OpsCenter安装和配置 Cassandra 集群。 | 当集群节点准备好使用辅助网络接口时,您可安装和配置 Cassandra 集群。 | DBA |
任务 | 描述 | 所需技能 |
---|---|---|
AMI为集群种子节点创建。 | 对节点进行备份,以便在节点发生故障时可以使用数据库二进制文件恢复它们。有关说明,请参阅 Amazon EC2 文档AMI中的创建。 | 备份管理员 |
从节点故障中恢复 | 将故障节点替换为从启动的新EC2实例AMI,并连接故障节点的辅助网络接口。 | 备份管理员 |
验证 Cassandra 集群是否正常运行。 | 当替换节点启动时,在中验证集群运行状况DSE OpsCenter。 | DBA |
相关资源
从 Debian 软件包中安装 DSE OpsCenter 6.1
(DataStax 文档) 如何在 Ubuntu EC2 实例中使用辅助网络接口
(AWS知识中心视频) 在@@ 亚马逊上运行 Apache Cassandra 的最佳实践 EC2
(AWS博客文章)