微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – Amazon EC2上的冗余NFS

我有兴趣在Amazon EC2上构建两个具有故障转移功能的容错/冗余NFS服务器.我熟悉DRBD,Heartbeat等工具/技术.亚马逊是否通过他们的平台提供了实现这一目标的具体方法

一个合适的例子可能是文件保存在单独的冗余EBS上 – 如果发生故障,将从预构建的AMI自动启动新实例,安装EBS卷,并无缝转换IP地址.

这可能吗?有比亚马逊更好的平台吗?你能否让我对我们正在讨论的基础架构有一个广泛的了解?

解决方法

在AWS上,将glusterFS与Elastic Load Balancer一起使用并自动扩展EC2实例应该可以达到您想要的效果.我无法对任何其他IaaS发表评论.

亚马逊确实提供了实现目标所需的一些东西 – 并允许您实施其余的目标.

亚马逊的EC2服务器本质上是VPS – 您可以在它们上设置Heartbeat / Corosync / Pacemaker等(虽然上次我检查过,你不能在他们的网络上使用广播 – 你可以使用unicast – udpu).

你提到亚马逊分别解决的两个想法:容错和冗余.

EC2上没有内置的冗余机制,尽管取决于您要查找的内容,但有一些方法可以实现它.

>从理论上讲,S3设计有多层还原,“设计用于在给定年份内提供99.999999999% durability个物体”.他们的SLA是每年99.9% availability.如果要将该路由用于静态文件,可以使用s3fuse作为本地文件系统安装S3存储桶.然而,这相当慢,并且对于大多数目的(代码,数据库,服务器软件等)并不是真的可取.
> EBS快照将为您提供EBS卷的压缩差分时间点图像.这些作为备份非常棒 – 您可以从快照启动新实例 – 但它们不是真正的冗余.
>对于任何实际冗余的解决方案,您必须自己进行设置.为此问题设计的一种方法glusterFS.您可以将砖块设置为分布式,复制式或两者兼有,并且数据将分布在整个系统中 – 它对于删除单个节点具有弹性,并且它们具有预先构建的AMI,您可以从中启动多个实例来构建簇.

另一方面,容错性更好地由亚马逊平台提供:

> EC2网络提供多个区域和可用区域 – (理论上)提供隔离和/或地理上分离的数据中心,以避免单点故障
>亚马逊提供各种实例指标(cpu,网络,磁盘I / O等)的监控(Cloudwatch)以及自定义指标.这些可以用作从预构建的AMI启动新实例的触发器,这个过程称为“自动缩放”.
> EC2具有弹性IP地址 – 这些是可以保留的公共IP地址,并可根据需要快速重新映射到另一个实例,从而可以避免实例发生故障时DNS传播的延迟.
>最后,亚马逊拥有Elastic Load平衡器 – 这些平衡器应该被设计为避免单点故障,并且可以与传入流量进行扩展(它们不会受到与作为负载平衡器的单个实例设置相同的带宽限制)受制于). ELB能够监视后端实例的“运行状况”,并使用自动扩展来维护适当数量的实例.

除了上述内容之外,您还可以将自定义参数传递给新启动的实例,或者相当容易地检索有关当前运行实例的信息 – 这可能允许您编写一些设置脚本(当然,AWS确实有一个API将允许您编写它们提供的所有操作的脚本 – 包括重新映射弹性IP地址,启动新实例,分离/附加EBS卷等.

您描述’文件保存在单独的冗余EBS … [然后]已安装’.首先,在EC2上,EBS卷一次只能附加到一个实例(因此要将数据复制到它,需要附加EBS卷).由您来维护冗余(您可以设置EBS设备的RAID阵列,或者做其他任何事情).但问题是,当实例崩溃时,有时EBS卷不会分离 – 您可以强制分离它们(具有更好但不完美的成功率),并且即使在使用中也可以对EBS卷进行快照(其中然后,您可以使用创建新的EBS卷并启动AMI.但是,更好(恢复时间更短,更灵活等),以跨多个实例维护数据的副本,而不是跨同一实例上的多个EBS卷.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异常的情况。程序崩溃时最常见的就是程序运行终止,报告 Segmentation fault (core dumped) 错误。而程序卡死一般来源于代码逻辑的缺陷,导致了死循环、死锁等问题。总的来看,常见的程序异常问题一般可以分为 非法内存访
git使用小结很多人可能和我一样,起初对git是一无所知的。我也是因为一次偶然的机会接触到git,并被它强大的功能所蛰伏。git其实就是一种版本控制工具,就像svn一样,但是git是分布式的。我不想给git打广告,我们直入正题——git能帮我们做什么?1)源码版本控制。平常写一写demo程序可能和g
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟机:Parallel Desktop 10.1.1 虚拟机操作系统:CentOS 7 x86_64 DVD 1511.iso Oracle:linux.x64_11gR2_database_1of2.zip linux.x6
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试过程中,简单总结了一下常见的nginx代理配置。 1. 最简反向代理配置 在http节点下,使用upstream配置服务地址,使用server的location配置代理映射。 upstream my_server { server 10
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核的目的。一直以来,对linux的模块机制都不够清晰,因此本文对内核模块的加载机制进行简单地分析。 模块的Hello World! 我们通过创建一个简单的模块进行测试。首先是源文件main.c和Makefile。 f...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个Master组件提供服务,其中正在使用的组件称为Active,另一个作为备份称为Standby,例如HDFS的NameNode、YARN 的ResourceManager。HDFS的web页面只有通过Active的Name
一个简单的通用Makefile实现Makefile是Linux下程序开发的自动化编译工具,一个好的Makefile应该准确的识别编译目标与源文件的依赖关系,并且有着高效的编译效率,即每次重新make时只需要处理那些修改过的文件即可。Makefile拥有很多复杂的功能,这里不可能也没必要一一介绍,为了
Linux内核源码分析方法一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往
题记:自从接触到“跳板机”的概念后,一直就被烦不胜烦的机器名,ip地址,用户名,密码折腾的死去活来,心说能有个小精灵随时帮我输入那些重复的登录信息就好了。我见过最挫的方式就是用记事本把一堆机器的ip、登录用户、密码记录下来,每次登录机器就像是一场战斗:打开笔记本 勾选复制 写ssh命令 登录 再打开
统计一下你写过多少代码最近整理了一下自己从开始学习编程以来写过的程序和代码,林林总总,花了不少的时间,最后把一些自认为还算不错的代码提交到github上做一个简单的分类和备份。当然我并不奢求它们能成为多好的开源代码,只是希望通过这种方式分享自己的劳动成果罢了。如果大家有兴趣可以访问我的github,