FastDFS文件系统部署

一、FastDFS部署文件下载

1.1 部署逻辑

FastDFS部署分为两部分:

1、FastDFS文件系统部署

FastDFS文件系统分为tracker、storage两部分,tracker作为文件系统的入口,用来调度管理storage;storage节点负责真正存储文件;

2、Nginx服务部署

部署Nginx服务通过nginx-fastdfs插件向外提供http协议的文件访问入口.

1.2 安装包下载

1、fastdfs-6.15.2.tar.gz

下载地址:https://codeload.github.com/happyfish100/fastdfs/tar.gz/refs/tags/V6.15.2

2、libfastcommon-1.0.84.tar.gz

下载地址:https://codeload.github.com/happyfish100/libfastcommon/tar.gz/refs/tags/V1.0.84

3、libserverframe-1.2.12.tar.gz

下载地址:https://codeload.github.com/happyfish100/libserverframe/tar.gz/refs/tags/V1.2.12

4、fastdfs-nginx-module-1.26.tar.gz

下载地址:https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/refs/tags/V1.26(Nginx的fastdfs模块,在配置nginx访问fastdfs时需要)

5、nginx-1.30.2.tar.gz

下载地址:https://nginx.org/download/nginx-1.30.2.tar.gz

二、tracker节点部署

2.1 安装过程

1、在部署trakcer服务的主机下新建fastdfs目录,并将下载的文件上传到fastdfs目录下,在目录下解压文件;

cd fastdfs
tar -xzvf fastdfs-6.15.2.tar.gz 
tar -zxvf libfastcommon-1.0.84.tar.gz 
tar -zxvf libserverframe-1.2.12.tar.gz

2、检查依赖的包

rpm -q libevent
rpm -q pcre-devel
rpm -q zlib-devel

3、安装libfastcommon

cd libfastcommon-1.0.84/
./make.sh && ./make.sh install

4、安装3、libserverframe

cd libserverframe-1.2.12/
./make.sh && ./make.sh install

5、安装fastdfs

cd fastdfs-6.15.2/
./make.sh && ./make.sh install

2.2 tracker服务配置

1、创建tracker文件存储路径

mkdir -p /data/fastdfs/tracker

2、配置tracker.conf

vi /etc/fdfs/tracker.conf
配置参数:
    disabled = false
    port = 22122
    base_path = /data/fastdfs/tracker(配置为上面创建的tracker文件存放路径)

3、启动/停止tracker服务

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop

4、查看fastdfs日志

日志文件路径
    /data/fastdfs/tracker/logs/
    /data/fastdfs/storage/logs/
其中/data/fastdfs实在confg文件中配置的base_path路径.

三、storage节点部署

3.1 安装过程

1、在部署storage服务的主机下新建fastdfs目录,并将下载的文件上传到fastdfs目录下,在目录下解压文件;

cd fastdfs
tar -xzvf fastdfs-6.15.2.tar.gz 
tar -zxvf libfastcommon-1.0.84.tar.gz 
tar -zxvf libserverframe-1.2.12.tar.gz

2、检查依赖的包

rpm -q libevent
rpm -q pcre-devel
rpm -q zlib-devel

3、安装libfastcommon

cd libfastcommon-1.0.84/
./make.sh && ./make.sh install

4、安装3、libserverframe

cd libserverframe-1.2.12/
./make.sh && ./make.sh install

5、安装fastdfs

cd fastdfs-6.15.2/
./make.sh && ./make.sh install

storage节点至少要部署2个,文件上传后会在这两个节点之间同步存储。

3.2 storage服务配置

1、创建storage文件存储路径

mkdir -p /data/fastdfs/storage

2、配置storage.conf

vi /etc/fdfs/storage.conf
配置参数:
    disabled = false
    base_path = /data/fastdfs/storage
    store_path0 = /data/fastdfs/storage
    tracker_server = 10.76.104.44:22122(修改为tracker节点的IP和端口)

3、启动/停止storage服务

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop

四、测试fastdfs文件上传

4.1 配置fastdfs的client

vi /etc/fdfs/client.conf
配置参数:
    tracker_server = 10.76.104.44:22122(修改为tracker节点的IP和端口)

4.2 测试文件上传

fdfs_upload_file /etc/fdfs/client.conf /测试文件目录/测试文件.txt
文件上传成功则返回文件路径:M00/00/00/CkxoO2oznHmAX2ccAAAAAAAAAAA0334200

五、Nginx部署

5.1 下载安装包

配置fastdfs的nginx服务需要下载fastdfs-nginx-module和nginx安装包,nginx服务需要在所有storage节点上部署,tracker可以选择部署。部署后的效果是可以直接访问storage上nginx访问文件,也可以通过访问tracker上的nginx访问文件系统(实际是负载分发到storage)

1、fastdfs-nginx-module-1.26.tar.gz

