《分布式存储性能优化思路.docx》由会员分享,可在线阅读,更多相关《分布式存储性能优化思路.docx(9页珍藏版)》请在课桌文档上搜索。
1、纵观存储的发展,从最原始的DAS架构发展到NAS和SX并存的架构,从NSiSN并存的架构发展到基于互联网基因和云计算基因的云平台存储架构,其架构变得越来验或朵,这必然带来性能上的损耗.这与我们大部分数据业务场景追求性能的目标是相悻的,那么如何解决这个矛盾呢?一、企业存储优化思路总结企业存帏主要包括集中式架构的SAN存储和NAS存储.企业经历集中式存储的时间相对而言比较长,那么在面临性能优化的问题也有一套相对比较完善的思路,总结来看主要从以下几个方面实现:1 .规划时的优化配置大部分的性能优化问题都归根于规划设计不够精细准确,所以解决性能的非常关键的因索就在于规划,存惆卷的数组、分布、分区(Zo
2、ne)映射等相关配黄.如果DBA对数据库数据文件使用的存阵卷规划不够均衡准确,必然造成某些卷的高热点IO访问,如果这个卷所依附的分区映射又不是非常合理均衡,那么这个问题就会无限放大.因此传统存储实践前的规划,需要架构师在上层应用的存储使用容最、数目、负载等各方面进行标理和分析,本若均衡分布的原则将卷的使用映射到存储资源上,这样才能最大限度减少后续性能优化问题.2 .存储引擎硬件配造主要通过观察存储运行过程当中关键指标(CPU、Cache)的峰值以及平均值的情况,来衡量当前控制器内的硬件配置是否已经成为系统性能的瓶颈,通常传统集中式存储支持单独升级CPU、Cache硬件的场景较少,一般都是通过熠
3、加Cache卡或者控制器扩展的方式来解决.当然,在具体分析的时候需要根据其他指标的评估来判断是否因为其他特殊状况引起的资源占用问题,这种情况并非需要增加硬件资源.3 .存储引擎端口资源主要通过观察存储运行过程当中每一个前端端口和后端端口的使用情况(使用率.均衡性、吞吐量)等相关指标在一定周期内的平均数值,来评估板卡端容量以及配置是否有性能问题.如果端口数H容果没有问题,只是出现了负载不均衡的状况,那么就需要手动调整Zone映射的配首来调整其平衡性.4 .存储软件参数策略所谓与性能问题息息相关的存储软件黄略,主要是指存储产品开放出来的一系列软件参数以及分层策略。通常是通过观察存储运行过程当中的系
4、列关键指标(IOPS、1.atenC丫、ThrOUnhoUl等),来判断软件层面的队列参数、存储单元参数、读笃控制参数、慑存控制参数等来实现一部分优化,如果是针对个别存储卷的问题,可能需要将数据反馈到系统管理员和DBA层面进行操作系统及数据层面的优化.所谓分层策略是指存Wi资源池当lllSSDsSAS.SATA等多种磁盘的资源池的自动平衡策略,一般通过观察预留资源池容量大小、分层时间窗口策略、分层容量阈值策略、SSD磁盘数地增加等手段实现分层的优化。二、分布式存储性能优化思路对于分布式存储来讲,它的架构且杂度要高于传统的集中式存佛,从前期的架构配置规划到后期的运维监控优化都要比传统的集中式存储
5、付出更多的精力和工作.首先,我们从整个的读写流程来看.客户端请求StorageAreaNetworkSANSwitchSANSwitchDiskArrayVolVolVolRAID5RAID10RAID6客户端请求云平台存储酱节点分布式存储平台图1:两种存储读写流程图如图1所示,上半部分是传统SAN存储的落盘路径,下半部分是分布式存储的落盘路径,相对于SAN存储的落盘路径,分布式存储的这个链路就豆杂了.应用发出的I。请求会经过以太网络到达云平台存储的路由节点、接口服务层;接口服务层又会将应用特定的服务接口数据格式,转换为底层分布式存储平台接受的文件或者对象格式;在具体写入的时候又会访问元数据,
6、通过元数据的映射表再找到数据节点数据空间,然后完成冗余性豆制,才能完成一个真正的10.也就是说在存储数据服务接口到底层分布式存储平台这个环节会有延时(1.atency),从分布式存储平台接受请求、到数据落盘.到数据节点并完成冗余豆制这个过程也会有延时。因此分布式存储的性能问题相对更复杂,更需要有系统的思路去执行.1 .业务区分存储资源是为数据业务服务的,数据业务表现在IOPS,吞吐带宽、容量方面的需求和宽容度是不一样的.因此我们在针对不同数据业务场景进行分布式存储项目实践的时候,从软件层面到硬件层面的配舌都应该有针对性的标准.例如我们可以按照以下的标准(表1)进行业务的区分:表1:存储指标与业
7、务场景映射表业务场景区分性能需求描述业务场景案例Ie)PS最优最高IOPS最氐的单位IOPS成本通常3个副本单节点少于10%块存储业务场景虚拟机Throughout最优最高的带宽励随带宽单位成本最高的每BTU带宽最高的每瓦带宽提图读取吞吐量通常需要3倍的复制操作数视频流媒体CTO最优最低M每TB成本最低M每TBBTU蜀氐的每TB瓦数最高的每TB密度备份归档读取较少的图片存储频度很低的分析类业务经过对业务场景的精细化梳理分析之后,可以将存描空间的分配对应到按照不同的业务需求划分设计的存储资源池当中,然后再根据资源池的技术指标(IOPS.Throughout.Capacity)去规划资源池对应的软
8、硬件配置.2 .数据管理通常的分布式存储系统,会把数据分散在大量的存储服务器上,而存储服务器本身都会安装1.inUX探作系统,并且有自己的本地文件系统.例如HDFS,1.uster,Ceph等分布式存储系统的存储节点都会使用POSIX接口的本地文件系统EXT、BTRFS.XFS等来存慵数据.本地文件系统不能很好地适配对釜存储需求的扩展性要求:1)数据和元数据分离不彻底,目录树结构的元数据管理方式等导致大规模的对象数据寻址非常慢.2)为了支持事务特性的日志市复写问题,也就是分布式文件系统日志和本地文件系统日志电且写的问题。3)本地文件系统日志的事务性写导致了写的放大.那么在存储节点本地文件系统的
9、选型设计上,如果我们能选择优化的而非默认的配置,那么就会解决掉存储节点本身带来的IO深度和复杂度延时的问题,从而提高整个分布式存储的读写性能.当然,这个是需要在每一种分布式存储数据节点支持的文件系统或者文件管理方式范围内去平衡和决策.3 .容错设计存储介质故障发生的频率无论是在传统存储当中还是在分布式存储系统当中都非常高.而解决这个问题的方式基本上有两种:多副本和纠删码.多副本采用的是多份数据镜像的方式来保护,数据纠删码采用的是校验计完的方式来保护数据.前者使用空间成本换容错,后者使用计算成本换容错.通常传统集中式存储采用的是后者,而分布式存储采用的是前者,但是很多分布式存储也支持纠删码。因此
10、在容错设计的时候需要考虑数据业务场祟对IOPS.Throughout.C叩acity的需求,然后设计合乎性能和成本要求的容错策略,同时在副本策略当中也要选择合适的副本数目、分布策略.4 .网络通讯分布式存储系统中,节点间需要通过网络通信来交换节点及集群状态信息和具体的数据文件,整体的数据通讯量级是非常大的.因此,在网络通讯的配置方面也需要关注几个正点问题.1)通讯网络隔黑:通常我们需要将管理网络、数据网络、服务网络进行隔离.管理网络通常用来传递控制信息,数据量小但是比较更要;数据网络通常是存储节点之间进行交互的网络,其通讯量大而且正要;服务网络通常是向上层提供存储服务的网络,是数据服务业务通道
11、.这几个网络不仅仅要隔离,而且还要根据数据业务评估设计合适带宽.2 )通讯模式的选择以Ceph为例,三种类型的通信模式分别是Simple.Async、XiotSimple线程模式对每个网络连接都创建了两个线程分别用于接收和发送.随着集群规模的增长,创建的连接数和线程数会呈指数级增长,而且需要消耗更多的CPU和内存资源.所以应对不同规模或者未来扩展规模的分布式存储集群.要选择合适的通信模式.3 )网络类型的选择:关于网络类型的选择要考虑到未来扩展性需求以及网络通讯质量的需求.比如VX1.AN和V1.AN的选择要考虑到V1.AN诸多的数量和功能限制.比如高速网络的选择要考虑到网络通讯质量的需求.5
12、 .数据分布数据分布主要是针对无中心架构的分布式存储而言,这类系统主要是通过哈希算法来实现数据分布和检索.虽然系统本身的分布算法已经确定,但是数据分布凭法所需要的计算因子是需要我们在实践配置的时候输入的.比如说Ceph的数据楠的组织结构类型有四种:Uniform、1.ist、Tree、Straw.每一种类型针对数据检索、节点变化导致的数据变化等方面都有不同的表现(如表2):表2:数据桶结构性能对比类型时间复杂度添加节点删除节点Uniform0(1)PoorPoor1.ist0(n)OptimalPoorTree0(Iogn)GoodGoodStraw0(n)BetterBetter通常来讲,S
13、traw在各个维度都比较均衡的类型,也更适合大规模的分布式存储系统,因此通常都会采用Straw来作为Bucket的数据结构类型来使用.但是如果存储节点在容量、计算能力、网络硬件上面花首有特殊的地方,那么就要根据具体策略适用的场景来评估了,不一定StraW就是最优的选择.分布式存储系统当中在哈希计算的时候之所以能保持集群的相对稳定性,就是因为虚拟对象(如Ceph的PG.Pool,如Swift的Container)设计r同样这些虚拟对象数后、管理方式、映射关系等方面的配置也是决定数据分布式算法计算因子是否优秀的更要方面,同样需要精细化设计。6 .配置参数分布式存储系统的配占参数调优所涉及的对象比较
14、多,从物理对象上来看有客户端.管理节点、数据节点,这三类节点都会有相应的软件配置及对应的进程服务,每个层面都会有相应的参数可以调整优化分布式存储的各方面性能表现,另外从组成分布式存储的外围对演上来看,数据节点上的操作系统参数(内核控制参数)也是*要的配置对象.每一种分布式存储都会有数百甚至数千的参数开放出来,提供给使用者针对具体场景进行系统调优.以Ceph为例:1)操作系统层:磁盘预读缓存、系统进程数I、CPU模式、网络参数2)Ceph集群层:Filestore.JornakOSD.MON.针对不同分布式存催,需要根据其指导手册直询具体的参数及相应的取值类型和范围。7.硬件配置对于分布式存储系
15、统硬件而在的优化,其实最主要的就三个方面:D管理节点计算能力(CPU、内存、磁盘)的提高,主要用来完成对数据寻址过程的快速响应.2)数据节点SSD的使用,主要用来减少数据在存赭节点上落盘时间的延时消耗上以及日志写的性能优化上.3)高速硬件网络技术的使用,主要用来减少副本史制及数据传输方面的性能消耗.三、结语总而言之,性能问题是费穿于存储实践整个过程的关键问题,传统存储架构无法避免,分布式存储架构也无法避免.企业实现私有云之后,云上的存储资源会是多元化的架构模式,基于上述提纲,在实践的过程当中实现更精细化的梳理、更准确客观的分析、更实事求是的态度,才能解决好云平台上存储架构性能与扩展性的平衡问题.