首页 理论教育 SWIFT体系结构揭秘

SWIFT体系结构揭秘

时间:2023-11-16 理论教育 版权反馈
【摘要】:SWIFT采用三层逻辑结构的分层数据模型:账户/容器/对象,每个层的节点数没有限制,可以任意扩展。SWIFT采用完全对称、面向资源的分布式体系结构,可以扩展所有组件,避免单点故障的扩散,影响整个系统的运行。SWIFT组件包括以下内容。SWIFT通过代理服务器提供基于HTTP的REST服务接口,并对账户、容器和对象进行CRUD处理。在访问SWIFT服务之前,需要通过身份验证服务获得访问令牌,然后将报头信息X-Auth-Token添加到发送的请求中。

SWIFT体系结构揭秘

SWIFT采用三层逻辑结构的分层数据模型:账户/容器/对象(账户/容器/对象),每个层的节点数没有限制,可以任意扩展。账户和个人账户不是一个概念,可以理解为租户,用作顶层隔离机制,可用于多个账户,容器表示一组对象的封装,类似于文件夹或目录;对象由元数据和内容组成。

SWIFT采用完全对称、面向资源的分布式体系结构,可以扩展所有组件,避免单点故障的扩散,影响整个系统的运行。采用非阻塞I/O模式来提高系统的吞吐量和响应能力。

SWIFT组件包括以下内容。

(1)代理服务(Proxy Server):提供对象服务API,根据环的信息查找服务地址,并将用户请求转发给相应的账户、容器或对象服务。由于采用了无状态REST请求协议,因此可以对其进行水平扩展以平衡负载。

(2)身份验证服务(Authentication Server):验证用户的身份信息并获得在一定时间内有效的对象访问令牌(令牌),验证访问令牌的有效性,并将其缓存到期时间。

(3)缓存服务的内容(Cache Server):缓存包含对象服务令牌、账户和容器的存在信息,而不包括对象本身的数据,缓存服务可以聚集在memcached中,Swit使用一致的散列算法分配缓存地址。

(4)账户服务(Account Server):提供账户元数据和统计数据,并维护包含容器列表的服务,每个账户的信息存储在SQLite数据库中。

(5)容器服务(Container Server):提供容器元数据和统计信息,并维护包含对象列表的服务,每个容器的信息存储在sQLite数据库中。(www.xing528.com)

(6)对象服务(Object Server):提供对象元数据和内容服务。每个对象的内容以文件的形式存储在文件系统中,元数据存储为文件属性。建议使用支持扩展属性的XFS文件系统。

(7)复制服务(Replicator):通过将哈希文件与高级水印进行比较,检测本地分区副本与远程副本是否一致,并在发现差异时使用推送(Push)更新远程副本。例如,对象复制服务使用远程文件复制工具rsyne进行同步。另一项任务是确保从文件系统中删除的对象。

(8)更新服务(Updater):当对象由于高负载而无法立即更新时,任务将被序列化为本地文件系统中的队列,以便在服务恢复后可以异步更新该服务。例如,当容器服务器在成功创建对象后无法更新对象列表时,容器的更新操作进入队列,更新服务扫描队列并在系统恢复正常后处理相应的更新。

(9)审计服务(Auditor):检查对象、容器和账户的完整性,如果发现位级错误,则对文件进行隔离,并制作其他副本以覆盖本地损坏的副本,日志中记录其他类型的错误。

(10)账户清理服务(账户收割机):删除标记为已删除的账户,并删除其中所包含的所有容器和对象。

SWIFT通过代理服务器提供基于HTTP的REST服务接口,并对账户、容器和对象进行CRUD处理。在访问SWIFT服务之前,需要通过身份验证服务获得访问令牌,然后将报头信息X-Auth-Token添加到发送的请求中。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