zoukankan      html  css  js  c++  java
  • 分布式文件系统简介

    面对海量的数据,如何有效存储,是每个大型网站的架构师必须要解决的问题。分布式存储技术就是为了解决这个问题而发展起来的技术,下面让将会详细介绍这个技术及应用。

     

    分布式存储概念:

    与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。

     

    具体技术及应用:

    海量的数据按照结构化程度来分,可以大致分为结构化数据,非结构化数据,半结构化数据。 

     


           普通存储方案:Rsync、DAS(IDE/SATA/SAS/SCSI等块)、NAS(NFS、CIFS、SAMBA等文件系统)、SAN(FibreChannel, iSCSI, FoE存储网络块),Openfiler、FreeNas(ZFS快照复制)
           由于生产环境中往往由于对存储数据量很大,而SAN存储价格又比较昂贵,
           因此大多会选择分布式存储来解决一下问题:

    1.海量数据存储问题
    2.数据高可用问题(冗余备份)问题
    3.较高的读写性能和负载均衡问题
    4.支持多平台多语言问题
    5.高并发问题

     

    常用的分布式文件系统:

     

    常见的分布式文件系统有FastDFS,GFS、HDFS、Ceph 、GridFS 、mogileFS、TFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

     

     

     

     



    FastDFS概述
    =======================

        FastDFS是阿里巴巴开源的一套轻量级,天生就是分布式设计的文件系统,FastDFS的源代码由C语言开发,目前可运行在Linux,FreeBSD,Unix等类操作系统上,FastDFS解决了大数据量文件存储(这里经常有人说成大数据,我本人是不赞同的)和读写分离,备份容错,负载均衡,动态扩容等问题,这也就是原作者所描述的高性能和高扩展性的文件系统。适合存储4KB~500MB之间的小文件,如图片网站、短视频网站、文档、app下载站等。
           
    主要用户

    1. 京东(http://www.jd.com/),主要商品图片存储,可以看出来这是fastdfs典型路径

                 http://img12.360buyimg.com/n9/g15/M08/0B/19/rBEhWVMdbUMIAAAAAAEo7QHfEvoAAJwzAC7VvkAASkF751.jpg

    1. UC(http://www.uc.cn/),主要提供网盘服务
    2. 支付宝(https://www.alipay.com/),
    3. Lockbur高清壁纸分享网站(http://www.lockbur.com/),主要提供小图片存储服务

     

     

    GFS(Google File System)

    =======================

     

    Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。
    下面分布式文件系统都是类 GFS的产品。


    HDFS(Hadoop Distributed File System)
    =======================
    Hadoop 实现了一个分布式文件系统,主要用于大数据计算存储,简称HDFS。 Hadoop是Apache Lucene创始人Doug Cutting开发的使用广泛的文本搜索库。它起源于Apache Nutch,后者是一个开源的网络搜索引擎,本身也是Luene项目的一部分。Aapche Hadoop架构是MapReduce算法的一种开源应用,是Google开创其帝国的重要基石。


    =======================
    是加州大学圣克鲁兹分校的Sage weil攻读博士时开发的分布式文件系统。Ceph能够在维护 POSIX 兼容性的同时加入了复制和容错功能。Sage weil并使用Ceph完成了他的论文。说 ceph 性能最高,C++编写的代码,支持Fuse,并且没有单点故障依赖, 于是下载安装, 由于 ceph 使用 btrfs 文件系统, 而btrfs 文件系统需要 Linux 2.6.34 以上的内核才支持。


    GridFS文件系统
    =======================
    MongoDB是一种知名的NoSql数据库,GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储。文件在GridFS中会按4MB为单位进行分块存储。


    MogileFS
    =======================
    由memcahed的开发公司danga一款perl开发的产品,目前国内使用mogielFS的有图片托管网站yupoo等。
    MogileFS是一套高效的文件自动备份组件,由Six Apart开发,广泛应用在包括LiveJournal等web2.0站点上。
    MogileFS由3个部分组成:
      第1个部分是server端,包括mogilefsd和mogstored两个程序。前者即是 mogilefsd的tracker,它将一些全局信息保存在数据库里,例如站点domain,class,host等。后者即是存储节点(store node),它其实是个HTTP Daemon,默认侦听在7500端口,接受客户端的文件备份请求。在安装完后,要运行mogadm工具将所有的store node注册到mogilefsd的数据库里,mogilefsd会对这些节点进行管理和监控。
      第2个部分是utils(工具集),主要是MogileFS的一些管理工具,例如mogadm等。
      第3个部分是客户端API,目前只有Perl API(MogileFS.pm)、PHP,用这个模块可以编写客户端程序,实现文件的备份管理功能。


    TFS
    -------------------------------------
    TFS(Taobao !FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器 集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用 在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化 了文件的访问流程,一定程度上为TFS提供了良好的读写性能。
     
     
     
     

     

  • 相关阅读:
    面向对象深入:继承01——子类
    面向对象的基础知识——小结
    IP地址配置
    二、RPM包管理-rpm命令管理
    一、软件包管理简介
    关机重启命令
    网络命令
    权限管理命令
    字符截取命令
    shell-正则表达式(二)
  • 原文地址:https://www.cnblogs.com/centos2017/p/7896762.html
Copyright © 2011-2022 走看看