0%

环境升级- -Fastdfs

升级 fastdfs

简介

此次 fastdfs 升级涉及到的服务和对应版本如下:

服务名称 旧版本 新版本
fastdfs 3.06 6.07
libfastcommon 1.05 1.54
nginx 1.10.1 1.20.1
fastdfs-nginx-module 1.0.6 1.22

编译安装

  • libfastcommon 源码编译安装
  • fastdfs 源码编译安装
  • nginx 源码编译安装
    • fastdfs-nginx-module
  • libfastcommon 编译安装

libfastcommon 编译安装

  • 下载

    1
    2
    # 下载 libfastcommon 源码包
    git clone https://github.com/happyfish100/libfastcommon.git
  • 编译安装

    1
    2
    3
    4
    export DESTDIR='${HOME}/fastdfs/'
    cd libfastcommon
    sh make.sh # 编译
    sh make.sh install # 安装

fastdfs 编译安装

  • 下载

    1
    2
    # 下载 fastdfs 源码包
    git clone https://github.com/happyfish100/fastdfs.git
  • 编译安装

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    cd fastdfs
    # 修改 make.sh 脚本
    vim make.sh
    # 修改配置文件目录
    TARGET_CONF_PATH=$DESTDIR/conf
    # 修改系统启停脚本,此脚本仅针对 root 用户,非 root 用户由于没有权限操作 system ,此脚本未使用
    TARGET_SYSTEMD_PATH=$TARGET_PREFIX/systemd/system

    # 声明全局变量
    export C_INCLUDE_PATH=${HOME}/fastdfs/usr/include
    export LIBRARY_PATH=${HOME}/fastdfs/usr/lib
    export LD_LIBRARY_PATH=${HOME}/fastdfs/usr/lib64

    sh make.sh # 编译
    sh make.sh install # 安装

nginx、fastdfs-nginx-module 编译安装

  • 下载

    1
    2
    3
    4
    5
    6
    # 下载 nginx1.20.1 包 
    wget http://nginx.org/download/nginx-1.20.1.tar.gz
    tar -zxf nginx-1.20.1.tar.gz
    cd nginx-1.20.1/src
    # 下载 fastdfs-nginx-module 源码包
    git clone https://github.com/happyfish100/fastdfs-nginx-module.git
  • 编译安装

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    cd nginx-1.20.1/src/fastdfs-nginx-module/src
    # 修改默认 fastdfs 路径为应用对应路径,将 /etc/fdfs/ 修改为应用配置文件目录 ${HOME}/fastdfs/conf
    vim config
    CFLAGS="...(此处省略) -DFDFS_MOD_CONF_FILENAME='\"${HOME}/fastdfs/conf/mod_fastdfs.conf\"'"

    cd nginx-1.20.1
    ./configure --prefix=../nginx --add-module=src/fastdfs-nginx-module/src
    make -j 2 # 数值可根据自身系统 cpu 核数调整
    make -j 2 install # 数值可根据自身系统 cpu 核数调整

    # 复制 mod_fastdfs.conf 至 fastdfs
    cp nginx-1.20.1/src/fastdfs-nginx-module/src/mod_fastdfs.conf fastdfs/conf

    # 检查
    cd nginx/sbin
    ./nginx -v # 显示版本为 1.20.1
    ldd nginx # libfastdfscommon 为对应的路径

将编译完成的服务打包

1
tar -zcf fastdfs.tar.gz nginx fastdfs

安装升级

升级流程:

  • 停止服务
  • 备份迁移旧版本服务
  • 下发新版本服务
  • 修改配置文件
  • 调整全局环境变量
  • 启动服务

停止服务

1
2
# 将集群中所有相关服务停止
killall -v nginx fdfs_trackerd fdfs_storaged

备份迁移旧版本服务

1
2
3
4
# 将集群中所有服务备份迁移
mkdir -p backup
mv fastdfs backup/fastdfs-old
mv nginx backup/nginx-old

下发新版本服务

fastdfs.tar.gz 下发至应用用户家目录下,并解压。会生成 fastdfs nginx 两个目录

修改配置文件

所有需要调整的配置文件中 集群信息 路径 建议根据原有配置。

  • tracker.conf

    1
    2
    vim fastdfs/conf/tracker.conf
    base_path = /home/yuqing/fastdfs # 根据原来的配置文件调整路径信息、tracker 集群信息
  • storage.conf

    1
    2
    3
    4
    5
    6
    vim fastdfs/conf/storage.conf
    group_name = group1 # 根据原来的配置文件调整 group 信息
    base_path = /home/yuqing/fastdfs # 根据原来的配置文件调整路径信息
    store_path0 = /home/yuqing/fastdfs # 根据原来的配置文件调整路径信息
    tracker_server = 192.168.209.121:22122 # tracker 集群信息调整
    tracker_server = 192.168.209.122:22122 # tracker 集群信息调整
  • mod_fastdfs.conf

    1
    2
    3
    4
    vim fastdfs/conf/mod_fastdfs.conf
    base_path=/tmp # 根据原来的配置文件调整路径信息,若是默认配置,*建议*调整为应用用户目录下
    tracker_server=tracker:22122 # 根据原来的 tracker 集群信息调整
    store_path0=/home/yuqing/fastdfs # 此路径若注释,则使用 base_path 路径信息
  • client.conf

    1
    2
    3
    4
    vim fastdfs/conf/client.conf
    base_path = /home/yuqing/fastdfs # 根据原来的配置文件调整路径信息,若是默认配置,*建议*调整为应用用户目录下
    tracker_server = 192.168.0.196:22122 # 根据原来的 tracker 集群信息调整
    tracker_server = 192.168.0.197:22122 # 根据原来的 tracker 集群信息调整
  • nginx.conf

    1
    cp backup/nginx-old/conf/nginx.conf nginx/conf  # 使用原来的 nginx.conf 文件
  • 移除旧有配置文件

    1
    2
    3
    4
    # 查看 tracker 的数据存储路径,非 storage 存储路径
    cd data
    # 删除旧连接信息,服务启动后会重新生成文件
    rm -f storage*conf

调整全局环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cat > .bash_profile << EOF
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/fastdfs/usr/bin
C_INCLUDE_PATH=${HOME}/fastdfs/usr/include
LIBRARY_PATH=${HOME}/fastdfs/usr/lib
LD_LIBRARY_PATH=${HOME}/fastdfs/usr/lib64

export PATH C_INCLUDE_PATH LIBRARY_PATH LD_LIBRARY_PATH

EOF

启动服务

1
2
3
4
5
# 启动 fastdfs
${HOME}/fastdfs/usr/bin/fdfs_trackerd ${HOME}/fastdfs/conf/tracker.conf
${HOME}/fastdfs/usr/bin/fdfs_storaged ${HOME}/fastdfs/conf/storage.conf
# 启动 nginx
${HOME}/nginx/sbin/nginx ${HOME}/nginx/conf/nginx.conf