zoukankan      html  css  js  c++  java
  • FastDfs 说明、安装、配置

       fastdfs是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,fastfd非常适用于基于文件服务的站点,例如图片分享和视频分享网站

    fastfds有两个角色:跟踪服务和存储服务,跟踪服务控制,调度文件以负载均衡的方式访问;存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据

    跟踪和存储服务可以由1台或者多台服务器组成,同时可以动态的添加,删除跟踪和存储服务而不会对在线的服务产生影响,在集群中,tracker服务是对等的

    存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务 器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。在卷中增加服务器时,同步已有的文件由系统自动 完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为 一个新的卷,这样就扩大了存储系统的容量。

    下面几张图可以清楚的说明fastfds的架构和文件上传和下载流程等:

    一、FastDFS的安装过程
    (1)准备工作-安装libevent
    FastDFS 内部绑定了 libevent 作为 http 服务器 ,在V2.X版本必须安装 libevent ,本文安装的是V2.2版本,因此必须安装libevent。官方也推荐使用 http 方式下载文件。
    如果已经安装了 libevent,请确认安装路径是 /usr , 因为 FastDFS 在编译源程序时,需要到此目录下查找一些依赖文件,否则编译 FastDFS 会出错 。如果不是,建议首先卸载 libevent ,然后安装到 /usr 下。Ubuntu10.4默认是安装了libevent,可以到软件中心卸载掉然后按照下面介绍的方式安装。本文安装的是 libevent1.4.14b-stable,下载地址:http://monkey.org/~provos/libevent/
     
    安装步骤:
     tar vxzf libevent1.4.14b-stable.tar.gz
    ./configure --prefix=/usr   
    make clean;   
    make   
    make install
    安装libevent完成。
     
    (2)安装 FastDFS
    1、下载 FastDFS 源程序,下载地址 http://code.google.com/p/fastdfs/downloads/list ,这里下载的是 FastDFS_v2.04.tar.gz ,建议安装V2.X版本,比V1.X版本更加稳定且性能提升明显)、
    2、在 FastDFS_v2.04.tar.gz 所在文件夹下执行:
    tar vxzf FastDFS_v2.04.tar.gz /home/monkey/FastDFS  
    tar vxzf FastDFS_v2.04.tar.gz /home/monkey/FastDFS
         注:/home/monkey/FastDFS 也可以是其他目录,记住这是解压目录,以后用 %FastDFS% 表示)
    3、由于要使用内置的 http 服务,因此编辑 %FastDFS%/make.sh 文件,找到#WITH_HTTPD=1,修改成WITH_HTTPD=1,以支持 HTTP。
    4、进入 %FastDFS% 目录,执行:
    ./make.sh  
    ./make.sh
     
    5、在 %FastDFS% 目录下,执行:
    ./make.sh install  
    ./make.sh install
    如果运行如上命令后,在命令行信息最后看到类似
    #ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so   
    #ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so   
    sh ./fdfs_link_library.sh  
    #ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so
    #ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so
    sh ./fdfs_link_library.sh
    恭喜你,已经安装成功了!
     
    二、FastDFS的配置说明
    FastDFS的配置文件在%FastDFS%/conf目录下,其中包括:
    client.confà客户端上传配置文件
    storage.confà文件存储服务器配置文件
    tracker.confà负责均衡调度服务器配置文件
    http.confàhttp服务器配置文件
     
    配置文件需要根据服务器环境的不同,进行不同的配置,具体可以参考FastDFS官方的安装配置文档http://code.google.com/p/fastdfs/wiki/Setup,以及FastDFS原理介绍文档http://code.google.com/p/fastdfs/wiki/Overview
     
    在本例中,为了方便起见,Tracker Server,Storage Server都安装在一台服务器上,IP:211.69.205.1。
    (1)配置及启动Tracker Server
    1、修改%FastDFS%/conf/tracker.conf文件,修改如下:
    #可以自己指定目录位置,但目录必须存在,用于存储日志及storage server等信息,否则tracker server无法启动。
    base_path=/home/yuqing/fastdfs
          
    #改成你想要的http端口,将来http下载文件的端口就是它了。
    http.server_port=8080
     
    #http支持
    ##include http.conf
     
    #默认4GB,如果空间不足,建议调小,否则会报no free space的异常,无法正常启动。
    reserved_storage_space = 4GB
     
    #tracker server对storage server供服务的端口,使用默认的即可,也可以自定义
    port=22122  
     
    2、将http.conf文件拷贝到/etc/fdfs目录下,执行:
           cp %FastDFS%/conf/http.conf /etc/fdfs/
    cp %FastDFS%/conf/http.conf /etc/fdfs/
    注:为了支持http,必须将这个文件拷贝到此目录,否则无法启动,报param http.XXX not exist or is empty类似的错误。
     
    3、进入/usr/local/bin/目录,启动tracker服务器,执行:
    fdfs_trackerd %FastDFS%/conf/tracker.conf  
    dfs_trackerd %FastDFS%/conf/tracker.conf
     
    4、进入/home/soar/fastdfs_tracker/logs/trackerd.log查看tracker的启动日志,如果看到类似:
    [2010-11-26 21:33:44] INFO - FastDFS v2.04, base_path=/home/monkey/fastdfs_tracker, connect_timeout=30s, network_timeout=60s, port=22122, bind_addr=, max_connections=256, work_threads=4, store_lookup=2, store_group=, store_server=0, store_path=0, reserved_storage_space=1024MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s, check_active_interval=120s, thread_stack_size=64 KB, storage_ip_changed_auto_adjust=1, storage_sync_file_max_delay=86400s, storage_sync_file_max_time=300s
    [2010-11-26 21:33:44] INFO - HTTP supported: server_port=8090, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0, check_active_interval=30, check_active_type=tcp, check_active_uri=/status.html
     恭喜你,tracker server已经启动成功!
     
    (2)配置及启动Storage Server
    1、修改%FastDFS%/conf/storage.conf文件,修改如下:
    #可以自定义,但必须存在此目录,用于存储storage相关的log、group内的相关信息
    base_path=/home/yuqing/fastdfs
     
    #文件的存储位置,在一台storage server上可以指定多个存储位置
    store_path0=/home/yuqing/fastdfs
    #必须指定
    group_name=group1
     
    #修改成tracker server的IP和端口信息
    tracker_server=192.168.209.121:22122
     
    #http支持
    ##include http.conf
     
    2、进入/usr/local/bin/目录,启动storage服务器,执行
    fdfs_storaged %FastDFS%/conf/storage.conf  
     
    3、进入/home/monkey/fastdfs_tracker/logs/storage.log查看storage服务器启动日志,如果看到类似:
    [2010-11-26 21:38:59] INFO - FastDFS v2.04, base_path=/home/monkey/fastdfs_storge, store_path_count=1, subdir_count_per_path=256, group_name=group1, connect_timeout=30s, network_timeout=60s, port=23000, bind_addr=, client_bind=1, max_connections=256, work_threads=4, disk_rw_separated=1, disk_reader_threads=1, disk_writer_threads=1, buff_size=256KB, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=1, sync_wait_msec=200ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time=23:59, write_mark_file_freq=500, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=60s, sync_stat_file_interval=300s, thread_stack_size=512 KB, upload_priority=10, if_alias_prefix=, check_file_duplicate=0, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0, HTTP server port=8888, domain name=
    [2010-11-26 21:38:59] INFO - HTTP supported: server_port=8888, http_trunk_size=262144, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0
    [2010-11-26 21:39:29] INFO - file: storage_param_getter.c, line: 48, storage_ip_changed_auto_adjust=1
    [2010-11-26 21:39:30] INFO - file: tracker_client_thread.c, line: 274, successfully connect to tracker server 211.69.205.1:22122, as a tracker client, my ip is 211.69.205.1
     
    恭喜你,storage server已经启动成功!
     
    三、FastDFS使用举例说明
    经过前面的按照、配置、启动,马上就可以看到FastDFS的效果了,我们先上传一个文件,然后再通过http下载。
     
    (1)上传文件
    FastDFS安装包中,自带了客户端程序,通过程序可以进行文件上传。在使用这个客户端程序之前,首先需要配置client.conf,然后再进行文件上传及下载。
     
    1、修改%FastDFS%/conf/client.conf文件,修改如下:
    #可自定义,但此目录必须存在,用于存放文件上传log
    base_path=/home/yuqing/fastdfs
    tracker_server=192.168.209.121:22122
    http.tracker_server_port=8080
    ##include http.conf
     
    2、进入/usr/local/bin/目录,上传文件,执行:
    fdfs_test %FastDFS%/conf/client.conf upload monkey.txt   
    注:monkey.txt可以在/usr/local/bin/目录下自己创建一个。
    如果命令行反馈类似如下,则说明上传文件成功。

    (2)下载文件
    在浏览器中,输入上图中的url地址, tracker server会自动重定向到存储文件的storage server,文件下载成功。至此,已经成功搭建了FastDFS,编写你自己的client来进行访问吧:

  • 相关阅读:
    Anagram
    HDU 1205 吃糖果(鸽巢原理)
    Codeforces 1243D 0-1 MST(补图的连通图数量)
    Codeforces 1243C Tile Painting(素数)
    Codeforces 1243B2 Character Swap (Hard Version)
    Codeforces 1243B1 Character Swap (Easy Version)
    Codeforces 1243A Maximum Square
    Codeforces 1272E Nearest Opposite Parity(BFS)
    Codeforces 1272D Remove One Element
    Codeforces 1272C Yet Another Broken Keyboard
  • 原文地址:https://www.cnblogs.com/weipeng/p/3635055.html
Copyright © 2011-2022 走看看