走进云计算-Chubby

Chubby简单来说就是分布式锁服务,一个分布式系统中的上千个client通过Chubby能够对某项资源“加锁”或者“解锁”, BigTable和MapReduce等系统内部的协作工作常会使用Chubby,在实现方面是在内部采用了著名科学家Leslie Lamport的Paxos算法,通过创建操作文件来实现“加锁”。

在实现机制方面,Chubby本身其实是一个分布式的文件系统,并提供一些机制使得Client可以在Chubby服务上创建文件和执行一些文件的基本操作。Chubby通过文件 实现“锁”功能的。文件就是Chubby中的“锁”,创建文件其实就是 “加锁”操作,抢占到了“锁”就是那个服务器成功创建文件。用户在进行打开、关闭和读取文件的操作时,就是获取共享锁或者独占锁,然后通过通信机制,向用户发送更新信息。

在架构上,Chubby集群一般有5台机器组成,每台机器都有一个Replica(副本),其中有一个Replica会被选为Master节点,Replica在结构和能力上相互对等,Replica使用Paxos协议来保持日志的一致性,Replica都有可能离线,然后重新上线。重新上线后,需要保持与其它节点数据的一致。Client端使用Chubby的客户端库来访问。

主要优点

为什么不是直接实现一个类似于Paxos算法这样的协议来解决一致性问题,而是要通过一个锁服务来解决?这样主要有下面这五个好处:

1. 大部分开发人员在刚开始开发服务的时候都不会考虑到这种一致性的问题,所以一开始都不会使用一致性协议。只有当服务慢慢成熟以后,才开始认真对待这个问题。采用锁服务可以使得在保持原有的程序架构和通信机制的情况下,通过添加简单的语句就可以解决一致性问题;

2. 在很多情况下,并不仅仅是选举出一个Master怎么简单,还需要将这个Master的地址告诉其它人或者保存某个信息,这种时候,使用 Chubby中的文件,不仅仅是提供锁功能,还能在文件中记录下有用的信息(比如Master的地址)。所以,很多的开发人员通过使用Chubby来保存元数据和配置。

3. 一个基于锁的开发接口更容易被开发人员所熟悉。并不是所有的开发人员都了解一致性协议的,但大部分人应该都用过锁。

4. 一个一致性协议一般来说需要使用到好几台副本来保证高可用性,在这方面,Paxos算法是最明显的例子,而使用Chubby,就算只有一个client也能用。

5. 可以看出,之所以用锁服务这样的形式,是因为Chubby不仅仅想解决一致性问题,还可以提供更多更有用的功能。事实上,Google有很多开发人员将Chubby当做Name Service(命名服务)来使用,而且效果非常好。

相关产品

和之前介绍的GFS、MapReduce和BigTable一样,在Hadoop系列中也有一款类Chubby的实现,名为ZooKeeper。在实现方面,ZooKeeper是基于一套自主设计并优化的Two-Phase Commit的协议,并已经成功应用在HBase, Yahoo! Message Broker, Fetch Service of Yahoo! crawler等系统上。

时间: 2024-08-02 01:52:52

走进云计算-Chubby的相关文章

走进云计算与虚拟化的底层核心

本文讲的是走进云计算与虚拟化的底层核心,2012年3月在国务院政府工作报告附录部分中,政府对云计算给出了官方的解释,体现了政府对云计算产业的高度重视和美好愿景.云计算在工作报告中是这样定义的:"云计算是基于互联网的服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源,是传统计算机和网络技术发展融合的产物,它意味着计算能力也可作为一种商品通过互联网进行流通." 云计算是新一代信息技术的重要发展方向,是我国新一代信息技术产业实现创新突破.跨越式发展的战略机遇.

走进云计算不得不注意的八大问题

本文讲的是走进云计算不得不注意的八大问题,[IT168 资讯]为了让企业走进云服务的时代,你绞尽脑汁.赤膊上阵,你灵魂附体--现在你终于成功了,老板同意了签署云计算的提议.那么接下来该怎么做? 当然,你会建立起一个完整的项目计划,对不对?然而,云计算和普通的项目可不一样,你需要考虑一下它独有的优点和缺点.让我们来问你八个问题,你先要做出很好的回答,然后再拉动开关. 一:你确定它的安全性吗? 研究发现,安全性依然是人们关于云计算最担心的问题.你应该已经核实过云服务提供商的安全性做法和策略了,但现在

