| 贵 州 学 习 网 |
|
随着高性能计算由传统的主机方式向网络化集群演变,传统的基于主机的存储架构已逐渐向网络化存储发展,计算和存储分离的趋势越来越明显。 针对 san 和 nas 的不足,国际上已开展针对 linux 集群的新型文件系统――对象存储文件系统的研究,本文重点论述了存储对象文件系统的架构、技术特点,并针对lustre 对象存储文件系统进行了初步测试,结果表明对象存储文件系统在可扩展性、性能、易用性等方面都有显著提高,随着网络化存储技术的不断成熟,对象存储文件系统将成为重要的发展方向。 k`&V[GkEx [ 此文转贴于 贵 州 学 习 网 电脑课堂LINUX教程 http://WWW.gzu521.COM ] k`&V[GkEx 高性能计算已由传统的主机方式逐渐向集群方式演变,如top500中,1998年只有2台系统是集群方式,而到2003年已有208台为集群系统。随着高性能计算体系结构的发展变化,传统的基于主机的存储架构已成为新的瓶颈,不能满足集群系统的需求。集群的存储系统必须有效解决两个主要问题:(1)提供共享访问数据,便于集群应用程序的编写和存储的负载均衡;(2)提供高性能的存储,在i/o级和数据吞吐率方面能满足成百上千台规模的linux集群服务器聚合访问的需求。目前,网络化存储已成为解决集群系统高性能存储的有效技术途径。 国际上主要有两类网络化存储架构,它们是通过命令集来区分的。第一类是san(storage area network)结构,它采用scsi 块i/o的命令集,通过在磁盘或fc(fiber channel)级的数据访问提供高性能的随机i/o和数据吞吐率,它具有高带宽、低延迟的优势,在高性能计算中占有一席之地,如sgi的cxfs文件系统就是基于san实现高性能文件存储的,但是由于san系统的价格较高,且可扩展性较差,已不能满足成千上万个cpu规模的系统。第二类是nas(network attached storage)结构,它采用nfs或cifs命令集访问数据,以文件为传输协议,通过tcp/ip实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的nfs文件系统,但由于nas的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。 针对linux集群对存储系统高性能和数据共享的需求,国外已开始研究全新的存储架构和新型文件系统,希望能有效结合san和nas系统的优点,支持直接访问磁盘以提高性能,通过共享的文件和元数据以简化管理,目前对象存储文件系统已成为linux集群系统高性能文件系统的研究热点,如cluster file systems公司的lustre、panasas公司的activescale文件系统等。lustre文件系统采用基于对象存储技术,它来源于卡耐基梅隆大学的coda项目研究工作,2003年12月发布了lustre 1.0版,预计在2005年将发布2.0版。lustre在美国能源部(u.s.department of energy:doe)、lawrence livermore 国家实验室,los alamos国家实验室,sandia 国家实验室,pacific northwest国家实验室的高性能计算系统中已得到了初步的应用,ibm正在研制的blue gene系统也将采用lustre文件系统实现其高性能存储。activescale文件系统技术来源于卡耐基梅隆大学的dr. garth gibson,最早是由darpa支持的nasd(network attached secure disks)项目,目前已是业界比较有影响力的对象存储文件系统,荣获了computerworld 2004年创新技术奖。 二、对象存储文件系统 2.1 对象存储文件系统架构, 对象存储文件系统的核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(object-based storage device,osd)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布,对象存储文件系统通常有以下几部分组成。 1、对象 对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性的组合,这些属性可以定义基于文件的raid参数、数据分布和服务质量等,而传统的存储系统中用文件或块作为基本的存储单位,在块存储系统中还需要始终追踪系统中每个块的属性,对象通过与存储系统通信维护自己的属性。在存储设备中,所有对象都有一个对象标识,通过对象标识osd命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组对象是存储设备上共享资源管理策略的对象集合等。 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文件系统接口,允许应用程序像执行标准的文件系统操作一样。 |
责任编辑:gzu521