如果一个节点发生故障,高可用性(HA)系统能够立即将其工作负载重定向到另一个节点。HA集群实施通常会尝试消除单点故障。此类集群通常用于关键数据库、业务应用程序和其他不能容忍停机的系统。
HA集群的运行正常运行时间各不相同,并且可能从三个九(99.9%)到五个九不等,甚至超过承诺的系统年度正常运行时间百分比。如果HA系统的实施和维护成本低于您在系统停机时产生的费用,那么它对您的企业来说是值得的。
边界网关协议(BGP)是一种标准化的外部网关协议,旨在在Internet上的自治系统(AS)之间交换路由和可达性信息。BGP可以说是所有Internet协议中最重要的,因为它将数千个不同的Internet服务提供商(ISP)粘合在一起。
BGP保证网络的稳定性,保证路由器能够适应路由故障。它可以提供这样的功能,因为:
除了其他协议之外,自治系统还可以使用内部版本的BGP通过其内部网络路由流量。这种技术称为本地或内部BGP(iBGP)。两者之间的主要区别在于,外部BGP(eBGP)运行在不同自治系统中的两个BGP路由器之间,而iBGP运行在同一自治系统中的两个BGP路由器之间。换句话说,iBGP服务是一种在单个数据中心区域内自动管理本地网络路由的方法。在本指南中,我们将使用OSI第4层故障转移解决方案创建一个基于本地BGP的高可用性集群。
要遵循本指南,请确保您拥有:
由于我们使用CherryServersCloud基础架构,第一步是创建CherryServers用户帐户。完成此操作后,您应该在您的帐户上创建启用BGP的项目。在项目创建过程中选择“激活BGP”选项以启动BGP会话跟踪:
Cherry服务器BGP路由反射器现在已准备好从该项目中创建的任何服务器接收BGP会话信息。
您现在已准备好为高可用性集群部署云基础设施。首先部署两台支持LocalBGP服务的服务器。您可以根据需要在专用服务器和智能VDS服务器之间进行选择。
让我们部署两个按小时计费的SmartVDS服务器:
接下来,您应该获得一个用于构建高可用性环境的虚拟IP地址。虚拟IP地址在业界有不同的名称,而在CherryServers中,它被称为浮动IP。让我们订购一个:
至此,您应该拥有使用本地BGP创建高可用性集群所需的一切。您的项目中应该有两个活动服务器:
以及不得分配给任何服务器的活动浮动IP地址:
在您的服务器上设置BGP路由
要使用本地BGP服务,您应该在服务器上安装BGP代理。我们将使用BIRD作为我们服务器的BGP路由守护进程。它允许您在服务器和CherryServersBGP反射路由器之间建立BGP会话。
CherryServers为您提供了一个带有局部变量的帮助脚本,用于为您的每个服务器安装和配置BIRD。访问单个服务器并在网络-->本地BGP部分下找到帮助程序脚本:
通过SSH登录服务器并将此脚本复制到服务器上的新文件中:
chmodu+xconfigure-bgp.sh
运行脚本以安装和配置BIRD服务。脚本完成后,将启动BGP会话以宣布IP地址并将路由通告到上游Cherry服务器BGP反射路由器。
配置完第一台服务器后,通过SSH连接到第二台服务器并重复相同的步骤以在您的项目中启动两个BGP会话。
即使BGP会话现在已建立,我们还没有为我们的BGP会话通告的网络接口配置IP地址。现在让我们指定将要公布给Cherry服务器BGP反射路由器的浮动IP地址。
CherryServers为您提供了一个带有局部变量的帮助脚本,用于使用选定的浮动IP地址配置您的网络接口。访问单个服务器并在网络-->本地BGP部分下找到帮助程序脚本:
通过SSH登录服务器并将此脚本复制到服务器上的新文件中:
运行脚本在服务器上配置浮动IP地址。脚本完成后,您的浮动IP地址将定期公布给BGP反射路由器。这将使上游路由器能够通过本地BGP服务将流向此浮动IP地址的流量指向您的服务器。
您可以通过运行以下命令确保已在服务器上成功配置本地BGP服务:

完成第一台服务器的配置后,通过SSH连接到第二台服务器并重复相同的步骤,让两台服务器都公布您的浮动IP地址。
您现在已经使用本地BGP服务成功配置了高可用性集群。您现在可以通过CherryServersClientPortal监控您的BGP会话和学习路由。
打开网络-->本地BGP部分以获取有关本地BGP服务状态的最新信息:
在左侧部分,您可以检查项目中是否有两个启用BGP的服务器。还有关于本地和远程AS编号的信息,以及Cherry服务器BGP反射路由器的IP地址。
在右侧,您可以看到在您的服务器和BGP路由器之间建立的每个BGP会话的两个部分。更具体地说,有以下信息:
现在是准备高可用性集群以进行测试的时候了。尽管有多种测试方法,但我们将安装ApacheWeb服务器并在每台服务器上创建不同的索引页面,以便能够跟踪当我们向刚刚配置的浮动IP地址发出HTTP请求时哪个服务器响应。
现在让我们通过SSH登录到每个服务器并安装ApacheWeb服务器:
aptupdate&&aptinstall-yapache2
安装后Apache守护进程应该启动并运行。如果出现问题,您可以仔细检查我们的ApacheWeb服务器安装指南以解决问题。
在第一台服务器上,让我们用自定义字符串覆盖默认的Apache索引页面"Hellofrommachine1":
echo"Hellofrommachine1">/var/www/html/index.html
在第二台服务器上用不同的字符串覆盖同一个文件"Greetingsfrommachine2":
echo"Greetingsfrommachine2">/var/www/html/index.html
现在,每次有人向第一台服务器发送HTTP请求时,您都会得到"Hellofrommachine1"响应,而第二台服务器将响应"Greetingsfrommachine2".
您现在已准备好测试您的高可用性集群。
打开一个新的终端窗口并查询浮动IP地址。使用默认每2秒重复一次curl查询的watch命令:
watchcurl188.214.131.108
您现在可以看到一条"Hellofrommachine1"消息,这意味着当您对浮动IP地址进行HTTP查询时,第一台服务器正在响应。
现在重新启动机器1并查看响应消息如何变化:
由于系统重启导致机器1暂时不可用,本地BGP服务将HTTP查询自动路由到机器2。
如果您在客户端刷新BGP服务状态,您将看到以下输出:
由于bgp-worker-1正在重新启动,其BGP会话已丢失,并且服务器此时没有连接路由器。
如果您等待几分钟直到bgp-worker-1重新启动并再次刷新BGP服务状态,您应该会看到会话已自动重新建立:
我们的curl查询的输出现在已更改为初始消息,因为BGP会话已重新建立:
您现在已经在Cherry服务器上使用本地BGP服务成功部署和配置了一个高可用性集群。继续在它之上构建或将这个概念纳入您的生产系统,以使其在发生中断时更具弹性和可用性。
本文来源:国外服务器--如何使用本地BGP路由创建高可用性集群(本地bgp路由选择的过程)
本文地址:https://www.idcbaba.com/guowai/3469.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



