当前位置:首页 > 问答 > 正文

OpenStack本地存储那些事儿,现状咋样未来又会怎么变呢?

说到OpenStack的本地存储,这事儿得从根儿上聊起,OpenStack本身是一个搭建私有云的大工具箱,它不像公有云那样默认就有个无限大的集中式存储池,在早期的部署里,人们很自然地会用到服务器自带的硬盘,这就是本地存储,它的核心思想就是“谁的盘谁用”,计算节点(也就是运行虚拟机的服务器)直接用自己插着的硬盘来存放虚拟机的磁盘文件。

这种玩法有啥好处呢?根据早期社区的技术博客和像“OpenStack实战”这类书籍的总结,最大优势就是简单、便宜、性能高,简单是因为不用额外购买昂贵复杂的中端或高端存储阵列,插上硬盘就能用,便宜是显而易见的,硬件成本低,性能高是关键,虚拟机读写磁盘的I/O请求直接在本机完成,路径最短,延迟最低,吞吐量高,特别适合对磁盘IO要求苛刻的数据库、大数据分析之类的应用,国内一些金融和电信行业在最初尝试OpenStack时,由于对性能有极致要求,也常常采用这种模式,这在当时的技术分享会上有不少案例。

但毛病也一样突出,根据OpenStack官方文档中对“Ephemeral Drive”(临时驱动器)的说明,最要命的就是数据不可靠虚拟机没法自由迁移,数据不可靠好理解,一块普通的硬盘说坏就坏,上面的虚拟机数据可能就全丢了,没法迁移更头疼,想象一下,A服务器上的虚拟机,它的“身体”(磁盘文件)就长在A服务器上,如果A服务器要维护或者宕机了,你想把虚拟机搬到B服务器,但B服务器上没有它的磁盘啊,这就搬不过去,严重影响云的灵活性和高可用性。

OpenStack本地存储那些事儿,现状咋样未来又会怎么变呢?

很长一段时间里,本地存储的角色有点尴尬,它像个“偏科生”,性能猛将但稳定性是短板,大家通常只敢用它来跑一些无状态的、临时性的计算任务,比如网页前端、批量计算作业,数据丢了不心疼,而重要的、有状态的应用,还是会想办法放到通过Cinder(OpenStack的块存储服务)连接过来的集中式共享存储上,比如SAN或CEPH集群,以保证高可用和可迁移性。

那现状咋样了呢?情况发生了很大变化,根据近年来像“OpenStack超级用户”奖项的获奖案例和各大厂商(如华为、浪潮、新华三等)的白皮书分析,本地存储不仅没被淘汰,反而以一种更聪明、更强大的方式“杀”回来了,这背后的功臣主要是两大技术:NVMe SSD硬盘的普及软件定义存储(SDS)技术的成熟

OpenStack本地存储那些事儿,现状咋样未来又会怎么变呢?

NVMe SSD让单块本地硬盘的性能达到了惊人的程度,比很多传统的共享存储阵列还要快,这让人们无法忽视本地存储的性能优势,SDS技术,特别是像Ceph这类分布式存储系统,它们可以把每个服务器上的多块本地SSD硬盘组织起来,形成一个逻辑上统一、全局共享的存储池,这样一来,鱼和熊掌兼得了:虚拟机既能享受到本地NVMe SSD的低延迟高性能,其数据又在后台被复制了好多份到其他服务器的硬盘上,保证了高可靠性,当虚拟机需要从A机迁移到B机时,B机可以直接通过网络从存储池里访问到该虚拟机的数据,迁移不再是问题。

这种模式现在非常火,被称为“超融合架构”或者“分布式存储架构”,它已经成为当前企业部署OpenStack私有云的主流选择之一,尤其是在对性能和成本都敏感的互联网、视频处理、云计算服务商等领域。

未来又会怎么变呢?从技术发展趋势来看,比如根据英特尔等硬件厂商对持久内存(PMem)、计算存储等新技术的展望,本地存储的角色可能会进一步深化,存储和计算的界限会更模糊,像持久内存这种既能当内存又能当存储的硬件,会更深度的与本地计算结合,可能虚拟机的“磁盘”直接就一部分放在这种超高速介质上,性能会再上一个台阶,智能网卡(SmartNIC)或DPU(数据处理器)可能会把一部分存储管理功能(比如数据压缩、副本同步)从CPU卸载到网卡上干,进一步释放计算资源,让本地存储的效率和性能更高。

OpenStack本地存储的故事是一个从“简单粗暴”到“智能融合”的进化史,它不再是那个只能干脏活累活的临时工,而是通过软件定义的技术,进化成了高性能、高可用的核心支柱,未来的它,会更紧密地和最新的硬件技术结合,继续在私有云里扮演不可或缺的关键角色。