对象存储(Object Storage)出现在90年代中期,作为一种比较新的存储方式,本文将比较它和传统的存储系统,如块存储(Block Storage)和文件存储(File Storage),之间的区别。

文件存储 (File Storage)

文件存储出现的时间显然比对象存储更早,也是大多数人熟悉的存储方式。你可以将文件放到文件夹中,还可以将它们嵌套在更多文件夹下,形成指定路径。通过这种方式,文件被组织成具有目录和子目录的层次结构,每个文件还有一组有限的相关metadata,例如文件名、文件大小、创建日期、上次修改日期等等。

文件系统较小时该存储方式可以良好地运行。然而一旦数据开始增长,检索信息就会变得十分困难,尤其是当没有一个规范的文件命名标准时。同时,由于文件具有唯一的地址,因此在一个服务器中可以存储的文件数量是有限的。另外,用户往往使network attached storage (NAS)来共享文件,这十分适合本地共享,但在网络上共享文件时可能导致问题。

总结下来,文件存储有三个局限性:

  1. 大数据量时不易检索
  2. 存储数量有限,不方便扩容
  3. 不适合网络共享

对象存储 (Object Storage)

对象存储将数据本身与metadata和unique identifier绑定在一起。其中metadata是定制化的,这意味着你可以为每个存储对象创建更多可识别信息。这些对象存储在平铺的地址空间中,这使得跨区域定位和检索数据变得更加容易。这种平铺的地址空间也有助于容量扩展,只需要添加另外的存储节点,就可以实现PB甚至更高级别的存储。

文件存储和对象存储的区别

现在我们知道了对象存储和文件存储的基本知识,现在来比较它们的关键不同。

首先,对象存储克服了文件存储面临的许多限制。如果将文件存储视为仓库,当你第一次把一盒文件放在那里时,看起来你还有足够的空间。但随着数据需求的增长,你会在不知不觉中将仓库装满。而对象存储就像一个没有屋顶的仓库,你可以不受限制地添加数据。

在检索较小或单个文件时,文件存储的性能非常出色,尤其是在文件数量相对较少的情况下。然而,一旦数据开始增长,你可能会想知道,“我如何找到我需要的文件?”。在这种情况下,你可以将对象存储视为代客泊车(原文是valet parking),而文件存储更像是自助泊车(self-parking)。当你将车停进一个小停车场时,你可以确切地知道车的位置。然而,如果这个停车场大一千倍,找到你的车就变得十分困难。由于对象存储具有可定制的metadata,并且所有对象都位于平面地址空间中,因此这类似于将钥匙交给代客。你的车将被存储在某个地方(在这种情况下,它甚至可能在另一个国家),当你需要它时,代客泊车将为您取车,虽然取回汽车可能需要更长的时间,但你不必担心四处寻找它。

我们可以举一个现实生活中的例子来说明为什么对象存储会有这样的优势。一个X射线文件只能绑定有限的metadata,例如创建日期、所有者、位置和大小;但一个X射线对象可以在文件原有的metadata的基础上,绑定任意数量的metadata,例如患者姓名、出生日期、受伤详细信息、身体的哪个区域进行了X射线检查等。这对于医生快速提取相关信息非常有用。

这是一个关于对象存储与文件存储之间差异的简要概括。文件存储有其用途,但企业已开始用对象存储代替文件存储,以满足其非结构化数据存储需求。

Original: Cloudian_Object_v_File_Storage