Chubby翻译ITeye - 超凡娱乐

Chubby翻译ITeye

2019年03月04日14时04分17秒 | 作者: 振海 | 标签: 一个,效劳,客户端 | 浏览: 2483

有人或许说咱们构建了一个详细化了Paxos的库,而不是一个能供给集中式的锁效劳的库,乃至不是一个能供给高度可信的效劳的库。一个客户端Paxos库应该是不依托任何其他效劳器,(除了姓名效劳器),一起应该能为程序员供给一个规范的结构,假定他们的效劳能够作为状况机而得以运用。实践上,咱们供给一个这样的客户端,而这一客户端是独立于Chubby的。

可是,一个锁效劳相关于一个客户端库是有一些优势的。首要,有时咱们的开发者没有考虑到高可用性。一般他们的体系的开端原型是低负载以及宽松的可用性确保;代码总是没有被规划成能够运用一起性协议。当这个效劳逐步老练,具有了更多的用户,可用性变得越来越重要;所以副本和推举被参加到一个已有的规划中。尽管这个能够经过一个供给散布式一起性的库来完结,可是关于修正已有的程序结构和通讯形式的作业,锁效劳能够让其更简略。比方,为了推举一个master,并使其能写到一个已有的文件效劳器上,咱们只需求添加两个状况和一个RPC参数到现有体系中:一个节点能够经过取得一个锁然后成为master,然后经过write RPC传递一个额定的整数(锁取得计数),终究添加一个if状况到文件效劳器中,if状况为:假如这个取得计数比当时的值小,则回绝这个write(用以防止推迟包)。咱们发现这个技能比测验使一个已有体系适应于一起性协议要简略,特别是当在一个改动时期,兼容性有必要被确保的时分。

其次,咱们的许多推举或是区分数据的效劳,需求一个机制来播送成果。这就意味着咱们有必要答应客户端存储和获取小规划的数据,也就是说,能够对小文件进行读写。这能够经过一个姓名效劳器来完结,可是咱们的试验标明锁效劳本身就能很好的完结这个使命。这不只由于锁效劳能削减一个客户端所需求的效劳器数量,还由于协议的一起性特征一同被同享了。Chubby作为一个姓名效劳器的成功首要归于它运用了一起性的用户缓存,而不是根据时刻的缓存。咱们特别发现,开发者十分高兴于不必非得去挑选一个缓存超时,例如DNS time-to-live value。DNS time-to-live value能引起高DNS负载,或许是重时刻的客户端犯错。

再次,咱们的程序员关于一个根据锁的接口更为了解。Paxos的仿制状况机和独占锁相关的临界区都能让程序员感觉自己是在进行次第编程。可是,许多程序员之前都触摸过锁,并且以为自己知道怎样去运用它。带有挖苦意味的是,这样的程序员往往常常犯错,特别是当他们在一个散布式体系中运用锁时;在一个异步通讯的体系中,单个机器的锁过错所形成的影响,往往被他们忽视。可是,这种关于锁的表面上的了解消除了程序员在运用一个新的牢靠的机制的妨碍。

终究,散布式一起算法运用法定人数来做出决议,所以它们经过运用副原本获取高可用性。比方,Chubby一般在一个元中运用5个副本,要让该元发动的话,要求至少其间的3个运作。与之相反的,假如一个客户端体系运用一个锁效劳,就算只要一个客户在运作,也能取得一个锁并且安全的运转。然后,一个锁效劳削减了一个一个牢靠的客户端体系正常运作所需求的效劳器数目。从一种宽松的含义说,可把锁效劳看成是一种供给一个一般性的选民的办法,这种办法答应一个客户端体系一直能做出正确的决议,即便它的所属成员中只要较少一部分能运转。有人或许想到经过别的一种办法来处理这个问题:经过供给一种“一起性”效劳,运用必定数量的效劳器来供给Paxos协议中的“acceptors”。和锁效劳类似的,一个一起性效劳答应客户端一直能正常安全地作业,即便只要一个运转中的客户端进程。一个类似的技能被运用于削减Byzantine过错忍受所需的状况机的数目。可是,采纳一个一起性效劳的办法并没有专门地被用来供给锁,这一个办法处理不了任何一个之前提出的问题。

这些评论得出了两个首要的决议:

l  咱们挑选一个锁效劳,而不是一个库或是一起性效劳。

l  咱们挑选为小文件效劳然后答应被选中的领导者能播送他们自己和他们的参数,而不是构建和保护一个次级效劳

别的一些决议源自咱们希望的运用和咱们的试验环境:

l  一个效劳经过一个Chubby文件来播送它的领导者,它或许有上千个客户端。因而,咱们有必要让这上千个的目录都能拜访到这个文件,这样比供给更多的效劳器要更好。

l  客户端和副本或许希望能知道效劳器的领导者何时会改动。这就阐明一个作业改动机制会很有助于防止投票。

l  即便客户端不需求定时的投票文件,大多数仍是会这么做。这是一个支撑许多开发者的定论。因而,对这些文件进行缓存是很必要的。

l  咱们的开发者总是利诱于非直觉就能了解的缓存语义,所以咱们倾向于运用一起性的缓存

l  为了防止经济损失和违法行为,咱们供给安全机制,包括有运用权操控

咱们的一个挑选或许会让一些读者感到惊奇。咱们并不希望锁的运用是细粒度的。由于细粒度的锁或许只被持有一小段时刻(几秒乃至更少)。作为替代,咱们运用粗粒度的锁。比方,一个运用或许运用一个锁来推举领导者,然后这个领导者就能够操控这个运用数据的运用权一段时刻,几小时或许一天。这两种不同类型的运用标明关于一个锁效劳器会有不同的要求。

粗粒度的锁不会给锁效劳器太多的负载。锁获取速率一般只和客户端运用的业务发作率有很弱小的联系。粗粒度的锁的获取频率很低,所以暂时的锁效劳器失效对客户端影响很小。另一方面,锁在用户间的传递能够能需求开支很大的回复进程,所以咱们不希望由于一次锁的犯错而导致锁丢掉。因而,粗粒度锁能在锁效劳器失效的情况下存活下来,是一个很有优点的作业,并且根本不需求关怀这样完结的开支。这样的锁答应许多客户端都能被必定数目的锁效劳器充分地效劳到,而只是只带来一点点可用性的下降。

细粒度的锁会导向多个不同的定论。乃至是锁效劳器的细微失效都会导致许多客户端的中止。功用和能够随意地添加新的效劳器的才干很重要,由于锁效劳的沟通率跟着客户端的总沟通率的添加而添加。挑选不保护锁效劳的失效很有利于削减锁的开支,并且常常发作的丢掉锁的时刻赏罚并不是很严厉,由于锁只被短时刻持有。。(客户端有必要在网络分区之间为丢掉锁做好预备,这样由于锁效劳器的失效而引起的锁丢掉就不会带来新的康复途径)。

Chubby只供给粗粒度锁。走运的是,用户能够很便利地将它们自己的细粒度锁运用到它们的运用中。一个运用或许将它的锁分成组,然后运用Chubby的粗粒度锁来将这些组分配给特定的运用锁效劳器。保护这些细粒度锁只需求很少的状况;效劳器只需求保护一个非易失的,单调增的获取数,而这个数会很少被更新。客户端能够在解锁的时分发现锁的丢掉。假如运用了一个简略的,定长的租约,协议能够变得简略而有功率。这一方案最重要的优点在于咱们的客户端开发者会担任供给给效劳器必定的资源,以确保其能承当它们的负载,一起这还能减轻客户端自己坚持一起性的杂乱度。

2.2     体系结构

Chubby有两个重要的组件:一个效劳器,和一个客户端运用运用的库,这两个组件经过RPC来通讯;见图1。客户端库操控Chubby客户端和效劳器间的一切通讯。一个额定的第三方组件—一个署理效劳器,将在3.1节进行评论。

一个Chubby元由必定数量的效劳器(一般5个)组成,这些效劳器又称为副本,以削减相关过错发作的或许性。副本们运用一个散布式的一起性协议来推举一个master;这个master有必要取得大部分副本的投票,别的确保这些副本在几秒的距离时刻内不换推举别的的一个master,这段距离时刻被称为master租期。副本周期性地更新这个master租期,并让master持续赢得大多数的投票。

副本保护一个简略数据库的仿制,可是只要master能够对这个数据库进行读写操作。一切的其他副本,只能从master仿制更新,这个更新运用一起性协议发送。

