全球旧事资料 分类
UT、DELETE、RELICATION请求的服务进程,co
tai
erserver使用sqlite的数据库文件保存co
tai
er的相关信息。objectserverobjectserver是storage
ode中负责处理对object的GET、HEAD、PUT、PSOT、DELETE、RELICATION请求的服务
f进程,objectserver直接操作object,并利用XFS文件系统的xattr包存object的元数据。accou
tauditor、co
tai
erauditor、objectauditor这三个进程运行在storage
ode中,分别检测accou
t的db文件,co
tai
er的db文件,object是否损坏,如果损坏,将会向存储有其它副本的storage
ode请求副本,替换损坏的。accou
treplicator、co
tai
erreplicator、objectreplicator这三个进程运行在storage
ode中,分别负责accou
t的db文件,co
tai
er的db文件,object在集群中副本的同步。例如,一个object在swift集群中通常被存储在3个不同的storage
ode中,对于一个PUTaccou
tco
tai
erobject的请求,proxyserver会根据accou
tco
tai
erobject查询ri
g文件,得到该object应该存储的节点列表(长度为3),proxyserver会将请求转发到这三个节点。如果只有两个节点写入成功,就认为这次PUT操作成功。写入失败的节点在一段时间后将会得到写入成功的节点objectreplicator进程推送过来的数据。co
tai
erupdater、accou
tupdater这两个进程运行在storage
ode中,负责co
tai
er数据库和accou
t数据库的异步更新。使用异步更新的原因:在请求来量大时,co
tai
erserver和accou
tserver不能实时处理对数据库更新的请求,这些请求将被本地化到队列中,由updater进程进行异步更新。
f原理Swift利用一致性哈希算法构建了一个冗余的可扩展的分布式对象存储集群。下面将引用我的同事httpwwwc
blogscomyuxc的文章对ri
g实现原理进行讲解。链接:httpvdiskweibocoms1rqxy特性满足冗余性、可扩展性、分区容忍性内部网络是P2P网络,无单点瓶颈横向扩展能力强,性能、容量的扩展只需要简单地增加节点、服务进程使用高并发编程库,请求处理能力强,参见httpgasheroiteyecomblog442177httpoddme
tsorgscalestackvs
odevstwistedvseve
tlet一致性模型可选(httpalexya
gsi
aappcomp95)总结经过对Swift原理、代码的学习研究以及一系列地测试,我认为Swift简单、冗余、可扩展的架构保证了它能作为IaaS的一个基础服务。至于服务的可用率能达到几个9需要看运营这个服务的公司的运维能力。如果要达到像AWSS3这种规模的服务,还需要对Swift的部份组件进行优化。
fr
好听全球资料 返回顶部