Simon et al. 数据互动协议团队,发表于2022年5月19日
相关概念及定义
分布式文件系统(DFS) ,定义为“网络连接的相互依赖的计算机之间共享信息”。不同于典型的文件系统(即NTFS和HFS),DFS是分布在多个文件服务器或多个位置的文件系统,通过计算机网络进行通信或交换信息。它允许程序像访问本地文件一样访问或存储独立的文件,允许程序员从任何网络或计算机访问文件。通过DFS,可以以受控和授权的方式在网络上的用户之间轻松地共享信息和文件。DFS的主要目的是允许物理分布式系统的用户通过使用公共文件系统(CFS)来共享他们的数据和资源。尽管,服务器对数据有完全的控制权,并能控制用户访问。DFS硬件配置为局域网(LAN)连接的工作站和大型主机的集合。DFS软件系统是作为操作系统的一部分进行运行。
附:文件系统是操作系统的一个子系统,它执行文件管理活动,例如文件的组织、存储、检索、命名、共享和保护。文件系统将程序员从二级存储设备的空间分配和布局等细节中解放出来。
分布式存储的种类
分布式存储包含传统意义上的分布式文件系统、分布式块存储和分布式对象存储,还包括分布式数据库和分布式缓存等,根据其架构分为:
A、中间控制节点架构:以 HDFS 为代表,部分命名节点存放管理数据,另一部分数据节点存放业务数据。具有组织化明确的特点。
B、完全无中心架构—计算模式:以 Ceph 为代表的架构是其典型的代表,客户端通过设备映射关系通过计算方式,明确写入的位置,从而达到客户端与存储节点的直接通信。
C、完全无中心架构— 一致性哈希:以 Swift 为代表的架构是其典型的代表,通过将设备制定为哈希环,然后通过数据名称计算出对应的哈希值,从而映射到哈希环的某个位置实现数据定位
DFS应该具备的特点:
远程信息共享:无论文件的物理位置如何,任何节点都可以访问该文件。
用户移动性:应该允许用户在不同的节点上工作。
适用性:为了获得更好的容错性,能够在任何局部故障(如链路故障、节点故障或存储驱动器崩溃)的情况下继续运行。因此系统应该维护文件的多个副本,这些副本的存在对用户应该是透明的。一个高可靠性、高适应性的HFS应该有不同的、独立的文件服务器来控制不同的、独立的存储设备
无盘工作站:分布式文件系统具有透明的远程文件访问功能,允许在系统中使用无磁盘工作站
透明性:
•结构透明度:客户端不需要知道文件服务器和存储设备的数量或位置。为了性能、适应性和可靠性,有必要提供多个文件服务器。
•访问透明度: 本地和远程文件都应该以相同的方式进行访问。文件系统应该自动定位到被访问的文件上,并将其发送到客户端。从主机的角度来看,数据被访问,就像它是本地的主机访问它一样。
•命名透明度: 在文件的名称中不应该有任何指向文件位置的提示。一旦为文件指定了名称,就不应该在从一个节点传输到另一个节点的过程中更改它。
•复制透明度: 如果在多个节点上复制一个文件,那么文件的副本及其位置应该从一个节点隐藏到另一个节点。
位置独立性:主机可能不知道文件数据的物理位置。数据位置由DFS管理,而不是由访问它的主机管理。
一致性访问:DFS文件数据的管理使其在主机看来就像是在一个单一的文件系统中,即使它的数据可以分布在多个存储设备/服务器和位置
高效的大文件传输率:DFS系统的出现为HPC工作负载提供高传输性能,而且大多数还将继续这样做。
文件锁定:通常支持跨位置或在位置内的文件锁定,这确保了没有两个主机可以同时修改同一个文件
数据传输加密:大多数DFS系统支持在传输过程中对数据和元数据进行加密。
多样化的存储介质/系统:大多数DFS系统可以使用机械磁盘、SAS SSDs, NVMe SSDs, S3对象存储,以及私有的、本地的对象存储来保存文件数据。虽然大多数DFS系统对元数据服务器有非常特定的要求,但它们的数据或文件存储通常可以驻留在任何可用的存储上,包括公共云。
多协议访问:主机可通过提供商提供的标准NFS、SMB或POSIX客户端访问DFS数据。偶尔也可以看到NVMe-oF用于访问文件和(NVIDIA) GPU直接存储单元。这也意味着可以使用DFS解决方案支持的所有协议访问同一个文件。
多网络访问:虽然所有DFS都提供对文件系统数据的以太网访问,但有些DFS还提供InfiniBand和其他高性能网络访问
软件自定义的解决方案:大多数DFS系统是软件定义的解决方案。一些DFS系统也可以在设备解决方案中使用,但这更多是为了购买/部署的方便,而不是DFS解决方案的需求
本地网关:DFS系统可能需要在每个可以访问其文件数据的位置上使用一些服务器和存储资源。本地网关通常缓存主机引用的元数据和数据。这样的网关通常可以伸缩以维持性能需求。在某些情况下,访问和数据驻留在一起,不需要网关。
用户移动性:
它自动将用户的主目录带到用户登录的节点。
简单易用:
文件系统的用户界面应该简单,文件中的命令数量应该很少。
可伸缩性:
由于通过添加新机器或将两个网络连接在一起来增加网络是常见的,分布式系统将不可避免地随着时间的推移而增长。因此,应该构建一个良好的DFS,以便随着系统中节点和用户数量的增长而快速扩展。随着节点和用户数量的增加,服务不应受到实质上的中断。大多数DFS系统支持横向扩展文件系统,通过添加更多的元数据或文件数据服务器资源(包括网关),可以提高文件数据和元数据服务的性能和容量
性能:取决于确定客户端请求所需的平均时间。这个时间包括CPU时间+访问二级存储时间+网络访问时间。分布式文件系统的性能建议与集中式文件系统相近
高可靠性:
在合适的DFS中,应该尽可能减少数据丢失的可能性。也就是说,由于系统的不可靠性,用户不应该被迫对其文件进行备份。相反,文件系统应该为关键文件创建备份副本,以便在原始文件丢失时可以使用。许多文件系统采用稳定存储作为高可靠性策略。
数据完整性: