对分布式存储系统设计架构的理解

1传统存储

今天和大家浅谈一下分布式存储设计方面我个人的一些理解。首先声明我本人不是做研发的,只是一个有着10年左右存储行业经验的普通工程师和产品经理。最早接触存储是在2010年,那时候说起存储大多指的是双控制器的磁盘阵列,比如:EMC、IBM、HDS等,除了双控制器架构还有多控制器的所谓高端存储,这些统称企业级存储。不过不管是中端的还是高端的,对于普通工程师来说都是一个黑盒子,我们并不知道其内部架构是什么样的,是怎么设计的,所了解的也只不过是产品的规格参数啦,功能特性啦,基本上把这些跟用户讲明白,也就够了。小编我曾经做过产品经理,和公司研发的同事了解过控制器架构的存储底设计的一些关键技术,比如Non Transparent Bridge(非透明桥):简单的理解就是通过PCIE把两个控制器连接在一起了。而为了使两个机器连接在一起,就发明了一种特殊的设备叫做非透明桥,桥的两端是连接在两个控制器的PCIE的总线上的,但是从任意一端,只能看到这个桥,看不到这个桥后面接的下一级设备,这就是所谓的“非透明”(因为一般的桥是透明的,你能看到桥后面的东西)。非透明桥就是用来做双控制器的cache mirror,所谓的缓存镜像,而现在的分布式架构很少有人用到这个技术。
传统磁盘阵列架构

2分布式存储与传统存储的区别

然而,时过境迁,随着网络技术、分布式文件系统、计算机硬件的蓬勃发展,目前的存储系统除了刚才提到的控制器架构的产品,基于X86通用服务器平台的分布式存储系统逐渐成为主流的存储形态。区别于控制器架构的存储系统的专用硬件,分布式存储系统是运行在通用的X86 PC上的,在软件层面上基于分布式文件系统(ceph、Lustre、Gluster、GPFS等),节点间一致性同步通过(ETCD、Zookeeper等)技术实现。现在我们通常把之前控制器架构的存储成为传统存储,以区别于现在的分布式存储系统,我简单把二者的区别罗列了一下,如下表:
传统存储与分布式存储区别

2分布式存储与传统存储的区别

分布式存储系统设计架构
上图是我和研发的同事聊出来的关于分布式存储系统设计的宏观架构,大体上可以分为Base Platform(基础平台)、Platform Service(平台服务)、Data Path(数据路径)和Control Path(控制路径)这几个层面。其中:

  1. Base Platform(基础平台):主要实现对物理的盘的管理,如:监控、故障处理、系统出现故障后的降级处理以及对热备磁盘的管理等;另外通过ETCD或者Zookeeper等技术实现在所有节点间的配置信息同步,集群状态缓存,一致性,心跳等功能。同时在这一层还要实现对于服务的监控、用户的管理以及系统镜像文件的管理;
  2. Platform Service(平台服务):这一层主要功能有两方面,一是会为整个存储系统提供各种的服,如:NTP、SNMP、DNS、浮动IP 域 (表示IP浮动的范围)等;二是会提供日志收集、回滚、磁盘LED、Core dump等支持组件;
  3. Data Path(数据路径):中存储前端服务提供的是协议和语义,比如文件,块,nfs,smb;而后端提供地址空间,也就是把一堆盘窜成一个大存储池子;
  4. Control Path(控制路径):这一层提供的就是存储系统对外的管理方式,当然目前通常要支持全中文图形化的管理、对于高级功能要提供命令行的管理等方式了。
    以上是一个分布式存储系统大体的一个设计架构,当然也是一个比较宏观的架构,其实具体还有很多的细节没有展现。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章