为解决文件频繁上传给服务器造成的压力,引入了fastdfs分布式文件系统,下面是安装及部署的具体步骤。
一、下载安装libfastcommon
1.1 下载libfastcommon
地址:https://github.com/happyfish100/libfastcommon/releases
。
wget https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.52.tar.gz
1.2 解压libfastcommon
#解压
tar -xvf V1.0.52.tar.gz
#进入目录
cd libfastcommon-1.0.52/
1.3 编译安装
# 执行这步需要gcc依赖
sudo ./make.sh
sudo ./make.sh install
1.4 创建软链接
sudo ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
sudo ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
sudo ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
sudo ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
二、下载安装FastDFS
2.1 下载FastDFS
地址:https://github.com/happyfish100/fastdfs/releases
。
wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.07.tar.gz
2.2 解压FastDFS
tar -xvf ./V6.07.tar.gz
cd fastdfs-6.07/
2.3 编译、安装
sudo ./make.sh
sudo ./make.sh install
三、 配置Tracker服务
安装成功后,在/etc
目录下会有一个fdfs
的目录。进入目录,可以看到示例配置文件:
[winbert@sd-vm-0004433 fastdfs-6.07]$ cd /etc/fdfs/
[winbert@sd-vm-0004433 fdfs]$ ll
total 32
-rw-r--r-- 1 root root 1909 Jul 3 10:05 client.conf.sample
-rw-r--r-- 1 root root 10246 Jul 3 10:05 storage.conf.sample
-rw-r--r-- 1 root root 620 Jul 3 10:04 storage_ids.conf.sample
-rw-r--r-- 1 root root 9138 Jul 3 10:04 tracker.conf.sample
复制一份tracker.conf.sample
并重命名为tracker.conf
:
[winbert@sd-vm-0004433 fdfs]$ cp ./tracker.conf.sample ./tracker.conf
编辑tracker.conf
配置文件,主要配置项如下:
# 配置文件是否不生效,false 为生效
disabled=false
# 提供服务的端口
port=22122
# Tracker 数据和日志目录地址,针对你自己的环境进行修改,这里是我本地目录
base_path = /xf/fastdf
# HTTP 服务端口
http.server_port=80
如果上面base_path
不存在,则进行创建mkdir -p /xf/fastdf
。
使用ln -s
建立软链接:
sudo ln -s /usr/bin/fdfs_trackerd /usr/local/bin
sudo ln -s /usr/bin/stop.sh /usr/local/bin
sudo ln -s /usr/bin/restart.sh /usr/local/bin
启动服务:
service fdfs_trackerd start
service fdfs_trackerd stop
service fdfs_trackerd restart
查看服务状态:
sudo systemctl status fdfs_trackerd
查看端口监听:
[winbert@sd-vm-0004433 xf]$ sudo netstat -unltp|grep fdfs
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 25087/fdfs_trackerd
如果状态显示Active: active (running)
并且端口监听22122
说明启动成功。
启动成功后,在你配置的base_path
下,会形成如下目录结构:
${base_path}
|__data
| |__storage_groups.dat:存储分组信息
| |__storage_servers.dat:存储服务器列表
|__logs
| |__trackerd.log: tracker server 日志文件
四、 配置Storage服务
进入/etc/fdfs
目录,复制FastDFS存储器样例配置文件storage.conf.sample
,并重命名为storage.conf
:
[winbert@sd-vm-0004433 fastdfs-6.07]$ cd /etc/fdfs/
[xiaofang@sd-vm-0004433 fdfs]$ sudo cp ./storage.conf.sample ./storage.conf
编辑storage.conf
,主要编辑以下内容:
# 配置文件是否不生效,false 为生效
disabled=false
# 指定此 storage server 所在 组(卷)
group_name=group1
# storage server 服务端口
port=23000
# 心跳间隔时间,单位为秒 (这里是指主动向 tracker server 发送心跳)
heart_beat_interval=30
# Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成)
base_path= /xf/fastdf/storage
# 存放文件时 storage server 支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。
store_path_count=1
# 逐一配置 store_path_count 个路径,索引号基于 0。
# 如果不配置 store_path0,那它就和 base_path 对应的路径一样。
store_path0= /xf/fastdf/storage
# FastDFS 存储文件时,采用了两级目录。这里配置存放文件的目录个数。
# 如果本参数只为 N(如: 256),那么 storage server 在初次运行时,会在 store_path 下自动创建 N * N 个存放文件的子目录。
subdir_count_per_path=256
# tracker_server的取值格式为“HOST:PORT”,HOST可以是双IP或者逗号分隔的主机名,双IPS必须是内(内网)IP和外(外)IP,或者两种不同类型的内网
# (内联网)IP。
# 例如:192.168.2.100,122.244.141.46:22122
# 另一个例如:192.168.1.10,172.17.4.21:22122
# tracker_server的列表 ,会主动连接tracker_server
# 有多个tracker server时,每个 tracker server 写一行 公网访问需要配置公网IP
# tracker_server1
tracker_server=192.168.1.190:22122
# tracker_server2
# tracker_server=192.168.1.190:22122
# 允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定。
sync_start_time=00:00
sync_end_time=23:59
如果storage的base_path
位置不存在,则创建:
mkdir -p /xf/fastdfs/storage
使用ln -s
建立软链接:
sudo ln -s /usr/bin/fdfs_storaged /usr/local/bin
启动storage
服务,启动前请确保Tracker
是启动的,初次启动成功,会在/xf/fastdfs/storage
目录(你的路径可能不叫这个名字)下创建data
、logs
两个目录。:
service fdfs_storaged start
service fdfs_storaged stop
service fdfs_storaged restart
查看storage
服务状态:
[winbert@sd-vm-0004433 fdfs]$ sudo systemctl status fdfs_storaged
查看监听:
[winbert@sd-vm-0004433 fdfs]$ sudo netstat -unltp|grep fdfs
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 25087/fdfs_trackerd
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 25366/fdfs_storaged
如果状态显示Active: active (running)
并且端口监听23000
说明启动成功。
查看Storage和Tracker是否在通信:
[winbert@sd-vm-0004433 fdfs]$ /usr/bin/fdfs_monitor /etc/fdfs/storage.conf