云平台存储项目实施配置方案_第1页
云平台存储项目实施配置方案_第2页
云平台存储项目实施配置方案_第3页
云平台存储项目实施配置方案_第4页
云平台存储项目实施配置方案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云平台存储项目实施配置方案

云平台存储项目实施过程中,做好规划可以避免后续实施中出现的问题和困难,在实施规划时要充分考虑哪些方面,该如何思考和设计?本议题将从性能、故障隔离、安全、扩展能力等多个方面加以阐述,希望给同行们一些借鉴。云平台存储项目实施过程中的配置关键问题(如性能、故障隔离、安全)如何解决?

社区专家主张张鹏某金融科技公司高级技术主管:本议题由我本人、某金融系统高级主管赵海、某股份制银行运维工程师陈宇对关键点进行观点主张,这些主张在民生银行科技部数据库架构师孔再华、某金融科技公司资深集成工程师孙伟光、无锡农商行科技管理部系统管理团队长高晓峰等专家的复议之后,最终形成了一定的共识,希望可以为同行带来参考。张鹏某金融科技公高级技术主管:云平台基础架构在配置前对计算、存储、网络等资源需要进行统一规划,云平台存储在配置前需要在稳定可靠、扩展灵活、性能平衡、冗余保障、故障隔离、安全防护几个方面达到一定的要求。云平台基础架构层的存储通常有哪些?从云平台对外提供的云服务划分,可以大概归纳为块存储、文件存储、对象存储。块存储主要面向云主机提供云硬盘的服务,通常通过集中式SAN存储或者分布式存储部署。文件存储主要面向基于IP网络的文件类型数据的存储,通常通过传统NAS存储或者NAS网关结合分布式存储的方式部署。对象存储主要面向基于HTTP/HTTPS协议的Web服务接口,用于数据湖、网站、移动应用程序、备份和恢复、归档、企业应用程序、IoT设备和大数据分析等应用场景的存储服务,通常由对象存储控制单元和分布式数据存储单元组合部署。云平台基础架构在配置前,计算、存储、网络等资源需要统一规划。传统IT系统配置中,各资源耦合性相对低,界面分层比较明显。云平台环境中,各个资源高度耦合,存储和计算可分为存算一体和存算分离两种分布式架构,配置规划时要分别考虑。存储和网络的联系更加紧密,集中式SAN存储配置时要考虑光纤通道网络、存储、计算的互联以及云平台纳管,分布式存储配置时要考虑业务网络、存储网络、管理网络和有灾备要求情况下数据复制网络的规划。云平台的存储配置时需要在稳定可靠、扩展灵活、性能平衡、冗余保障、故障隔离、安全防护等几个方面达到一定要求。稳定可靠基础架构的稳定性对于一个云平台是至关重要的。包括存储、网络、计算节点自身的软硬件稳定性,和它们之间通信的稳定性。在云平台运维管理侧,还要考虑监控、日志、告警、流程、自动化等功能的部署,增加平台的故障自愈,故障溯源的能力。扩展灵活扩展包含两个方面:横向扩展和纵向扩展。集群横向扩展主要包括计算节点、存储、网络资源“节点级别”的扩展,例如新存储节点设备新加入集群后,其上的所有业务均能在新节点正常运行,同时新节点的加入对普通用户来说是透明的,即用户不会感知到集群的横向扩展。云平台的分布式存储的横向扩展能力比较强,部署也比较灵活,需要在网络规划方面充分预留网络资源。纵向扩展即是在整机中加入新的CPU、内存、硬盘、网卡等组件以提高单机性能。云平台中的集中式存储通常容量的扩展属于纵向扩展方式。分布式架构下的存储扩展配置和集中式架构的存储扩展配置完成后,关注点不同,例如分布式存储关注节点级的重平衡,集中式存储关注磁盘级的重平衡。性能平衡云平台可以提供性能型、容量型等不同规格的存储服务。在配置云平台基础架构层的时候,要根据不同的应用场景,通过不同的存储来实现。对于性能要求比较高的应用场景,例如交易型应用,在分布式存储的磁盘配置中考虑SASSSD或者NVMeSSD磁盘。对于容量要求比较高的应用场景,例如备份归档应用,在分布式存储中可以考虑大容量的SATA磁盘。对于一些安全性、性能性、业务连续性要求更高的应用,例如数据库应用,可以考虑裸金属服务器,和SAN光纤通道存储配置SASSSD或者NVMeSSD磁盘,并结合SAN存储的复制和快照特性进行灾备配置。冗余保障对于云平台而言,冗余性有两方面需要考虑,一方面是能力冗余,即尽量保持不同资源上容量和性能的平衡,最大程度地减少潜在风险,所以通常在部署时要预估一定的余量。另一方面是故障冗余,和传统架构中高可用性有区别,传统架构中,各个部件、各个连接通道通常采用双冗余的高可用架构,存储自身是高可用架构设计的,存储和服务器之间也是通过冗余的链路进行连接,目的是尽可能消除单点故障的隐患。在云平台的分布式存储部署时,存储集群中采用节点冗余的部署架构,单一的存储节点故障不会影响整个集群的正常运行,单一的存储节点的部件和连接通道配置时非冗余部署的方式居多。故障隔离SAN存储通过Zoning和LUNMasking技术实现的是资源的隔离和访问控制,能在一定程度上做到故障隔离,但是不全面,因为LUN是在存储池或者RAID组上抽象出来的,存储池和RAID组的故障,会影响到上层抽象的所有LUN;同时某个租户对LUN的高性能访问,产生热点数据可能会影响整个存储的性能。分布式存储的软件在设计时考虑了均匀分布,性能平衡,隔离故障,节点异构等方面,尽可能在资源隔离和故障隔离方面做了考虑,需要在实施配置时,尽可能的在存储节点硬件的配置和性能达到统一,数据分布的均衡方面特别注意,尽量减少故障发生或局部热点数据对整个存储集群产生影响。安全防护云平台存储的安全风险,一是由于身份认证和访问控制的问题有可能造成数据被假冒或窃取;二是由于数据在云端存储和传输过程中的保密问题有可能导致数据被篡改或隐私泄露;三是由于云平台存储缺乏传统网络的物理隔离和防护边界的问题(云平台存储利用虚拟化技术的结果)有可能造成数据被越界访问;四是由于云平台存储之上的应用导致的数据非法访问和破坏等(例如在SaaS提供的接口上进行二次软件开发,存在多用户对同一应用进行开发,有可能存在代码监管缺失的安全隐患)。如何减少风险,在配置时需要采用一些措施。加密是云平台存储系统中实施数据保护的最常用也是最重要的方法,租户可以在对数据进行加密后,直接把密文传输到云端进行存储,租户保管密钥,且只有自身才能进行解密。针对关键数据的加密传输和加密存储技术,是配置时需要重点考虑的。加固技术是云安全存储的一项重要技术,主要保障云平台操作系统安全,首先要确保存储底座操作系统的安全性,尽可能减少不必要的软件漏洞。通过主动防御功能,应能抵抗内外网络对操作系统的拒绝服务攻击以及阻止内部网络对外网的攻击。通过存储分离,确保虚拟机或容器只能访问已分配给自身的存储空间。

