二、分析应用场景,建立多个云平台存储池
对存储进行规划建设时,离不开存储应用场景的分析,需要考虑的云存储是用来做应用系统的存储,还是归档、或者是备份云存储端、或者其他的应用,因为不同的应用是需要不同的解决方案。当确定了云的应用场景后,才可以继续根据需求制定应对方案。例如对于应用系统,如支撑业务交易的数据库,对容量要求相对不大,但要求满足较高的性能。例如对于多个系统间的文件交换,或者多个服务器节点需要共享维护同一个共享文件目录,共享文件服务器则要求有效的访问控制、同时具备较好的带宽。而用于备份的存储,则需要安全与可用性、归档则要求大容量而成本低廉的存储。确定了应用场景,也就确定了存储池的建设方向。
金融业的核心、柜面等重要交易系统,因为业务并发量大,切业务敏感性高,必须保证相应系统的数据库、应用程序具备极高的稳定性和性能,为保证数据库以及此类响应时间要求较高的应用高效稳定运行,获得良好的iops和读写时延,则需要在企业云平台存储池中规划专用的通过集中式全闪存存储构建的存储资源池,此部分存储池通常采用高端集中式存储构成,高端集中式存储技术成熟,使用时间长,案例众多,服务体系完备,通常采用高性能存储机头管理高速的NVME SSD,能提供极高的IOPS响应速度。集中式存储通常采用高效FC协议提供服务,也有少量用户采用ISCSI等IP SAN方式提供服务。集中式存储因其产品设计理念,存在一定的弊端,例如在需要对存储设备进行扩容、迁移等操作时,单台存储的扩展能力相对有限,扩容灵活性差。集中式存储的使用经验已经较为成熟,在规划组网等时需要考虑的磁盘域规划、raid以及热备盘规划、物理端口冗余、多路径规划等规划重点均已经应用非常广泛,本文不再花费过多篇幅进行阐述。
三、云平台分布式存储池规划建立
除集中式存储池之外,云平台中目前多用于支撑一般虚拟机、容器以及保存海量文件的存储,仍是采用分布式存储。云存储解决方案通常采用分布式设计理念,可从成本、容量、空间可扩展性、服务可用性、数据可靠性、接口通用性等多个维度提升存储的质量。由于这些明显的优势,分布式云存储成为有效的支持块存储、对象存储、NAS存储等多种存储格式的存储类型,对象存储常用于保存视频图像信息库等数据存储与共享业务,成为云平台中便捷、统一管理和高效应用的云平台基础组件。
云平台中分布式存储池的规划建设,需要考虑的因素通常包含容量、性能、安全性几个方面,相关的规划点则包括节点数量、磁盘配比、组网规划、集群的用户角色规划等。下面以一套CEPH分布式存储为例,阐述其规划实施路径。
3.1 分布式存储集群及节点硬盘规划实施
分布式存储集群规划第一步需要基于企业当前数据量,合理分析本企业近3-5年的容量增长情况,并区分集中式存储和分布式存储的数据量。节点池是集群中以节点为单位组成的存储区域单元,不同节点池中包含若干台集群内主机,为用户提供不同的存储业务服务。可以同时支持块存储、文件存储、对象存储业务,每种业务分别位于不同的节点池。每个节点池的拥有自己的监控节点、存储节点,节点池间独立,使用某分节点池的存储资源,数据只能在该节点池内的主机上分布存储,不同节点池之间数据完全隔离互不影响节点池。需要全面考虑块存储、对象存储、文件存储池的需求,三类存储建议独立不同的存储池部署,单独规划不同配置的服务器作为数据节点。
硬盘池是集群节点池中以硬盘为单位组成的的存储区域单元,不同硬盘池中包含节点池内若干台集群内主机中的若干硬盘,为用户提供不同的存储业务服务。通过硬盘池也可以满足不同存储业务数据间的隔离,以及用户使用不同性能的存储需求。
每个数据节点的硬盘规划,关键要考虑SSD和机械硬盘的配比。在预算充足切对存储池性能要求较高时,也可以考虑全闪存配置的数据节点,构建全闪存分布式存储池。如果采用混闪进行配置,则通常是一个或者多个SSD磁盘作为缓存加速盘和元数据存储盘,后端配置4-6块HDD作为容量盘,SSD+HDD组成一个OSD。例如一套对象存储,包含数据池和元数据池两部分,可以采用HDD+SSD构建数据池,为保证整个存储池的性能,建议一个OSD中SSD容量不低于20%,但构建元数据池时,则推荐采用SSD组池,且建议配置2块以上SSD作为故障容错。数据节点服务器通常需配置支持直通模式的RAID卡。
根据目前市面主流服务器,有2.5英寸硬盘盒3.5英寸硬盘两种规格的服务器可供选择,2.5英寸有7200/10000/15000转速不同规格,转速越高读写性能越好,但是2.5英寸硬盘因其尺寸规格限制,目前最大为2.4TB的规格,因此单台2U服务器能支撑的裸容量相对有限。而3.5英寸硬盘可支持采用3.5英寸HDD磁盘的最多为24盘位,HDD硬盘最大可达16TB。如果追求性能,也跟建议采用大容量3.5寸硬盘搭配更多的SSD缓存加速层来配置数据存储。
3.2 分布式存储集群组网规划实施
为了保证云存储的性能以及安全性,通常规划云平台的分布式存储集群在逻辑上分为三个网络平面:存储业务网络(存储外网)、存储前端网络(存储内网)、存储后端网络(存储内网)。存储的前端网络和后端网络为了保证性能,建议分开,但是在网口资源有限的情况下,也可以将前端和后端网络合并,但业务网与存储内部交换网络是需要分开的。
此外还有存储节点的管理网络。典型组网推荐采用三张双口万兆网卡。分布式存储除了管理网络可以采用GE网络外,其他组网为保证性能均建议采用不低于10GE网络。根据企业的IP地址分配,后端和前端网路的IP地址均不涉及存储池外使用,故而可以采用不常用的私有网地址,但业务网的IP地址则考虑纳入企业的ISCSI网络。
表一:分布式存储集群组网规划表
3.3 分布式存储集群角色规划实施
一套分布式集群分为管理节点、监控节点和存储节点三个角色,这三个角色的服务均可以部署在同一台物理机上。单台服务部署同时部署3个角色,单台物理服务器故障会同时引起该节点上的监控节点、管理节点、存储节点同时故障。站在风险分担的角度,当物理服务器有富余时,建议将存储节点、管理节点、监控节点分离在不同的物理服务器上。当存储集群中的节点数等于3时,受物理服务器的限制,管理节点、监控节点、存储节点可以合一部署。
管理节点主要用于针对存储集群的管理程序的控制,做好规划后,管理节点按照规划的信息进行集群的安装部署,并将监控信息图形化,给存储节点服务发布命令等,集群需要配置两个管理节点,一主一备。 监控节点主要针对集群的运行健康状态进行监控,每个集群的监控节点数量必须为奇数个,范围3~7个。一套三节点集群的节点角色部署样例推荐规划如下:
表二:分布式存储集群角色规划表
3.4 分布式存储集群配置规划
为了保证集群的高容错能力,对于集群的服务器上架的机架需要充分考虑机柜掉电,机柜网络断开等故障场景,因此在进行上架规划时,机架创建与规划建议依照实际物理摆放,尽量不要一个机架上只有一个节点。
数据池冗余策略规划。存储集群需要考虑单台服务器故障、或者单块硬盘故障等场景,需要规划安全的数据冗余策略。常见的数据冗余策略包含以下两种:
(1)多副本策略。多副本是分布式存储中目前较为常见的方案。如果按照多副本方案规划容错能力,几副本就需要有几倍的存储空间来提供冗余,副本个数越多,安全性越高,但缺点在于存储数据所需要的空间也成倍增长,N副本最终得到可用容量为实际硬盘裸容量的1/N。目前常见的是采用两副本和三副本两种策略,对于数据安全性较高的行业和集群,建议采用三副本以上。
副本数与集群节点数对应关系规划:
支持2-6副本,一般用2副本和3副本,推荐使用3副本。
2副本,至少2节点,推荐4节点。
3副本,至少3~4节点,推荐5节点。
4副本,至少5节点,推荐6节点。
(2)纠删码。类似于存储的raid5,采用纠删码规划的存储池最终得到可用容量能达到实际硬盘裸容量的约70%,纠删码是可用容量更高的一种数据保护策略,将数据分割成多个数据块,对这些数据块扩展、编码生成冗余的校验块,并将其存储在不同的位置。相应采用纠删码冗余技术的集群,对于数据节点的CPU开销会更多,因为需要消耗一定的计算资源用于进行存储数据的纠删码校验,故而对于存储节点的CPU型号要求更高。
块存储和对象存储数据池均可以使用三副本或者纠删码策略。为了能让集群正常工作,且根据用户需求,可以承受单个硬盘(或单个节点)的故障。集群必须预留一定的容量空间。具体需要预留多少容量空间,用附件的表格可计算得知。
存储精简特性。有丰富运维经验的系统管理员都会知道,对于一个分配出去的LUN,通常应用系统是不会使用完该LUN的所有空间,若存储采用精简配置,则只有当使用的时候才会占用存储空间,而非划出一部分空间预留的方式。例如集群的可用容量10T,创建一个1T的2副本池中的存储块,集群的可用容量并不会减少,仍为10T。当向存储块中写入0.5T数据,占用集群容量0.5T*2 (2副本)=1T,集群剩余可用容量为9T。若存储采用厚配置,则为划出一部分空间预留的方式。
精简卷的特性,在测试环境中,可以考虑应用,通常一个精简卷中运行的是不止一台虚拟机,它能提高存储资源的利用率,但是在生产环境中开启精简卷的功能,将要承担较大的风险,如果该LUN一旦空间耗尽,将直接导致多台虚拟机或者多个业务因空间不足而宕机的风险。况且分布式存储具备良好的扩容灵活性,生产环境的规划中,不建议开启精简特性。
尺有所短,寸有所长,建立一个企业的云平台存储池的关键还是对业务的分析,只要企业的存储管理人员能立足业务,能做到对自己企业的业务发展趋势和需求心中有数,从业务的具体需求和预测出发,就能从容面对云平台的存储池规划建设。在进行新的存储管理规划时,要求技术人员更有全局观,更全面的了解各个业务系统,要从单个系统的规划思维转为系统群的规划思维,充分评估各系统的性能峰值和容量峰值体量,峰值出现时间等因素,充分考虑系统的核心需求,熟练掌握分布式与集中式的优劣,并结合业务系统的需求进行具体分析,科学搭配,合理进行规划和建设实施。