解析Linux新技术对象存储文件系统( 二 )


2、对象存储设备
对象存储设备具有一定的智能,它有自己的CPU、内存、网络和磁盘系统,目前国际上通常采用刀片式结构实现对象存储设备 。OSD提供三个主要功能:
(1) 数据存储 。OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写 。
(2) 智能分布 。OSD用其自身的CPU和内存优化数据分布,并支持数据的预取 。由于OSD可以智能地支持对象的预取,从而可以优化磁盘的性能 。
(3) 每个对象元数据的管理 。OSD管理存储在其上对象的元数据,该元数据与传统的inode元数据相似,通常包括对象的数据块和对象的长度 。而在传统的NAS系统中,这些元数据是由文件服务器维护的,对象存储架构将系统中主要的元数据管理工作由OSD来完成,降低了Client的开销 。
3、元数据服务器(Metadata Server,MDS)
MDS控制Client与OSD对象的交互,主要提供以下几个功能: (1) 对象存储访问 。MDS构造、管理描述每个文件分布的视图,允许Client直接访问对象 。MDS为Client提供访问该文件所含对象的能力,OSD在接收到每个请求时将先验证该能力,然后才可以访问 。(2) 文件和目录访问管理 。MDS在存储系统上构建一个文件结构,包括限额控制、目录和文件的创建和删除、访问控制等 。(3) Client Cache一致性 。为了提高Client性能,在对象存储文件系统设计时通常支持Client方的Cache 。由于引入Client方的Cache,带来了Cache一致性问题,MDS支持基于Client的文件Cache,当Cache的文件发生改变时,将通知Client刷新Cache,从而防止Cache不一致引发的问题 。4、对象存储文件系统的Client 为了有效支持Client支持访问OSD上的对象,需要在计算结点实现对象存储文件系统的Client,通常提供POSIX文件系统接口,允许应用程序像执行标准的文件系统操作一样 。2.2 对象存储文件系统的关键技术 1、分布元数据传统的存储结构元数据服务器通常提供两个主要功能 。(1)为计算结点提供一个存储数据的逻辑视图(Virtual File System,VFS层),文件名列表及目录结构 。(2)组织物理存储介质的数据分布(inode层) 。对象存储结构将存储数据的逻辑视图与物理视图分开,并将负载分布,避免元数据服务器引起的瓶颈(如NAS系统) 。元数据的VFS部分通常是元数据服务器的10%的负载,剩下的90%工作(inode部分)是在存储介质块的数据物理分布上完成的 。在对象存储结构,inode工作分布到每个智能化的OSD,每个OSD负责管理数据分布和检索,这样90%的元数据管理工作分布到智能的存储设备,从而提高了系统元数据管理的性能 。另外,分布的元数据管理,在增加更多的OSD到系统中时,可以同时增加元数据的性能和系统存储容量 。2、并发数据访问对象存储体系结构定义了一个新的、更加智能化的磁盘接口OSD 。OSD是与网络连接的设备,它自身包含存储介质,如磁盘或磁带,并具有足够的智能可以管理本地存储的数据 。计算结点直接与OSD通信,访问它存储的数据,由于OSD具有智能,因此不需要文件服务器的介入 。如果将文件系统的数据分布在多个OSD上,则聚合I/O速率和数据吞吐率将线性增长,对绝大多数Linux集群应用来说,持续的I/O聚合带宽和吞吐率对较多数目的计算结点是非常重要的 。对象存储结构提供的性能是目前其它存储结构难以达到的,如ActiveScale对象存储文件系统的带宽可以达到10GB/s 。
2.3 Lustre对象存储文件系统 Lustre对象存储文件系统就是由客户端(client)、存储服务器(OST,Object Storage Target)和元数据服务器(MDS)三个主要部分组成 。Lustre的客户端运行Lustre文件系统,它和OST进行文件数据I/O的交互,和MDS进行命名空间操作的交互 。为了提高Lustre文件系统的性能,通常Client、OST和MDS是分离,当然这些子系统也可以运行在同一个系统中 。其三个主要部分如图1所示 。图1 Lustre文件系统的组成Lustre是一个透明的全局文件系统,客户端可以透明地访问集群文件系统中的数据,而无需知道这些数据的实际存储位置 。客户端通过网络读取服务器上的数据,存储服务器负责实际文件系统的读写操作以及存储设备的连接,元数据服务器负责文件系统目录结构、文件权限和文件的扩展属性以及维护整个文件系统的数据一致性和响应客户端的请求 。Lustre把文件当作由元数据服务器定位的对象,元数据服务器指导实际的文件I/O请求到存储服务器,存储服务器管理在基于对象的磁盘组上的物理存储 。由于采用元数据和存储数据相分离的技术,可以充分分离计算和存储资源,使得客户端计算机可以专注于用户和应用程序的请求;存储服务器和元数据服务器专注于读、传输和写数据 。存储服务器端的数据备份和存储配置以及存储服务器扩充等操作不会影响到客户端,存储服务器和元数据服务器均不会成为性能瓶颈 。Lustre的全局命名空间为文件系统的所有客户端提供了一个有效的全局唯一的目录树,并将数据条块化,再把数据分配到各个存储服务器上,提供了比传统SAN的"块共享"更为灵活的共享访问方式 。全局目录树消除了在客户端的配置信息,并且在配置信息更新时仍然保持有效 。

推荐阅读