作者文章: Fenng

DRBD 提升了 MySQL 的集群能力

前几天 MySQL 站点上有个为期 12 天以 Scale-Out 为主题的活动,列举了不少成功的案例,每个页面有下方的这个图很引人注意:

scaleout_diagram_sm.png

注意到主备服务器之间的 HA 是通过 DRBD(Distributed Replicated Block Device)做到的。DRBD 号称是 “网络 RAID”,开源软件,由 LINBIT 公司开发,MySQL 与 LINBIT 达成了合作关系,大张旗鼓的搞了这个 “12 天 Scale-Out” 活动也是这个商业合作驱动的吧。DRBD 助力 MySQL, 号称可以得到四个 9 的可靠性,这不低于任何一款商业数据库软件了。

DRBD 的出现的确对 MySQL 集群的可用性有很大提高。而且,有独到的特点,非常适合面向互联网的应用。因为是在存储层的数据块同步,很容易的做到应用层的 IO 负载均衡(备机承担一定的读压力),不但支持数据库失败接管,还能做到 IP 失败接管,接管时间小于 30 秒,真是穷人的绝佳集群解决方案(相比 Oracle 下的一些方案,比如 eBay 采用的方案,性价比还是不错的)。国外已经有很多成功的实现案例,国内的 Web 2.0 站点不知道是否已经有人在用,在这里推荐一下。更为有趣的是,已经有人通过 DRBD 来实现 Oracle 的另类集群。

怪不得前一阵子已经有开源爱好者开始宣称类似 “RAID即将成为过去式” 的激进言论。

EOF

有扩展性问题请向 Flickr 的 Cal Henderson 提问

《程序员》杂志在做关于 Web 可扩展性的专题,编辑朱海燕联系上了 Flickr 的 Cal Henderson, Web 2.0 应用最出色的架构师之一, 准备对他进行 e-mail 采访,如果大家有什么关于 Web 扩展性的相关问题,可以在后面留言或者发邮件给 [email protected] , 我代为转交。

五月份阿里巴巴举办的侠客行网络大会 Cal Henderson 因为时间的关系而没能成行,希望这次的采访能弥补一下不少人的遗憾。

EOF

eBay 的数据库分布扩展架构

在过去的 Blog 中, 我(插一嘴:这里的”我” 如果替换成 “Fenng” 似乎有些自恋, 也不是我喜欢的行文语气, 可发现转贴不留名的行为太多了,他大爷的)曾经介绍过 《eBay 的应用服务器规模》 , 也介绍过 《eBay 的数据量》,在这篇文章中提到过 “eBay 购买了 Quest Share Plex 全球 Licence 用于数据复制”,这个地方其实没有说开来。

对于 eBay 这样超大规模的站点来说,瓶颈往往最容易在数据库服务器上产生,必定有一部分数据(比如交易记录这样不容易水平分割的数据)容易带来大量的读操作,而不管用什么存储,能承担的 IO 能力是有限的。所以,如果有效的分散 IO 的承载能力就是一个很有意义的事情。

经过互联网考古学不断挖掘,路路续续又现了一些蛛丝马迹能够多少说明一些问题。客观事实加上主观想象,简单的描述一下。见下图:

ebay_shareplex_F5.jpg

通过 Quest 公司的 Share Plex 近乎实时的复制数据到其他数据库节点,F5 通过特定的模块检查数据库状态,并进行负载均衡,IO 成功的做到了分布,读写分离,而且极大的提高了可用性。F5 真是一家很有创新性的公司,虽然从这个案例来说,技术并无高深之处,但方法巧妙,整个方案浑然一体。

F5公司专门为Oracle 9i 数据库开发了专用的健康检查模块,通过调用F5专有的扩展应用校验(EAV)进程,F5能够随时得到Oracle 9i数据库的应用层服务能力而不是其他的负载均衡设备所采用的 ICMP/TCP 层进行健康检查。

这个图来自一篇《F5助力eBay数据库服务器负载均衡》的软文,真是一篇很好的软文,国外恐怕不会出现这样”含金量”极高的东西。

当然,这个技术架构可不算便宜。Quest 的 Share Plex License 很贵,而且,对于每个结点来说,都需要数据库 License 与硬件费用。但优点也很多:节省了维护成本; 数据库层面的访问也能做到 SOA; 高可用性。

国内的一些厂商比较喜欢给客户推存储级别的解决方案。通过存储底层复制来解决数据分布以及灾备问题。这个思路似乎太传统了,对于互联网企业来说多少有点过时。

BTW: 对 Amazon 的存储架构非常感兴趣,谁/哪里能提供点线索呢?

EOF