客户端经过给副本发送master定位恳求来找到master,一切副本都列在DNS中。当收到这个恳求时,非master的副本用master的身份来回复。一旦客户端找到了master,客户端开端把一切恳求发送给master,直到客户端收到了中止的回复,或许master发现自己现已不再是一个master。写恳求经过一个一起性协议发送给各个副本;只要大多数的副本都接收到这个恳求时,写操作才干进行。读恳求只需求master进行处理;当master租期没有到期时,这样是安全的,他由于没有其他的或许存在的master。假如一个master失效,其他副本就会在他们的master租期到期时,运转推举协议;一般会在几秒内就推举出来一个新的master。例如,两次最近的推举花费了6s和4s,可是有时或许高达30s(4.1节)。

假如一个副本失效,并且在几小时内都没有康复,一个简略的替换体系就会在一个闲暇池里挑选一个新机器了,然后在它上面发动一个锁效劳。之后,这个体系会更新DNS表,用新机器的IP地址来替代失效副本的IP地址,当时的master周期性的查看DNS,并且终究注意到这个改变,然后它会更新数据库中的元成员列表;这个列表经过“正常仿制协议”来坚持在各个成员间的一起性。一起,新的副本从一个备份组合中取得最近的一个数据库仿制,这个备份组合保存在文件效劳器上,并且经过活动的副本更新。一旦新的副本发送一个当时master在等候取得的恳求,这个副本就被答应参加到新master的投票中。

2.3     文件,目录和句柄

Chubby供给一个和UNIX类似的文件体系结构,可是更简略。它由一个准确的文件和目录树组成,其间称号组件有斜线分隔。一个典型的姓名为:

/ls/foo/wombat//pouch

前缀ls是一切Chubby姓名共有的,代表锁效劳(lock service)。第二个组件(foo)是Chubby元的姓名;它经过DNS查找来断定一个或许更多的Chubby效劳器。有一种特别的元被称为local,标明客户端的本地Chubby元有必要被运用;这种元一般在同一个建筑中,并且最有或许被拜访到。姓名的剩余部分:/wombat/pouch,由Chubby元本身来解说。再次和UNIXl类似的,每个途径包括了一系列的子文件和子目录,每个文件又由一系列未解说的字节组成。

由于Chuuby的姓名结构类似与一个文件体系,不只是经过它自己的API,经过其他文件体系的接口也能运用它的运用,比方GFS。这个特色使得咱们不需求再去写根本的阅读和姓名空间操作东西,并且也不必再专门地去教会Chubby的运用者。

这个规划和UNIX不同的部分是为了利于散布。为了让不同的Chubby master是来效劳不同目录中的文件,咱们不供给将文件从一个文件夹移动到另一个文件夹中的操作,咱们不保护目录修正时刻,一起咱们还避开了根据途径的权限语义(即,文件的拜访权限由其本身来保护,而不是根据这个文件地点的目录)。为了更简略的对文件的元数据进行缓存,体系不显现文件的终究拜访时刻。

姓名空间只包括文件和目录,被一起称为节点。每一个这样的节点在它地点的元中只要一个姓名,没有符号链接或许是硬链接。

节点能够使不变的或许是暂时的。任何节点都或许明确地被删去,可是暂时性的节点在没有被任何用户翻开的时分就会被删去(关于目录,则是清空)。暂时性的文件被用作是暂时文件,并且告诉其他文件一个客户端还在运转。任何一个节点都能够作为也给主张性的读写锁。这些锁匠在2.4节中更详细的描绘。

每一个节点都有许多不同的元数据,包括拜访操控列表的三个姓名(ACLs),用来操控对这个节点ACL姓名的读,写和修正。除非是被回绝,一个节点在创立的时分集成它父目录的ACL姓名。ACLs是在一个ACL途径中的文件,这个途径在元的本地姓名空间中是揭露的。这些ACL文件由简略的首要姓名列表组成;读者或许想起Plan 9‘s groups[21]。一次,一个文件F的写ACL名是foo,而ACL目录下有一个文件foo并且这个文件有一个进口bar,那么用户bar就会被答应对F进行写操作。用户经过一个RPC体系中的机制来认证。由于Chubby的ACLs是简略的文件,其他的一些希望运用类似的拜访操控机制的效劳能自动能拜访它们。

每个节点的元数据包括四个单调增的64位数字,然后答运用户很简略地发现它们的改变。

l  一个实例数字;比任何一个之前的具有通用姓名的节点的实例数字都要大。

l  一个内容发作数字(只要文件具有);当文件进行写操作时,该数字添加。

l  一个锁发作数字;当这个节点的锁从闲暇变成获取是该数字添加。

l  一个ACL发作数字;当该节点的ACL姓名被写时,该数字添加。

