求教:2台配置一般的VPS实现一定程度的高可用?(防拔线)

2013-11-05 16:48:46 +08:00
 hustlzp
之前给朋友的外贸公司做了个小网站,用的Flask。

需求很简单,主要就是展示产品、公司信息。然后朋友可以编辑产品信息。

VPS买的是host700的,不过上个星期某user严重违反了tos,导致我们这个节点被拔线了...到现在还没恢复...

要命的是朋友最近接到一个比较大的单,订单已经快下了,对方boss可能会查一下公司的网站。但现在网站挂了,图片没有备份...(好吧,只能说我太菜,图样图森破),于是只能死等host700和美国那边交涉成功,再把数据弄出来...

以前只是手动备份,也根本没有HA的意识。现在好了,可能会给朋友造成一些损失...于是开始想HA的解决办法(当然这里的HA只是很低级的HA...),同时要能够自动实现数据备份。

向大家求教:在2台VPS上(同一个机房,IP独立,节点也不同),如何实现其中一个被拔线了然后另外一个可以继续run?

在网上做了些功课,画了一个简单的框图,请大大们指点:

[图片]
http://hustlzp.com/wp-content/uploads/2013/11/architecture.png

- 首先弄2台VPS,有独立IP,而且不在同一个节点(意思就是一个被拔线,另一个不受影响)
- 使用DNSPod解析到这2个IP上
- 每次部署的时候,使用Farbic+git在2个VPS上同时部署
- 图片使用七牛提供的云存储
- 2个MySQL之间配置为主主同步,这样一个挂了另外一个还可以工作
- 配置一个cron A,定时将2台VPS上的MySQL数据备份起来
- 配置另外一个cron B(时间上晚于 cron A),定时将备份上传到Dropbox
- cron B还需要进行一些判断和维护:(1)在上传前判断当天的备份是否已经存在,如果发现已经由另外一个VPS上传了,就不再上传(2)每上传一个新备份,就删除最老的一个备份,保证有7天的备份在Dropbox里面

这样的话,基本就可以实现一个被拔线,另外一个可以继续run。然后MySQL数据和图片数据也有保障。当然还是需要定时把七牛上的图片数据手动备份下,数据握在自己手里是最踏实的。

这样是否可行?还有没有更加合适的思路?跪求指点啊!谢谢!
4329 次点击
所在节点    程序员
26 条回复
hustlzp
2013-11-06 08:14:54 +08:00
@msg7086 谢谢分享!备份的方法真是多哈!
Admstor
2013-11-06 11:05:10 +08:00
你这个网站主要是以展示为主,并不涉及交易,所以实时备份的要求并不高
最简单的方案,用rsync每天同步网站和数据库到另外的机器上,可以是另外的VPS,也可以是自己的电脑,至于恢复,如果是同步到另外的VPS,那么恢复只要修改一下域名解析即可,如果是本地电脑,那么上传一下数据,然后重建环境即可,都不是很难的而且成本很低.
数据库你应该是mysql,说实在的,mysql的主从同步并不是那么好用,还是会需要经常的人工检查同步完整性
terry0824
2013-11-06 13:55:53 +08:00
还可以用dnspod的自动监测自动切换功能,这样基本不用手动操作。
hustlzp
2013-11-06 14:23:40 +08:00
@Admstor
@terry0824 thanks : )
jinwyp
2013-11-06 17:12:14 +08:00
mark exe
lostcat
2013-11-30 02:37:31 +08:00
@richardevs 不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/88132

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX