快捷搜索:  汽车  科技

fastdfs集群状态查询(在麒麟服务器上部署FastDFS)

fastdfs集群状态查询(在麒麟服务器上部署FastDFS)wget https://github.com/happyfish100/fastdfs/archive/V6.06.zip(2)下载 FastDFS整个搭建所需环境资源及用途如下表:(1) 下载libfastcommonwget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.zip

前言:本文为大家如何在麒麟服务器上部署FastDFS,请大家多多点赞、收藏、评论、关注哦![来看我]

什么是FastDFS

FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。

FastDFS 系统有三个角色:跟踪服务器(Tracker Server)存储服务器(Storage Server)客户端(Client)

  • Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的storage server和group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。多个 Tracker 之间是对等关系,不存在单点故障。
  • Storage Server: 存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,组内的storage server上的数据互为备份。
  • Client:客户端,上传下载数据的服务器。
1 部署 FastDFS

系统软件说明:

  • CentOS 7.6
  • libfastcommon: FastDFS分离出的一些公用函数包
  • FastDFS: FastDFS本体
  • fastdfs-nginx-module: FastDFS 和 nginx 的关联模块,解决组内同步延迟问题
  • nginx

整个搭建所需环境资源及用途如下表:

fastdfs集群状态查询(在麒麟服务器上部署FastDFS)(1)

(1) 下载libfastcommon

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.zip

(2)下载 FastDFS

wget https://github.com/happyfish100/fastdfs/archive/V6.06.zip

(3)下载 nginx

wget https://nginx.org/download/nginx-1.18.0.tar.gz

(4)下载 nginx 编译依赖

pcre

wget https://ftp.pcre.org/pub/pcre/pcre-8.44.zip

zlib

wget http://zlib.net/zlib-1.2.11.tar.gz

openssl

wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1g.zip

fastdfs-nginx-module

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.zip

(5) 安装需要的软件

<span style="font-weight: normal;">vim /etc/fdfs/tracker.conf需要修改的内容如下port=22122 # tracker服务器端口(默认22122 一般不修改)base_path=/data/fastdfs # 存储日志和数据的根目录 启动 fastdfs-tracker 服务并加入自动启动systemctl start fdfs_trackerdsystemctl enable fdfs_trackerd# centos 可以使用 systemctl enable 命令,但kylin操作系统运行会报错,需要# 安装 chkconfig 命令(apt install sysv-rc-conf),使用 chkconfig 来设置自动启动(将# fdfs_trackerd 的 2,3,4,5项启用即可)。 netstat -tulnp # 查看服务是否启动,端口是否打开</span>

(6) 编译安装libfastcommon

<span style="font-weight: normal;">vim /etc/fdfs/tracker.conf需要修改的内容如下port=22122 # tracker服务器端口(默认22122 一般不修改)base_path=/data/fastdfs # 存储日志和数据的根目录 启动 fastdfs-tracker 服务并加入自动启动systemctl start fdfs_trackerdsystemctl enable fdfs_trackerd# centos 可以使用 systemctl enable 命令,但kylin操作系统运行会报错,需要# 安装 chkconfig 命令(apt install sysv-rc-conf),使用 chkconfig 来设置自动启动(将# fdfs_trackerd 的 2,3,4,5项启用即可)。 netstat -tulnp # 查看服务是否启动,端口是否打开</span>

(7)编译安装FastDFS

unzip V6.06.zipcd fastdfs-6.06./make.sh./make.sh install 重新载入系统服务脚本systemctl daemon-reload 准备配置文件cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf # tracker节点cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf # storage节点cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf # 客户端文件,测试用cp /root/fastdfs/fastdfs-6.06/conf/http.conf /etc/fdfs/ # 供nginx访问使用cp /root/fastdfs/fastdfs-6.06/conf/mime.types /etc/fdfs/ # 供nginx访问使用

tracker server配置:

vim /etc/fdfs/storage.conf需要修改的内容如下port=23000 # storage服务端口(默认23000 一般不修改)base_path=/data/fastdfs # 数据和日志文件存储根目录store_path0=/data/fastdfs # 第一个存储目录tracker_server=192.168.0.1:22122 # tracker服务器IP和端口tracker_server=192.168.0.2:22122 # tracker服务器IP和端口http.server_port=8888 # http访问文件的端口(默认8888 看情况修改 和nginx中保持一致) 启动 fastdfs-storage 服务并加入自动启动systemctl start fdfs_storagedsystemctl enable fdfs_storaged# centos 可以使用 systemctl enable 命令,但kylin操作系统运行会报错,需要# 安装 chkconfig 命令(apt install sysv-rc-conf),使用 chkconfig 来设置自动启动(将# fdfs_storaged 的 2,3,4,5项启用即可)。 netstat -tulnp # 查看服务是否启动,端口是否打开

