欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

分布式文件系统——fastDFS安装

程序员文章站 2024-03-08 14:03:04
...


准备两个 Linux 服务器。两个服务器分别作为 tracker 服务器(跟踪服务器)和 storage 服务器(存储服务器)。
Tracker 服务器 : 192.168.2.109
Storage 服务器 : 192.168.2.110
所有的安装包都存放在/root/upload 目录中。解压后的安装包根据具体命 令查看。(/usr/local/fastdfs)

1 核心安装

Tracker Server 和 Storage Server 完全一致的安装。 安装 FastDFS 5.08 版本

1.1安装 FastDFS 依赖

FastDFS 是 C 语言开发的应用。安装必须使用 make、cmake 和 gcc 编译器。 yum install -y make cmake gcc gcc-c++

1.2解压 FastDFS 核心库

libfastcommon 是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库
cd /root/upload unzip libfastcommon-master.zip -d /usr/local/fastdfs

1.3进入解压后的目录

cd /usr/local/fastdfs/libfastcommon-master

1.4编译安装

libfastcommon 没有提供 make 命令安装文件。使用的是 shell 脚本执行编译和安装。shell脚本为 make.sh
编译./make.sh
安装./make.sh install 有固定的默认安装位置。
在/usr/lib64 和/usr/include/fastcommon 两个目录中。

1.5创建软连接

因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib,所以需要创建软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/local/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/local/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

1.6解压 FastDFS 主程序

本案例使用 5.08 版本 FastDFS。
cd /root/upload tar -zxf FastDFS_v5.08.tar.gz -C /usr/local/fastdfs

1.7进入 FastDFS 主程序源码目录

cd /usr/local/fastdfs/FastDFS

1.8修改安装路径

此操作可选。在集群环境中使用默认安装路径安装。
两种安装方式都尝试一下。这里我选择的是修改了 后面也是修改之后的安装
vi /usr/local/fastdfs/FastDFS/make.sh
TARGET_PREFIX=DESTDIR/usr>TARGETPREFIX=DESTDIR/usr ->TARGET_PREFIX=DESTDIR/usr/local

1.9编译安装 .

/make.sh .
/make.sh install
安装后,FastDFS 主程序所在位置是:
/usr/local/bin - 可执行文件所在位置。
默认安装在/usr/bin 中。
/etc/fdfs - 配置文件所在位置。
就是默认位置。
/usr/local/lib64 - 主程序代码所在位置。
默认在/usr/bin 中。
/usr/local/include/fastdfs - 包含的一些插件组所在位置。
默认在/usr/include/fastdfs 中。

1.10FastDFS 安装后资源简介

1.10.1 服务脚本

/etc/init.d/目录中,脚本文件是 - fdfs-storaged 和 fdfs-trackerd
ls /etc/init.d/ | grep fdfs

1.10.2 配置文件模板

/etc/fdfs/ 目 录 中 , 配 置 文 件 是 - client.conf.sample 、 storage.conf.sample 和 tracker.conf.sample
ls /etc/fdfs/
tracker.conf.sample - 跟踪器服务配置文件模板
storage.conf.sample - 存储服务器配置文件模板
client.conf.sample - FastDFS 提供的命令行客户端配置文件模板。
可以通过命令行测试 FastDFS 有效性。

1.10.3 内置命令

/usr/local/bin/目录中。命令有若干。
可通过命令在控制台访问 FastDFS。
ls /usr/local/bin/ | grep fdfs
分布式文件系统——fastDFS安装

2 tracker 基础配置

只在 tracker server 节点中配置。192.168.2.109

2.1创建跟踪服务

配置文件 FastDFS 提供了配置文件模板,可以根据模板创建需要使用的配置文件。
cd /etc/fdfs
cp tracker.conf.sample tracker.conf

2.2修改配置文件

tracker.conf 配置文件用于描述跟踪服务的行为,需要进行下述修改:
vi /etc/fdfs/tracker.conf port=22122 # 默认服务端口 base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/tracker(自定义目录) base_path 是 FastDFSTracker 启动后使用的根目录。也就是 data 和 logs 所在位置。

2.3创建自定义目录

为配置文件中定义的 base_path 变量创建对应的目录。
mkdir -p /fastdfs/tracker

2.4修改启动服务脚本

vi /etc/init.d/fdfs_trackerd
将 PRG=/usr/bin/fdfs_trackerd 修改为 PRG=/usr/local/bin/fdfs_trackerd

2.5启动服务