走进云计算 厂商喜忧参半

本文讲的是走进云计算 厂商喜忧参半,[IT168 资讯]利用传统的桌面计算,你需要在自己的所拥有的每台机器上都运行一份应用程序.其他不说,时间是我们最耗费不起的.整个"舞台"以PC为中心,但是利用云计算,你所使用的软件程序并不是运行在你的个人电脑上,而是存放在能够通过因特网访问的服务器上.即使你的机器由于某种原因崩溃了,该软件也不会受到任何影响,照常运行,并供其他人访问使用. 云计算不是什么? 首先,不是网络计算.在网络计算中,应用.文档存放在公司的一个单独服务器上,通过公司的网络进行

俱乐部走进云计算与虚拟化

早在2006年关于云计算的概念被首次 提出时,引起了全世界的关注与探索,时至今日,云计算已经开始渐渐的进入初级的发展阶段,而随着CPUhttp://www.aliyun.com/zixun/aggregation/31091.html">技术发展,多核心.大内存.大容量.多路多线程.低功耗.绿色节能.与高性能显卡融合等越来越成为主流趋势,部署在同一台服务器上应用越来越多,如何将虚拟化技术和云计算做有机结合是目前的用户所关注的焦点. 为此,由帝联科技主办的TT俱乐部第二期沙龙活动的讨论主题即

颠覆传统云计算分类 走进云计算2.0时代

"这是云,这不是云""你有没有进入到云"这些说法太无聊了,我觉得这不是Gartner魔力象限应该谈论的核心问题.只要是世界融合,一切都是云,甚至包括我的自行车. 目前我们通常只用一个维度去定义云服务类型,所以只能分为IaaS,PaaS和SaaS三种,但实际上,这种分类模式是远远不够的.最近我发现一些人正在尝试着用第二个维度来划分云,创造出"企业云"和"下一代云"的概念. 经过两年交流与讨论,我得出结论:确实有这第二个维度.但这

走进云计算-YunTable

如今的业界已经出现很多NoSQL产品,但是现在业界还缺乏一款在架构上非常简洁,并同时可以适应各种云计算场景的NoSQL数据库,而YunTable的出现填补了这一空缺. YunTable并不是像BigTable那样大而全的数据库,而是主要是一个精简版的分布式Key-Value数据库,上层云计算应用将会根据其自身的需求YunTable或者做修改,从而让YunTable使用便捷,适用于各种云计算场景.10月初YunTable8.0正式开源,官方地址是http://code.google.com/p/y

云计算进程中的几大事件

如今有关云计算的新闻已经攻占了各大媒体的头条,在这个刚刚兴起不久的领域里,各种各样的新闻屡见不鲜,那么其中究竟有多少是真正重要的内容呢?以下是小编搜集的几件最近发生的大事件,相信它们将会给云计算带来长远的影响. 云操作系统的出现 7月7日曾有报道称,Google宣布正式启动开发Chrome OS操作系统,而在同一周里,微软也将Windows Azure云服务的定价和可用性等细节公之于众.Chrome OS和Azure代表着业界最权威的从不同的计算终端来进行建设.运行和存取应用的最新和最好的办法.

云计算终端浏览器

本文讲的是云计算终端浏览器,[IT168 资讯]大概是在2007年左右,包括IBM.Google.亚马逊等知名企业提出来云计算的概念.在"2009云计算中国论坛"上,成都信息工程学院副教授王鹏(<走进云计算>的作者)看来,这些企业在提出云计算概念的时候,往往依据自己已有的技术基础和自己商业的利益,从不同的角度提出了不同角度的云计算模型.有强调端和云的,他们的提出推动了整个云计算的概念明确和出现. 在云计算市场,Google和微软又站在了对立面.Google应用引擎(Goog

云计算数据中心和传统IDC有何差别

现在云端的很多业务都放在了数据中心当中进行承载,很多传统的IDC运营商也开始转型来支撑更多的区域性业务.这样就延伸出来一个问题,那就是传统的IDC提供商和现在新型的云计算数据中心供应商有何区别呢? 我们都知道,云计算服务的实施很大程度上是需要数据中心和互联网之间的协作来完成的,云计算的数据中心从基础设施到计算与应用是连续和整体的.也就是说,IDC机房还是进行托管,使用的还是机房中的主机资源,云计算数据中心提供给用户的是服务能力或者说IT效能. 传统的IDC大致可以分为托管型服务和用户自主服务两类