`
fredlong
  • 浏览: 135003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AWS 亚马逊云实现内网资源高可用(Keepalived broadcast失效的情况)

阅读更多

我们在测试环境用KeepAliveD已经实现了内网中的Mysql、Redis和MongoDb的高可用。等我们把测试环境中的方案部署到亚马逊云中,因为亚马逊云环境的一些特性,很多问题就显现出来了。

 

方案描述:

两台资源服务器上都部署了Mysql、Redis和MongoDb,两台服务器上的所有服务都会实时同步数据。每台个服务的KeepAliveD都会用IP欺骗的方法使用广播APR包虚拟出这些有一个对外的IP:

Mysql:172.*.*.201:3306

Redis:172.*.*.202:6379

MongoDb:172.*.*.203:27017

 

 

KeepAliveD会定期检查这两台服务器的三个服务器的健康情况,并通过VRRP协议互通监控情况。一旦任何一个服务出现故障,KeepAliveD会广播ARP包告诉大家,这台故障的服务器不再拥有这个虚拟IP,而是另一台健康的资源服务器才是这个虚拟IP的真正归属。这样所有发送给故障服务的请求就发送给另外一台资源服务器了。

 

第一.亚马逊云不支持KeepAliveD中的组播模式。主备之间的VRRP包互相发不通。

 

解决办法:切换KeepAliveD到单播模式,在配置中增加单播机器的IP即可:

 

写道
unicast_src_ip 172.*.*.1 #localIp

unicast_peer {
172.*.*.124 #Resource-02
#172.*.*.207 #Management
}

 

配置细节见:http://fredlong.iteye.com/blog/2226300

 

还有一点需要特别注意,VRRP协议既不属于TCP也不属于UDP,在做防火墙策略的时候,在协议类型选项需要选“All traffice”的选项来防止由于防火墙原因造成通信问题。

 

第二.在AWS环境中,所有的ARP广播都被禁止了。这样KeepAliveD的IP欺骗机制基本上也就不可行了。在资源服务器上配置的Virtual IP,应用服务器没有办法访问。

我们尝试了很多办法都失败了,最终凭着机制和勇敢找到了解决方案。下面是简单的步骤和思路:

 

1.在两台服务器的网卡上把这三个虚拟IP配上:

 

ifconfig eth0:1 172.*.*.201 netmask 255.255.240.0

ifconfig eth0:2 172.*.*.202 netmask 255.255.240.0

ifconfig eth0:3 172.*.*.203 netmask 255.255.240.0

 

这个配置是基础配置。也就是说,如果一个IP指向这台服务器,可是这台服务器上的网卡不认为自己拥有这个IP是不行的。

 

2.在两台服务器上安装亚马逊云自己的客户端工具(awscli)

easy_install pip

pip install awscli

 

3.在两台服务器上注册awscli,具体过程不详细描述了,就是到aws console/service/IAM中去创建一个账号,然后创建一个系统管理员的组,把这个账号加入到组中,这个过程中会得到Access Key ID和Secret Access Key。在服务器上运行awscli configure,填入刚才两个参数,还有region就完成注册了。region是指你服务器所在的区域,比如我们买的新加坡机房的服务器,region就填写ap-southeast-1。

 

4.在KeepAliveD认为自己获取到Master权限的时候,调用awscli命令让Virtual IP实际指向本服务器。这个逻辑是本文章的核心逻辑。亚马逊云虽然不允许广播ARP,但可以用命令行指定网卡(ENI)的Secondary-private-ip-address。这个命令的具体形式如下:

 

 

写道

 

aws ec2 assign-private-ip-addresses --network-interface-id $ENI --private-ip-addresses $VIP --allow-reassignment

 

上面公式中,$ENI指的是网卡的实例Id,$VIP是虚拟IP。这条命令执行完之后,在亚马逊云的网络环境中,这个虚拟IP就指向运行了这条命令的机器了,IP切换完成。

 

下面是KeepAliveD的相关配置

 

写道

 

notify_master "/home/keepalived/scripts/mysql_be_master.sh 172.*.*.201 eni-*"

 

 

通过测试,通过以上方案在亚马逊云(AWS)中实现内网资源服务器(数据库,缓存服务器等)高可用是可行的。

 

 

 

0
0
分享到:
评论

相关推荐

    基于AWS云平台实现云上数仓开发2020年

    │ 2.3.4-SaaS层-AWS Glue介绍.mp4 │ 2.3.5-SaaS层-AWS EMR介绍.mp4 │ 3.1-前期准备-AWS账户.mp4 │ 3.3-前期准备-AWS CLI 配置.mp4 │ 3.4-前期准备-准备安全组.mp4 │ 3.5-前期准备-准备S3存储桶.mp4 │...

    基于亚马逊云科技云服务的高可用应用设计 v1.0

    云计算在给架构师带来了许多新的设计...我们先会对AWS的服务进行高可用性的分类,并从高可用角度对典型服务进行介绍,然后依次讨论高可用设计的5大常见设计原则,并结合亚马逊云科技的相关服务依次进行架构设计分析。

    aws亚马逊的S3库实现,亲测阿里云,七牛云,华为云可用

    标题中的“aws亚马逊的S3库实现”指的是Amazon S3(Simple Storage Service)的客户端库,这是一种由亚马逊提供的云存储服务。S3允许用户在线存储和检索数据,并提供了高可用性、耐用性和可扩展性。这个库是用C语言...

    亚马逊云架构-介绍

    在《亚马逊云架构—介绍》这一资料中,详细介绍了AWS的核心概念和技术实践,对于理解亚马逊云架构具有重要的参考价值。 #### 二、云架构设计模式与最佳实践 1. **资源的灵活性**:强调资源应根据需求的变化而变化...

    基于AWS云平台实现云上数仓开发视频教程

    通过知识点讲解、案例实战、理论概念讲解来学习基于AWS云平台实现云上数仓的构建和开发。 课程亮点 1,全程基于AWS云平台 2,对AWS相关技术进行深入学习 3,实操配合案例,更容易理解 4,包含BI开发的内容 适用...

    庄富任:亚马逊AWS云平台上之案例分析与最佳实践

    ### 庄富任:亚马逊AWS云平台上之案例分析与最佳实践 #### 一、引言 随着互联网技术的快速发展,企业对于云计算的需求日益增长。亚马逊AWS作为全球领先的云服务提供商之一,为企业提供了丰富的云解决方案和服务。...

    亚马逊云服务器aws 双网口上网完整配置

    亚马逊云服务器 AWS 双网口上网完整配置 本文将指导您如何在 AWS 云服务器上搭建 CentOS 系统,并实现双网口上网的完整配置。该教程将分为七步,涵盖了从实例创建到双网口配置的所有步骤。 Step 1: 实例创建 在 ...

    亚马逊云架构PPT

    在当前数字化转型的大背景下,亚马逊云科技(Amazon Web Services, AWS)凭借其强大的技术实力与丰富的服务种类,在全球范围内占据了重要的市场份额。本章节将围绕《亚马逊云架构PPT》的核心内容,对亚马逊云的架构...

    AWS(亚马逊)云解决方案架构师面试实践过程作业全英文作业1

    AWS(亚马逊网络服务)是全球领先的云计算平台,提供多种服务以支持企业的数字化转型和业务运行。作为AWS解决方案架构师,理解和熟练操作AWS的各种组件至关重要。本篇将详细解析标题和描述中涉及的知识点,以及如何...

    免费使用12个月的亚马逊云服务器,附注册、详细教程

    提起亚马逊云(Amazon Web Services)相信各位朋友都不会陌生,就算没用过肯定也听说过,最近看到不少网友已经得到12个月的亚马逊云服务器,今天把申请流程和各位朋友们分享一下。 亚马逊 AWS 介绍 AWS 全称 Amazon ...

    AWS上Keepalivedb部署文档.docx

    在AWS的环境中,由于其不支持组播和虚拟IP(VIP)功能,为了实现高可用性和VIP漂移,我们可以利用Keepalived服务配合特定的网络配置来达成这一目标。Keepalived是一个开源软件,主要用于提供高可用性集群,它通过...

    AWS云平台Visio模具

    总的来说,AWS云平台Visio模具对于那些在AWS环境中工作的人来说是一个宝贵的资源,它简化了云架构设计过程,提高了沟通效率,并确保了设计的专业性和准确性。无论是为了规划新项目,还是为了演示现有系统的结构,这...

    AWS(亚马逊)云解决方案架构师面试实践过程作业全英文PPT版 中小企业LAMP 云上高可用架构设计

    BRIEF Imagine that you meet with a small startup company in the early stages of their operations....PC within their small office. Like many small start-ups they are confident that they will be the next ...

    AWS简介亚马逊 亚马逊

    亚马逊网络服务(Amazon Web Services, AWS)是由亚马逊公司提供的一系列灵活且可扩展的云计算平台和服务。这些服务覆盖了计算、存储、数据库、分析、应用服务、部署、管理等各个方面,旨在帮助企业和个人更加轻松高效...

    亚马逊云服务AWS Certified Solutions Architect - Associate标准考试精准题库

    亚马逊云服务(AWS Certified Solutions Architect - Associate)是亚马逊网络服务(Amazon Web Services)提供的一项认证,旨在验证专业人士在设计和实施基于AWS平台的可扩展、高效且安全的云解决方案的能力。...

    基于AWS的云架构设计最佳实践.pdf

    此外,AWS支持按需分配资源,允许用户根据实际需求自动扩展或缩减资源,从而实现高效的资源利用。 ##### 3. 更高级的托管服务 相较于传统环境中的自建自维服务,AWS提供了多种高级托管服务,例如数据库服务、消息...

    亚马逊云AWS典型服务与应用.pdf

    Amazon Simple Storage Service(Amazon S3)是AWS提供的付费数据存储服务,它具备弹性和容错特性,用户只需支付所需的成本和管理费用,就可以灵活实现传统数据中心的功能,支持各种高性能的互联网应用。用户可以...

    AWS云端企业实战圣经亚马逊如何构造云端计算

    AWS云端企业实战圣经亚马逊如何构造云端计算

    AWS(亚马逊)云解决方案架构师面试实践过程作业全英文PPT演示

    在AWS(亚马逊)云解决方案架构师的面试中,一个重要的环节是设计和展示针对特定业务需求的云架构提案。以下是对这一过程的详细阐述,以帮助理解如何为小型至中型企业构建合适的云解决方案。 **业务需求与解决方案** ...

Global site tag (gtag.js) - Google Analytics