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