【山大智云】山大智云体系结构总结

山大智云体系结构总结

经过了一学期的学习以及全员总结,整个项目的架构和最初猜测的组织结构相似:

并且组员们对其中的各个部件有了更详细的认识。

子部件

底层库

  • libsearpc

    seafile系列部件中的内部通讯协议。仅服务端到服务端。(如seahub)

  • libevhtp

    seafile系列部件中的外部通讯协议。服务端到客户端。(如seafdav)

接口

  • seaserv

    一个python库,用于调用RPC服务。采用C-Binding的方式绑定了seafile-server中定义的RPC服务。

  • seafobj

    一个python库,用于直接访问seafile-server管理的键值对象。

SeafileServer

后端核心服务,包括RPC服务和Http服务。

  • pro-set

    后端核心服务的升级版,支持更多高级操作。

Seahub

Web服务。

  • seaf-frontend

    seahub的前端。

  • seahub-extra

    seahub的扩展包。

  • seafevents

    Web服务的日常事件。

seafdav

提供seafile的WebDav服务,使用的是Http协议。

seafile-client

客户端。通过Http协议与seafile-server通讯,并可通过seafdav同步。

部署

集群架构

以下译自《Seafile管理手册

Seafile 集群解决方案采用三层架构:

- 负载均衡器层:将传入流量分配到 Seafile 服务器。 HA 可以通过部署多个负载均衡器实例来实现。
- Seafile 服务器集群:由 Seafile 服务器实例组成的集群。 如果一个实例失败,负载均衡器将停止将流量交给它。 这样就实现了HA。
- 后端存储:分布式存储集群,例如 S3、Openstack Swift 或 Ceph。
这种架构水平扩展。这意味着,我们可以通过添加更多机器来处理更多流量。该架构如下图所示。

Seafile 服务器节点上有两个主要组件:Web 服务器(Nginx/Apache)和 Seafile 应用程序服务器。 Web 服务器将来自客户端的请求传递到 Seafile 应用程序服务器。 Seafile 应用服务器独立工作。他们不知道彼此的状态。这意味着每个应用服务器都可以独立失败,而不会影响其他应用服务器实例。负载均衡器负责检测故障和重新路由请求。

即使 Seafile 应用服务器独立工作,它们仍然需要共享一些会话信息。所有共享会话信息都存储在 memcached 中。因此,所有 Seafile 应用服务器都必须连接到同一个 memcached 服务器(集群)。稍后将提供有关 memcached 配置的更多详细信息。

后台服务器是各种后台任务的主力,包括全文索引、Office 文件预览、病毒扫描、LDAP 同步。它通常应该在专用服务器上运行以获得更好的性能。目前整个集群中只能运行一个后台任务服务器。如果有多个后台服务器在运行,它们在执行某些任务时可能会相互冲突。如果后台任务服务器需要HA,可以考虑使用Keepalived为其搭建热备份。更多细节可以在后台服务器设置中找到。

所有 Seafile 应用服务器访问同一组用户数据。用户数据有两部分:一份在MySQL数据库中,一份在后端存储集群(S3、Ceph等)中。所有应用程序服务器均等地为客户端提供数据。

所有应用服务器都必须连接到同一个数据库或数据库集群。如果您需要数据库集群,我们建议使用 MariaDB Galera Cluster。

  • 三节点部署

    三个节点,分别充当Web服务器、Seafile服务器、存储服务器。这样的划分分工明确,属于成本最低的方案,但性能上显然不是很好。尤其是在seafile server服务器上将承载大量计算型任务,对其性能要求很苛刻。

  • 四节点部署

    将office渲染以及pro-set(主要是ElasticSearch)这两个资源消耗高的服务独立到另外的辅助服务器中。此时Seafile服务器仅兼任对象键值和SQL服务器,并运行seafile-server服务;同时clamAV只对块存储服务器进行扫描。优化了Seafile服务器上的性能,但是降低了安全性。同时仍未解决负载均衡问题。

  • 五节点部署

    前端引入主从节点,进行负载均衡。因为Seafile服务器尚且不支持分布式,所以只能从前端上负载均衡。杀毒程序回到Seafile服务器中,仅让块存储服务进行I/O密集型任务。但是这样的方案仍没有备份措施。

  • 更多节点

    能够引入更多冗余服务器进行备份或者热备份,也可以引入独立的SQL服务器以及缓存服务器,但成本也相应提高。此处不再进一步探讨。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值