Nginx的fastdfs模块,在配置nginx访问fastdfs时需要,下载地址:https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/refs/tags/V1.26

2、nginx-1.30.2.tar.gz

下载地址:https://nginx.org/download/nginx-1.30.2.tar.gz

5.2 安装nginx及fastdfs模块

1、上传安装包到fastdfs目录后,解压

tar -zxvf nginx-1.30.2.tar.gz
tar -zxvf fastdfs-nginx-module-1.26.tar.gz

2、配置nginx插件

cd nginx-1.30.2/
注意:如果本地环境已经安装了nginx服务,重新安装nginx会覆盖原来安装的nginx服务,可能会丢失掉之前安装的插件。
./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs/fastdfs-nginx-module-1.26/src
如果是在以前安装的nginx服务上新增插件,可以先查看之前的安装情况:
    /usr/local/nginx/sbin/nginx -V
通过此命令查看并备份出原nginx编译安装参数,在原编译安装参数基础上新增fastdfs模块编译安装参数.

3、编译&安装

make
make install

5.3 配置nginx的fastdfs模块访问

1、拷贝配置文件

cp /root/fastdfs/fastdfs-6.15.2/conf/http.conf /etc/fdfs/
cp /root/fastdfs/fastdfs-6.15.2/conf/mime.types /etc/fdfs/
cp /root/fastdfs/fastdfs-nginx-module-1.26/src/mod_fastdfs.conf /etc/fdfs/

2、配置mod_fastdfs.conf

vi /etc/fdfs/mod_fastdfs.conf
配置参数:
    tracker_server=10.76.104.44:22122(修改为tracker节点的IP和端口)
    url_have_group_name = true(url包含group名)
    store_path0=/data/fastdfs/storage(storage节点文件存储路径)

5.4 配置nginx的地址转发

1、配置storage节点上的nginx.conf

vi /usr/local/nginx/conf/nginx.conf

    server {
        listen       30000;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        client_max_body_size 500M;

        # fastdfs 的文件访问路径, 将fastdfs文件访问的根路径指向ngx_fastdfs_module
        location /group1/ {
            ngx_fastdfs_module;
        }

        #其它路径配置
        location /others/ {
            location /others/xxx1/ {
                。。。
            }
        }
    }

2、配置tracker节点上的nginx.conf实现负载分发

vi /usr/local/nginx/conf/nginx.conf

    http {
        include       mime.types;
        default_type  application/octet-stream;

        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';

        #access_log  logs/access.log  main;

        sendfile        on;
        #tcp_nopush     on;

        #keepalive_timeout  0;
        keepalive_timeout  65;

        #gzip  on;

        # 定义 storage 上游服务器组
        upstream fastdfs_storage {
            # 负载均衡策略(默认轮询)
            server storage节点一IP:30000;
            server storage节点二IP:30000;

            # 可选:权重分配
            # server storage节点一IP:30000 weight=1;
            # server storage节点二IP:30000 weight=1;
        }

        server {
            listen       80;
            server_name  localhost;

            #access_log  logs/host.access.log  main;

            # 将 /group1/ 的请求转发到 storage 组
            location /group1/ {
                proxy_pass http://fastdfs_storage;

                # 传递客户端真实 IP
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                # 超时设置
                proxy_connect_timeout 10;
                proxy_read_timeout 30;
                proxy_send_timeout 30;
            }

            location / {
                root   html;
                index  index.html index.htm;
            }
    }

5.4 配置nginx后台服务

vi /etc/systemd/system/nginx.service
    文件内容:
        [Unit]
        Description=Nginx server for FastDFS
        After=network.target

        [Service]
        Type=forking
        PIDFile=/usr/local/nginx/logs/nginx.pid
        ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
        ExecReload=/usr/local/nginx/sbin/nginx -s reload
        ExecStop=/usr/local/nginx/sbin/nginx -s stop
        PrivateTmp=true

        [Install]
        WantedBy=multi-user.target

5.5 启动/停止nginx服务

systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service

5.6 验证通过nginx服务访问上传的文件

1、直接访问storage节点上的nginx

curl http://storage节点IP:30000/group1/M00/00/00/CkxoO2oznHmAX2ccAAAAAAAAAAA0334200

2、访问tracker节点上的nginx

curl http://trackerIP/group1/M00/00/00/CkxoO2oznHmAX2ccAAAAAAAAAAA0334200

6.启用多个tracker节点

6.1.配置并启动tracker

与单节点配置tracker节点一样配置tracker.conf文件;
启动trakerd服务

6.2.配置storage

修改storage.conf文件配置,增加新加入的tracker节点配置;
每增加一个tracker节点,增加一行tracker_server配置,例如:
tracker_server=10.0.0.1:22122
tracker_server=10.0.0.2:22122
评论 4
暂无评论,来说点什么吧~

发表评论
邮箱用于接收评论确认通知
最多3000字符,评论提交后需要管理员审核