/etc/init.d/fdfs_trackerd start 启动成功后,
配置文件中 base_path 指向的目录中出现 FastDFS 服务相关数据目录(data 目录、logs 目录)

2.6查看服务状态

/etc/init.d/fdfs_trackerd status
ps aux | grep fdfs

2.7停止服务

/etc/init.d/fdfs_trackerd stop

2.8重启服务

/etc/init.d/fdfs_trackerd restart

2.9设置开启自启

vi /etc/rc.d/rc.local
新增内容 - /etc/init.d/fdfs_trackerd start

3 storage 基础配置

只在 storage server 中配置。192.168.2.100

3.1创建存储服务配置文件

FastDFS 提供了配置文件模板,可以根据模板创建需要使用的配置文件。
cd /etc/fdfs cp storage.conf.sample storage.conf

3.2修改配置文件

storage.conf 配置文件用于描述存储服务的行为,需要进行下述修改:
vi /etc/fdfs/storage.conf
base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/storage/base (自定义目录)
store_path0=/home/yuqing/fastdfs -> store_path0=/fastdfs/storage/store(自定义目录)
tracker_server=192.168.2.109:22122 -> tracker_server=tracker 服务 IP:22122
base_path - 基础路径。用于保存 storage server 基础数据内容和日志内容的目录。
store_path0 - 存储路径。是用于保存 FastDFS 中存储文件的目录,就是要创建 256*256 个子目录的位置。
base_path 和 store_path0 可以使用同一个目录。
tracker_server - 跟踪服务器位置。就是跟踪服务器的 ip 和端口。

3.3创建自定义目录

mkdir -p /fastdfs/storage/base
mkdir -p /fastdfs/storage/store

3.4修改服务脚本

vi /etc/init.d/fdfs_storaged
将 PRG=/usr/bin/fdfs_storaged 修改为 PRG=/usr/local/bin/fdfs_storaged

3.5启动服务

(要求 tracker 服务必须已启动)
/etc/init.d/fdfs_storaged start 启动成功后,
配置文件中 base_path 指向的目录中出现 FastDFS 服务相关数据目录(data 目录、logs 目录),
配置文件中的 store_path0 指向的目录中同样出现 FastDFS 存储相关数 据录(data 目录)。
其中$store_path0/data/目录中默认创建若干子孙目录(两级目录层级总
计 256256 个目录),是用于存储具体文件数据的。
Storage 服务器启动比较慢,因为第一次启动的时候,需要创建 256
256 个目录。

3.6查看服务状态

/etc/init.d/fdfs_storaged status
ps aux | grep fdfs

3.7停止服务

/etc/init.d/fdfs_storaged stop

3.8重启服务

/etc/init.d/fdfs_storaged restart

4 客户端基础配置 不是必须的。

就是用于使用命令行测试 FastDFS 才需要配置的。

4.1创建客户端配置文件

在 tracker 服务结点所在服务器中配置客户端。同样通过配置文件模板创建对应配置文 件。
cd /etc/fdfs cp client.conf.sample client.conf

4.2修改配置文件

client.conf 配置文件中主要描述客户端的行为,需要进行下述修改:
vi /etc/fdfs/client.conf
base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/client (自定义目录) tracker_server=192.168.2.109:22122 -> tracker_server=tracker 服务 IP:22122 base_path - 就是客户端命令行执行过程时临时数据存储位置。

4.3创建自定义目录

mkdir -p /fastdfs/client

5 控制台测试

FastDFS 命令所在:
/usr/local/bin 目录。 (如果在安装 FastDFS 过程中,没有修改 make.sh 文 件中的 TARGET_PREFIX 属性值,命令所在为/usr/bin 目录)

5.1上传文件

/usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /要上传的文件
上传结束后,返回 group1/M00/00/00/xxxxxxxxxx.xxx,检查 storage 服务结点中的 $store_path0/data/00/00/目录中是否有上传的文件(一般情况上传的文件按顺序保存在 storepath0/data/00/00/group1/M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gzgroup1M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gzM00windowsstore_path0/data/00/00/目录中,不能完全保证)。 group1/M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gz 卷名 : group1 文件名 : M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gz 其中 M00 是一个虚拟目录,相当于 windows 中的快捷方式,引用的是store_path0/data 目录。

5.2删除文件

/usr/local/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/xxxxxxx.xxx 删除结束后,检查$store_path0/data/00/00/目录中是否还有文件。

6 安装 Nginx 组件

