云平台存储架构规划设计与传统数据中心存储规划设计实践思路可以求同存异,都应该始于业务需求,而云平台存储架构规划设计更是需求目标与设计实践的一一对应,一般分为存储选型、空间布局、性能优化、故障容灾等多个阶段,但其规划的基础始终应该是项目前对业务系统的调研与分析。
【作者】李威 某金融机构架构师
云平台存储架构规划及设计,可以与传统数据中心存储的规划实践思路求同存异。同,是规划与设计的方向相同。都是始于业务需求,着眼于存储类型、数据量级、业务场景,于空间布局、增容扩展以及故障容灾上进行精细配置。异,则是详细设计的方向不同。传统数据中心存储的规划与实践注重于对存储网络、品牌性能、高级特性优化的着墨,一般对存储架构及性能的配置、调整、优化重点关注,系一种架构思维去推动产品实践的模式。而云平台的存储规划,是鉴于云架构的服务化与平台化的能力,云平台存储类型、规格、性能、扩缩容以及计费等模式一览无余,即开即用无需繁杂的设计与规划。云平台存储的规划与设计,更像是“连连看”,将实际的业务需求、业务场景和与之最佳匹配的云存储做连线,尽可能的将云下存储服务的能力融入到业务多维度的数据需求,形成全方位的部署。因此,云平台存储的规划与设计,几乎是需求目标与设计实践一对一的业务驱动科技的现实演绎。
云平台存储架构规划与设计的维度,一般分为存储选型、空间布局、性能优化、故障容灾等多个阶段。在进行云平台存储的细致设计之前,架构师首先会对云上业务系统的数据存储需求进行调研与分析,在前期的摸排阶段重点关注业务系统的量级、负载、可用性等关键业务指标,转化成对云平台存储的需求,即存储类别选型、初始空间评估、关键压力性能、数据保护。
存储选型
存储选型一般先做粗略分类,将结构化与非结构化存储区分,然后在非结构化与结构化存储上做细致分类。数据的存取形式与云平台存储的选型也存在很强的集联关系:结构化云平台存储基于其关联业务几乎是在线业务或高负载业务,因此其选择搭配范围较为固定。生产ECS存储一般业务选择普通云盘、高负载业务优先选择读写密集型高效云盘。云数据库存储通常为高效型SSD;非结构化数据多为企业的归结数据如证件材料图片、视频、交易报文等,此类数据的存储选型很大程度取决于业务对数据的存取策略及性能要求,持续在线数据使用计算型存储,低频回访数据使用归档存储,IO频繁则使用热存储,反之则选择冷存储。非结构化云存储的选型上,通常推荐复合选择以达到最佳实践,这是因为非结构化数据在业务的不同时期其存取需求各异,在线生产经营周期内需要随存随取,不定时访问进行业务生产并可能形成持续压力,此时数据建议配置在对象存储上。当超过生产经营周期,数据由热转冷,不需要频繁访问,在此期间此类数据则建议由生产的对象存储归档至低频冷存储上。冷热数据存储单独配置,既适配了业务的负载特性又方便独立管理,同时在云平台的整体开销上也形成了良性的优化导向。
空间布局
在云平台存储空间布局上,通常使用年度测算法评估业务数据需求总量。例如以月度或季度统计业务的数据单位数据量,以一年为时间长度统计业务数据年度基础量,评估出该业务正常经营一年的数据量预估值。以三年为实时间长度模拟业务数据量的增长,最终评估出业务数据需求总量。云平台存储初始空间大小约等于最终业务数据需求总量除以经典压力负载常数(经典值为70%)。云平台存储的空间通常宜多不宜少,尤其对于正处于发展期(经营超过一两年)的业务,空间测算时预估的年度增长值通常会低于业务实际增长。尽管云平台存储的空间分配与传统存储不同,模糊淡化了LUN的概念,但在云平台存储空间布局上仍要保持传统存储上LUN分配的几个原则——“独立不集中、宜多不宜大”。以ECS存储配置为例,在分配ECS云盘资源时,系统盘与数据盘推荐独立配置(独立不集中),方便系统故障无法开启可以将数据盘迅速挂载到其他ECS快速恢复业务数据。ECS不同数据盘之间,推荐多盘部署分摊业务IO、避免单盘过大造成恢复困难或触达云盘性能瓶颈(宜多不宜大)。
性能优化
云平台存储除了满足业务的基本需求,对云平台存储性能敏感的业务、难以抉择云平台存储最佳选型的情况,均强烈推荐进行性能压测,模拟真实业务运行监测云存储的实际运行效能,云平台存储服务标定的存储规格及性能标定无法真实反映业务的实际运行情况。常见的云平台存储测试大致可分为三类:
1. FIO类工具的复合云存储测试,通过指定IO块大小、IO深度、各IO百分比等参数模拟云存储的裸盘性能。此类工具的测试结果可作为业务初步模拟的基础参考,结果符合业务运行要求后再进行后续应用测试。
2. 真实业务模拟测试,通常部署业务应用集群,选择核心业务流程,填充业务模拟数据进行低、中、高负载的多轮持续压测,结合裸盘性能测试报告,持续变更云平台存储的配置进行业务适配性优化。
3. 数据库类应用测试,数据库类测试工具非常多,如Sysbench、Swingbench、BenchmarkSQL等,选择合适工具进行OLAP或OLTP测试。数据库类测试结果的优化往往需要DBA反复调试数据库参数,以及云平台存储工程师对存储布局进行适配。在云平台存储的性能问题上, 我们常常面对一个选择——云平台存储的高级特性(如智能预读、冷热分层、重复数据删除等)是否可以开启利用?虽然高级特性带来的存储性能提升显而易见,但是否是其业务运营发展需要?其次高级特性的方案成熟度是否完善、是否经过时间的检验?最后开启高级特性的副作用场景我们也应同步考虑,如智能预读中部分场景的读放大、冷热分层特性中的缓存击穿、重复数据删除中元数据故障数据重构等问题。云平台存储事故无大小,一旦发生,其影响的点和面将相当广。对于成熟的高级特性可适当计划在生产实践中开启引用,但一切的前提均是在性能持续压测中进行充分验证。
故障容灾
云平台存储的故障容灾手段是相当丰富的,大多可实现数据的快速恢复,比如ECS云盘的快照、OSS的跨域同步、NAS的快照备份等。在项目实践中如何做好合适的规划呢?首先业务系统重要等级和数据完整性高低是云平台存储的数据保护基准也是核心参考,因此进行云平台存储项目前的业务调研报告就相当重要。核心等级越高、完整性要求越严格的业务数据启用的云平台存储数据保护越全面,尽可能减少RPO和RTO。同时也要牢记一个原则——所有云平台业务数据至少配置一种数据保护手段。在常规实践中,云平台存储上的故障容灾推荐以云服务数据保护为主,传统备份恢复软件为辅,云保护主要实现数据的迅速恢复,备份恢复软件突出对数据的长期保存或异地离线需求。若以项目场景为例,ECS的云盘数据一般要求通过快照保护,若项目允许辅以备份恢复系统对ECS进行完整性备份或离线导出异地保存等,实现更高精度的备份恢复。OSS和NAS除了本身的复制、快照手段,还可以进行跨区域同步等能力实现多份数据的冗余,利用集中备份恢复系统实现周期性的合成全备份实现细粒度的恢复需求。云数据库存储的数据保护,物理备份、逻辑备份、沙箱保护等多种技术可进行多元组合,同时还可以结合备份恢复系统进行云数据库的离线出库等等。
以上是云平台存储项目规划的一点经验之谈,或者说是项目规划的纲要原则。云平台存储项目的规划是一个实践性的话题,不同的业务场景、不同的业务需求给出的规划设计完全不同,并没有一份标准的公共答案。但有一点是可以明确的,那就是项目前对业务系统的调研与分析,这才是云平台存储项目规划的基础。