赵海某金融系统高级主管:云平台存储项目建设过程中,针对不同的存储类型有不同的优化方法。企业存储性能优化时主要考虑规划时的优化配置、存储引擎硬件配置、存储引擎端口资源、存储软件参数策略等方面;分布式存储性能优化时主要考虑业务区分、数据管理、容错设计、网络通讯、数据分布、配置参数、硬件配置几个方面。纵观存储的发展,从最原始的DAS架构发展到NAS和SAN并存的架构,从NAS&SAN并存的架构发展到基于互联网基因和云计算基因的云平台存储架构,其架构变得越来越复杂。这必然带来性能上的损耗,这与我们大部分数据业务场景追求性能的目标是相悖的,那么如何解决这个矛盾呢?一、企业存储优化思路总结企业存储主要包括集中式架构的SAN存储和NAS存储。企业经历集中式存储的时间相对而言比较长,那么在面临性能优化的问题也有一套相对比较完善的思路,总结来看主要从以下几个方面实现:1.规划时的优化配置大部分的性能优化问题都归根于规划设计不够精细准确,所以解决性能的非常关键的因素就在于规划,存储卷的数量、分布、分区(Zone)映射等相关配置。如果DBA对数据库数据文件使用的存储卷规划不够均衡准确,必然造成某些卷的高热点IO访问,如果这个卷所依附的分区映射又不是非常合理均衡,那么这个问题就会无限放大。因此传统存储实践前的规划,需要架构师在上层应用的存储使用容量、数目、负载等各方面进行梳理和分析,本着均衡分布的原则将卷的使用映射到存储资源上,这样才能最大限度减少后续性能优化问题。2.存储引擎硬件配置主要通过观察存储运行过程当中关键指标(CPU、Cache)的峰值以及平均值的情况,来衡量当前控制器内的硬件配置是否已经成为系统性能的瓶颈,通常传统集中式存储支持单独升级CPU、Cache硬件的场景较少,一般都是通过增加Cache卡或者控制器扩展的方式来解决。当然,在具体分析的时候需要根据其他指标的评估来判断是否因为其他特殊状况引起的资源占用问题,这种情况并非需要增加硬件资源。3.存储引擎端口资源主要通过观察存储运行过程当每一个前端端口和后端端口的使用情况(使用率、均衡性、吞吐量)等相关指标在一定周期内的平均数值,来评估板卡端口容量以及配置是否有性能问题。如果端口数量容量没有问题,只是出现了负载不均衡的状况,那么就需要手动调整Zone映射的配置来调整其平衡性。4.存储软件参数策略所谓与性能问题息息相关的存储软件策略,主要是指存储产品开放出来的一系列软件参数以及分层策略。通常是通过观察存储运行过程当中的系列关键指标(IOPS、Latency、Throughout等),来判断软件层面的队列参数、存储单元参数、读写控制参数、缓存控制参数等来实现一部分优化。如果是针对个别存储卷的问题,可能需要将数据反馈到系统管理员和DBA层面进行操作系统及数据层面的优化。所谓分层策略是指存储资源池当中有SSD、SAS、SATA等多种磁盘的资源池的自动平衡策略,一般通过观察预留资源池容量大小、分层时间窗口策略、分层容量阈值策略、SSD磁盘数量增加等手段实现分层的优化。二、分布式存储性能优化思路对于分布式存储来讲,它的架构复杂度要高于传统的集中式存储,从前期的架构配置规划到后期的运维监控优化都要比传统的集中式存储付出更多的精力和工作。首先,我们从整个的读写流程来看。图1:两种存储读写流程图如图1所示,上半部分是传统SAN存储的落盘路径,下半部分是分布式存储的落盘路径,相对于SAN存储的落盘路径,分布式存储的这个链路就复杂了。应用发出的IO请求会经过以太网络到达云平台存储的路由节点、接口服务层;接口服务层又会将应用特定的服务接口数据格式,转换为底层分布式存储平台接受的文件或者对象格式;在具体写入的时候又会访问元数据,通过元数据的映射表再找到数据节点数据空间,然后完成冗余性复制,才能完成一个真正的IO。也就是说在存储数据服务接口到底层分布式存储平台这个环节会有延时(Latency),从分布式存储平台接受请求、到数据落盘、到数据节点并完成冗余复制这个过程也会有延时。因此分布式存储的性能问题相对更复杂,更需要有系统的思路去执行。1.业务区分存储资源是为数据业务服务的,数据业务表现在IOPS、吞吐带宽、容量方面的需求和宽容度是不一样的。因此我们在针对不同数据业务场景进行分布式存储项目实践的时候,从软件层面到硬件层面的配置都应该有针对性的标准。例如我们可以按照以下的标准(表1)进行业务的区分:表1:存储指标与业务场景映射表经过对业务场景的精细化梳理分析之后,可以将存储空间的分配对应到按照不同的业务需求划分设计的存储资源池当中,然后再根据资源池的技术指标(IOPS、Throughout、Capacity)去规划资源池对应的软硬件配置。2.数据管理通常的分布式存储系统,会把数据分散在大量的存储服务器上,而存储服务器本身都会安装Linux操作系统,并且有自己的本地文件系统。例如HDFS、Luster、Ceph等分布式存储系统的存储节点都会使用POSIX接口的本地文件系统EXT、BTRFS、XFS等来存储数据。本地文件系统不能很好地适配对象存储需求的扩展性要求:1)数据和元数据分离不彻底,目录树结构的元数据管理方式等导致大规模的对象数据寻址非常慢。2)为了支持事务特性的日志重复写问题,也就是分布式文件系统日志和本地文件系统日志重复写的问题。3)本地文件系统日志的事务性写导致了写的放大。那么在存储节点本地文件系统的选型设计上,如果我们能选择优化的而非默认的配置,那么就会解决掉存储节点本身带来的IO深度和复杂度延时的问题,从而提高整个分布式存储的读写性能。当然,这个是需要在每一种分布式存储数据节点支持的文件系统或者文件管理方式范围内去平衡和决策。3.容错设计存储介质故障发生的频率无论是在传统存储当中还是在分布式存储系统当中都非常高。而解决这个问题的方式基本上有两种:多副本和纠删码。多副本采用的是多份数据镜像的方式来保护,数据纠删码采用的是校验计算的方式来保护数据。前者使用空间成本换容错,后者使用计算成本换容错。通常传统集中式存储采用的是后者,而分布式存储采用的是前者。但是很多分布式存储也支持纠删码。因此在容错设计的时候需要考虑数据业务场景对IOPS、Throughout、Capacity的需求,然后设计合乎性能和成本要求的容错策略,同时在副本策略当中也要选择合适的副本数目、分布策略。4.网络通讯分布式存储系统中,节点间需要通过网络通信来交换节点及集群状态信息和具体的数据文件,整体的数据通讯量级是非常大的。因此,在网络通讯的配置方面也需要关注几个重点问题。1)通讯网络隔离:通常我们需要将管理网络、数据网络、服务网络进行隔离。管理网络通常用来传递控制信息,数据量小但是比较重要;数据网络通常是存储节点之间进行交互的网络,其通讯量大而且重要;服务网络通常是向上层提供存储服务的网络,是数据服务业务通道。这几个网络不仅仅要隔离,而且还要根据数据业务评估设计合适带宽。2)通讯模式的选择:以Ceph为例,三种类型的通信模式分别是Simple、Async、XIO。Simple线程模式对每个网络连接都创建了两个线程分别用于接收和发送。随着集群规模的增长,创建的连接数和线程数会呈指数级增长,而且需要消耗更多的CPU和内存资源。所以应对不同规模或者未来扩展规模的分布式存储集群,要选择合适的通信模式。3)网络类型的选择:关于网络类型的选择要考虑到未来扩展性需求以及网络通讯质量的需求。比如VXLAN和VLAN的选择要考虑到VLAN诸多的数量和功能限制。比如高速网络的选择要考虑到网络通讯质量的需求。5.数据分布数据分布主要是针对无中心架构的分布式存储而言,这类系统主要是通过哈希算法来实现数据分布和检索。虽然系统本身的分布算法已经确定,但是数据分布算法所需要的计算因子是需要我们在实践配置的时候输入的。比如说Ceph的数据桶的组织结构类型有四种:Uniform、List、Tree、Straw。每一种类型针对数据检索、节点变化导致的数据变化等方面都有不同的表现(如表2):表2:数据桶结构性能对比通常来讲,Straw在各个维度都比较均衡的类型,也更适合大规模的分布式存储系统,因此通常都会采用Straw来作为Bucket的数据结构类型来使用。但是如果存储节点在容量、计算能力、网络硬件上面配置有特殊的地方,那么就要根据具体策略适用的场景来评估了,不一定Straw就是最优的选择。分布式存储系统当中在哈希计算的时候之所以能保持集群的相对稳定性,就是因为虚拟对象(如Ceph的PG、Pool,如Swift的Container)设计,同样这些虚拟对象数量、管理方式、映射关系等方面的配置也是决定数据分布式算法计算因子是否优秀的重要方面,同样需要精细化设计。6.配置参数分布式存储系统的配置参数调优所涉及的对象比较多,从物理对象上来看有客户端、管理节点、数据节点,这三类节点都会有相应的软件配置及对应的进程服务,每个层面都会有相应的参数可以调整优化分布式存储的各方面性能表现。另外从组成分布式存储的外围对象上来看,数据节点上的操作系统参数(内核控制参数)也是重要的配置对象。每一种分布式存储都会有数百甚至数千的参数开放出来,提供给使用者针对具体场景进行系统调优。以Ceph为例:1)操作系统层:磁盘预读缓存、系统进程数量、CPU模式、网络参数...2)Ceph集群层:FileStore、Jornal、OSD、MON...针对不同分布式存储,需要根据其指导手册查询具体的参数及相应的取值类型和范围。7.硬件配置对于分布式存储系统硬件配置的优化,其实最主要的就三个方面:1)管理节点计算能力(CPU、内存、磁盘)的提高,主要用来完成对数据寻址过程的快速响应。2)数据节点SSD的使用,主要用来减少数据在存储节点上落盘时间的延时消耗上以及日志写的性能优化上。3)高速硬件网络技术的使用,主要用来减少副本复制及数据传输方面的性能消耗。三、结语总而言之,性能问题是贯穿于存储实践整个过程的关键问题,传统存储架构无法避免,分布式存储架构也无法避免。企业实现私有云之后,云上的存储资源会是多元化的架构模式,基于上述提纲,在实践的过程当中实现更精细化的梳理、更准确客观的分析、更实事求是的态度,才能解决好云平台上存储架构性能与扩展性的平衡问题。

