并行文件系统¶
1 什么是并行文件系统¶
并行文件系统中,文件数据被切分并放置到多个存储设备中(各个被切分的数据如何放置,由并行文件系统通过算法来控制,可以基于元数据服务或类似一致性哈希的方式实现),系统使用全局名称空间来进行数据访问。并行文件系统的客户端可以同时使用多个 IO 路径将数据读/写到多个存储设备。
2 并行文件系统 vs 分布式文件系统¶
并行文件系统是分布式文件系统的一种。分布式文件系统和并行文件系统都可以将数据分布在多个存储服务器上,可横向扩展从而容纳 PB 级数据,并支持高带宽。 使用并行文件系统,客户端系统可以直接访问所有存储节点 以进行数据传输,而不必通过协议服务器。其他区别还包括: - 部分分布式文件系统将单个文件存储在单个存储节点上,而并行文件系统通常将文件分解并跨多个存储节点对数据块进行条带化。 - 分布式文件系统倾向于带宽型或归档型应用程序。并行文件系统专注于 高并发、高 IOPS、海量数据的高性能工作负载。 - 分布式文件系统通常使用诸如三副本或纠删码等技术来提供数据可靠性,而许多 并行文件系统还支持后端挂载磁盘阵列(例如 Lustre、Spectrum Scale、YRCloudFile 等)。
3 并行文件系统读写流程¶
当一个应用程序需要读写一个文件时,它首先需要向元数据服务器发送一个查询路径请求。元数据服务器会将该路径转换为与存储数据相关的物理位置,并返回给应用程序。然后应用程序通过网络连接到包含所需数据节点之一的计算机,并请求其读取或写入该数据块。
数据读取 时,第一个计算机通过网络将该数据块响应送回给应用程序。如果应用程序需要的数据块在其他节点中,则每个节点都会返回相应的数据块,最终应用程序会汇总并重新组合数据块,以形成完整的文件。
数据写入 时,应用程序将数据块发送给包含所需数据节点之一的计算机,并要求将其写入存储介质。节点使用相同的协议组建数据块,以确保数据块在所有存储节点上重复的数量。
总而言之,将数据分散在多个计算机上可以提高存 储容量,增强可扩展性和可靠性。