storage server 配置

vim /etc/fdfs/storage.conf需要修改的内容如下port=23000 # storage服务端口(默认23000 一般不修改)base_path=/data/fastdfs # 数据和日志文件存储根目录store_path0=/data/fastdfs # 第一个存储目录tracker_server=192.168.0.1:22122 # tracker服务器IP和端口tracker_server=192.168.0.2:22122 # tracker服务器IP和端口http.server_port=8888 # http访问文件的端口(默认8888 看情况修改 和nginx中保持一致) 启动 fastdfs-storage 服务并加入自动启动systemctl start fdfs_storagedsystemctl enable fdfs_storaged# centos 可以使用 systemctl enable 命令,但kylin操作系统运行会报错,需要# 安装 chkconfig 命令(apt install sysv-rc-conf),使用 chkconfig 来设置自动启动(将# fdfs_storaged 的 2,3,4,5项启用即可)。 netstat -tulnp # 查看服务是否启动,端口是否打开

查看集群状态

# fdfs_monitor /etc/fdfs/storage.conf list

Client配置

# vim /etc/fdfs/client.conf

#需要修改的内容如下

base_path=/data/fastdfstracker_server=192.168.0.1:22122 # tracker服务器IP和端口tracker_server=192.168.0.2:22122 # tracker服务器IP和端口

上传文件测试:

# fdfs_upload_file /etc/fdfs/client.conf testfile.zip

测试返回文件路径和 ID 则表示成功,如:group1/M00/00/00/xxxxxx.zip

2 部署 nginx 和 fastdfs-nginx-module

(1)编译安装

参考编译安装 nginx 的文章 https://www.yuque.com/liling-rpu83/qtgq0i/wkplwm ,在编译过程中加入 fastdfs-nginx-module 模块即可:

./configure --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-openssl=../openssl-OpenSSL_1_1_1g --with-pcre=../pcre-8.44 --with-zlib=../zlib-1.2.11 --add-module=../fastdfs-nginx-module-1.22/src

# make

# make install

注意要先安装 libfastcommon,否则编译时会报错。

(2)配置运行

配置 fastdfs-nginx-module 配置文件:

# cp /root/fastdfs/nginx/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs# vim /etc/fdfs/mod_fastdfs.conf需要修改的内容如下:注意此处容易漏掉 tracker server 配置,导致 nginx 启动后异常,可查看 nginx 错误日志解决。tracker_server = 192.168.0.1:22122 # tracker服务器IP和端口tracker_server = 192.168.0.2:22122 # tracker服务器IP和端口url_have_group_name=truebase_path=/data/fastdfsstore_path0=/data/fastdfs

配置 nginx.conf:

# vim /usr/local/nginx/conf/nginx.conf 增加如下内容:server { listen 8888; ## 该端口为storage.conf中的http.server_port相同 server_name localhost; location ~/group[0-9]/ { root /data/fastdfs; ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }

测试下载,用外部浏览器访问刚才已传过的文件,引用返回的 ID

http://xx.xx.xx.xx:8888/group1/M00/00/00/rBFSDV7zFCmAW-KFAA3wT-06qHQ.06.zip

弹出下载则目前 nginx 已经 OK。

fastdfs集群状态查询(在麒麟服务器上部署FastDFS)(2)

3 配置文件访问的负载均衡和高可用

在192.168.0.100和101上安装nginx、keepalived

yum install -y nginx keepalived

nginx 关键配置文件如下:

upstream fdfs_group01 { server 192.168.0.10:8888 weight=1 max_fails=2 fail_timeout=30s; server 192.168.0.11:8888 weight=1 max_fails=2 fail_timeout=30s;}server { listen 80; server_name localhost; location /group01{ proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_pass http://fdfs_group01; expires 30d; }}

keepalived 关键配置文件如下:

global_defs { router_id LVS_DEVEL} vrrp_script chk_ngx { script "/etc/keepalived/check_nginx.sh" interval 2 weight -5 fall 3 rise 2} vrrp_instance VI_1 { interface eno16777984 state MASTER priority 100 virtual_router_id 11 advert_int 1 authentication { auth_type PASS auth_pass 1111 } unicast_src_ip 192.168.0.100 unicast_peer { 192.168.0.101 } virtual_ipaddress { 192.168.0.200 } track_script { chk_ngx } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault"}

nginx 监测脚本如下:

check_nginx.sh

#!/bin/bash counter=$(ps -C nginx --no-heading|wc -l)if [ "${counter}" = "0" ]; then exit 1else exit 0fi

作者:李凌

更多干货尽在【中国信创服务社区】,点击左下角“了解更多”即可进入!

猜您喜欢: