张智龙
(中国电信系统集成福建分公司/福建富士通信息软件有限公司,福建福州350013)
分布式存储构建规划
张智龙
(中国电信系统集成福建分公司/福建富士通信息软件有限公司,福建福州350013)
该文从传统存储与软件定义存储的对比展开,得出分布式存储在项目中更具优势,继而在节点类型及数量、存储平面和业务平面组网、数据盘数量及有效存储容量等方面做出了规划,最终确定了软硬件配置、整体拓扑连接等分布式存储整体构建方案。
软件定义存储;分布式存储;FusionStorage;存储节点;计算节点;SAS;SSD;IB
A公司因B项目业务发展需要,计划新建3套Oracle数据库,共需60TB可用存储空间。为减少复杂预测以及初始大量投资,考虑如果后期该业务发展良好,存储空间需要能够便捷的扩容,并且性能还要能够有所提升;同时还考虑整体设备投资成本及后期管理和维护成本不宜过高。
1.1 存储选型
传统FC SAN存储在以往应用实践中得到了广泛认可,以可靠性高、稳定性好、功能丰富而著称;但与此同时,FC SAN存储也暴露出了横向扩展性差、价格昂贵、弹性缺乏、数据连通困难等不足,容易形成数据孤岛,导致管理和维护的成本居高不下。
软件定义存储是将标准服务器的存储提供出来并通过软件控制层面实现存储的自动化和池化,它将存储的置备和管理的方法简化,同时也大大降低了成本。分布式存储作为软件定义存储的一个典型实现方式,通过软件定义各种存储功能,由多个独立X86服务器存储组成存储资源池,成本低廉、扩展性好、维护简单、并发能力强。随着10Gb/40Gb以太网、In⁃finiband RDMA网络技术以及高I/O性能、低延时和高带宽闪存SSD技术的引入,经过业界技术论证和严谨测试,分布式存储可满足业务平台日益增长的存储需求,并且能为业务平台提供高安全性、高可靠性、高可用性和开放的存储服务。
因此,本项目规划选用软件定义-分布式存储。
1.2 软件定义存储选型
VMware公司的vSAN和华为公司的FusionStorage是业界公认的在可扩展性和性能方面都有较好表现的软件定义-分布式存储。vSAN只能在VMware虚拟化环境下使用,不能为外界的物理环境提供存储;而FusionStorage可以为外界物理服务器提供存储,满足本项目所构建的存储直接为物理服务器Oracle数据库提供存储)。
所以,本项目规划选用华为公司的FusionStorage分布式存储。
2.1 分布式存储节点规划
FusionStorage分布式存储包含管理节点、计算节点和存储节点等三个部分服务器,软件架构如下图所示:
图1
1)存储管理模块FusionStorage Manager,部署于管理节点上,主要功能为提供告警、监控、日志、配置等操作维护功能,一般要求主备节点部署,但所需性能要求不高,所以规划选用2台虚拟机。
2)存储管理代理模块FusionStorage Agent,部署在各计算节点和存储节点上,实现各计算节点和存储节点与管理节点通信。
3)存储客户进程VBS,部署于计算节点上,每台计算节点部署一个或者多个VBS进程,形成VBS集群,负责卷元数据的管理。本项目部署3套Oracle数据库,每套Oracle数据库采用2节点的RAC架构,所以规划配置6台x86服务器作为计算节点。
4)存储服务进程OSD,部署于存储节点上,每台存储节点上的一块磁盘对应部署一个OSD进程。存储服务端接收到存储客户端的请求会根据策略将IO分发到相应的存储节点上。本项目规划配置6台x86服务器作为存储节点。
5)业务控制进程MDC,实现对分布式集群的状态控制,以及控制数据分布式规则、数据重建规则等。MDC管理集群部署在3个存储节点上,每个存储节点一个进程。
6)在高性能的数据库集群场景,一般考虑采用计算、存储分离部署的模式(计算节点上部署数据库等linux应用,存储节点上部署FusionStorage软件),所以本项目规划6台计算节点和6台存储节点分离部署。
2.2 分布式存储资源规划
数据库集群场景,计算节点和存储节点的CPU和内存资源一般需求为:
2.2.1 CPU
(1)存储节点:每个服务器占用CPU容量=操作系统所需占用CPU+运行FusionStorage所需占用CPU(≥6个超线程Hyper Thread);
(2)计算节点:每个服务器占用CPU容量=操作系统所需占用CPU+运行FusionStorage所需占用CPU(≥4个超线程Hyper Thread)+业务运行所需CPU容量。
2.2.2 内存
每个服务器占用内存容量=操作系统占用内存容量+运行FusionStorage所占用内存容量(MDC进程占用内存容量+VBS进程占用内存容量+OSD进程占用内存容量+缓存占用内存容量)+业务占用内存容量。
2.2.3 存储节点
·MDC进程占用内存容量:5GB,所有存储节点均需要为MDC进程预留5GB内存空间。
·缓存占用内存容量:缓存采用SSD卡或者SSD盘时,内存占用=(该服务器SSD缓存总大小GB×8)/1024,其中SSD缓存总大小的单位为GB。
·OSD进程占用内存容量:
当使用SSD盘做主存时,占用内存=3.5GB*主存SSD卡个数*(SSD盘容量GB/600GB);当使用磁盘做主存时,占用内存= N*该服务器磁盘个数(N根据网络和磁盘的不同,取值为2~4.4GB)。
一般来说,存储节点配置64GB内存即可满足需求。
2.2.4 计算节点
VBS进程占用内存容量:当使用普通网卡时,VBS进程占用8GB内存;当使用IB网卡时,VBS进程占用10.5GB内存。
本项目计算节点上运行Oracle数据库,所以规划配置内存256GB。
2.3 分布式存储组网规划
在分布式存储组网中,主要所需的网络平面为存储服务管理平面、存储平面、业务平面,另外本项目中还有Oracle RAC的心跳平面。其中业务平面、存储平面和心跳平面网络流量较大,存储服务管理平面流量较小。为保障业务正常运行,避免各流量之间的冲击,他们都需要使用独立网卡并通过不同的VLAN来隔离。
不同的应用对数据类型、IO和带宽都会有不同的需求,具体规划如下:
1)存储服务管理平面、业务平面和心跳平面,都采用千兆(TCP/IP协议)网络。每个网络都规划配置两个千兆网口并做聚合(bond),主备模式(Mode=1),分别连接到两台交换机(两台交换机通过两个千兆端口聚合后堆叠而无需配置主备关系)。
2)存储平面根据业务IO大小,一般在虚拟化和桌面云的应用场景使用10GE网络,数据库环境采用40Gb/56Gb InfiniBand (以下简称IB,RDMA协议)网络。本项目为Oracle数据库环境,对IO吞吐要求较高,所以规划选用40Gb IB交换机组网,每台服务器配置两个IB网口并做聚合(bond),主备模式(Mode=1),分别连接到两台IB交换机(两台IB交换机之间通过6根IB线缆互连而无需配置trunk),存储网络内部运行,对外部网络不可见。
2.4 存储磁盘及其数量规划
存储服务器根据存储容量需求配置主存用于提供存储容量和一定量缓存用于提高存储的性能,每个存储节点的Fusion⁃Storage硬盘或者SSD卡的型号和数目保持相同。
FusionStorage支持的主存类型包括:SATA/NLSASA盘、SAS盘、SSD盘以及SSD卡,从IO性能上看,SSD卡>SSD盘>SAS盘> SATA/NLSASA盘;从每GB成本上看,SSD卡>SSD盘>SAS盘> SATA/NLSASA盘。
FusionStorage的缓存可选择SSD盘或SSD卡,SSD卡cache时延优于SSD盘。
FusionStorage存储系统中没有使用传统的RAID模式来保证数据的可靠性,而是采用了多副本备份机制,即同一份数据可以复制保存多个副本,可以设置跨服务器、跨机架、跨机房等不同维度。在数据存储前,对数据进行分片,分片后的数据按照一定的规则保存集群节点上。从可靠性的角度出发,业界常规采用三副本方式运行。
三副本时,每台服务器上提供给每个存储池使用的硬盘数量为2个~36个,本项目为数据库场景,规划选用SAS盘;每台服务器上提供给每个存储池使用的缓存数量为0个~4个(当存储池主存类型为SATA盘或者SAS盘时,存储池必须有缓存,即不能为0,且cache容量越大加速性能越好),考虑成本及实际需求,本项目规划选用SSD盘。
表1
图2
分布式存储的总有效容量公式为:
总有效容量=(z/(1.024^3)-r)*q*m/k
其中,磁盘标称容量=z、FusionStorage OSD开销=r(通常为20.7G)、FusionStorage硬盘数目=m、磁盘空间利用率=q、副本数=k。
本项目所需60TB可用空间,磁盘标称容量为2TB,即
60*1024=(2*1024/(1.024^3)-20.7)*0.9*m/3
计算得出m=108,也就是6台服务器,每台服务器配置18块2TB SAS硬盘。
根据上述选型和规划,本项目分布式存储总体软硬件配置如表1。
总体构建拓扑连接如图2所示,可以满足本项目当前业务需求以及后期业务发展扩容需求。
[1]杨传辉.大规模分布式存储系统原理解析与架构实战[M].北京:机械工业出版社,2013.
[2]查伟.数据存储技术与实践[M].北京:清华大学出版社, 2016.
[3]卡伦·辛格.Ceph分布式存储学习指南[M].北京:机械工业出版社,2017.
TP393
A
1009-3044(2017)21-0230-03
2017-06-12
张智龙(1978—),男,福建龙岩人,通信专业中级工程师,主要从事云计算规划和建设工作。