本文来自微信公众号“twt企业IT社区”,作者/赵海,某金融系统高级主管。
在我们自己的企业当中,如果我们完全没有融入到公有云当中,仅仅是自身企业的私有云,那么是否有必要仿照公有云的模式实现一套大而全的云存储架构呢?个人觉得没有必要,也没有办法去完全仿照。
首先,我们来看业界对云存储的不同理解。
百度百科曰“云存储是一种网上在线存储的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,需要数据存储托管的人,则透过向其购买或租赁存储空间的方式,来满足数据存储的需求。”
阿里白皮书曰“云存储作为将储存资源放到云上供行为对象任意时间、任意地点,只要有网络连接即可存取的技术,依托其便利性和弹性按需的低成本优势伴随着云计算技术一起迅猛发展,势不可挡。”
红帽曰“云存储是通过互联网对存储资源进行抽象化、汇集和共享。云存储由称为云的IT环境推动,使云计算能够在云环境中运行工作负载。云存储有3种:公共云存储、私有云存储和混合云存储。”
权威杂志曰“云存储是在云计算概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。”
从以上观点来看,我们可以明确三点:
1)关于云存储,众说纷纭尚无定论;
2)云存储在大多数人眼里肯定不是通用产品,而是一个技术框架或体系;
3)互联、伸缩、共享、软件定义、协同集成是业界认可的云存储表现出来的特点。
接下来,将从不同维度探讨分析个人理解的云存储及云存储架构。
首先,我们借助于公有云上的通用云存储架构开始说起对其的理解:
如图1所示,通常的公有云存储资源架构从上到下会分为4-5个层面,暴露给用户的是最上面的“云存储应用资源接口层”,它会供给很多应用申请接口。
图1公有云存储通常框架图示
有基础存储服务类接口:例如Block存储、文件存储、对象存储...
有通用数据类存储服务接口:例如媒体存储、日志存储、图像存储、备份存储...
还有一些与数据存储相关的其他服务:例如数据迁移。
接下来云存储管理调度模块会将需求注册并且分配正确的存储对象实例,也就是到了“数据服务对象层”,这一层实际上并不是真正的数据存储空间,而是基于不同数据存储接口的服务实例。再下一层的“分布式文件系统层”,它是数据的底层载体,多数的公有云云存储底层的分布式文件系统都类似于GFS的Client-Master-Chrunk架构,但是各家产品在GFS的基础原理之上,优化了很多用来保障系统稳定性、安全性以及高性能的架构细节。例如将Master由单节点变为集群、元数据多副本等来保障元数据的可靠性;将数据存储索引横向分布在多个Master实例上,保障元数据读写的性能;增加以RDMA、SSD等技术为基础的软件定义功能,实现性能的量级提升。“基础功能层”实际上就是直接敷设在裸机之上的虚拟软件基础层,类似底座功能。通常它是基于通用服务器逻辑虚拟化之后形成的具备管理、调度、安全、协同等基础功能的底座软件。
从以上架构的简单描述,我们可以理解到公有云通用云存储架构的几点特性:
1)互联网络化:基于互联网诞生,基于高速网络技术完成海量数据的瞬间吞吐,基于网络对外提供服务,基于网络隔离技术实现租户的隔离。
2)应用服务化:从传统的Block、NAS、OBJ存储资源提供模式转变为Block、NAS、OBJ、NoSQL、NewSQL的统一服务接口提供模式,并且在此基础之上抽象出特定应用场景的应用服务接口。存储资源利用越来越靠近应用层。
3)分布式架构:在整个云存储架构体系当中,有太多太多的分布式元素在其中。不仅仅底层的数据载体层是纯粹的分布式架构(元数据&Chrunk数据),而且很多在其之上的存储对象也是分布式架构,尤其是NoSQL、NewSQL类的数据库类存储服务对象。
4)自动化:传统模式下,需要一个非常优秀的架构师才能完成从应用需求的梳理到数据存储服务对象的选型及设计,再到合适存储卷的规划和配置,再到底座层资源数量规格的规划等一系列工作。而且架构师的能力直接关系到整体系统的可靠性和发展性。但是云存储架构体系当中融入了太多的自动化基因,使得用户只需要注册申请资源,其他的映射关系完全由云存储平台本身自动完成。
最后,我们回到传统企业自身的数字化转型过程当中。
在我们自己的企业当中,如果我们完全没有融入到公有云当中,仅仅是自身企业的私有云,那么是否有必要仿照公有云的模式实现一套大而全的云存储架构呢?个人觉得没有必要,也没有办法去完全仿照。
一、为什么没有必要?
首先,共有云上的存储服务对象有太多太多种,它的客户对象是所有的行业。而对于特定行业中的个体企业来讲,不是说所有的存储服务对象都能用得到,作为个体企业用到的可能是某一个子集。其次,个体企业所需要的存储服务需求相对稳定、简单、可预见,与其投入大量的人力才力放在大而全上,还不如把有限的经历放在小而精上。再次,与公有云相比较而言,个体企业的数据规模、节点规模、负载规模完全发挥不出来互联网式的分布式规模效应,某些为此的投入从某种意义上讲就是浪费。
二、为什么没有办法?
首先,从公有云的IT人力投入上讲,个体企业完全不具备条件,何以保障生产运营过程当中的快速创新、快速解决BUG、快速迭代?每一段有价值代码都是很多人的智慧和实践换来的。其次,从IT人员的技术延展性来看,公有云的IT人员侧重于纯技术的锤炼,个体企业当中的IT人员侧重于更懂自己企业的业务系统特性。这两种人究竟哪一种放在自己的企业当中从事IT工作的价值更大,我想不言而喻。再次,公有云的云存储架构是经过了互联网发展的若干年以及千万种问题场景逐步演变过来的,这里面有千万个代码的改变都是基于特殊的时间、特殊的场景、特殊的问题促成的。这个也是个体企业无法经历的。
那么对于个体企业来讲,应该寻求什么样的云平台存储架构?
借助于图2,我们来描述企业私有云环境下的云存储架构应该是什么样的。在这里,我们仅仅从几个需要区别或者需要做出变化的层面重点强调。
图2:私有云云存储框架图示
如图2所示,首先,最核心的是要选择中间的“稳定成熟的分布式存储、集中式存储产品”,我们选择的标准要看其安全性、稳定性、上层的二次开发包容性以及下层的兼容性这个需要结合企业业务系统及数据特性来从技术原理上、使用案例上、经历时间上等各方面来考量。其次,产品本身要与我们既有的或者即将选择的私有云底座平台软件有很好的兼容性。这个也需要通过各维度进行分析评估。再次,通过本身的接口以及提供的二次开发接口来实现适合企业自身的“数据服务对象层”,不需要大而全,但是一定要在自身企业IT场景当中灵活易用。