精华内容
下载资源
问答
  • 并行文件系统

    千次阅读 2012-09-26 13:19:59
    常见的并行文件系统 l PVFS,开源 l Lustre ,开源 l Parastor,曙光商业软件 l GPFS, IBM的产品,现已开源 l GFS, Red Hat商业软件 l PFS,Intel商业软件 l GoogleFS,google商业软件,主要...

    常见的并行文件系统

    l PVFS,开源

    l Lustre ,开源

    l Parastor,曙光商业软件

    l GPFS, IBM的产品,现已开源

    l GFS, Red Hat商业软件

    l PFS,Intel商业软件

    l GoogleFS,google商业软件,主要用于互联网应用

    l HDFS,Apache开源,基于java的支持

    l FastDFS,主要用于互联网应用

    l ……

    PVFS

    l       PVFS是开源的,于1998年公开,并且在GNU公共 版权可证下发布。它无需特殊的硬件设备和内核的改动,可以直接应用于廉价的Linux集群。PVFS目前为止有两个重要版本:PVFS1是早期的版本, 在运行时存在严重的单点故障问题,一旦管理服务器宕机,则整个系统都无法正常工作;而且,PVFS的程序开发者认为代码写得过于混乱,因而,他们整理并重 写了PVFS的源代码,并发布了PVFS2。在PVFS2中,不再单独设立管理服务器,而是各个运行IOD进程的节点都可以接管管理服务器功能,以此来改善系统的单点故障问题。

    l PVFS提供重要的4个功能:

    l 一致性的访问名字空间

    l 支持现存的系统访问方式

    l 数据分布在集群节点不同机器不同的硬盘上

    l 为应用程序提供高性能的数据访问方式 

    PVFS

    l PVFS使用了三种类型的节点:

    l 管理节点(mgr)

    l       运行元数据服务器,处理所有的文件元数据(元数据是描述文件信息的文件)

    l I/O节点(iod)

    l       运行I/O服务器,存储文件系统的文件数据,负责数据的存储和检索

    l 计算节点

    l      处理应用访问,利用libpvfs这一客户端的I/O库,从底层访问PVFS服务器

    l      I/O节点、计算节点是一个集群的节点可以提供其中的一种功能,也可以同时提供其中的两种或者全部三种功能


    PVFS运行机理

    l PVFS的运行机理

    l 当打开、关闭、创建或删除一个文件时,计算节点上的一个应用通过libpvfs直接与元数据服务器通信

    l 在管理节点定位到一个文件之后,它向这个应用返回文件的位置,然后使用libpvfs直接联系相应的I/O节点进行读写操作,不必与元数据服务器通信,从而大大提高了访问效率 

    PVFS

    l PVFS存在的问题: 

    l 集中的元数据管理成为整个系统的瓶颈,可扩展性受到一定限制。 

    l 系统容错性有待提高:数据没有采取相应的容错机制,并且没有文件锁,其可扩展性较差,应用规模很大时容易导致服务器崩溃。

    l 系统可扩展性有待加强:PVFS使用静态配置,不具备动态扩展性,如果要扩展一个I/O节点,系统必须停止服务,并且不能做到空间的合理利用。

    l PVFS目前还不是由商业公司最终产品化的商品,而是基于GPL开放授权的一种开放技术。虽然免费获取该技术使整体系统成本进一步降低,但由于没有商 业公司作为发布方,该技术的后续升级维护等一系列服务,都难以得到保证。

    Lustre

          Lustre 是HP,Intel,Cluster File System 公司联合美国能源部开发的Linux集群并行文件系统。它来源于卡耐基梅隆大学的NASD 项目研究工作,已经在大学、实验室和超级计算研究中心等得到广泛应用。

          Sun称Lustre是“目前全球具有最佳可扩展性的并行文件系统”,现在全球十大超级计算机中的六个以及40%的TOP100超级计算机都采用了这个系统。

    Lustre

    Lustre

    l 元数据存储与管理

    l  MDS负责管理元数据,提供一个全局的命名空间,Client可以通过MDS读取到保存于MDT之上的元数据。在Lustre中MDS可以有2个,采用了Active-Standby的容错机制,当其中一个MDS不能正常工作时,另外一个后备MDS可以启动服务。MDT只能有1个,不同MDS之间共享访问同一个MDT。

    l 文件数据存储与管理

    l  OSS负载提供I/O服务,接受并服务来自网络的请求。通过OSS,可以访问到保存在OST上的文件数据。一个OSS对应2到8个OST。OST上的文件数据是以分条的形式保存的,文件的分条可以在一个OSS之中,也可以保存在多个OSS中。Lustre的特色之一是其数据是基于对象的职能存储的,跟传统的基于块的存储方式有所不同。 

    l Lustre系统访问入口

    l  Lustre通过Client端来访问系统,Client为挂载了Lustre文件系统的任意节点。Client提供了Linux下VFS(虚拟文件系统)与Lustre系统之间的接口,通过Client,用户可访问操作Lustre系统中的文件。 

    Lustre访问机制

    Client

    目录操作,文件开打/关闭,元数据,并发操作

    文件内容,IO及文件锁

    MDS

    OSS

    恢复,文件状态和文件创建

    Lustre

    l 目前Lustre文件系统最多可以支持100000个Client,1000个OSS 和2个MDS节点。

    l Lustre系统中可以同时运行1~3个功能模块。不过Lustre一般运行于高性能计算机系统之上,为了提高Lustre文件系统的性能,通常MDS、OSS和Client是分开运行在Lustre不同的节点之上的。

    l 实验与应用已经证明,Lustre文件系统的性能和可扩展性都不错;还拥有基于对象的智能化存储、安全的认证机制、比较完善的容错机制等优点,而且Lustre还实现了文件锁功能;

    l 相对于PVFS,Lustre的可用性和扩展性以及性能上都有较大的提高。然而,Lustre需要特殊设备的支持,并且Lustre目前还没实现MDS的集群管理,虽然相比PVFS的单MDS,Lustre的双MDS在可用性上还是提高不少,但是当系统达到一定的规模之后,MDS还是很有可能成为Lustre系统中的瓶颈


    展开全文
  • Parallel File System 并行文件系统

    千次阅读 2017-11-25 13:20:50
    storage stackHPC I O Stack Cloud Storage Stack ...并行文件系统GPFS PVFS PanFS Lustre文件系统 MPI-IOstorage stack关于存储栈的基础:存储栈包含了完整的服务器、网络部分和服务器虚拟化部分。 http://searchst

    转载请注明出处:http://blog.csdn.net/c602273091/article/details/78631295

    storage stack

    关于存储栈的基础:存储栈包含了完整的服务器、网络部分和服务器虚拟化部分。

    http://searchstorage.techtarget.com/definition/storage-stack

    HPC I O Stack

    目标:相比于直接使用并行文件系统,提高性能和使用效率。同时可以减少运用端需要进行的优化。

    –》运用
    –》高层次 I/O库:将应用的抽象映射到存储的抽象;使数据提供更加方便。HDF5,netCDF~
    –》中间件(MPI)组织多进程的访问(MPI-IO)
    –》I/O重定向:应用任务和存储系统,并且集合unaccordinated IO
    –》并行文件系统:维护逻辑地址空间,并提供高效的数据访问。
    –》I/O 硬件部分

    本次的重点就在于并行文件系统~

    Cloud Storage Stack

    云存储栈:

    –》云应用:基于服务的
    –》负载均衡:从前端进行负载均衡
    –》中间件:数据流的编程模型改进:Map Reduce
    –》对象存储:在数据中心进行chunk复制。
    –》数据中心:许多服务器和磁盘,共有的或者是私有的

    那么接下来主要对文件系统部分进行详细描述。

    Storage System Models

    本地文件系统/并行/分布式文件系统

    本地文件系统:将用户文件映射到数据/属性。为的是进行单个设备的优化,比如有:FFS,LFS,UFS,Ext2/3/4,ZFS,NTFS。。。

    http://blog.csdn.net/liuaigui/article/details/6342903

    并行文件系统:能够支持多个线程同时访问,将多个文件和目录同时映射到许多设备。并行文件系统将系统展现成单个,逻辑地址单元;将一个文件进行stripe(分割)到不同的磁盘;有比较好的容错性。在存储本地,需要考虑的问题有:块的分配;元数据管理;数据可靠性以及错误校正。之外,还有缓存一致性;high availability;弹性存储;性能。

    分布式文件系统:数据虚拟化和负载均衡。coordinate(锁和同步):在用户中共享文件;在服务器中共享物理存储介质。错误容忍:磁盘的错误;断电;软件错误;网络错误;用户错误。

    NAS,SAN,对象存储

    为了实现以上功能,进行了如下的操作:
    NFS(AFS,通过简单的用户/服务器协议将文件系统export出来);集群NAS(解决扩容问题,提高容错性);SAN FS(export文件系统并且增加并发协议);Object FS(通过抽象数据容器重新思考协议)。

    NAS全称是Network attached storage;SAN:Storage Area Network。关于NAS/SAN的区别在于:NAS是文件级别的存储访问;SAN是基于块的存储访问。SAN更方便于扩容;NAS:其主要特征是把存储设备、网络接口和以太网技术集成在一起,直接通过以太网网络存取数据。能够快速实现部门级存储容量需求与文件传输需求。NAS网络存储更具有独立性与良好的兼容性。不但拥有自己的操作系统,同时也无需改造即可用于混合Unix/Windows NT局域网内,与各种操作系统兼容,同时具有很好的灵活性。

    http://tech.sina.com.cn/it/2017-05-30/doc-ifyfqqyh9017240.shtml

    集群NAS:重定向。将请求进行归档到对应的存储介质(远程存储)。这里本地存储与用户之前采用了无状态的模式,在此模式下,避免了锁和缓存协议。使得本地存储系统负载大大降低。

    集群NAS:集群后端。在远程存储系统中采用了缓存机制,以及采用striping来提高带宽,以及RAID来提供容错性能。

    SAN共享磁盘文件系统:将本地文件系统扩展到整个共享磁盘,需要对元数据和数据访问进行加锁协议;对称性:在每个文件的客户端里面有一个元数据服务;非对称性:需要对应到专门的元数据服务器上。工业界上的用处比如:GFS(Redhat),MPFSi(EMC),VMFS(Vmware),GPFS(IBM)等等。

    https://link.springer.com/chapter/10.1007%2F978-1-4471-3042-0_11

    http://www.sansky.net/article/2007-05-12-san-network-storage-sharing-software-place.html

    coordination protocol:协调协议。用来处理锁同步等等情况。在NFSv2/3的文件里面是没有锁的协议的,锁的协议是由NLM协议来。元数据服务器(所有文件的元数据都在一个服务器里面,只能在里面进行修改,在更新后会把layout发给客户端);分布式锁管理器(DLM):谁使用某个块就就拥有它的锁,别的想使用的客户会被阻塞。针对一些特别的情况还有锁协议,比如缓存一致性;字节范围,数据范围的锁。

    在DLM这里需要进一步说明,一般在共享磁盘数据的时候就会有这个分布式锁管理器。对共享数据中的inode,allocation info,block table等等加锁。如果当有bad client的时候,就会造成巨大的破坏。

    基于对象的存储集群系统:(OSD,object storage devices)核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。对象存储同兼具SAN高速直接访问磁盘特点及NAS的分布式共享特点。

    http://www.chinastor.com/a/jishu/OSD.html

    所以,在网络存储方面,SAN,NAS,OSD三种,当然DAS这里没说。可以看出OSD是最佳的选择,可扩展性和性能上都是SAN和NAS的优点的结合。在网络存储系统中,要考虑数据一致性,缓存等等问题,所以才会有coordination协议。

    并行文件系统

    并行文件系统产品中,GPFS,PVFS, PanFs, Lustre是比较常见的。它们都采用了类似于OSD的存储集群管理,但是在元数据管理,容错机制,特征,“turn-key”布置等方面差别很大。

    GPFS

    给存储节点提供了基于块的访问,使用DLM进行协调;通过SAN存储网络进行数据交互。

    http://docs.linuxtone.org/ebooks/autOps/GPFS%BD%E9%C9%DC.pdf

    PVFS

    用户管理元数据,没有元数据缓存,便于管理;类似于OSD的API进行数据访问;命名空间一致性;缺乏容错机制;单一管理节点,管理节点容易成为系统瓶颈。主要是在HPC的应用。

    参考:

    http://book.51cto.com/art/201004/196348.htm
    http://tech.watchstor.com/storage-systems-118220.htm

    PanFS

    CMU NASD组研发,正好是我的老师研发的。整个系统提供了基于Obejct的RAID的容错机制。支持原生的Linux文件接口,在硬件部分还集成了电源管理/UPS。整个存储集群分为两类节点:Storage node 和 Manage Node,其比例一般是10:1, 该比例是可以设置。存储节点实现了对象存储。管理节点由四部分组成:PanFS实现了分布式的元数据管理。 SysMgr 通过实现了Paxos选举算法来提供了高可用的集群管理,管理所有的节点。同时提供了PanFS提供了NFS/CIFS 导出接口。PanFS的体系结构也是通常的三部分, 数据服务器,元数据服务器和客户端三部分。 数据服务器对应的StorageNode,元数据服务器对应的是Manage node 里面PanFS,在Manage Node 里提供了SysMgr的管理节点。首先看一下对象存储(Object Storage),所谓对象,就是数据(data)和属性(attributes)的容器. 对象提供两层命名空间(partition Id / Object ID), 对象的接口提供了基本的对象操作:如创建/删除对象,基于byte的读写对象。存储节点用FreeBSD操作系统,使用OSDFS这个自己写的特殊的本地文件系统。数据是通过RAID1或者RAID5来实现容错。小文件用mirror,大文件用strip后的RAID5文件的数据通过在多个对象上strip来实现冗余和高带宽。文件的元数据是通过对象的属性来保存。整个文件系统的元数据是保存在对象的属性中的。SysMgr用来管理整个机器的配置,错误检测。其高可用是通过Client-driven, per-file RAID 客户端实现基于文件的RAID。

    参考:

    http://blog.csdn.net/changtao381/article/details/8716945

    这种系统比较适合HPC的应用。

    Lustre文件系统

    在PanFS的基础上进行修改,更适合RPC网络协议的用户。

    从ClusterFS->SUN->Oracle

    以上的设计可以总结如下图:
    这里写图片描述

    MPI-IO

    应用使用适当的模型在它们的领域,I/O系统使用简单的数据模型。基于树的层次化容器;文件:比特流;目录:别的容器的集合。

    MPI-IO是专门针对多线程的IO。数据模型和Posix一样,文件都是比特流表示。但是这个IO会进行IO汇集,非连续IO的操作(不是同一个文件),非阻塞IO,针对更底层的设计。因为大多数的IO访问是对多个文件的随机访问,这样直接运行的话,效率底下。所以讲非连续的IO变成连续的IO就显得很有意义。这样可以大大提高带宽。连续的含义一个是指在进程中的文件的连续,另外一个是存储物理空间块之间的连续。所以我们最想要的就是两个同时都是连续的,所以这里会对访问顺序进行一定的调整。有ROMIO、MPI-IO/GPFS IBM,NEC的MPI。

    参考链接:

    ROMIO MPI-IO:http://www.mcs.anl.gov/romio/

    POSIX I/O Extensions: http://www.opengroup.org/platform/hecewg/

    LLNL I/O tests (IOR, fdtree, mdtest): http://www.llnl.gov/icc/lc/siop/downloads/download.html

    Parallel I/O Benchmarking Consortium (noncontig, mpi-tile-io, mpi-md-test): http://www.mcs.anl.gov/pio-benchmark/

    FLASH I/O benchmark: http://www.mcs.anl.gov/pio-benchmark/ http://flash.uchicago.edu/~jbgallag/io_bench/ (original version)

    b_eff_io test: http://www.hlrs.de/organization/par/services/models/mpi/b_eff_io/

    mpiBLAST: http://www.mpiblast.org

    HPC Challenge: http://icl.cs.utk.edu/hpcc/)

    SPEC HPC2002: http://www.spec.org/hpc2002/

    NAS Parallel Benchmarks: http://www.nas.nasa.gov/Resources/Software/npb.html

    为什么讲文件系统没有提及GFS和HDFS?下节再讲。

    展开全文
  • 并行文件系统近期的一些研究

    千次阅读 2016-08-05 14:38:34
    近期对并行文件系统做一些一些研究,主要阅读了GPFS、ceph论文,同时查找了一些行业使用并行文件系统的应用场景。总结如下: 1 并行文件在性能方面主要优势是通过“条带”来提高传输带宽,而相反随机小IO效率低下。...

    作者:朱赛凡



    近期对并行文件系统做一些一些研究,主要阅读了GPFS、ceph论文,同时查找了一些行业使用并行文件系统的应用场景。总结如下:

    1 并行文件在性能方面主要优势是通过“条带”来提高传输带宽,而相反随机小IO效率低下。

    2 并行文件系统更多用在高性能计算中,这样场景一般包括:(1) 多个分析进程并行读写一个非常大文件; (2) 单个进程能够以非常大的带宽读写一个文件;(3) 方便数据在进程间共享。

    3 共享磁盘架构的一个缺点是多个计算节点之间存在干扰导致高并发环境下效率低下。

    4 目前并行文件系统等主要通过副本(经典是3副本)机制来解决数据存储可靠性问题,基于纠删码的目前不多(HDFS目前好像是有一个hdfs-raid版本,采用纠删码技术来解决数据可靠性)。

    基于以上几点:并行文件系统不适合高并发环境,而更适合并行计算,也就是高性能计算环境。

     

    一 并行文件系统随机io效率低下

    1.1 理论分析

    并行文件系统中每个读写,客户端都要先向元数据服务器和锁服务器进行联系,读取元信息和取得相应锁,然后根据元信息和IO位置来计算和定位和哪个存储设备进行通讯。如果每次读的IO量大,此部分开销也许可以忽略。但对随机IO,每次读取IO量很小,此时此部分开销(通讯开销和计算开销)将非常大。

    例如ceph 读写流程(根据ceph论文):

    1) client打开一个file时,client与某个MDS通讯,MDS通过遍历树结构来将文件名翻译成file inode, 该file inode包含一个唯一的inode number,文件所有者,大小以及其他元信息

    2) 如果文件存在且被允许访问,则MDS将inode number,文件大小以及用于将文件数据映射为对象的分片策略等返回给客户端。同时MDS发布一个capacity给client,告知client允许的操作类型,目前capacity包括:read ,cacheread ,write ,write buffer.

    3) 客户端根据返回信息采用一定算法来计算该文件包含对象以及对象的位置。

    4 ) client在执行文件关闭操作时,将capacity返还给MDS,并更新文件的size.

     

        例如GPFS每次打开文件时都需要向锁管理服务器申请tocken

      

    1.2 实际测试数据

    在查找并行文件系统使用场景时,找到一篇文章。作者对并行文件系统性能进行测试。

     

    测试环境:

     

    小文件随机读测试结果:


          在安装了并行文件系统后,随机io性能从157下降到34

     

    作者结论:


    有人曾把全文检索放在GPFS上,经过他们优化,性能也只能到本地文件系统70%。

     

    1.3 其他一些相关资料

    1  GPFS 官方资料

         可以看出GPFS设计初衷是提高数据读写带宽。

     

     

    2 国外并行文件系统相关PPT

     

     (1) 首页

     

    (1) 并行文件系统不适合数据库或者邮件服务器

    二 并行文件系统适用场景和相应技术

    并行文件系统更多用在高性能计算中,这样场景一般包括:(1) 多个分析进程并行读写一个非常大文件的不同部分; (2) 单个进程能够以非常大的带宽读写一个文件;(3) 方便数据在进程间共享。

    在GPFS和Lustre中,为了满足多个进程可以并行读写一个文件的不同部分,这两个文件系统都提供了“范围锁”。例如:进程1 可以要求获取文件A的从[0~1kb]的锁,进程2可以要求获取文件A的[2kb~3Kb]的锁,这样通过这种细粒度锁来满足上述需求。

    与之相对应的是HDFS锁粒度是整个文件,也就是一个进程在写一个文件,则其他进程无法写该文件,因此HDFS也不适合高性能计算。HDFS适合是数据密集型的场景,而高性能计算一般是计算密集型。

    而redhat公司的Global File system ,锁粒度更细,粒度为每个底层块设备的每个“block”。但由于粒度太细,规模无法做大。

    为满足单个进程在顺序读单个文件情况下也能实现多个设备聚合带宽,GPFS采用让多个存储设备会并行把数据读取到内存中策略实现上述需求,类似RAID通过预读机制。

     

    三 共享磁盘架构的干扰问题

    共享磁盘架构下的干扰问题,主要分为两类:一是顺序IO之间干扰、二是随机IO之间冲突。

    顺序io之间的干扰可以简单解释如下:

    非共享方案:

    10个文件,放在10个盘上,每个盘一个线程读取。

    共享方案:

    10个文件,条带化后每个文件都被分散在10个硬盘上(例如11块盘raid5),10线程同时读该RAID。(条带化的优点是在并发度不高情况下能提高单进程单个大文件的顺序读写的速度,并且是条带化+并行读+预读)

    在共享方案下,磁盘会因为同时需要应付10个读线程,因此变成了随机读。

    目前这种干扰,可以通过RAID和单盘队比测试来验证。相应测试结果:

     

    同时国外也有研究人员认识到该问题,并试图优化和解决这些问题,但总体还是很复杂:

     

    论文1:研究HADOOP平台下,共享IO干扰.


    论文2:研究如何改进和优化共享IO的干扰问题 ,大概思路是增加一个中间层来优化。

     

     

    磁盘干扰

     

    缓存干扰:

     

    二是随机IO之间冲突。

    随机IO之间冲突,导致RAID无法发挥所有硬盘的随机IO性能。这种情况下效率低下的原因,个人分析主要是虽然可能有多块盘,但是如果调度不好则存在同时在工作的盘可能只有少数几块盘。这个问题应该和数据条带化没有太大关系,而且对顺序IO也有影响,只是由于随机IO每次都比较小,影响会更严重一些。

    因此在淘宝TFS的设计方案中,原始TFS采用RAID来存储,后来也是发现该问题,将RAID变成单盘,由应用层通过复制来保证数据存储安全,并且采用一个进程管理一个磁盘的模式来解决该问题。

    四 存储虚拟化、纠删码、绿色存储

    为解决海量存储管理问题,应该需要再仔细研究下存储虚拟化技术。但是从目前来看存储虚拟化更多的是在企业存储环境下,存储容量不是很大。(云存储采用三副本的备份来确保存储安全,但是面临的主要问题是IO速度太差,在网络上反应阿里云云服务器主要的缺点是IO性能太差,目前为解决云服务器的存储IO太差,这些大公司都打算推出基于SSD的云存储,但成本太高)

    目前也在各大云存储的底层架构,在infoq上,找到一个七牛存储一个视频。从这个视频里了解了纠删码技术,同时也感觉他们底层也不是架构在一个开源或者商用并行文件系统之上。纠删码目前是云存储中一个比较热的技术。在业类目前也有提供这种解决方案,例如celversafe公司,提供私有云存储解决方案。

     

     

     

    绿色存储目前也是一个热点,但是从前研究来看,互联网公司一般的方法是对部门满足以下要求的服务器采用服务器方式来降低能耗:IO到100%时,CPU利用率不高。例如CDN服务器。方法是使用低功能,性能低一些CPU。这块有能将文件存储服务器,采用该思路来减低能耗。

     

    展开全文
  • Lustre并行文件系统建设

    千次阅读 2015-09-07 17:51:06
    Lustre并行文件系统建设Author By esxu 2015/08/19项目背景介绍本次项目目的在于构建一个具有高性能、支持高并发读写、文件共享的存储系统。Lustre在HPC领域被广泛使用,本次项目建设也是在调研了其他诸多文件系统...

    Author By esxu

    2015/08/19

    项目背景介绍

    本次项目目的在于构建一个具有高性能、支持高并发读写、文件共享的存储系统。Lustre在HPC领域被广泛使用,本次项目建设也是在调研了其他诸多文件系统之后,最终选择Lustre文件系统作为软件部分,由于Lustre文件系统本身无数据安全机制,必须构建于稳定的磁盘阵列之上,通过硬件的稳定性来解决数据的安全性。

    硬件层面可以从两个方面来保证数据的安全性。

    • RAID组

    • 节点冗余

    这里节点冗余包括MDS和OSS节点,2个MDS节点互为active/stanby模式,两个OSS节点均为active模式。基本上实现数据访问不中断。

    软件安装

    这里使用的是DDN打包好的es-hpc-2.1.2-Cent-r41-x86_64-DVD.iso镜像文件,直接作为操作系统的ISO文件安装操作系统即可。系统安装完毕后,所有相关软件均会同步安装完毕。安装的过程中若原先系统盘中有数据会提示你是否将原先数据格式清除,在系统盘引导界面需选择相应的安装项,按e键进入编辑模式,添加skip-sda-check参数,跳过安全检查,即可直接安装。

    系统安装完毕后,需配置好一些准备工作:

    • 确保TCP和IB网络正常
    • 添加主机名-IP地址隐射关系
    • 关闭防火墙和selinux
    • 确保时间同步

    确认完成以上内容后,即可开始文件系统创建。

    MDS节点部署

    MDS节点即为lustre的元数据节点,一般采用2台服务器作为mds节点进行部署,一个处于avtive状态,另一个处于standby状态。MDS节点安装配置分为几步:

    • 格式化磁盘
    • 配置lustre.conf文件
    • 加载lustre内核模块
    • 挂载磁盘

    格式化磁盘

    MDT

    mkfs.lustre --mdt --index=0 --fsname=lustre --failnode=11.11.11.35@o2ib --failnode=192.168.242.35@tcp --mgsnode=11.11.11.34@o2ib --mgsnode=11.11.11.35@o2ib --mgsnode=192.168.242.34@tcp --mgsnode=192.168.242.35@tcp  --mkfsoptions="-m 1 -J size=4096"  --reformat --verbose /dev/mapper/mdt
    

    MGT

    mkfs.lustre --mgs --fsname=lustre --failnode=11.11.11.35@o2ib --failnode=192.168.242.35@tcp --reformat --verbose  /dev/mapper/mgt
    

    命令比较长,不做过多解释,从字面上基本上都能理解各个参数的含义。

    lustre.conf

    lustre.conf为luster的配置文件,文件内容只有一项,是关于文件系统网络的配置:

    [root@mds00 new]# cat /etc/modprobe.d/lustre.conf
    options lnet networks=o2ib(bond0),tcp(eth2)
    

    这里有两套网络,用逗号各个,注意语法规则,前面的为IB网络,后面的为tcp网络,括号里面的是网络设备名称,必须与当前处于up状态的网卡进行对应。这里ib网络用了2个端口进行绑定,所以用的是bond0,以太网为eth2网卡。

    加载lustre内核模块

    默认操作系统安装好后,系统启动不会加载lustre模块,可通过命令

    lsmod|grep lustre
    

    进行查看是否加载了lustre模块。

    手动加载lustre模块:

    modprobe lustre
    

    整个文件系统创建最关键的一步就在这里,lustre内核模块加载成功后,后面基本上不有什么大的问题。因为lustre模块对操作系统的内核以及IB驱动的版本均有很强的依赖关系,有一个不匹配就会加载不上,如果报错,先检查lustre.conf文件格式是否正确,如果确认lustre.conf内容无误,再取查看具体messages日志信息。

    挂载MDT、MGT

    完成上面几步之后,即可进行MDT和MGT挂载.

    MGT

    mount -t lustre /dev/mapper/mgt /lustre/mgt/
    

    MDT

    mount -t lustre /dev/mapper/mdt /lustre/mdt/
    

    挂载时间会比较长,大概1-2分钟,需要多等一会。

    到这里就完成了lustre的mds节点部署。

    OSS节点部署

    oss节点即为lustre的数据存储节点,影响oss节点数量的因素有以下几个:

    • 磁盘阵列的规模及聚合带宽
    • 单个oss节点的网络带宽

    为保障节点间高可用,原则上集群中oss节点数量应为偶数,两两互为备份。ost的数量也要求为偶数,互为备份的两个oss节点上挂载数目相同的ost。本次项目环境中仅有2个oss节点、14个ost,每组ost为8+2 Raid6,4块盘作为热备盘,磁盘阵列共144*6T 7.2k SAS盘.

    部署oss节点与mds节点过程类似,步骤如下:

    格式化磁盘

    这里每个oss节点上共有7个ost

    mkfs.lustre --ost --index=0 --fsname=lustre --failnode=11.11.11.37@o2ib --failnode=192.168.242.37@tcp --mgsnode=11.11.11.34@o2ib --mgsnode=11.11.11.35@o2ib --mgsnode=192.168.242.34@tcp --mgsnode=192.168.242.35@tcp --mkfsoptions="-m 1 -i 131072" --reformat --verbose /dev/mapper/360001ff0a101a0000000000089c50000
    
    mkfs.lustre --ost --index=1 --fsname=lustre --failnode=11.11.11.37@o2ib --failnode=192.168.242.37@tcp --mgsnode=11.11.11.34@o2ib --mgsnode=11.11.11.35@o2ib --mgsnode=192.168.242.34@tcp --mgsnode=192.168.242.35@tcp --mkfsoptions="-m 1 -i 131072" --reformat --verbose /dev/mapper/360001ff0a101a0000000000189c60001
    
    mkfs.lustre --ost --index=2 --fsname=lustre --failnode=11.11.11.37@o2ib --failnode=192.168.242.37@tcp --mgsnode=11.11.11.34@o2ib --mgsnode=11.11.11.35@o2ib --mgsnode=192.168.242.34@tcp --mgsnode=192.168.242.35@tcp --mkfsoptions="-m 1 -i 131072" --reformat --verbose /dev/mapper/360001ff0a101a0000000000289c70002
    
    mkfs.lustre --ost --index=3 --fsname=lustre --failnode=11.11.11.37@o2ib --failnode=192.168.242.37@tcp --mgsnode=11.11.11.34@o2ib --mgsnode=11.11.11.35@o2ib --mgsnode=192.168.242.34@tcp --mgsnode=192.168.242.35@tcp --mkfsoptions="-m 1 -i 131072" --reformat --verbose /dev/mapper/360001ff0a101a0000000000389c80003
    
    mkfs.lustre --ost --index=4 --fsname=lustre --failnode=11.11.11.37@o2ib --failnode=192.168.242.37@tcp --mgsnode=11.11.11.34@o2ib --mgsnode=11.11.11.35@o2ib --mgsnode=192.168.242.34@tcp --mgsnode=192.168.242.35@tcp --mkfsoptions="-m 1 -i 131072" --reformat --verbose /dev/mapper/360001ff0a101a0000000000489c90004
    
    mkfs.lustre --ost --index=5 --fsname=lustre --failnode=11.11.11.37@o2ib --failnode=192.168.242.37@tcp --mgsnode=11.11.11.34@o2ib --mgsnode=11.11.11.35@o2ib --mgsnode=192.168.242.34@tcp --mgsnode=192.168.242.35@tcp --mkfsoptions="-m 1 -i 131072" --reformat --verbose /dev/mapper/360001ff0a101a0000000000589ca0005
    
    mkfs.lustre --ost --index=6 --fsname=lustre --failnode=11.11.11.37@o2ib --failnode=192.168.242.37@tcp --mgsnode=11.11.11.34@o2ib --mgsnode=11.11.11.35@o2ib --mgsnode=192.168.242.34@tcp --mgsnode=192.168.242.35@tcp --mkfsoptions="-m 1 -i 131072" --reformat --verbose /dev/mapper/360001ff0a101a0000000000689cb0006
    

    格式化磁盘后,配置lustre.conf文件及加载lustre模块,过程与mds相同,这里不做过多说明,下面进行磁盘挂载。

    挂载OST

    mount -t lustre /dev/mapper/360001ff0a101a0000000000089c50000 /lustre/ost00/
    mount -t lustre /dev/mapper/360001ff0a101a0000000000189c60001 /lustre/ost01/
    mount -t lustre /dev/mapper/360001ff0a101a0000000000289c70002 /lustre/ost02/
    mount -t lustre /dev/mapper/360001ff0a101a0000000000389c80003 /lustre/ost03/
    mount -t lustre /dev/mapper/360001ff0a101a0000000000489c90004 /lustre/ost04/
    mount -t lustre /dev/mapper/360001ff0a101a0000000000589ca0005 /lustre/ost05/
    mount -t lustre /dev/mapper/360001ff0a101a0000000000689cb0006 /lustre/ost06/
    

    以上完成了其中一个oss节点的部署,另外一个节点操作与此类似。

    完成以上配置后,lustre文件系统的配置基本结束,客户端安装lustre客户端软件包并加载lustre模块即可挂载使用了。客户端配置后面再详细说明。

    HA实现说明

    上面的操作只完成了基本的lustre的文件系统创建,若想实现文件系统的高可用,还需进一步配置才行。本次项目使用的是基于corosync+pacemaker进行资源和节点间心跳管理。这里创建2组资源,一组为MDS,一组为OSS。也可将2组资源合并到一起,这里为了方便管理和后期扩容,将MDS和OSS进行分离,创建两组秘钥。

    节点HA

    corosync.conf具体配置如下:

    [root@mds00 ~]# cat /etc/corosync/corosync.conf
    compatibility: none
    
    totem {
        version: 2
        secauth: off
        threads: 0
    
        # Tuning for highly congested networks
        # token:
        # This timeout specifies in milliseconds until a token loss is
        # declared after not receiving a token. This is the time spent
        # detecting a failure of a processor in the current configuration.
        # Reforming a new configuration takes about 50 milliseconds in
        # addition to this timeout.
        # The default is 1000 milliseconds.
        token: 10000
        # retransmits_before_loss:
        # This  value  identifies  how  many  token  retransmits should be
        # attempted before forming a new configuration.  If this value  is
        # set,  retransmit  and hold will be automatically calculated from
        # retransmits_before_loss and token.
        # The default is 4 retransmissions.
        retransmits_before_loss: 25
        # consensus:
        # This  timeout  specifies  in  milliseconds  how long to wait for
        # consensus  to  be  achieved  before  starting  a  new  round  of
        # membership configuration.
        # The default is 200 milliseconds.
        consensus: 12000
        # join:
        # This timeout specifies in milliseconds how long to wait for join
        # messages in the membership protocol.
        # The default is 100 milliseconds.
        join: 1000
        # merge:
        # This  timeout  specifies in milliseconds how long to wait before
        # checking for a partition when  no  multicast  traffic  is  being
        # sent.   If  multicast traffic is being sent, the merge detection
        # happens automatically as a function of the protocol.
        # The default is 200 milliseconds.
        merge: 400
        # downcheck:
        # This timeout specifies in milliseconds how long to  wait  before
        # checking  that  a network interface is back up after it has been
        # downed.
        # The default is 1000 millseconds.
        downcheck: 2000
    
        rrp_mode: passive
    
        interface {
                member {
                        memberaddr: 192.168.242.34
                }
                member {
                        memberaddr: 192.168.242.35
                }
                ringnumber: 0
                #bindnetaddr: 226.94.1.1
                bindnetaddr: 192.168.242.0
                mcastport: 5401
                ttl: 1
        }
        transport: udpu
    }
    
    
    logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        to_syslog: yes
        logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
    }
    
    amf {
        mode: disabled
    }
    

    这里只列出了MDS节点的配置文件,OSS节点与此类似。

    生成秘钥文件
    命令:

    corosync-keygen
    

    执行该命令后会,在/etc/corosync/目录下会生成authkey文件,将该文件和corosync.conf一起拷贝到另外一个mds节点上。

    配置文件都准备好之后将corosync服务重启一下,然后执行crm_mon命令查看集群状态

    Last updated: Sun Sep  6 02:37:16 2015
    Last change: Tue Aug 25 23:12:18 2015 via crmd on oss00
    Stack: classic openais (with plugin)
    Current DC: oss01 - partition with quorum
    Version: 1.1.10-14.el6_5.3-368c726
    2 Nodes configured, 2 expected votes
    14 Resources configured
    
    
    Online: [ oss00 oss01 ]
    
    res_Filesystem_ost07    (ocf::heartbeat:Filesystem):    Started oss01
    res_Filesystem_ost08    (ocf::heartbeat:Filesystem):    Started oss01
    res_Filesystem_ost09    (ocf::heartbeat:Filesystem):    Started oss01
    res_Filesystem_ost0a    (ocf::heartbeat:Filesystem):    Started oss01
    res_Filesystem_ost0b    (ocf::heartbeat:Filesystem):    Started oss01
    res_Filesystem_ost0c    (ocf::heartbeat:Filesystem):    Started oss01
    res_Filesystem_ost0d    (ocf::heartbeat:Filesystem):    Started oss01
    res_Filesystem_ost00    (ocf::heartbeat:Filesystem):    Started oss00
    res_Filesystem_ost01    (ocf::heartbeat:Filesystem):    Started oss00
    res_Filesystem_ost02    (ocf::heartbeat:Filesystem):    Started oss00
    res_Filesystem_ost03    (ocf::heartbeat:Filesystem):    Started oss00
    res_Filesystem_ost04    (ocf::heartbeat:Filesystem):    Started oss00
    res_Filesystem_ost05    (ocf::heartbeat:Filesystem):    Started oss00
    res_Filesystem_ost06    (ocf::heartbeat:Filesystem):    Started oss00
    

    看到有2个节点在线oss00和oss01。下面是这两个节点的资源分配情况,这里借助的是图形化工具lcmc,进行资源添加和分配,并设置优先级,也可通过命令行来操作,但较为麻烦。借助图形化工具划分好资源后,我们可通过命令行进行配置文件查看,具体方法如下:

    [root@oss00 ~]# crm
    crm(live)# configure
    crm(live)configure# show
    

    执行前面2条命令后,查看配置文件可执行show,通过LCMC添加完资源后,我们可通过命令行的方式进行参数编辑,若想编辑配置文件可执行edit,进入后,同vim编辑器操作相同。

    磁盘HA

    磁盘与节点间使用的是多路径软件multipath来实现,将所有OST或MDT磁盘阵列同时映射给相应的OSS节点或MDS节点。

    [root@mds00 ~]# multipath -ll
    mdt (3600c0ff0001e1c81cb32d75501000000) dm-2 DotHill,DH3824
    size=540G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=1 status=active
    | `- 11:0:0:0 sdb 8:16 active ready running
    `-+- policy='round-robin 0' prio=1 status=enabled
    `- 12:0:0:0 sdd 8:48 active ready running
    mgt (3600c0ff0001e1c812233d75501000000) dm-3 DotHill,DH3824
    size=19G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=1 status=active
    | `- 11:0:0:1 sdc 8:32 active ready running
    `-+- policy='round-robin 0' prio=1 status=enabled
      `- 12:0:0:1 sde 8:64 active ready running
    

    这里列出的是MDS节点上的mdt存储磁盘,这里有2个设备:mdt与mgt,也可将mgt与mdt合并,我这里磁盘比较富裕,就单独为mgt创建了一块分区作为mgt存储区域。同时再另外一台备份节点上也可发现相同的2个设备,如下:

    [root@mds01 ~]# multipath -ll
    mdt (3600c0ff0001e1c81cb32d75501000000) dm-2 DotHill,DH3824
    size=540G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=1 status=active
    | `- 11:0:0:0 sdb 8:16 active ready running
    `-+- policy='round-robin 0' prio=1 status=enabled
      `- 12:0:0:0 sdd 8:48 active ready running
    mgt (3600c0ff0001e1c812233d75501000000) dm-3 DotHill,DH3824
    size=19G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=1 status=active
    | `- 11:0:0:1 sdc 8:32 active ready running
    `-+- policy='round-robin 0' prio=1 status=enabled
     `- 12:0:0:1 sde 8:64 active ready running
    

    网络HA

    这里IO节点的IB网卡均配置了双网卡,绑定提高网卡的稳定性。步骤如下:

    配置IP地址

    [root@mds00 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ib0
    DEVICE=ib0
    TYPE=InfiniBand
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    MASTER=bond0
    SLAVE=yes
    PRIMARY=yes
    
    
    [root@mds00 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ib1
    DEVICE=ib1
    TYPE=InfiniBand
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    MASTER=bond0
    SLAVE=yes
    PRIMARY=no
    
    
    [root@mds00 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    #TYPE=InfiniBand
    IPADDR=11.11.11.34
    NETMASK=255.255.255.0
    USERCTL=no
    BOOTPROTO=static
    ONBOOT=yes
    

    新建bond.conf文件,内容如下:

    [root@mds00 ~]# cat /etc/modprobe.d/bond.conf
    alias bond0 bonding
    options bond0 mode=1 miimon=100
    

    加载该配置文件

    modprobe bonding
    

    重启网卡后,查看网卡状态:

    [root@oss00 ~]# cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
    
    Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
    Primary Slave: None
    Currently Active Slave: ib0
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    Slave Interface: ib0
    MII Status: up
    Speed: 56000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: a0:04:02:20:fe:80
    Slave queue ID: 0
    
    Slave Interface: ib1
    MII Status: up
    Speed: 56000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: a0:04:03:00:fe:80
    Slave queue ID: 0
    

    这里绑定模式选择的是1,即active-backup模式。

    客户端配置

    客户端安装首先需要编译适合当前生产环境版本的lustre-clinet安装包,可使用lustre源码包进行编译。

    首先将 lustre 的源码 copy 到 本地,然后解压缩源码文件。进入到源码的路径下。
    因为是 lustre 客户端的编译,所以和 IO server 端的编译不同。我们在
    编译的过程中不需要很多复杂的工具,所以在指定编译命令的时候需要增加一
    些相应的参数。 编译命令如下:

    ./configure --with-o2ib=/usr/src/ofa_kernel/default/ --with-linux=/usr/src/kernels/2.6.32-504.el6.x86_64/ --disable- server
    

    –with-o2ib 参数指定了 lustre 所支持的网络为 IB 网络,如果 lustre 环 境并没有 IB 的网络,而是仅有 tcp 的网络(千兆网络,万兆网络),那么就可 以不使用这个参数了。
    –with-linux 参数指定了但前的操作系统的 kernel 信息。 –disable-server 参数指定了当前是针对lustre 的客户端进行编译。
    系统编译完成后,执行如下命令:

    # make -j8
    

    系统会继续执行,知道编译过程中没有任何错误信息后,通过

    # make rpms
    

    命令生成 lustre 客户端的 rpm 安装包。
    命令完成后,会在系统的/root/rpmbuild/RPMS/x86_64 目录下生成 lustre 客户端的 rpm 包。 然后安装所有 rpm 包即可。

    在安装的过程中可能会出现如下的错误信息:

    # rpm -ivh lustre-client-*
    error: Failed dependencies:
    /usr/bin/expect is needed by lustre-client-source-
    2.5.29.ddnpf5-2.6.32_504.el6.x86_64_g2139632.x86_64 lustre-iokit is needed by lustre-client-tests-2.5.29.ddnpf5-2.6.32_504.el6.x86_64_g2139632.x86_64
    

    提示信息为操作系统的系统关联,也就是说在安装 lustre 软件包的时候 需要依赖 expect 软件包才能继续进行安装。 手动安装 expect。

    # yum install expect sg3_utils
    

    这里我把sg3_utils也安装了,不然后面还会提示缺少这个包。

    再次执行 lustre 的软件包安装。

    #rpm -ivh lustre-*  
    

    Lnet 设置

    安装完相应客户端软件之后,配置下lustre.conf,配置方式同server端的配置类似,这里不做过多说明,注意修改网卡设备名称即可。配置完Lnet之后,执行lustre模块加载

    modprobe lustre
    

    加载成功后,查看 lnet 信息

    # lctl list_nids
    11.11.11.161@o2ib
    

    查看与 mgs 之间的通讯

    # lctl ping 11.11.11.34@o2ib
    12345-0@lo 12345-11.11.11.34@o2ib
    

    通过上面的输出可以确认该节点的 lnet 与 mgs 之间的通讯正常。

    客户端挂载

    lustre 客户端的安装和配置完成之后,就可以对文件系统进行挂载了。 挂载命令如下:

    mount -t lustre 11.11.11.34@o2ib:11.11.11.35@o2ib:/lustre /lustre/
    

    看是很长的一条命令,也非常不容易记忆。但是等知道这条命令的具体意义的话,就会非常容易理解和记忆这条命令了。

    -t lustre 参数 指定了挂载的文件系统类型为 lustre 文件系统。
    11.11.11.34@o2ib 参数指定了互为主备的 mgs1 的 lnet 地址 11.11.11.35@o2ib 参数指定了互为主备的 mgs2 的 lnet 地址,两个 mgs
    的 lnet 地址中间用:隔开

    :/lustre 参数指定了在文件系统创建的时候指定的文件系统的名称。

    /lustre 参数指定了,操作系统的挂载路径。

    总结

    以上为lustre部署过程中所有步骤,性能测试后期再进行补充,因为初始环境不同,部署过程中可能会遇到各种各样的问题,根据错误提示,google搜索应该都能解决。

    总体来看,lustre的部署过程相对来说还是比较复杂的,这里server段的安装直接固化到操作系统中了,省了很多事情。因为lustre的基于内核态的文件系统,相对系统版本及各种依赖软件版本要求较高,安装过程中也容易出错。且lustre本身无数据冗余机制,这里通过软件+硬件的方式来保障lustre文件系统的稳定运行。但一旦出现问题,可能会造成所有数据故障期间无法访问,影响范围较广,所以对运维人员的技能要求也较高。

    展开全文
  • IBM GPFS并行文件系统

    千次阅读 2013-09-08 16:28:30
     IBM GPFS文件系统是一种专门为群集环境设计的高性能、可扩展的并行文件系统。GPFS可以在群集中的多个节点间实现对共享文件系统中文件的快速存取操作,并提供稳定的故障恢复和容错机制。 被业界超大规模高性能...
  • HDFS与其他并行文件系统的比较

    千次阅读 2017-07-22 07:34:01
    HDFS作为一种新兴的并行文件系统,和现有的分布式文件系统相似,他们都是运行在普通硬件之上的分布式文件系统,然而HDFS与其他分布式文件系统也存在着一些差别。如HDFS具有高容错性,可以部署在低成本的硬件之上,...
  • IBM GPFS并行文件系统解决方案

    千次阅读 2015-07-07 11:01:54
    随着技术的发展,大规模的并行计算的方式激发有关行业对高性能计算机的需求,作为后起之秀的Linux 集群系统,吸取了SP 大规模并行机的诸多优势,IBM的通用并行文件系统GPFS 等和Linux 集群系统的竭诚不仅能在并行运算...
  • 分布式文件系统、集群文件系统、并行文件系统,这三种概念很容易混淆,实际中大家也经常不加区分地使用。总是有人问起这三者的区别和联系,其实它们之间在概念上的确有交叉重叠的地方,但是也存在显著不同之处。  ...
  • 如何区分分布式-集群-并行文件系统

    千次阅读 2015-12-29 19:07:50
    分布式文件系统、集群文件系统、并行文件系统,这三种概念很容易混淆,实际中大家也经常不加区分地使用。总是有人问起这三者的区别和联系,其实它们之间在概念上的确有交叉重叠的地方,但是也存在显著不同之处。  ...
  • Lustre并行文件系统的部署和测试

    千次阅读 2011-09-12 21:38:18
    Author: Luo E-Mail: xcluo.mr@gmail.com MSN: lx_9986@hotmail.com Date: 12 Sep, 2011 Keywords: Lustre,并行文件系统, 集群, 高性能, 线性增长 一 并行文件系
  • 并行文件系统 pNFS

    千次阅读 2012-07-03 09:10:37
    http://www.pnfs.com/ 缘起: panasas的创始人和CTO gibson
  • GPFS[i](General Parallel ...它是为高端的并行编程需要而设计的高性能文件系统。 可扩放性也许是GPFS最突出的特性。可扩放性指的是可以通过添加附加的相同甚至更少容量的硬件来获得读写性能的提升。一个真正可扩展
  • 在高性能存储领域,Lustre是一个如雷贯耳的名字。据统计(2011年7月),世界十大超级计算中心当中的七个以及超过50%的全球...该项目旨在为有成千上万的节点的集群提供一个支持PB的存储容量的文件系统,同时又不损害其
  • 集群并行文件系统Lustre部署

    千次阅读 2008-03-21 23:57:00
    是一个开源的、基于对象存储技术的集群并行文件系统,它具有很高的可扩展性、可用性、性能、易用性等,在高性能计算系统中被广泛使用。它主要包括三个部分:元数据服务器 MDS (Metadata Server) 、对象存储服务器 ...
  • 浪潮并行文件系统以PVFS作为开发原型,并在此基础上进行改进,使其与并行网络存储系统紧密结合。在这里,将对基于PVFS的浪潮并行文件系统作一个简单的介绍。  PVFS的优点和缺憾  在网络后台,以集群的形式来扩大...
  • 摘要:PVFS并行虚拟文件系统是浪潮并行文件系统的开发原型,它采用客户-服务器架构,提供集群范围内的一致命名空间,将数据条块化,分配到集群节点中。标签:PVFS并行虚拟文件系统 网络存储的应用实现...
  • 并行虚拟文件系统(PVFS) _曹强

    千次阅读 2012-04-05 11:59:15
    并行虚拟文件系统(PVFS) PVFS [2](Parallel Virtual File System)项目...PVFS现已被广泛地使用,很多分布式文件系统都是以PVFS为基础架构而设计实现的[3],比如国内的浪潮并行文件系统。目前的版本是第二版[4]。
  • [导读]所谓并行文件系统,是指应用于多机环境的网络文件系统,单个文件的数据采用分条等形式存放于不同的I/O节点之上,支持多机多个进程的并发存取,同时支持元数据和数据的分布存放,并提供单一的目录空间。...
  • 在上一篇中我们介绍了 mpi4py 中并行 I/O 的基本概念和相关术语,下面我们将介绍并行文件操作的相关方法。 方法接口 并行文件操作的相关方法(MPI.File 类方法)接口如下: Open(type cls, Intracomm comm, ...
  • 并行处理系统测试正式启动

    千次阅读 2015-11-09 23:39:30
    无图无真相,先上两张图: 上图是并行处理系统的机架正面图。简单说下这个机架的硬件配置吧:四台浪潮服务器,最底下是浪潮的NAS存储器,采用万兆网,操作系统预装WinServer2008和redhat。 这是机箱背面板,绿色的...
  • 分布式文件系统 HDFS xx中存在海量信息存取需求,单节点的文件系统无法支持海量信息的存储,需要支持分布式文件系统。 NoSQL数据库 Cassandra、Hbase xx中存在对半结构化数据的海量存储需求,...
  • 一、什么是Lustre文件系统Lustre是HP, Intel,Cluster FileSystem公司联合美国能源部开发的Linux集群并行文件系统。该系统目前推出 1.0 的发布版本,是第一个基于对象存储设备的,开源的并行文件系统。其结构如图所...
  • GPFS文件系统笔记

    千次阅读 2011-08-12 13:19:35
    1、IBM GPFS是一个可以自由扩展的高性能并行文件系统,同时支持AIX,LINUX,WINDOWS,支持高可用性的集群架构,支持并行的共享磁盘访问方式,提供单一命名空间,针对并行IO负载优化,提供极高的IO处理能力。...
  • 分布式文件系统元数据服务模型

    万次阅读 多人点赞 2011-09-05 12:05:38
    随着非结构化数据的爆炸,分布式文件系统进入了发展的黄金时期,...对于大多数分布式文件系统(或集群文件系统,或并行文件系统)而言,通常将元数据与数据两者独立开来,即控制流与数据流进行分离,从而获得更高的系统扩
  • ior - POSIX文件系统测试工具

    千次阅读 2019-02-15 17:12:57
    IOR(Interleaved or Random)是一种常用的文件系统基准测试程序,特别适用于评估并行文件系统的性能。 IOR可用于测试各种接口和访问模式(POSIX兼容)的并行文件系统的性能。它适用于比较不同文件系统的性能。 ...
  • Ceph 文件系统介绍

    万次阅读 2013-03-20 14:57:09
    Ceph的目标是提供一个general-purpose的并行文件系统,设计目标是也是在廉价的存储介质上构建具有 high performance, high scalibility, high available, 其目标是应用在科学计算等HPC领域。目前其已经被纳入处于...
  • 略论并行处理系统的日志设计

    千次阅读 2016-02-19 00:15:45
    并行处理系统往往以多机多进程的方式运行,一旦出错对于如何定位错误所在成了一件棘手的事情。这时日志调试成为定位错误的有效手段。下面谈谈如何设计日志可以方便地定位错误。 首先是日志文件的命名,最初的命名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 285,284
精华内容 114,113
关键字:

并行文件系统