分布式存储运维系统构架简析 序言 最近花了很多时间在分布式存储上面,不想在这个上面再花费很多时间了,所以用这篇文章做一个最后的总结。 在面对分布式存储的时候,分为两种角度,一种是客户侧,一种是运维侧,客户是上帝,所以不谈上帝的操作,专注于运维侧的系统构建。 其实所有的系统构建,都应该分成两个纬度,一个是客户纬度,专注于客户体验,进行各种定制化输出;一个是运维纬度,专注于底层的运维,各种监控数据,各种操作,都使用白屏的操作,而不是天天命令行操作,使用平台层面,可以防止误操作,系统扛了大部分的责任,也可以让运维不用每天记忆那些傻逼命令,傻逼参数,减轻低等级的操作,让大脑有更多的空间来想想其他的事情。。。例如,看看蓝天白日黄昏。。。。 分布式存储系统是为了解决单机存储所存在的容量、性能等瓶颈,以及可用性、扩展性等方面的问题,通过把数据分散存储在多台存储设备上,为大规模的存储应用提供大容量、高性能、高可用、扩展性好的存储服务。这一系列的文章介绍一种典型的分布式存储系统的设计和实现,该系统已经服务大量的业务,达到了数百T的存储量,经受了海量服务的考验。 整体架构 系统的整体架构如下图所示,其中逻辑层是存储服务的使用方。系统由两大部分组成,一部分是图中数据仓库包含的模块,是直接提供数据存储服务的核心部分,由接入层、数据层、配置运维中心组成;另一部分是辅助系统,主要负责系统的监控、运维和运营备份系统、监控系统、运维管理系统、用户运营系统组成。 一个数据仓库就是一个存储集群,多个业务可以共享一个数据仓库的资源,我们根据需求可以部署多个数据仓库,辅助系统是所有数据仓库共用的。 下面简单介绍一下各个模块的主要功能。 接入层 接入层主要是提供两个功能,一是对逻辑层访问接入层进行负载均衡;二是实现数据分片,即把访问数据的请求转发数据所在的数据层设备。 数据层 数据层就是存储数据,存储介质可以支持内存或SSD。读写服务是处理用户的读写请求;同步模块多份数据拷贝之间的主备同步;运维工具是用于执行主备切换、死机恢复、扩容等运维操作。 配置运维中心 配置运维中心由3部分组成。配置中心负责整个仓库的配置维护和下发;配额中心负责各个业务级别的容量、流量、CPU等资源的配额管理;运维中心用于自动或手动下发运维命令。 备份系统 备份系统负责整个系统所有业务的数据备份、回档和恢复。流水中心会记录所有写操作的流水;任务中心管理和调度所有数据备份、回档和恢复任务的执行。 监控系统 监控系统对系统的关键信息和运行状况进行上报和分析,对异常情况进行监控和告警。打点上报是对系统的关键路径、异常点等进行计数或状态上报;多维上报是对打点上报的一个补充,上报了更多维度的信息。 运维管理系统 运维管理系统的使用者是系统运维人员,可以方便地进行业务管理和运维操作,如进行配置管理、故障管理、业务扩容等常用操作;还可以查看系统运行状况和业务运营数据。 用户运营系统 用户管理系统的使用者是使用存储服务的用户,用户通过该系统可以掌握所接入业务的运营数据,以及进行用户级的业务管理和运维操作,如续费、扩容、数据清空、数据备份、数据恢复等。