如果 FastDFS 中保存的是图片信息。
希望在 WEB 应用中可以直接访问 FastDFS 中的图 片进行显示。如果操作? 安装 Nginx 是为了 WEB 应用中可以使用 HTTP 协议直接访问 Storage 服务中存储的文 件。在 storage 结点所在服务器安装 Nginx 组件。
需要安装两部分内容。 Nginx 应用,在安装 nginx 应用的时候,同时要在 nginx 中增加一个 FastDFS 的组件。 Module。

6.1解压 fastdfs-nginx-module_v1.16.tar.gz

tar -zxf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fastdfs

6.2修改 fastdfs-nginx-module_v1.16.tar.gz

源文件中的配置 此操作必须修改,否则 Nginx 编译会报错。
cd /usr/local/fastdfs/fastdfs-nginx-module/src
vi /usr/local/fastdfs/fastdfs-nginx-module/src/config
参数是用于配置安装 nginx 中的 FastDFS 组件的时候,在什么位置查找 FastDFS 核心代 码。
分布式文件系统——fastDFS安装

6.3.1安装 Nginx 需要的依赖

yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

6.3.2使用 SFTP 上传文件到 Linux 进入到本地的应用所在目录。

cd /xxxx 目录
sftp 192.168.2.110 输入用户名和密码。使用哪一个用户登录,上传的文件就在该用户对应的主目录下。如: root 用户,上传的文件在/root 目录中。
上传的命令: put 文件名
下载的命令: get 文件名

6.3.3解压 Nginx

tar -zxf nginx-1.8.0.tar.gz -C /usr/local/fastdfs/

6.3.4进入 Nginx 源码目录

cd /usr/local/fastdfs/nginx-1.8.0/

6.3.5 配置 Nginx 安装信息

./configure \ 
--prefix=/usr/local/nginx \
 --pid-path=/var/run/nginx/nginx.pid \ 
 --lock-path=/var/lock/nginx.lock \ 
 --error-log-path=/var/log/nginx/error.log \
  --http-log-path=/var/log/nginx/access.log \ 
  --with-http_gzip_static_module \ 
  --http-client-body-temp-path=/var/temp/nginx/client \ 
  --http-proxy-temp-path=/var/temp/nginx/proxy \ 
  --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ 
  --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ 
  --http-scgi-temp-path=/var/temp/nginx/scgi \ 
  --add-module=/usr/local/fastdfs/fastdfs-nginx-module/src 
  --add-module 必须定义,此配置信息是用于指定安装 Nginx 时需要加载的模块,
  如果未 指定,Nginx 安装过程不会加载 fastdfs-nginx-module 模块,后续功能无法实现。

6.3.6创建目录

Nginx 运行时需要创建若干临时文件,如果默认安装不需创建此目录。
mkdir -p /var/temp/nginx

6.3.7编译安装

make
make install

6.3.8配置 fastdfs-nginx-module 模块配置文件

复制配置文件/usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf 到/etc/fdfs 目录 中
cp /usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ cd /etc/fdfs/
修改配置文件 mod_fastdfs.conf
vi mod_fastdfs.conf 分布式文件系统——fastDFS安装

6.3.9提供 FastDFS 需要的 HTTP 配置文件

复制 FastDFS 安装包中的两个配置文件(http.conf 和 mime.types)到/etc/fdfs 目录中 cp /usr/local/fastdfs/FastDFS/conf/http.conf /etc/fdfs/
cp /usr/local/fastdfs/FastDFS/conf/mime.types /etc/fdfs/

6.3.10 创建 nginx 启动需要的软连接 创建软连接

ln -s /usr/local/lib64/libfdfsclient.so /usr/lib64/libfdfsclient.so
nginx 启动后,会在默认的/usr/lib64 目录中查找需要的 so 文件。如果在安装 FastDFS 时,修改了 make.sh 文件中的 TARGET_PREFIX 参数,则必须创建此软连接

6.3.11 创建网络访问存储服务的软连接

ln -s /fastdfs/storage/store/data/ /fastdfs/storage/store/data/M00
在上传文件到 FastDFS 后,FastDFS 会返回 group1/M00/00/00/xxxxxxxxxx.xxx。其中 group1 是卷名,在 mod_fastdfs.conf 配置文件中已配置了 url_have_group_name,以保证 URL 解析正确。而其中的 M00 是 FastDFS 保存数据时使用的虚拟目录,需要将这个虚拟目录定 位到真实数据目录上。
6.3.12 修改 nginx 配置文件
cd /usr/local/nginx/conf
vi nginx.conf 分布式文件系统——fastDFS安装