分布式存储系统是为了解决单机存储所存在的容量、性能等瓶颈,以及可用性、扩展性等方面的问题,通过把数据分散存储在多台存储设备上,为大规模的存储应用提供大容量、高性能、高可用、扩展性好的存储服务。这一系列的文章介绍一种典型的分布式存储系统的设计和实现,该系统已经服务大量的业务,达到了数百T的存储量,经受了海量服务的考验。
整体架构
系统的整体架构如下图所示,其中逻辑层是存储服务的使用方。系统由两大部分组成,一部分是图中数据仓库包含的模块,是直接提供数据存储服务的核心部分,由接入层、数据层、配置运维中心组成;另一部分是辅助系统,主要负责系统的监控、运维和运营备份系统、监控系统、运维管理系统、用户运营系统组成。
一个数据仓库就是一个存储集群,多个业务可以共享一个数据仓库的资源,我们根据需求可以部署多个数据仓库,辅助系统是所有数据仓库共用的。
下面简单介绍一下各个模块的主要功能。
接入层
接入层主要是提供两个功能,一是对逻辑层访问接入层进行负载均衡;二是实现数据分片,即把访问数据的请求转发数据所在的数据层设备。
数据层
数据层就是存储数据,存储介质可以支持内存或SSD。读写服务是处理用户的读写请求;同步模块多份数据拷贝之间的主备同步;运维工具是用于执行主备切换、死机恢复、扩容等运维操作。
配置运维中心
配置运维中心由3部分组成。配置中心负责整个仓库的配置维护和下发;配额中心负责各个业务级别的容量、流量、CPU等资源的配额管理;运维中心用于自动或手动下发运维命令。
备份系统
备份系统负责整个系统所有业务的数据备份、回档和恢复。流水中心会记录所有写操作的流水;任务中心管理和调度所有数据备份、回档和恢复任务的执行。
监控系统
监控系统对系统的关键信息和运行状况进行上报和分析,对异常情况进行监控和告警。打点上报是对系统的关键路径、异常点等进行计数或状态上报;多维上报是对打点上报的一个补充,上报了更多维度的信息。
运维管理系统
运维管理系统的使用者是系统运维人员,可以方便地进行业务管理和运维操作,如进行配置管理、故障管理、业务扩容等常用操作;还可以查看系统运行状况和业务运营数据。
用户运营系统
用户管理系统的使用者是使用存储服务的用户,用户通过该系统可以掌握所接入业务的运营数据,以及进行用户级的业务管理和运维操作,如续费、扩容、数据清空、数据备份、数据恢复等。