Chubby还显现一个64位的文件内容查验和。这样用户能够分辩出文件的不同。

Chubby翻开节点来取得一个类似于UNIX文件描绘符的句柄,句柄包括:

l  查验位,防止客户单穿件或许猜想句柄,所以完好的拜访操控查验只在句柄创立时进行。(比较较于UNIX,UNIX在翻开时查看它的权限位,而不是在每次读写操作时,由于文件描绘符不能假造)。

l  一个序列号,经过它,一个maste能够知道一个句柄是由它仍是由前一个master发作。

l  在翻开时供给形式信息,当一个旧的句柄交给一个刚重启的master时,mstaer就能够从头设置它的状况。

2.4     锁和序列

每一个Chubby文件和目录能够作为一个读写锁;一个客户端句柄能以独有形式来取得这个所,也可所以许多客户端句柄以同享形式来取得这个锁。像大多数程序员所知道到互斥锁相同,这些锁是主张性的。也就是说,它们只和其他的目的来取得相同锁的进行竞赛:取得一个锁F,即不需求拜访文件F,也不阻挠其他客户端这么做。咱们没有运用强制锁,强制锁锁上的文件,关于那些没有取得锁的客户端,是不能拜访的:

Chubby锁一般保护其他效劳运用的资源,而不只仅是和这个锁相关的文件。假如用一种有含义的办法来强制执行一个强制锁,咱们就有必要对这些效劳做做更多的修正。

当用户想拜访锁文件来进行调试或许办理时,咱们不希望强制她们封闭他们的运用。在一个杂乱的体系中,运用那些现已运用在大多数的个人电脑上的办法会显得很难。在个人电脑上,办理程序能简略地经过主张用户关掉他的运用或是重启来打破强制锁。

咱们的开发者经过常有的办法来进行过错查看,经过警报信息比方“锁X现已被持有”,这样他们从强制锁中获益很少。歹意的进程在锁没有被持有时有许多时机能够修正数据,所以咱们发现强制锁所供给的额定看护没有多少含义。

在Chubby中,经过任一形式来取得一个锁都需求一个写答应,这样,一个无特权的读者不能阻挠一个写者的作业。

散布式体系中的锁很杂乱,由于沟通一般是不牢靠的,并且进程或许独立的挂掉。比方,一个持有锁L的进程或许宣布恳求R,然后挂掉。另一个进程或许来获取L然后在R抵达它的目的地之前进行相同的动作。假如R在之后抵达了,它或许在没有L的保护之下进行操作,然后导致了不一起的数据。乱序地收到信息的问题现已被很好地研讨过了;办法包括有虚拟时刻和虚拟同步,都是经过确保一切有的信息依照一个一切参加者看来都一起的次第发送来防止这个问题。

要在一个现存的杂乱体系中将序列号参加到一切交互中花费很高。因而,Chubby选用的办法是:序列号只参加到那些运用了锁的交互中。恣意时分,一个锁持有者能够恳求得到一个序列号-一个不透明的描绘锁获取后状况的字节字符串。它包括锁的姓名,它被获取的形式(独占仍是同享),以及锁发作数。假如客户端希望操作被锁保护的话,它就将这个序列号传递给效劳器(比方文件效劳器)。承受的效劳器则需求测验这个序列号是否仍是有用的以及是否有这正确的形式。假如否的话,它就应该回绝这个恳求。一个序列号的有用功用够经过查看效劳器的Chubby缓存断定,或许,假如效劳器不想保护一个和Chubby的会话,能够经过查看效劳器之前观察到的最近序列号。这个序列号机制只需求额定地一个影响信息的字符串,并且能很简略地解说给开发者。

尽管咱们发现序列号很简略运用,可是重要的协议开展得很慢。因而Chubby供给了一个有缺点可是更简略的机制来削减推迟或是乱序抵达效劳器的不支撑序列号的恳求所带来的危险。假如一个客户端经过一个正常办法开释掉一个锁,这个锁马上就能被其他的客户端获取。可是,假如一个锁由于他的持有者挂掉了或许衔接不上了而闲暇了,锁效劳器会在一段时刻阻挠其他的客户端去取得这个锁,这段时刻成为lock-delay。客户端或许给lock-delay指定一个规划,一般是一分钟。这个约束确保一个过错的客户端不会过长时刻的占有一个锁。尽管有缺点,lock-delay保护了未经修正的效劳器和客户端不受信息推迟还重启引起的问题的影响。

