作者:litianc
时间:2024 年 5 月 28 日
阅读时长:2分钟
最近偶然间听到一个名词——并行存储,当时的场景是产品问客户:“你们的用的是哪种并行存储?”,紧接还连续蹦了三个词汇,“是对象存储,块存储,还是文件存储?”
这下直接给我整蒙了,于是,放下小桌板,打开GPT,好好学习这些高大上的名词。
因为我之前自己搭过Ceph,对块、对象和文件相对比较清楚,Ceph号称是能够同时支持三种存储类型的统一存储。那么我就先从这三个简单的入手。
对象存储:一种将数据存储为离散的单元,即对象。每个对象通常包含数据以及与数据相关的元数据,元数据提供了关于数据的描述信息,如内容类型、大小等。说人话,就是不管数据内容多长,全部放在一本字典里,重复的数据只保留一个、多余的删除,字典的目录只有一级,同时根据这个目录,一定就能找到想要的数据。数据结构类似常用key-value,key是目录(呈现为元数据),value是数据内容。
块存储:一种将数据存储在固定大小的块中,通常称为块或扇区。这个是来自于传统硬盘的概念,例如在windows系统里将一块物理硬盘划分为C盘和D盘两个块。在云计算里,块存储更多是一种接口形式,底层已经不局限于一块物理硬盘,可以是多块硬盘的分片和组合,实现冗余和高可用。
文件存储:一种主要用于存储非结构化数据的数据存储。没错,就是你每天都在用的文件资源管理器,这是有层次的数据系统,每一层都可以设置不同用户是否可以“读”、“写”或“执行”。与块存储类似,现在已经不局限于单块物理盘。
在当前云的实践中,对象、块和文件对用户来说已经不是简单的三选一,而是可以相互转化,例如历久弥新的Lustre和当前红得发紫的JuiceFS,就可以在对象存储的基础上提供文件存储的服务。
最后,回到那个高大上的名词“并行存储”。原来,早在20世纪90年代,就有人提出了并行存储的概念:它将文件数据切分并分布存储在多个存储设备上,以提高数据访问的并发性和整体性能。这种系统允许客户端通过多个IO路径同时读写数据到多个存储设备,从而实现高吞吐量和低延迟的文件访问。说人话,并行存储就是一块硬盘的容量和读写速度会有一个极限,如果多个硬盘通过技术整合,能够实现整体容量和性能都超过单块硬盘的存储技术,也就是人们常说的横向拓展(scale out)。这已然不是什么新鲜的技术,过去30年,整个计算机界都在围绕这个设计目标做研究和产品。
其实经过学习后可以发现,并行存储的理念已经化作一种价值观,成为了分布式文件系统中最基础的能力。自然地,这个名词很少会出现在技术的日常讨论中,偶尔能在非技术人员口中听到,就当是一种对计算机先辈们的致敬,不要过于纠结其对错吧。