美文网首页
2.Centos下部署Fastdfs

2.Centos下部署Fastdfs

作者: qlaiaqu | 来源:发表于2016-08-04 13:30 被阅读0次

    OpenResty官方网站

    https://github.com/happyfish100

    Fsatdfs简介

    FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
      FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
      存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件meta data是文件属性列表,可以包含多个键值对。
      FastDFS系统结构如下图所示:

    Fastdfs架构

    跟踪器和存储节点都可以由一台多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
      为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷 的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起 到了冗余备份和负载均衡的作用。
      在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。
      当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。
      FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。

    上传文件交互过程:

    1. client询问tracker上传到的storage,不需要附加参数;
    2. tracker返回一台可用的storage;
    3. client直接和storage通讯完成文件上传。
    文件上传.jpg

    下载文件交互过程:

    1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
    2. tracker返回一台可用的storage;
    3. client直接和storage通讯完成文件下载。
    文件下载.jpg

    需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。

    安装流程

    下载

    git clone https://github.com/happyfish100/libfastcommon
    git clone https://github.com/happyfish100/fastdfs
    

    编译安装

    安装libfastcommonn

    cd libfastcommon
    ./make.sh
    ./make.sh install
    cd ..
    

    安装fastdfs

    cd fastdfs
    ./make.sh
    ./make.sh install
    cd ..
    

    Tracker配置

    修改配置文件

    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    vim /etc/fdfs/tracker.conf
    

    修改以下参数:(备注:可以创建多个tracker,不同的tracker使用不同的配置文件。)

    参数名 参数值 说明
    bind_addr 192.168.15.53 监听的ip地址
    port 22122 监听的端口
    base_path /home/fastdfs/storage_root 日志存放目录
    run_by_group fastdfs 运行组
    run_by_user fastdfs 运行用户

    配置systemctl文件

    打开配置文件:/usr/lib/systemd/system/fdfs_trackerd.service

    [unit]
    description=the fastdfs tracker server
    after=network.target
    
    [service]
    type=forking
    execstart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
    execstop=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
    execrestart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
    
    [install]
    wantedby=multi-user.target
    

    状态维护

    systemctl enable fdfs_trackerd #自启动
    systemctl start fdfs_trackerd  #启动
    systemctl restart fdfs_trackerd  #重启
    systemctl stop fdfs_trackerd  #停止
    

    Storage配置

    修改配置文件

    (1)cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    (2)vim /etc/fdfs/storage.conf
    

    修改以下参数:

    参数名 参数值 说明
    group_name group1 Storage所属组,同组内数据对等。
    bind_addr 192.168.15.53 监听IP地址
    port 23000 监听的端口
    base_path /home/fastdfs/storage_root 日志存放目录
    store_path0 /home/fastdfs/data 存放数据目录
    tracker_server 192.168.15.53:22122 Tracker网络地址
    run_by_group fastdfs 运行组
    run_by_user fastdfs 运行用户
    check_file_duplicate 1 去重检测
    key_namespace FastDFS FastDHT中的命名空间
    keep_alive 1 长连接配置
    #include /etc/fdhtd/fdht_servers.conf .. 服务器的配置文件,一个#生效,两个##失效

    配置mod_fastdfs.conf

    cp /home/fastdfs/build/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
    cp /home/fastdfs/build/fastdfs/conf/http.conf /etc/fdfs/
    cp /home/fastdfs/build/fastdfs/conf/mime.types /etc/fdfs/
    vim /etc/fdfs/mod_fastdfs.conf
    

    修改以下参数:

    参数名 参数值 说明
    base_path /home/fastdfs/storage_root 日志存放目录
    tracker_server 192.168.15.53:22122 Tracker的网络地址
    store_path0 /home/fastdfs/storage_root Storage数据存储路径
    url_have_group_name true 使用浏览器访问的时候,需要添加上组名称
    group_count 1 Tracker监控的组数量

    尾部添加:

    [group1]
    group_name=group1
    storage_server_port=23000
    store_path_count=1
    store_path0=/home/fastdfs/storage_root
    

    开放权限

    chmod 755 /home/fastdfs
    chmod 755 /home/fastdfs/storage_root/data
    

    配置systemctl文件

       打开配置文件:`/usr/lib/systemd/system/fdfs_storaged.service`
    
    [Unit]
    Description=The fastdfs storage server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
    ExecStop=/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
    ExecRestart=/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
    
    [Install]
    WantedBy=multi-user.target
    

    状态维护

    systemctl enable fdfs_storaged #自启动
    systemctl start fdfs_storaged  #启动
    systemctl restart fdfs_storaged  #重启
    systemctl stop fdfs_storaged  #停止
    

    测试

    配置client

    mv /etc/fdfs/client.conf.sample client.conf
    vim /etc/fdfs/client.conf
    

    打开配置文件,修改以下参数:

    参数名 参数值 说明
    base_path /home/fastdfs/storage_root 日志存放目录
    tracker_server 192.168.15.53:22122 Tracker网络地址
    http.tracker_server_port 8081 服务器的http端口号

    查看运行状态

    查看进程:ps -ef |grep fdfs
    查看服务:fdfs_monitor /etc/fdfs/client.conf
    

    运行client

    1. 上传测试
      fdfs_test /etc/fdfs/client.conf upload 1.jpg
    2. 下载测试
      fdfs_test /etc/fdfs/client.conf download group1 M00/00/00/wKgPNVddOGKAfpr5AAYLSJJVrZY980_big.jpg
    3. 删除测试
      fdfs_test /etc/fdfs/client.conf delete group1 M00/00/00/wKgPNVddOGKAfpr5AAYLSJJVrZY980_big.jpg

    Fastdht安装

    Fastdht主要用于去重,同样的文件只保存一份,相同文件上传仅产生一个软连接,所有软连接删除则文件删除。

    下载

    https://github.com/happyfish100/fastdht   
    

    Brekelydb安装

    http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
    

    Brekelydb编译安装

    cd db-6.2.23.NC/build_unix
    ../dist/configure
    make
    make install
    

    Fastdht编译安装

    cd fastdht
    ./make.sh
    ./make.sh install
    

    Fastdht配置

    Fastdht客户端访问配置

    vim /etc/fdht/fdht_client.conf
    
    参数名 参数值 说明
    base_path /home/fastdfs/storage_root 日志存放目录
    keep_alive 1 长连接
    #include fdht_servers.conf .. 服务器的配置文件,一个#生效,两个##失效

    Fastdht服务器访问配置

    vim /etc/fdht/fdht_servers.conf
    
    参数名 参数值 说明
    group_count 1 组数
    group0 192.168.15.14:11411 该组的网络地址

    Fastdht服务器配置

    vim /etc/fdht/fdhtd.conf
    
    参数名 参数值 说明
    bind_addr 192.168.15.14 fastdht监听IP
    port 11411 fastdht监听端口
    bash_path /home/fastdfs/storage_root 日志存放目录
    #include /etc/fdhtd/fdht_servers.conf .. 服务器的配置文件,一个#生效,两个##失效
    run_by_group fastdfs 运行组
    run_by_user fastdfs 运行用户

    配置systemctl文件

       打开配置文件:`/usr/lib/systemd/system/fdhtd.service`
    
    [Unit]
    Description=The fastdht server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf start
    ExecStop=/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf stop
    ExecRestart=/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf restart
    
    [Install]
    WantedBy=multi-user.target
    

    状态维护

    systemctl enable fdhtd #自启动
    systemctl start fdhtd #启动
    systemctl restart fdhtd   #重启
    systemctl stop fdhtd  #停止

    相关文章

      网友评论

          本文标题:2.Centos下部署Fastdfs

          本文链接:https://www.haomeiwen.com/subject/usvcsttx.html