未解决
此帖子已超过 5 年
2 Intern
•
2.8K 消息
0
359
OneFS操作系统软件概述之智能读取机制
OneFS操作系统软件概述之智能读取机制
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese
介绍
在Isilon集群,数据、元数据和文件实体均匀分布在多个节点上,有些甚至会跨节点中的多个驱动器。在读取或写入数据到集群时,客户端连接的节点充当“数据收集者”的角色。在一个读操作时,“数据收集者”会汇总集群中各个节点的数据,然后发送给客户端。本文将介绍OneFS操作系统的智能读取机制。
更多信息
受益于采用成本优化的行业标准硬件,Isilon群集中每个节点都拥有大容量的高速缓存,并可以根据需要动态分配给读操作或者写操作。这种基于RAM的缓存可以统一的在跨群集中的所有节点实现一致性调配,从而让每个节点上的客户读取I/O请求时都可以受益。在低延迟InfiniBand背板的作用下,所有缓存块可以快速从任何节点进行读取,从而提供大型和高效的RAM缓存以加速文件读取的性能。随着集群规模的增加,这种缓存机制的优势将进一步体现。同时,Isilon集群中直接需要到磁盘中读取的I/O量相对传统平台的NAS设备会低很多,从而极大的减少了读操作的延时,为用户提供更佳的用户体验。
对于接入模式是并发(concurrent)或者流(streaming)的文件,OneFS操作系统的SmartRead组件可以预先读取部分数据。SmartRead可以在L2缓存上创建一个数据通道,然后预读部分数据到“Captain”节点的L1缓存中,这里“Captain”节点是指客户端直接访问的节点。这种预读机制大大提高了所有协议的连续读写的性能,因为从RAM中读取的数据响应时间只有几毫秒。对于连续顺序的读操作,SmartRead被证明可以非常大的提高读操作响应时间。
下图说明了SmartRead机制如何读取顺序存取,一个非缓存文件的读请求发送到3节点群集的节点1。
1、节点1通过读取“元数据”查找存放文件的所有数据块。
2、节点1同时检查自己L1缓存中是否有所请求的文件数据。
3、节点1建立一个“读通道”,然后发送并发(concurrent)请求到存放文件数据的所有节点。
4、每个节点将磁盘中的文件数据块读取到各自的L2缓存,并将文件数据传送给节点1.
5、节点1将传入数据记录到L1缓存,同时响应客户端的读操作请求。同时,进行预读取过程。
6、对于高度连续的文件,节点的L1缓存可以释放已读文件的缓存空间,用于其它L1或L2高速缓存请求。
参考
文档《EMC Isilon OneFS: A Technical Overview》
应用于
了解OneFS操作系统的智能读取机制。