跳到主要内容

集群化

适用大规模用户访问和云原生场景,部署较繁琐,需人工配置数据库和对象存储服务,不能直接运行!

中小型企业请使用单服务器版,部署简单,运维方便。

适用范围:

  • 200人/50TB规模以上的大型企业/政府/学校等组织,私有部署访问。
  • 基于公有云OSS服务(阿里云、七牛云等OSS/云数据库)部署的,用于公网高速访问的组织。

优势:

  • 部署在第三方数据库和对象存储服务之上,可以同时部署在多台主机中形成集群,当某台主机停止服务时,故障自动转移,不影响整体服务。
  • 支持高并发,多服务器均衡负载,应对大用户量使用。
  • 可以根据业务需要弹性扩容,省去公司前期存储成本压力。
  • 热备份能力,多副本实时冗余存储。

用户故事

中大型企业、高校、政府部门等组织中,由于人数众多,历史悠久,流动量大等原因,会产生海量的文件资料,逐渐达到数百TB甚至千TB级别。由于大量数据不容丢失,要归档存储、要备份,数据量将逐年增加,只增不减。

通过单机服务器管理和维护百TB以上的文件,为数千人提供稳定可靠的文件访问服务是难以实现的,普遍存在以下问题:

  1. 单点故障

    一旦服务器因各种原因宕机,系统的所有服务都不可用。

  2. 扩容难

    扩容难分两部分:性能扩容和存储扩容。

    存储扩容难:单机服务器存储海量数据一般使用磁盘阵列,扩容时必须停止服务,且磁盘阵列对每个硬盘的容量一致性有要求。一旦阵列损坏,所有数据都会丢失。

    性能扩容难:单机服务器只能增加CPU核心/内存或者更换性能更好的服务器,每次扩容需要停止服务。

  3. 并发访问性能差

    由于单机服务器下,流量出口只有一个,由于带宽有限,并发访问很容易出现流量瓶颈,导致用户上传下载文件速度慢。

  4. 海量数据备份难

    例如:以100TB数据,50MB/秒的传输速度,全部备份一次需要23天。

单台服务器访问图例:

image-20220420180939043

如何解决?

通过使用多台服务器,进行集群化部署,利用负载均衡机制分散处理原单台服务器的访问压力,集群化服务器访问图例: image-20220420181214800

解决单点故障问题

当悦库集群中"服务器A"宕机后,负载均衡会立即检测到,并将故障节点剔除,这是毫秒级的。当节点恢复正常后,会自动重新将节点加入服务器集群。

解决扩展难问题
  • 解决性能扩展难问题:

​ 当服务端性能不足时,只需要向服务端添加一台服务器,过程中不影响悦库集群的正常服务。

  • 解决存储扩展难问题

​ 悦库集群使用分布式对象存储系统。如需对空间进行扩容,可以直接在任意服务器上增加硬盘,过程中不影响悦库集群正常服务。

解决并发访问性能差问题

通过在不同网络位置部署多台服务器,可以分散上传/下载流量,避免服务器单点流量瓶颈。

解决海量数据备份难问题

悦库集群实现了数据的热备份,因此无需执行备份所有数据的操作。

文件数据上传后,在服务端会自动进行冗余存储(冗余数可配置),单个/多个硬盘损坏不影响整体数据,但硬盘损坏数不能大于指定配置。例如当前集群共有9个硬盘,最多允许同时3个硬盘损坏,更换新硬盘,存储系统自动将数据还原。

架构

集群版部署架构,自上而下由三个层面组成,分别为访问层、应用层、数据层。

image-20220520163232654

访问层

用于实现负载均衡。把客户端请求根据需求调度到服务器节点。并检测各服务存活状态,当服务节点故障时,实现虚拟IP漂移至健康节点。

应用层

用于提供悦库网盘的基础业务功能支撑。其中悦库网盘服务是直接面向用户提供文件管理业务功能的,其他服务作为后台服务为文件管理功能提供附加能力。

数据层

用于保存悦库网盘系统所有结构化和非结构化数据。悦库系统不会在数据层以外存储用户数据,因此其他服务的故障对用户数据没有任何影响。

部署

从零开始部署自己的悦库网盘集群。

  1. 部署高可用、负载均衡的MySQL集群服务
  2. 部署Ceph对象存储服务
  3. 部署Redis服务
  4. 部署悦库服务集群

相关教程

快速入门 - 快速体验多用户场景下简单的文件共享和权限管控功能。

用户手册 - 全面了解产品功能。