(计算机系统结构专业论文)基于gdss的广域网文件系统研究.pdf_第1页
(计算机系统结构专业论文)基于gdss的广域网文件系统研究.pdf_第2页
(计算机系统结构专业论文)基于gdss的广域网文件系统研究.pdf_第3页
(计算机系统结构专业论文)基于gdss的广域网文件系统研究.pdf_第4页
(计算机系统结构专业论文)基于gdss的广域网文件系统研究.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

vi 摘摘 要要 随着信息社会的发展,越来越多的信息以电子数据形式存储,尤其是伴随着 internet 发展,电子数据呈爆炸式增长。在未来几年内,存储将成为令人瞩目的一个 市场。在今后的几年内,存储服务市场将进入飞速发展期。基于 internet 的应用例 如电子商务、 电子邮件和客户关系管理(crm)等将成为存储服务的主要市场。 此外, 如何利用异构的存储资源高效协调的工作也是一个非常迫切待解决的问题。g2nfs 是在全局分布式存储(gdss)平台上的开发针对这些问题而提出的一个较好解决 方案。 g2nfs 结合单一名字空间和多名字空间的特点, 建立一个全局统一的文件命名 空间,对所有的用户提供相同的文件命名、定位、和访问机制,实现文件定位的高 效率、位置透明性和访问透明性。同时针对不同的用户的兴趣,为他们提供不同的 数据视图。利用域和组的概念,采用分布式元数据服务器,实现控制命令传输和真 实数据传输分离的第三方数据传输,从而大大减轻服务器端的负载,提高了系统的 吞吐能力。采用域和组的概念,建立方便高效的用户数据共享机制。 g2nfs 采用一种自适应策略, 即当文件比较大的时候采用普通的传输方式或者 分片传输,当文件比较小的时候放入一个数据通道,多个小文件共享一个 socket。 采用 socket 复用技术使得大批量小文件的传输高效而快捷;采用大文件分片技术, 使得大文件传输的效率得到极大的提高。文件快照技术是一种保留某一时刻文件系 统映像的技术,它用最短的时间和最低的消耗实现文件系统的只读备份,其目的是 在应用层有效地保护数据不被破坏。元数据给出了数据在存储装置的存储结构,通 过记录整个文件系统的元数据在某一时刻的状态,建立文件系统在这一时刻的快 照。 g2nfs 实现了一般文件系统功能,具有统一的用户视图,实现了第三方传输, 测试结果表明,该文件系统对大批量小文件和超大型文件传输具有极为明显的优 势。 关键字:关键字:网络文件系统 分布式存储 文件快照技术 元数据 数据共享 vii abstract with the development of informational society, more and more information is stored with electronic style. the dramatically increasing data resource brings great challenges for storage system of internet server. storage technology is developed so fast that the storage market will become bigger and bigger. as the applications based on internet, such as electronic business, e-mail services and custom resource management (crm) etc. g2nfs offers a perfect solution of these requirements,which is developed on global distributed storage system(gdss). g2nfs builds a global name space, which has the goodness of single name space and multiple name space, and offers all users the same mechanism file name, location and access. it provides different data views with the different interest of the users.g2nfs has distributed meta data servers, which uses domain and group to make users share their data conveniently. g2nfs has the mechanism that the transportation of the command and the transportation of useful data have different ways, which makes the servers be more powerful. g2nfs has the self-adoptive mechanism, which uses normal or slice transportation when a file is larger. when there are many small files, it makes several small files be one socket, which increases the efficiencies of transportation. in order to protecting data not be destroyed, g2nfs snap-shot technology can keep file system backup at one moment, which spends the shortest time and the smallest space in making read-only backup. meta data provides the storage structure on storage devices, file system snap-shot can be founded by recording the state of the file system metadata. g2nfs has the functions which the normal file system has; it also has the special functions such as a united user logical view, tri-transactions etc. with the test result, g2nfs has the excellent performance in large of small files and super files transaction. keywords: network file system; distributed storage; snap-shot; meta data; data-shared 1 1 绪绪 论论 1.1 概述概述 当今社会中, 随着电子信息技术的迅猛发展,许多重要的科学应用需求给计算科 学带来了巨大的挑战1,因为信息正以超乎人们想象的速度增长,对信息存储系统的 容量和速度提出了空前的要求,由此引发的各种问题也随之而来。人们对信息数据 日益广泛的需求导致存储系统的规模变得越来越庞大,管理越来越复杂,信息资源 的爆炸性增长和管理能力的相对不足之间的矛盾日益尖锐。 在广域网范围内,一方面 大量存储资源长期闲置或被低效率使用,而另一方面又有大量用户的存储需求无法 得到满足,由此分布式存储技术应然而生。 在广域网中使用了分布式存储技术后可使 地理上广泛分布的科研工作者或用户都能访问和分析网络中大量应用数据资源,例 如全球气候模拟、高能物理、生物计算、数字地球、大规模的信息和决策支持系统 等应用中,其数据量可达到几十 terabyte 至 petabyte 的级别。分布式存储技术为用 户提供了广域网范围内的数据共享和计算能力的集成,能够满足人们对高性能、大 容量分布存储和分布处理能力的需求。 文件系统是分布式存储系统 gdss2中的重要组成部分,侧重解决存取文件的 性能,对中小型文件及大型文件采用不同的策略,来提高整个系统的存储性能。这 部分和存储服务提供点 ssp(storage service point)3、 元数据服务器 mcat(metadata catalogue)4、 资源管理器rm(resource manager)、 数据传输56、 存储代理sa(storage agent)等其他子系统一起构成了整个分布式存储系统。 1.2 网络文件系统的研究现状网络文件系统的研究现状 1.2.1 nfs(network file system) nfs7 是由 sun 公司发展, 并於 1984 年推出, 以此作为对远程文件系统进行 透明存储的一种方法。它目前已被移植到几乎所有 unix 系统及 vms 和 dos 上, 2 并成为事实上的工业标准。 nfs 体系结构基于客户端/服务器模型, 每个结点都同时 可以作为客户端和服务器。客户端和服务器之间通过 rpc 进行通讯。nfs 的主要 问题是性能,尤其是写性能差;可扩展性差;以及不支持严格语义文件共享。nfs 是一个 rpc service,它使我们能够达到档案的共享, 它的设计是为了在不同的系统 间使用, 所以它的通讯协定设计与主机及作业系统无关.当使用者想用远端档案时 只要用 mount 就可把 remote 档案系统挂接在自己的档案系统之下,使得远端的档案 使用上和 local 机器的档案没两样. 从用户角度看来,远程的文件系统操作和本地的文件系统上操作并没有什么不 同。nfs 由 sun 微系统公司(sun microsystem, inc)开发,制订了 nfs 标准,并被 ietf 接受,纳入 rfc,作为文件服务的一种标准(rfc1904,rfc1813) 。nfs 基 于客户/服务器结构,通过 rpc(远过程调用)实现,所有的 nfs 操作都由 rpc 过 程来进行。nfs 服务器导出本地的目录给远程的 nfs 客户,nfs 客户把对文件操 作系统调用重定向到远程的系统。在 linux 里,通常用 knfsd 来实现 nfs 服务,这 是个运行在核心空间的后台守护程序, 相对与用户空间的 nfs 程序, 有较高的响应 性能。 1.2.2 fs 与与 coda 文件系统文件系统 afs8是 cmu 与 ibm 联合研制的 (项目开始于 1982 年, 相关文章始见于 1986 年) , 发行了几个版本, afs3.0 是顶峰之作。 其后, 针对 afs 的工作转移到 transarc 公司,afs 演变为 osf 的分布式计算环境(dce)的分布式系统(dfs)组成部分。 afs 扩展性好,能够扩展到几千个节点,提供一个统一的位置无关的名字空间。此 外,afs 有较强的安全性(基于 kerberos) 。但以 afs 作为机群中的共享文件系统 也存在一些问题:第一,其性能不能令人满意,它使用本地文件系统来缓存最近被 访问的文件块,但却需要一些附加的极为耗时的操作,结果,要访问一个 afs 文件 要比访问一个本地文件多花一倍的时间。第二,其容错性较差,由于它采用有状态 模型,在服务器崩溃,网络失效或者其他一些像磁盘满等错误时,都可能产生意料 不到的后果。第三,它不是 unix 文件共享语义,而是会话语义,即仅在每次文件 3 打开或关闭时才进行缓存的一致性操作。这种语义比 nfs 基于时间的一致性更弱, 不能满足大量的高性能科学计算应用的需求。 coda9文件系统(coda file system)适用于分布式网络环境。 它是在 1987 年在卡 耐基梅隆大学以 afs2 为原型开发出来的。linux virtual server 就采用了 coda 文件 系统。 coda 提供了以下适用于网络文件系统的特性。 为移动的客户提供了断开操作。 它是一种自由软件。通过客户访问的持续缓存提供了高可用性。服务器复制功能。 提供了认证的安全模型、加密和访问控制。部分网络失效后能够继续工作。具有网 络带宽适应性。较好的可扩展性。即使在网络失效时也为共享定义了良好的语法。 code 文件系统分为服务器和客户端,服务器又分 scm(system control machine) server 和 non-scm server,scm 服务器负责与其它服务器同步,scm 服务器只有一 个,而 non-scm 服务器可以有多个。客户端在与服务器建立连接之后会在本地生 成一个新的文件系统/coda, 这个文件系统下的所有文件是与服务器上的一个用户数 据目录保持同步的,服务器上的用户数据目录是在安装服务器软件时指定专门用来 存放用户数据的,即在客户端的/coda 目录下保存的所有文件,实际上都是服务器 上的一个备份,只要服务器上的文件发生了变化,则/coda 目录下的文件也会发生 相应的变化,这就是说,只要有一个客户端操作了/coda 下的某个文件,则所有客 户端/coda 下的对应文件就都要发生变化,同时服务器之间也要保持同步。 1.2.3 gfs(global file system) 随着高速通讯网络技术的发展,出现了基于共享存储的机群文件系统,其特点 是每个客户节点都可以直接访问存储设备,不需要文件服务器。有的没有任何服务 器(全对称型) ,有的需要元数据服务器(非对称型) 。这种结构的优势在于可扩展 性好,增减存储设备非常容易,而且容易实现 unix 语义。由于一般采用高性能通 讯网络(如 hippi,fibre channel 等)来连接客户节点和存储设备,基于共享存储 的机群文件系统通常都有很高的性能。 gfs10是美国明尼苏达大学研制的基于共享磁盘模型的分布式文件系统。gfs (global file system)是 minnesota 大学开发的基于 san 的共享存储的机群文件系 4 统。后来 sistina 公司将 gfs 产品化。gfs 最初是在 irix 上开发的,后来移植到 linux 上,并开放源码。借助 nbd,gfs 可运用于 lan 环境中。它是全对称的机 群文件系统,没有服务器,因而没有性能瓶颈和单一故障点。gfs 将文件数据缓存 于节点的存储设备中,而不是缓存在节点的内存中。并通过设备锁来同步不同节点 对文件的访问,保持 unix 文件共享语义。目前 gfs 实现了日志,节点失效可以快 速恢复。gfs 使用 scsi 设备锁来进行同步,目前很少设备实现这种设备锁。在没 有设备锁的情况下,gfs 也是通过唯一的锁服务器来进行同步,因此,锁服务器是 其性能的瓶颈。 1.2.4 lustre lustre1112是 cluster file systems, inc.正在开发中的一个机群文件系统。lustre 分别用不同的机制来处理文件数据和文件系统元数据。它提出了一些较好的思想, 包括:基于面向对象磁盘,元数据请求的批处理、面向网格的考虑(安全性:认证、 授权和加密) ,支持通过网络来对 lustre 进行管理和监控等。文件数据存储在面向 对象的磁盘 (object-base disk) 上, 用分布式的面向对象的存储服务器 (ost, object storage target)来负责真正的文件系统 i/o 和与存储设备的接口;用元数据服务器 (mds,metadata server)来存储和管理文件和文件系统的元数据。目前,lustre 是单一的元数据服务器,为了保证高可用性,在系统其它节点上运行一个复本 (replicated mds) 。lustre 打算将来实现多元数据服务器来提高元数据处理的性能 和可扩展性。 lustre 在设计上考虑了对网格环境的支持,一方面它考虑了文件系统的安全性 策略,包括认证、授权和文件内容加密三个方面;另一方面它考虑在管理与系统状 态监控方面与网格的结合, 其配置信息和状态信息采用 xml 格式, 提供通过 ldap 接口操纵配置信息,而且可以支持通过 snmp 来获取和修改这些信息。 1.2.5 pvfs(parallel virtual file system) pvfs13(parallel virtual file system)是 clemson 大学开发的开放源码的并行 5 文件系统, 是一种基于消息传递的机群文件系统。 它应用于 beowulf 类型的 linux 机群系统上,主要面向大规模科学计算类型的应用。 pvfs 针对 nfs 单一服务器结构不可扩展进行改进,采用多 io 服务器,单一 元数据服务器结构。一个元数据服务器来维护一个全局的名字空间,而文件存储于 多个 io 服务器上(striping) 。文件块与 io 服务器上子文件的映射由 striping 策略 决定,通过计算即可知道,因此提高了 i/o 性能。pvfs 由若干客户节点,多个 io 服务器和一个元数据服务器构成。 pvfs 支持 64 位文件,没有客户端缓存,提供 三种接口:传统 unix 文件系统接口(通过 os 系统调用和命令) ,用户级并行文件 系统库(libpvfs.a)接口和 mpi-io 接口。pvfs 没有容错性,无论客户节点失效, 还是 io 服务器或元数据服务器失效都会使得 pvfs 不可用。 pvfs 没有实现 posix 文件锁,使得依赖文件锁的应用只得采用其它方式来同步。pvfs 的可扩展性较差, 所有节点必须在同一子网内。单一的元数据服务器是其性能瓶颈,当目录中文件个 数为 50,000 个时,便非常慢(响应时间为几分钟) 。稳定性有问题,当应用规模很 大时(128 个节点操作 1000 个 2mb 的文件) ,io 服务器和元数据服务器都会崩溃。 目前存在研制中的 pvfs v2,主要的改进在于提供文件复制和镜像以增强容错能 力, 采用多元数据服务器, 支持多种网络协议 (已支持 tcp/ip 和 myricom 的 gm) , 支持多种数据分布方式,可动态接入不同的数据分布机制等。 1.3 现有系统的问题分析现有系统的问题分析 总结以上多个系统的特征,本文对现有的几个典型系统进行了比较分析,发现 现有系统存在如下一些问题: 第一,多数网络文件系统无统一的逻辑视图,这极大的妨碍了服务器端数据的管 理和用户之间的数据共享。 文件命名空间用于帮助用户如何发现一个存在于特定位置 的数据文件。 名字空间通常有两种实现方法: 一是建立一个完全全局统一的名字空间, 所有的用户可以看到系统中的所有数据文件;二是多名字空间系统,不同的用户或不 同位置使用的名字空间不同,可以访问数据资源也有所不同。本系统的名字空间结合 了单一名字空间和多名字空间的特点,建立了一个全局统一的文件命名空间,对所有 6 的用户提供相同的文件命名、定位、和访问机制。同时针对不同的用户的兴趣,为他 们提供不同的数据视图。 第二、在数据和元数据的容错方面考虑不足,多数通过硬件级的设备冗余来实现 数据和元数据的备份,对失效后如何恢复,如何保证系统仍然正常工作等问题则有所 忽略。像pvfs 目前的两个版本都没有任何的容错策略;对于没有任何容错措施的分 布式系统而言,随着节点数的增加,系统的整体可靠性下降,系统的维护和管理难度 增加。另外,从用户需求的角度来看,中低端用户一方面具备构建集群的硬件条件, 希望利用高可用性的网络文件系统进行存储, 另一方面又不愿花费大量的硬件成本来 换取系统的容错。因此,实现网络文件系统的软件级容错可以为用户提供一种廉价的 解决方案。 第三、只实现静态扩展,不支持节点在线动态扩展。多数系统在新增数据节点 或元数据节点时都需要先停止整个网络文件系统,重新修改系统的配置文件,然后 重新启动并行文件系统的各个 daemon 服务进程。这种繁琐而且复杂的过程使得系 统的可管理性降低,然而在实际维护过程中,增加一个新节点和更换某个已有节点 的情况并不少见,因此实现网络文件系统的在线动态扩展有助于提高系统的整体可 维护性、可管理性、可实用性。 第四、仅仅提供单一的数据存放策略,而且主要是针对并行 i/o 的科学计算, 较少考虑其它方面的应用,如 email 服务器、新闻服务器、web 服务器、视频服 务器等。 但根据文献1415结果来看, 不同应用服务器对文件系统的要求是不一样 的。email、新闻、web 服务器往往侧重于强调系统的小文件处理能力,视频服务 器则强调文件系统的容量和顺序读写带宽,而一些科学计算方面的应用程序侧重于 文件系统的并发读写性能,还有一些系统对系统的可用性,在线扩展能力有较高要 求,因此单一的数据存放策略往往并不能满足要求。 1.4 研究内容与组织研究内容与组织 1.4.1 本文的内容本文的内容 根据上述分析,本文提出了一种基于存储虚拟化技术的网络文件系统(gdss 7 based global network file system,g2nfs) ,g2nfs网络文件系统设计目标旨在提 供一种基于异构存储设备的、具有高可用性和动态可扩展性的网络文件系统,消除分 布在广域网上的信息孤岛,将它们统一起来管理,为外界提供服务,以实现对信息资 源的高效管理和有效共享。它采用分布式的元数据管理,提供节点的动态管理和容错 机制,能够自动屏蔽部分节点失效的故障,消除单一失效点,减小整个系统配置和管 理复杂性。与其它文件系统相比,g2nfs具有如下特点: (1) 具有全局统一的逻辑视图, 方便服务器端的数据管理和用户之间数据的共享; (2) 分布式的存储服务访问点(ssp)和元数据管理,提高元数据的访问速度; (3) 中小型文件合并传输及巨大型文件分片传输, 极大地提高了数据的传输速度; (4) 本系统提供了性能优良的容错机制; (5) 动态的资源扩展,添加和删除存储代理(sa)方便快捷。 1.4.2 本文的组织本文的组织 下面是各章节的内容: 第一章引入网络文件系统的概念,介绍国内外网络文件系统研究现状。同时也对 g2nfs做了一个简要的描述。 第二章讲述了g2nfs系统的结构及工作原理,对系统的每个模块做了简要的说 明,最后讨论了系统的技术特色。 第三章介绍g2nfs模型,并描述模型采用的几种关键技术如统一命名空间,数据 共享,副本管理,便于系统恢复的文件快照等技术。 第四章实现g2nfs,给出了一些重要的数据结构,描述了文件系统重要的操作, 针对不同大小的文件, 提供不同的传输机制, 对该系统的容错机制进一步完善和探讨。 第五章针对网络文件系统的特点,对系统进行测试,根据测试结果,对该系统进 行分析和评价。 第六章结束语及未来工作。最后是致谢和参考文献。 8 2 g2nfs 文件系统文件系统 g2nfs 是一个基于全局分布式存储系统2(global distributed storage system, gdss)的分布式网络文件系统,包括:全局范围内的数据共享与访问控制、全局 统一的文件名字空间、文件缓存机制、高性能数据传输技术,可挂载的 linux 内核 模块文件系统。它的特点是实现了对广域范围内孤立存储资源的统一管理和数据共 享,屏蔽了底层数据资源的分散性和异构性,为用户提供了统一逻辑视图,实现了 数据的透明访问,减少了系统的管理开销。 2.1 g2nfs 体系结构体系结构 g2nfs 主要包括存储服务提供者 sspr(storage service provider)、客户端、存储 代理 sa(storage agent), 其中 sspr 又可细分为存储服务接入点 ssp (storage service point) 、命名服务器 ns(name server)、资源管理器 rm(resource manager)和缓存管 理器 cm(cache manager),系统结构如图 2.1 所示。 存储服务提供者1 ssp client sasa 存储代理 storage service providerssp nssaname servicestorage agent rmresource manager 控制通道 nsrm . cm 存储服务提供者2 ssp sasa 存储代理 nsrm . cm . db . 读写数据库缓存数据通道数据通道 图 2.1 g2nfs 系统结构图 9 基于图 2.1 显示的系统结构,对 g2nfs 的基本工作流程描述如下: 用户向 ssp 发出请求; 用户通过认证后,ssp 将用户请求交给 ns 解析,通过 ns 返回数据的逻辑 元数据信息; 当需要传输数据的时候,ssp 将请求再传递给 rm,进一步获取物理元数据 或者进行资源申请和分配; ssp将存储任务发给能够满足用户请求的最合适的 sa 或 cm,并将相关服 务信息反馈给用户; 用户与 sa/cm 建立连接,在 sa/cm 的控制下进行直接数据传输。 系统的层次结构如图 2.2 所示。 文件访问接口/协议 访问调度/负载平衡 协议解析层 副本管理信息组织与管理 访问控制 服务层 系统管理 数据资源整合 数据共享管理 传输层 存储资源层 存储资源管理层 资源注册资源维护 数据资源管理层 资源注册资源维护 图 2.2 g2nfs 系统层次结构 存储资源层实现现有存储设备对各种操作系统的支持。传输层实现具有自适应 传输特性的数据传输服务,为系统提供高速可靠的数据传输服务,系统根据传输文 件的特性, 将它们放置到不同的传输任务队列中。 对大文件采用分片并行传输方式, 对小文件使用 socket channel 技术,用一个持久连接传输多个文件,从而提高文件 传输效率。 资源管理层实现对存储资源及数据资源的管理,如资源注册、维护等。该层将 10 各种资源重新组织并生成相应的元数据信息。元数据信息能够反映资源的变化情 况,通过对元数据信息的维护实现对存储/数据资源的监控与管理。 服务层是系统的核心层,它提供面向广域的存储服务。该层的功能主要由存储 服务点 ssp 提供。存储代理(storage agent)屏蔽了底层的物理存储资源,使用存 储和数据资源的用户不必关心底层具体的存储设备。同时,该层通过缓存副本管理 器为用户提供了缺省的缓存副本一致性维护策略,采用开销较小的副本写作废方 式。该层还实现对用户访问的控制,采用角色分配来实现对数据访问及数据共享的 权限控制。该层将解析来自用户的访问命令,通过操作元数据信息及资源信息得到 用户需要的信息并将其按照协议定义的格式返回给用户。 调度层实现访问接入的调度,使得用户访问能够均匀地分布在整个虚拟存储系 统的各个服务器上,从而达到用户访问的负载平衡。 接口/管理层提供统一的存储/数据资源访问操作接口,接口采用文件访问接口 和 gui 访问接口两种形式。文件访问接口将为用户提供一套简洁高效的文件访问 api,通过使用这些 api,用户能方便地访问虚拟存储系统。同时系统也支持标准 ftp 协议,用户可以使用标准 ftp 协议与本系统交互。 g2nfs 从 3 个方面保证了虚拟化存储方式:首先,ssp 的用户接口为存储用 户提供了单一存储映像,对存储用户而言,ssp 将广域存储资源虚拟为一个逻辑存 储池供其方便使用;其次,sa 对广域存储服务屏蔽了本地存储系统的具体特性, 保证了虚拟化存储能够适应异构存储环境;最后,ns 保证了逻辑存储池到具体存 储系统的对应关系,提供了虚拟化存储系统的内部实现机制。 2.1.1 存储服务提供者存储服务提供者 存储服务接入器存储服务接入器 存储服务接入器 ssp 是整个系统的入口,也是系统的枢纽,对系统所有模块 的访问都通过 ssp。它主要提供 ftp 接口、cm 接口、rm 接口和 ns 接口。在整 个系统中 ssp 不是唯一的,系统可以根据需要动态增加 ssp,同时 ssp 实现了传统 方案中命名服务器的部分功能,减轻了 ns 的负载,提高了系统的可扩展性。 11 ssp 的提出是 g2nfs 的一个特色。在以往的系统中,ssp 的功能包容在元数 据服务器或者资源管理器里面,但是当数以万计的用户连接到系统上来的时候,处 理这些连接将消耗大量的系统资源,同时,一个服务器的最大连接数目也受到系统 本身的限制;另一方面元数据服务器和资源管理器本身也是系统的瓶颈之一。所以 为了提高系统的容量,减轻存储元数据服务器和资源管理器的负担,这里设计了与 元数据服务器独立的存储服务提供者。为了提高系统的性能,在 ssp 中缓存了热点 元数据,这样减少了用户对元数据库的访问,提高了系统的效率。ssp 的结构如图 2.3 所示。 cm 接口 元数据管理 通用客户端接口 分片管理 agent 接口 用户管理 缓存一致性管理 特定客户端接口 传输控制 访问控 制 ssp接口 搜索引擎 ns接 口 rm接口 图 2.3 ssp 的结构 同时针对广域网中分布式存储的特点,ssp 通过提供分片管理、数据传输、访 问控制等功能实现了普通 ftp 的访问接口,这样,用户通过普通 ftp 就可以访问 g2nfs,极大地方便了用户的使用。 元数据服务器元数据服务器 元数据服务器 ns 负责系统的元数据管理,主要包括元数据操作接口、元数据 容错系统、元数据搜索系统。为了提供良好的可扩展性、快速定位和搜索性能,必 须在元数据服务器的结构上做一定的突破16 【17】 【18】 。g2nfs 充分借鉴了 linux 虚 拟服务器(linux virtual server,lvs)的思路19 【20】 【21】 ,采用了目录服务器集群来 实现整个目录服务器。lvs 的示意图如图 2.4 所示。 12 ds 元数据调度器 ssp 操作接口搜索引擎 ds ds 图 2.4 lvs 示意图 图 2.5 单个域中元数据服务器系统架构 图 2.5 给出了系统单个域中的 ns 结构,元数据服务器的后台是基于轻量级目 录访问协议 (light directory access protocol, ldap) 的目录服务器 (directory server, ds) ,它存储用户文件的逻辑目录信息。用户的元数据信息被分配到多个 ds 上, 为了能够将这些分散在多个 ds 上的信息组织成一个统一的逻辑视图,元数据调度 器负责将用户的请求准确地定位到对应的 ds 上。 资源管理器资源管理器 资源管理器 rm22的主要功能是负责存储资源的管理。资源管理模块的功能包 括逻辑元数据和物理元数据的映射、存储资源的调度与申请等。资源管理器的结构 图如图 2.6 所示。 存储代理 信息收集、存储资源分配、资源回收 资源管理模块 存储代理 普通ftp ssp操作接口 普通ftp 图 2.6 资源管理器的结构 13 缓存管理器缓存管理器 缓存管理器 cm 实现了文件缓存副本模型23,用于判定文件是否为热点文件, 如何为该文件创建文件缓存,当存储空间不够时如何删除较陈旧的缓存文件,如何 进行缓存更新等。文件缓存技术减少了访问延迟和带宽消耗。通过创建同一数据的 多个副本,有助于改善负载平衡和可靠性。尤其是文件缓存机制,即自动的选择存 储点进行副本创建、删除和管理,并根据用户的特征而自动变化缓存策略,给用户 提供了更高的灵活性。在后续章节中会给出其详细描述。 2.1.2 存储代理存储代理 存储代理24用于屏蔽各种底层的存储系统,包括不同的操作系统(windows、 linux 等) 、 不同的体系结构 (ia32、 ia64 等) 以及不同的文件系统 (fat16、 fat32、 ntfs、ext2、ext3 等) ,它的结构图如图 2.7 所示。 ftp 协议扩展 传输控制 ssp接口 普通 ftp 服务器 标准ftp协议 rm接口 资资 源 注 册 器 信 息 采 集 器 垃 圾 回 收 器 客户端接口 源 分 配 器 图 2.7 存储代理的结构图 sa 对客户端、ssp 和 rm 提供了访问接口。对客户端提供的接口主要用于提 供数据访问以及文件访问;对 ssp 的接口主要针对通用客户端提供数据访问;对 rm 提供的接口主要用于提供资源注册、存储代理的信息采集和垃圾回收(包括文 件的删除) 。同时,它提供了对 ftp 协议的扩展,针对广域网的传输实现了自适应 传输,大大提高了系统的数据传输效率。 14 2.2 linux 文件系统文件系统 2.2.1 linux 操作系统概述操作系统概述 linux25最早是芬兰人 linus torvalds 在 1991 年开始设计开发的。linux 作为 一个典型的现代网络型操作系统,其中所涉及到的技术实现涵盖了操作系统技术的 最新成果。它是一个多用户、多任务的操作系统,支持分时处理和软实时处理,并 带有微内核特征如模块挂载/卸载机制),具有很好的定制特性。与普通单核系统 不同的是,linux 内核程序可以方便地以模块的形式设置,并在系统运行期间直接 装载或卸载。 2.2.2 linux 文件系统中的基本概念文件系统中的基本概念 inode 结点结点 在 linux 文件系统中,每一个文件都用一个称为 inode 结点(inode)的数据结构来 描述.每个 inode 结点的文件描述信息包括:文件类型、访问权限、拥有者、时间戳、 尺寸、 数据块指针等。 当进程发出一个文件操作 (如读操作) 时, 核心代码利用 inode 将文件操作的位置转换为数据块号,利用这个数据块号作为索引查找块地址表,得 到数据块在物理设备上的地址,最后根据物理地址请求设备驱动程序完成文件操 作。 目录目录 linux 的目录以树的形式组织,每一个目录可以包含文件和子目录。目录作为 一种特殊的文件实现,实际上,目录是一种存储目录项的文件,每一个目录项包括 一个 inode 结点号和文件名,当进程给定一个的路径名是,和行代码根据文件名在 指定的目录查找相应的 inode 结点号后,对应的 inode 结点就被读入内存,后续的 文件操作就依据 inode 结点的内容来进行。 15 链接链接 为了实现文件的共享,多个文件名可以链接到同一个 inode 结点上,这就是文 件的链接。inode 结点中有一个专门的计数器,用于保存链接文件名的数目。当要 共享某个文件时,只需简单地创建一个目录项,将目录项中的 inode 结点号设置为 要链接文件的 inode 结点号,并将 inode 结点的链接技术加一。删除一个链接时, 核心代码将相应的inode结点的链接计数减一。 只有当计数器变为0时, 才回收inode 结点并真正地删除相应的文件。 这种链接成为硬链接,只能用于单文件系统,也就是说不能实现跨文件系统的 硬链接。硬链接只能用于文件的共享,不能用于目录的共享。另一种链接(symbolic link )可以避免上述问题。符号链接是一种只有文件名的文件,并且不指向 inode 结点,因此可以实现跨文件系统的文件共享。 2.2.3 linux 虚拟文件系统虚拟文件系统 虚拟文件系统(虚拟文件系统(vfs)原理)原理 文件系统是操作系统用于明确磁盘或分区上文件的方法和数据结构,即在磁盘 上组织文件的方法。 文件系统中的文件包含了数据的集合:一个文件系统不仅保存它 包括的文件的数据,也保存文件系统的结构。它保存了 linux 用户和进程看到的所 有信息,例如文件、目录、软链接、文件保护信息等等。另外,它必须安全地保存 这些信息,操作系统的基本一致性依赖于它的文件系统。没有人可以使用一个随机 丢失数据和文件的操作系统。 linux支持多个不同的文件系统是通过vfs实现的,不同的物理文件系统具有不 同的组织结构和不同的处理方式。为了能够处理各种不同的物理文件系统,操作系统 必须把它们所具有的特性进行抽象,以建立一个面向各种物理文件系统的转换机制, 并通过这个机制把各种不同的物理文件系统转换为一个具有统一共性的虚拟文件系 统。vfs实际上向linux内核和系统中运行的进程提供了一个处理各种物理文件系统 的公共接口, 使得不同的物理文件看起来都是相同的。 vfs不是一种物理的文件系统, 而是一套转换机制, 它在系统启动时建立, 在系统关闭时消失, 并仅存在于内存空间, 16 所以,vfs提供的接口中包含向各种物理文件系统转换的一系列数据结构,如vfs的 超级块、 vfs的inode等, 同时还包含对不同物理文件系统进行处理的各种操作函数的 转换入口,为用户提供了一个统一的、抽象的、虚拟的文件系统界面,并且能够提供 一个统一的应用程序接口26。 linux 内核的虚拟文件系统27与它的真实文件系统之间的关系如图 2.8 所示。 虚 拟文件系统要管理在任何时间装配的所有不同的文件系统,所以它要维护一些描述 整个虚拟文件系统和真实被装备文件系统的数据结构。与 ext3 文件系统的 inode 结点一样,vfs 的 inode 结点也用于描述系统中的文件、目录以及虚拟文件系统的 内容和拓扑结构。 vfs ext3munix inode cache g2nfs客户端 内核模块 buffer cache directory cache disk driver g2nfs服务器 端 图 2.8 文件系统的逻辑结构图 在每个文件系统初始化时,它向 vfs 进行注册。这个过程发生在系统启动操 作系统自我初始化的过程中,真实的文件系统或者是安装在内核中的,或者是作为 内核的可载入模块。文件系统模块只有在系统需要它们时才会被载入。每当包含文 件系统的块设备被装配时(包括跟文件系统),vfs 都会读入它的超级块。各种类 型文件系统的超级块读例程必须要确定出整个文件系统的拓扑结构,并把这些信息 映射到 vfs 超级块数据结构。vfs 文件系统包含了系统中所有装配文件系统的列 表和它们的 vfs 超级块信息。每个 vfs 超级块包含执行某些特殊功能的例程的信 息和指向它们的指针,且包含一个指向文件系统第一个 vfs inode 结点的指针。对 17 根文件系统来说,这个指针指向的 inode 结点是用来表示根目录的。在系统进程访 问目录和文件时,系统会调用搜索系统中 vfs inode 结点的进程。由于系统中的每 个文件和目录都是由一个 vfs inode 结点表示的,所以有一些 vfs inode 结点会被 经常访问。这些经常被访问的 inode 结点被记录在缓存中以加速访问过程。如果要 访问的 inode 结点不在 inode 结点缓存中,那么系统会调用文件系统的专门例程来 读入相应的 inode 结点。 2.3 小结小结 本章概述了 g2nfs 的整体结构和工作原理,g2nfs 是一个分布式网络文件系 统,实现了对广域范围内孤立存储资源的统一管理和数据共享,屏蔽了底层数据资 源的分散性和异构性,为用户提供了统一逻辑视图。 接着分别介绍了系统的各个主要模块。其中存储服务提供者是整个系统的入口 和枢纽,它实现了数据共享和访问控制。全局命名服务器负责系统的元数据管理, 主要包括元数据操作接口、元数据容错系统、元数据搜索系统。资源管理器负责资 源的管理,资源管理模块的功能包括逻辑元数据和物理元数据的映射、资源的调度 与申请等。文件缓存副本管理模块包括缓存副本的创建、缓存副本的选择、缓存空 间的回收等; 存储代理屏蔽了存储资源的多样性, 为系统提供统一的存储访问接口, 同时提供了文件操作方式和扩展的 ftp 操作方式, 另外它对文件复制管理操作提供 高效传输服务。 介绍了 linux 操作系统的特点,接着详细分析了 linux 文件系统的建立、撤销过 程,包括文件系统的注册和注销,文件系统的安装和卸载过程。在整个文件系统的 建立过程中,利用了文件系统类型链表和文件系统安装链表两个链表型数据结构。 对文件系统的建立和撤消过程的研究。 18 3 g2nfs 的关键技术研究的关键技术研究 3.1 统一的逻辑视图统一的逻辑视图 3.1.1 全局范围的数据共享全局范围的数据共享 g2nfs 网络文件系统的一个首要目的是消除分布在广域范围内的多个信息孤 岛让数据能够在更大范围内更好的实现共享28, 从而让用户能够尽可能的找到他想 得到的数据。数据资源的共享要实现两个目标:a.让不同的用户之间可以通过系统传 递想要共享的私人数据文件,即实现数据在两个用户之间的交流共享;b.提供统一 数据交流区域能够让大量的用户同时访问该区域中的数据文件。即实现数据同时在 多个用户之间交流共享。由数据共享所引申出来的一个问题是数据的访问控制。不 同的用户对共享的数据具有不同的访问权限,当用户进行数据访问时必须把他限制 在他所能操作的数据和所能实施的权限上。 本系统的物理存储资源以域的形式来划分。每个域是一个自治的资源实体,可 以设定自己的资源使用策略和对外服务提供策略。系统负责把这些物理资源实体组 织和管理起来对终端用户提供统一的存储服务。系统的资源使用者称之为终端用 户。现实世界中的实体可以根据自己的资源需要和不同域所能提供的资源服务类 型,来选定一个域进行注册。然后他就可以使用本系统的数据资源和存储资源。根 据终端用户使用资源的特点,系统将其分为两类。 1) 个人用户。这一类用户的特点是:a.申请者通常为个人;b.向系统申请资源 的数据量对较小;c.申请资源的目的在于在网络上存储自己的私人文件,以便让自 己在各种不同的环境下都能方便使用,而不需要随身携带; d.这些数据通常只是给 自己使用,只会有少数的数据在少数的时候共享给其他用户使用;e.即使存在数据 的共享,也往往局限在自己的朋友或当前工作上有来往的系统用户之间;f.访问控 制只需针对少数需要共享的数据。 2) 组用户。这一类用户的特点是:a.申请者通常为组织机构团体;b.向系统申 19 请资源的数据量相对个人用户来说要大得多;c.个人用户可以申请加入组织,在被 组织类型用户授权后可以根据授权对组织内的数据进行访问;4)申请资源的主要目 的在于在网络上存储组织内部的数据文件,并让这些数据文件在组织内部或有合作 关系的其他组织和个人之间进行共享交流; d.由于资源使用的主要目的是共享交流, 所以数据在用户之间的共享比较频繁;e. 数据的访问控制非常重要,且需要对所有 的数据实施访问控制。 系统的个人用户,组用户和域的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论