将存储资源虚拟化的概念由来已久。起初,云存储是为了解决存储的低成本、可扩展和资源池化,从而实现所谓的按需所取,涉及的技术不仅有虚拟化、分布式,还有网络与负载均衡等等。广义来看,这种数据存储即服务(DaaS)的运作方式大体可分为虚拟化存储和分布式存储,前者是云存储走到今天的必然手段,后者则是云存储的未来趋势。
传统的存储方案SAN或NAS无法满足容量和性能的高并发需求,集成式的组件和接口限制了动态扩展能力,自然也就难以做到按需服务,这恰恰是DaaS的主要优势。概括来说,云存储就是存储的虚拟化+自动化,并且网络在其中起到了不可或缺的作用。实现过程中,像数据块、磁盘、磁带库、文件系统等都可以被虚拟化。
网络之于云存储是重要的,但其只是存储虚拟化的一个功能。存储虚拟化可以在系统架构的各个层实现,而在网络层可以做到横跨异构磁盘阵列,相当于在数据中心内部构建了一个大型的资源池。需要注意的是,池化时的异构管理要确保存储的标准化,原因是在多云多租户的环境下,只有各家采用相同的规范才能做到被统一调用。
作为云存储的基础,虚拟化存储的本质是实现了从物理存储到逻辑存储的转变。在物理介质和服务器之间,虚拟化的对象既可以是前文提到的网络,也可以是主机或存储设备。当然,这些方式各有利弊,例如在主机层虚拟化便于部署,但与存储有关的软件要运行在同一个主机上,越权管理增加了核心数据的安全风险,而把功能集中在存储设备上则会过度消耗存储控制器的资源。
以虚拟磁盘为例,通常的服务器扩展存储方案包括DAS、SAN、NAS。在虚拟化环境中,首先要把物理资源划分为虚拟磁盘,之后“虚拟机管理员”会为多个虚拟化分配存储空间。从物理层面来看,DAS直连虚拟机满足不了磁盘的数量需求。从虚拟层面来看,逻辑单元也难以支撑大规模的虚拟机运行。考虑到云环境的虚拟机要被随时创建、销毁、共享,传统的存储扩展方式并不适用。
随着x86系统性能的不断提升,以此来构建大规模存储集群变为可能。事实上,分布式存储早在云计算之前就出现了,在云时代又焕发了新颜。借助分布式文件系统,不仅可以提供弹性存储资源,还能根据应用需求提供各类接口,例如分布式对象存储的http接口让用户无需操心文件的存放位置或是否丢失,像AWS的S3就有多层验证机制。
对象存储、块存储、文件存储是分布式存储的三大利器,三者的接口是不一样的,因此适用的业务形态也不同。块存储可以直接挂在主机上,直接读写磁盘空间的某段地址即可访问数据,资源调取效率较高,像一些大规模数据库多采用这种部署;文件存储通常用于应用层,通过TCP/IP协议访问,需要使用者专门对文件写脚本,因此延时要高于块存储,可借助NAS虚拟化处理非结构化数据;对象存储具备二者的优点,兼顾高速、共享、智能,并且引入了容器技术,打包交付和扩展能力较强。
当然,考虑到部署成本和某些特定场景,对象存储并不能完全取代块存储或文件存储。例如数据库有时要直接向裸盘映射,更适合块存储的方案。此外,如果对数据量的存储要求不高,只是想实现共享数据,文件存储就可以满足要求。不管怎样,分布式存储要比传统的虚拟化存储方案更加灵活,适用范围也更广。
如今,存储方案已经从传统架构向云架构演变,企业客户在业务部署时要基于业务的实际需求,结合数据结构和规模的特点,选择相对应的存储方案,不能冒进全面替换新架构而加大额外的成本支出。不过从长期来看,基于x86的分布式存储,以其集群架构实现的横向扩展能力将成为云存储领域的主角。
【编辑推荐】
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0