2.5     作业

Chubby客户端在创立一个句柄时,或许发作一系列的作业。这些作业经过Chuby库中的up-call操作异步的发送给这个客户端。作业包括有:

l  文件内容修正-一般用来经过文件操控播送一个效劳器的方位。

l  添加,删去或许修正子节点-用于镜像。

l  Chubby master挂掉了-正告客户端其他的作业或许现已丢掉,需求从头查看数据。

l  一个句柄(和它的锁)无效-这一般是一个通讯问题。

l  锁获取-能够用来断定一个primary何时被推举出来。

l  另一个客户端形成的锁恳求抵触-答应对锁进行缓存。

在相应的举动进行了之后,作业被发送。因而,假如一个客户端被奉告文件内容现已被修正,他在随后读这个文件时就需求确保能看到新数据。

上面说到的终究两个作业很少发作,并且经过过后处理完全能够疏忽。例如,在primary推举后,客户端一般需求和新的primary通讯,而不是只是知道有一个primary存在就能够了,由于,他们等候一个文件修正作业,标明新的primary现已把它的地址写入到一个文件中。理论上抵触锁作业答应客户端缓存其他效劳器的数据,运用Chubby锁来保护缓存的一起性。一个抵触锁恳求的告诉将会奉告一个客户端中止运用和这个锁相关的数据;客户端将会中止未完毕的操作,改写修正到一个home方位,丢掉缓存数据,并且开释。到现在为止,还没有人采纳过这种运用。

2.6     API

客户端将一个Chubby句柄视为一个指向一个不透明结构的指针,这个结构能够支撑多种操作。句柄只能经过open()创立,经过close()铲除。

Open()翻开一个命名了的文件或目录来生成一个句柄,类似于一个UNIX文件描绘符。只要这个调用能得到一个节点姓名,其他的只能对句柄操作。

经过一个已存的目录句柄来核算得到姓名;库供给了一个”/”目录的句柄,并且这个句柄永久有用。目录句柄防止了在一个多进程具有多层笼统物的程序中运用一个全局性的当时目录的困难。

客户端标明晰多个选项:

l  句柄怎么运用(读,写和上锁;修正ACL);只要当客户端有着恰当的权限时,句柄才会创立。

l  需求发送的作业(2.5节)

l  锁推迟(2.4节)

l  需求创立一个文件或许目录。

 

 

 

 

 

[TO-DO]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.10 数据库完结

Chubby的第一个版别选用多副本的Berkeley Db作为数据库。Berkeley Db供给了B树结构,能够映射字节串的关键字到恣意的字节串的值。咱们安装了一项关键字比较的功用,能够优先依照途径名中的组件编号进行排序;这使得节点既能够依照途径名得到关键字,一起在排序中兄弟节点又能够相邻。由于Chubby中不运用根据全路经的答应,所以一次数据库查询就能够取得单个文件的答应权限。

Berkeley Db运用散布式一起性协议在一系列的机器上仿制数据库日志。一旦添加了主效劳器的租约功用,就十分契合Chubby的规划,使得完结起来十分直观。

尽管Berkeley Db的B树代码现已较为老练且被广泛运用,它的副本代码却是刚刚添加的,并且没有许多的用户。软件保护者有必要的首要使命是保护和改进他们产品最常用的功用。尽管Berkeley Db的保护者处理了咱们的问题,咱们依然觉得运用他们的副本代码使咱们承受了过多的危险。所以,咱们写了一个简略的数据库,选用预写日志和快照机制,与Birrell等的规划类似。好像之前,数据库日志运用散布式一起性协议分发在一切副本上。Chubby运用了Berkeley Db很少的特性,所以这次的重写在全体上极大的简化了体系;例如,咱们需求原子性操作,但咱们不需求通用的业务。

2.11 备份

每隔几个小时,每个Chubby节点的主节点就把它数据库的快照备份到不同建筑的GFS文件效劳器。放在不同建筑内既能够防止建筑损坏带来数据丢掉,并且防止了备份的循环依靠;在同建筑内的GFS节点或许会依靠Chubby节点来推举它的主节点。

备份不只能够用于灾祸康复,并且能够用于新添加节点的初始化作业,防止添加在效劳中的节点的负载。

 

2.12 镜像

