FastDFS 高可用集群部署【转】

该文详细描述了如何在两台服务器上部署FastDFS集群,包括Tracker和Storage节点的配置,Nginx模块设置,以及使用Keepalived实现VIP地址的高可用。

1.环境信息:

服务器

部署服务

192.168.222.11

Tracker(调度工作)、Storage(存储)、Nginx、Keepalived

192.168.222.12

Tracker(调度工作)、Storage(存储)、Nginx、Keepalived

192.168.222.13

以上两台的VIP地址

2.部署 FastDFS(两台机器同步操作,配置一致)


上传 fastdfs_soft.tar.gz 到两台 FastDFS 服务器(比如上传到了 /data 目录)

复制代码
上传 fastdfs_soft.tar.gz 到两台 FastDFS 服务器(比如上传到了 /data 目录)


$ cd /data/
$ tar zxvf fastdfs_soft.tar.gz
$ cd fastdfs_soft/yum_dependent/
$ yum -y localinstall ./*rpm
$ cd ../git_dependent/
$ cd libfastcommon; git checkout V1.0.67
$ ./make.sh clean && ./make.sh && ./make.sh install

$ cd ../libserverframe; git checkout V1.1.26
$ ./make.sh clean && ./make.sh && ./make.sh install

$ cd ../fastdfs; git checkout V6.9.5
$ ./make.sh clean && ./make.sh && ./make.sh install

$ ./setup.sh /etc/fdfs
复制代码

 

3.配置 FastDFS(两台机器同步操作,配置一致)


3.1 配置 tracker 节点

复制代码
$ cd /data/fastdfs_soft/conf/

# 覆盖原有配置
$ cp /data/fastdfs_soft/conf/tracker.conf /etc/fdfs/

# 需要修改 tracker 配置参数
$ vim /etc/fdfs/tracker.conf
base_path=/data/fastdfs/tracker   # 存储数据和日志目录

# 创建存储目录
$ mkdir -p /data/fastdfs/tracker
复制代码

 


3.2 配置 storage 节点

复制代码
# 覆盖原有配置
$ cp /data/fastdfs_soft/conf/storage.conf /etc/fdfs/


# 需要修改 storage 配置参数
$ vim /etc/fdfs/storage.conf
base_path = /data/fastdfs/storage
store_path0 = /data/fastdfs/storage
tracker_server = 192.168.222.11:22122       # 修改为第一个 tracker 的IP
tracker_server = 192.168.222.12:22122       # 修改为第二个 tracker 的IP

# 创建存储目录
$ mkdir /data/fastdfs/storage
复制代码


3.3 启动 tracker 和 storage

复制代码
# 启动 tracker 服务(两台机器操作)
fdfs_trackerd /etc/fdfs/tracker.conf start
# 验证 tracker 端口是否存在
netstat -lantup | grep 22122

# 启动 storage 服务(两台机器操作)
fdfs_storaged /etc/fdfs/storage.conf start
# 验证 storage 端口是否存在
netstat -lantup | grep 23000

# 查看集群信息
fdfs_monitor /etc/fdfs/storage.conf
# Storage 1 和 Storage 2 状态都是“ACTIVE”,则为正常
复制代码

 


4.配置fastdfs-nginx-module,编译安装 Nginx(两台机器同步操作,配置一致)

 

复制代码
$ cd /data/fastdfs_soft
$ tar zxvf nginx-1.24.0.tar.gz
$ cp -r git_dependent/fastdfs-nginx-module /usr/local/
$ cd /usr/local/fastdfs-nginx-module; git checkout V1.23
$ cd /data/fastdfs_soft/conf/
# 覆盖 fastdfs-nginx-module/src 目录下的 config 文件
$ cp config /usr/local/fastdfs-nginx-module/src/
$ cp mod_fastdfs.conf /etc/fdfs/

# 修改 mod_fastdfs.conf 配置参数
$ vim /etc/fdfs/mod_fastdfs.conf
base_path=/data/fastdfs/storage
store_path0=/data/fastdfs/storage     # 修改为 Storage 的存储路径
tracker_server=192.168.222.11:22122   # 修改为第一个 tracker 的IP
tracker_server=192.168.222.12:22122   # 修改为第二个 tracker 的IP
group_name=group1
url_have_group_name = true

# 编译安装 Nginx
$ cd /data/fastdfs_soft/nginx-1.24.0
$ ./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src
$ make && make install

# 修改 nginx 配置
# 在 location / 和 location = /50x.html 中间配置“location ~/group[0-9]/”
$ vim /usr/local/nginx/conf/nginx.conf
        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        location ~/group[0-9]/ {
            ngx_fastdfs_module;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

# 验证 Nginx 配置是否正常
$  /usr/local/nginx/sbin/nginx -t

# 启动 Nginx
$ /usr/local/nginx/sbin/nginx
复制代码

 

5.上传文件,访问测试

5.1 修改 client.conf 客户端配置(两台机器同步操作,配置一致)

复制代码
$ cd /data/fastdfs_soft/conf/
# 覆盖自带的 client.conf 配置文件
$ cp client.conf /etc/fdfs/

# 修改以下配置参数
$ vim /etc/fdfs/client.conf
base_path = /data/fastdfs/storage       # 修改为 Storage 的存储路径
tracker_server = 192.168.222.11:22122   # 修改为第一个 tracker 的IP
tracker_server = 192.168.222.12:22122   # 修改为第二个 tracker 的IP
复制代码

 


5.2 client 上传文件,访问测试

复制代码
# 上传文件(一台机器操作即可)
$ echo "testtest" >> /tmp/test.txt
$ fdfs_upload_file /etc/fdfs/client.conf /tmp/test.txt
group1/M00/00/00/wKjeDWbZJQ2ANRT0AAAACWPlbxI828.txt    # 返回的访问路径

# 访问测试(一台机器操作即可)
# 如果 curl 都可以返回“testtest”,则无问题。
$ curl http://192.168.222.11/group1/M00/00/00/wKjeDWbZJQ2ANRT0AAAACWPlbxI828.txt
$ curl http://192.168.222.12/group1/M00/00/00/wKjeDWbZJQ2ANRT0AAAACWPlbxI828.txt

# 两台机器都执行这个操作,查看是否有文件内容存在
# cat /data/fastdfs/storage/data/00/00/wKjeDWbZJQ2ANRT0AAAACWPlbxI828.txt

### 以上测试均无问题,则说明文件同步已无问题 ###
复制代码

 


6.部署 Keepalived,用于实现 VIP 漂移


6.1 安装 Keepalived(两台机器同步操作)
$ cd /data/fastdfs_soft/yum_keepalived
$ yum -y localinstall ./*rpm

6.2 配置 Keepalived

复制代码
# 在 fastdfs1 机器执行
$ vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     test@qq.com
   }
   notification_email_from test
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id jjxtslb1
}

vrrp_instance jjxt_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.222.13
    }
}


# 在 fastdfs2 机器执行
$ vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     test@qq.com
   }
   notification_email_from test
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id jjxtslb1
}

vrrp_instance jjxt_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      192.168.222.13
    }
}

### interface(指定网卡名称)需要确定网卡名称,要把 vip 绑定到哪个网卡上,我这里用的是 ens33 ###
### 这两个配置有两个不同的参数配置,state(主备标识)和priority(优先级) ###
复制代码

 


6.3 启动 keepalived(两台机器同步操作)
$ systemctl start keepalived # 启动 keepalived
1.
6.4 验证 keepalived
# 在 fastdfs1 机器查看网卡配置,查看 vip 是否存在
$ ip a

# 查看 keepalived 服务是否正常
$ systemctl status keepalived

# 多次执行 curl 命令,读取文件
$ curl http://192.168.222.14/group1/M00/00/00/wKjeDWbZJQ2ANRT0AAAACWPlbxI828.txt

6.5 将服务加入开机自启(两台机器同步操作)
$ chmod +x /etc/rc.d/rc.local

$ vi /etc/rc.local
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/nginx/sbin/nginx

$ systemctl enable keepalived

6.6 测试高可用
6.6.1 测试方法1
在 fastdfs1 机器停止 keepalived 服务,查看 vim 是否漂移至 fastdfs2 机器,如果漂移正常,可以测试下上传、下载文件。然后再恢复 fastdfs1 机器的 keepalived 服务,查看

6.6.2 测试方法2
将 fastdfs1 机器关机,然后测试 vip 是否可以正常使用,如正常再启动 fastdfs1 机器,然后查看 fastdfs 服务是否正常启动
-----------------------------------
转自

FastDFS 高可用集群部署_wx645b0963021e1的技术博客_51CTO博客
https://blog.51cto.com/u_16106270/12294746

 

posted @   paul_hch  阅读(159)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2023-12-17 2022年RHCE认证考题解析最新版—RH294环境【转】
点击右上角即可分享
微信分享提示