如何区分块存储和文件存储?

对于专业人员,这个问题呈现为“入门者的存储101”。但是存储技术文献总是在谈论块数据和文件数据,却并没有明确的解释二者的关键区别和关联。

任何两台通过网络进行通信的设备都必须就其通信方式达成一致。标准协议就作为通信的具体实现方式。这样的网络协议有很多。

一般来说,存储设备和子系统都作为归档系统的附属,用来读写数据。归档系统就是所谓的文件系统或者数据库系统。例如说Windows 2000和NT的NTFS文件系统、DOS的FAT文件系统、多种Unix文件系统(UFS)、Veritas文件系统(VxFS)、Oracle数据库、Informix数据库、Sybase数据库。

归档系统做两件事情:第一,向终端用户呈现数据和应用。数据一般是以一种层次样式的目录或者文件夹的方式组织。在我的新书当中我称之为数据表示。而归档系统所做的二件事,就是组织数据在存储当中的存放方式。这些归档系统必须将数据分散于存储容器中,并保证所有的数据都能以合理的性能访问到。通过索引数据存放位置(块存储地址)能够做到,这里面值得是数据结构。今天,这些实际上都是逻辑块地址,因为磁盘驱动器能够保存自己内部的块地址转换表。

因此,归档系统发送命令给存储,写数据到指定块和从指定块检索。这就是通常所说的块级别存储。这种存储功能是主从关系,并非客户服务器。

通过使用用户级数据表示接口(文件级存储)来请求数据也是可行的。通过利用数据的文件名、目录位置、URL或者其他信息能够做到。这是一种客户服务器通信模式。服务器接收到归档请求,然后查找数据存储位置并使用存储级功能检索,但服务器并非以块的形式返回文件给客户端,而是以字节的形式。文件级协议无法解析块命令,同样,块协议也不能传送文件访问请求和响应。

这里面令人疑惑的一件事情是,归档和存储是紧密集成,缺一不可的。但当去理解二者的流量是如何通过网络传送的,两者的线路又不相关。换句话说,二者的流量能够共存于同一网络但却使用不同的存储应用协议。

本文转自d1net(转载)

上一篇:带你读《存储漫谈Ceph原理与实践》第三章接入层3.3.文件存储 CephFS(一)


下一篇:将pod 指定部署到特定节点(master)上的一种方法记录