Chubby答应一系列文件从一个节点镜像到另一个节点。镜像的速度很快,由于文件尺度较小,并且作业的机制答应在一个文件添加、修正、删去后当即告诉镜像模块。假定没有网络问题,文件修正会在1s内镜像到世界规划的一切效劳器。假如一个镜像不能拜访,那么在衔接修正前它坚持不变。更新的文件会经过他们的辨认码进行辨认。

镜像常常用于仿制配置文件到全世界不同的核算集群。一个特别的节点,名为global,包括一个子树/ls/global/master,它被镜像到一切其他Chubby节点的/ls/cell/slave子树上。全球节点很特别是由于它的五个子节点散布在世界各地,这样便利全球各组织机构的拜访。

global节点镜像的文件傍边还包括Chubby自己的拜访操控列表,Chubby和其他体系的宣扬文件,便利用户接入数据存储的指针,如Bigtable节点,以及许多其他体系的配置文件。

 

3      扩展机制

Chubby的客户端是独立的进程,所以Chubby有必要要处理超出往常预期数量的客户端拜访。咱们从前遇到超越90,000个客户端一起和一个Chubby主节点通讯,该数目远远超越实践物理机器的数量。由于每个节点只要一个主效劳器,而它地点的物理机器与客户端不同,这样客户端或许会使主效劳器超负荷。所以,体系扩展的最有用机制就是削减与主效劳器的通讯数量。假定主效劳器没有严峻的功用过错,对主效劳器端恳求处理的建筑不能发作很大影响。咱们采纳如下办法:

创立恣意数量的Chubby节点;客户端简直总是能够运用最近的节点(由DNS得到),防止对长途机器的依靠。咱们的典型布置是一个Chubby节点对应一个数千台机器的数据中心。

当负载过高时,主效劳器能够把租约时刻由默许的12s添加到60s左右,削减了坚持活动的RPC数量。(现在为止坚持活动的开支比较大,并且负载过高的效劳器较简略呈现该问题;客户端对其它调用的推迟改变十分不灵敏。)

Chubby客户端缓存文件数据,元数据,文件丢掉,以及翻开的句柄来削减对效劳器的调用。

咱们运用协议转化效劳器把Chubby协议转化为比较不杂乱的协议,例如DNS等。详细稍后评论。

这儿咱们描绘两种类似的机制,署理和分区,咱们希望这两种机制能够让Chubby的规划进一步扩展。咱们在详细实践中没有运用它们,可是现已规划完结,并有或许近期投入到运用。现在咱们尚不需求考虑把体系扩展五倍以上:首要,需求的机器有限;其次,由于咱们在Chubby的客户端和效劳器端运用的机器类似,硬件晋级使得每台机器的客户端数量添加,一起也使每个效劳端的容量添加。

 

3.1     署理

Chubby协议能够被信赖的进程署理(两边运用相同的协议),把其他客户端的通讯转发给Chubby元。署理能够替代Chubby效劳器处理坚持活动和读取恳求,然后减轻体系负载;署理不能削减写流量,这些流量经过署理的缓存。但即便经过十分强势的缓存,写通讯在Chubby体系中也只占有不超越百分之一的负载(见4.1节),所以经过署理能够极大添加客户端衔接的数量。假如一个署理效劳器处理Nproxy个客户端,坚持活动的流量开支就相应削减Nproxy个,有或许是上万个乃至更多。署理的缓存能够削减读操作的通讯,最明显的是读同享的均匀流量——约是原先的十分之一(见4.1节)。可是由于现在在Chubby的负载中,读操作占10%以下,比较之下,坚持活动开支的明显削减是现在更重要的作用。

署理机制参加了额定的RPC,包括写和第一次读。或许有人以为署理机制的参加使得Chubby元比较曾经至少有两倍的更多时机暂时失效,由于每个经过署理衔接的客户端依靠的是两台或许发作毛病机器:它衔接的署理和Chubby的主效劳器。

 

3.2     分区

[TO-DO]

4      运用,意外和规划过错
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表超凡娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    LINUX—rsync(跨渠道)ITeye

    文件,指定,效劳
  • 2

    Chubby翻译ITeye

    一个,效劳,客户端
  • 3

    ubuntu 增加 qqITeye

    运转,假如,装置
  • 4

    Mplayer有声响有图画ITeye

    声响,图画,可是
  • 5

    gcc新手入门ITeye

    文件,编译,程序
  • 6
  • 7

    浅谈https\ssl\数字证书(2)ITeye

    证书,数字证书,客户端
  • 8

    浅谈https\ssl\数字证书 1ITeye

    加密,证书,数字证书
  • 9
  • 10