FastDFS 安装部署

本文介绍了 FastDFS 的安装部署过程。首先,需要准备好设备环境,并安装相关依赖。接着,按照以下步骤进行安装:下载 FastDFS,解压安装,编辑配置文件,创建 system 服务,启动服务,并查看状态。最后,进行 Client 测试,测试上传文件,返回 ID 表示成功。

FastDFS 安装部署

1. 设备环境

Host IP Port OS Software
cnode1 10.128.170.30 22122 CentOS 7.9.2009 fastfds 6.06 trackerd
cnode1 10.128.170.30 23000 CentOS 7.9.2009 fastfds 6.06 storaged
cnode2 10.128.170.31 22122 CentOS 7.9.2009 fastfds 6.06 trackerd
cnode2 10.128.170.31 23000 CentOS 7.9.2009 fastfds 6.06 storaged

编辑 hosts 文件:

1
vim /etc/hosts

添加如下内容:

1
2
10.128.170.30 cnode1
10.128.170.31 cnode2

2. 安装依赖

1
2
3
4
yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-deve
yum -y install pcre-devel openssl openssl-develyum -y install zlib zlib-deve
yum -y install perl
yum -y install unzip

3. 安装步骤

3.1 下载 fastfds

fastdfs wiki

根据 wiki 下载以下软件包:

  • libfastcommon-master.zip
  • fastdfs-6.06.tar.gz

3.2 解压安装

创建安装目录和数据目录

1
2
mkdir /opt/fastdfs
mkdir -p /data/fastdfs/{fastdfs_tracker,fastdfs_storage,fastdfs_storage_data1,fastdfs_storage_data2}

解压

1
2
unzip -d /opt/fastdfs/ /saasdata/soft/libfastcommon-master.zip
tar -zxvf /saasdata/soft/fastdfs-6.06.tar.gz -C /opt/fastdfs/

修改安装路径

1
2
3
sed -i '3c TARGET_PREFIX=/opt/fastdfs/fastdfs-6.06' /opt/fastdfs/fastdfs-6.06/make.sh
sed -i '4c TARGET_CONF_PATH=/opt/fastdfs/fastdfs-6.06/conf' /opt/fastdfs/fastdfs-6.06/make.sh
sed -i '5c TARGET_INIT_PATH=/opt/fastdfs/fastdfs-6.06/init.d' /opt/fastdfs/fastdfs-6.06/make.sh

编译安装

1
2
cd /opt/fastdfs/libfastcommon-master && ./make.sh && ./make.sh install > /dev/null
cd /opt/fastdfs/fastdfs-6.06 && ./make.sh && ./make.sh install > /dev/null

在 cnode1,cnode2 上进行同样的操作。

3.3 编辑配置文件

1
2
3
4
5
6
7
8
9
10
11
sed -i  '23c  base_path=/data/fastdfs/fastdfs_tracker' /opt/fastdfs/fastdfs-6.06/conf/tracker.conf
sed -i '11c group_name=group1' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '24c port = 23000' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '49c base_path = /data/fastdfs/fastdfs_storage' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '119c store_path_count = 2' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '129c store_path0 = /data/fastdfs/fastdfs_storage_data1' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '130c store_path1 = /data/fastdfs/fastdfs_storage_data2' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '145c tracker_server = cnode1:22122' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '146c tracker_server = cnode2:22122' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '180c file_distribute_path_mode = 0' /opt/fastdfs/fastdfs-6.06/conf/storage.conf
sed -i '352c http.server_port = 8888' /opt/fastdfs/fastdfs-6.06/conf/storage.conf

在 cnode1,cnode2 上进行同样的操作。

3.4 创建 system 服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
cat > /usr/lib/systemd/system/fdfs_trackerd.service << EOF
[Unit]
Description=fdfs_trackerd Server
After=network.target

[Service]
Type=forking
ExecStart=/opt/fastdfs/fastdfs-6.06/bin/fdfs_trackerd /opt/fastdfs/fastdfs-6.06/conf/tracker.conf start
ExecStop=/opt/fastdfs/fastdfs-6.06/bin/fdfs_trackerd /opt/fastdfs/fastdfs-6.06/conf/tracker.conf stop
PrivateTmp=true
Restart=always
RestartSec=1
StartLimitInterval=0

[Install]
WantedBy=multi-user.target
EOF

cat > /usr/lib/systemd/system/fdfs_storaged.service << EOF
[Unit]
Description=fdfs_storaged
After=network.target

[Service]
Type=forking
ExecStart=/opt/fastdfs/fastdfs-6.06/bin/fdfs_storaged /opt/fastdfs/fastdfs-6.06/conf/storage.conf start
ExecStop=/opt/fastdfs/fastdfs-6.06/bin/fdfs_storaged /opt/fastdfs/fastdfs-6.06/conf/storage.conf stop
PrivateTmp=true
Restart=always
RestartSec=1
StartLimitInterval=0

[Install]
WantedBy=multi-user.target
EOF

在 cnode1,cnode2 上进行同样的操作。

3.5 启动服务

1
2
3
systemctl daemon-reload
systemctl start fdfs_trackerd.service
systemctl start fdfs_storaged.service

在 cnode1,cnode2 上进行同样的操作。

查看状态

1
/opt/fastdfs/fastdfs-6.06/bin/fdfs_monitor /opt/fastdfs/fastdfs-6.06/conf/storage.conf

4. Client 测试

1
vim /opt/fastdfs/fastdfs-6.06/conf/client.conf

修改如下配置

1
2
3
base_path = /opt/fastdfs/fastdfs-6.06
tracker_server = cnode1:22122
tracker_server = cnode2:22122

测试上传文件,返回 ID 表示成功,如:group1/M00/00/00/xx.tar.gz

1
2
3
4
[root@cnode1 bin]# ./fdfs_upload_file /opt/fastdfs/fastdfs-6.06/conf/client.conf /root/Downloads/fastdfs-6.06.tar.gz
group1/M00/00/00/CoCqFWIUhZeATgjaAAxZcPR00vw.tar.gz
[root@cnode1 bin]# ./fdfs_upload_file /opt/fastdfs/fastdfs-6.06/conf/client.conf /root/Downloads/libfastcommon-master.zip
group1/M00/00/00/CoCqFmIUhZyAImx7AAPZehNXZm0384.zip

References

https://github.com/happyfish100/fastdfs/wiki/

FastDFS集群部署

FASTDFS

Centos7下FastDFS集群搭建

分布式文件系统(HDFS和FastDFS)