陈宇某股份制银行运维工程师:大型云平台会承载各式各样不同类型的业务应用,因此大型云平台存储项目实施过程中需要面对复杂的业务需求,更加需要考虑性能、故障隔离、安全性等关键问题。性能问题关键在于存储系统自身性能应超过应用对存储性能的需求,避免存储处于繁忙状态。故障隔离问题关键在于数据副本数量与副本存放位置。而安全加固问题等关键在于网络隔离。云平台存储项目在完成数据特点梳理、架构设计、数据部署、数据分布策略、逻辑对象划分等前期规划之后,实施过程中常会遇到几个配置关键问题,例如性能、故障隔离、安全性等。本文对这几个配置关键问题进行一些探讨。为什么云平台存储项目实施过程中需要考虑性能、故障隔离、安全等配置关键问题?从物理设备规模来说,大型云平台项目会达到上千台服务器的规模,并接入各种类型的存储,例如SAN存储、NAS存储、分布式存储等。从应用服务器层面来说,大型云平台上会运行成千上万的Web服务器、Java及其他语言应用服务器、数据库服务器、大数据服务器。从业务系统层面来说,大型云平台会承载各式各样不同类型的业务应用。因此大型云平台存储项目实施过程中需要面对复杂的业务需求,更加需要考虑性能、故障隔离、安全性等关键问题。试想一下,如果不考虑性能问题,则有可能出现云平台将多个IO密集型服务器部署到同一台慢速存储上的情况,造成存储系统忙闲不一,进而导致部署在繁忙存储上的业务系统响应缓慢,对业务造成影响;如果不考虑云平台存储故障隔离问题,则有可能出现一台存储设备故障引发大面积业务中断;如果不考虑安全性问题,则有可能出现云平台上不同业务应用能够互相访问数据的情况,造成敏感数据泄露。首先谈谈避免云平台存储项目出现性能问题。总体来说,云平台存储性能需求与云平台本身的业务量息息相关。如果云平台承载的是大型企业的整套IT系统,服务全国用户,那么云平台对存储的性能需求就比较大,需要在存储系统硬件层面投入较多的资源,需要综合部署SAN存储、NAS存储、分布式存储等各类存储来分散不同业务应用的压力。反之,如果云平台承载的是初创企业业务,业务量较小或者仅面向本地用户,那么存储系统性能需求可能就不那么大,部署几台中端存储可能就能满足云平台总体的存储性能需要。避免云平台存储系统出现性能问题,关键在于存储系统自身性能应超过应用对存储性能的需求,避免存储始终处于繁忙状态。存储系统的性能指标主要包括IOPS以及吞吐率两种。IOPS指标主要适用于小块IO,例如交易型数据库,文档、图片等文件服务读写。吞吐率指标主要适用于大块IO,例如数据仓库系统,大数据分析系统,视频媒体文件存储等。无论是SAN存储、NAS存储还是分布式存储,它们的底层都是机械硬盘或者固态硬盘。机械硬盘单位容量的价格较便宜,但是每块机械盘只能提供几十至几百的IOPS,以及200MB/s左右的吞吐率。固态硬盘单位容量的价格较贵,但是单块固态硬盘能提供几万甚至几十万的IOPS,以及几百MB/s(SAS接口)至几千MB/s(NVMe接口)的吞吐率。因此云平台系统管理员应根据应用对于IOPS、吞吐率、容量、成本需求综合考虑部署方案。对于需要高IOPS的关键应用,例如交易型数据库,应优先部署到基于固态硬盘的存储上,避免出现IOPS层面的性能瓶颈;对于需要高吞吐率但是容量需求不高的系统,例如规模不大的视频媒体文件存储,数据仓库系统,建议优先部署到基于固态硬盘的存储上;对于需要高吞吐率并且容量需求较大的系统,例如大型数据仓库系统、大数据分析系统、大量视频媒体文件存储等,建议部署到具有较多数量的机械硬盘存储系统上。因此,在存储系统接入云平台的时候,可以给不同的存储增加一定的标记,例如“全闪存SAN存储”、“机械盘NAS存储”等,以便于管理员部署虚拟机时,根据业务需要指定使用不同类型的存储。除了通过管理员人工规划虚拟机的存储使用来避免性能问题,还有一种方案是采用具有自动分层功能的存储,由存储自身管理应用性能需要。目前许多SAN存储、NAS存储、分布式存储都具备一定的自动分层功能,可以自动将固态硬盘和机械硬盘组合形成存储资源池,并智能地根据不同数据的IOPS和吞吐率两个层面的热度自动确定数据存储位置。在云平台项目中使用自动分层存储系统能够很大程度上降低管理员进行存储性能管理的工作量。其次,来谈

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论