FastDFS入门
1.分布式文件系统
分布式文件系统是一个文件管理服务器,通常分布在不同的服务器节点上,这些服务器通过网络相连构成一个庞大的文件服务器集群。这些服务器都用于存储文件资源,通过分布式文件系统管理这些服务器上的文件。常见的文件系统有:FastDFS、GFS、HDFS、Ceph、GridFS、TFS等。
2.传统的文件系统和分布式文件系统区别
3.FastDFS介绍
FastDFS是一个开源的轻量级分布式文件系统,C语言开发,阿里巴巴开源。主要功能:文件存储、文件同步、文件访问(文件上传、下载、删除),解决了大容量文件存储的问题,适用于以文件为载体的在线服务。
FastDFS文件系统由客户端和服务端组成。FASTDFS提供了API访问(c,java,php支持),用来访问FastDFS.
服务端包含两部分组成:一个是跟踪器tracer,一个是存储节点storage.跟踪器主要做调度工作,在内存中记录集群中存储的节点状态信息,是前端client和后端存储节点的枢纽。存储节点用来存储文件,包含文件和文件属性(meta data),都保存在存储服务器磁盘上,完成文件管理的所有功能:文件存储、文件同步、文件访问等。
4.环境搭建
(1.)检查linux上是否安装了gcc、Libevent、libevent-devel
yum list installed |grep gcc
yum list installed |grep libevent
yum list installed |grep libevent-devel
如果没有安装,则进行安装
yum install gcc libevent libevent-devel -y
(2.)安装libfastcommon库
libfastcommon库是FastDFS文件系统运行需要的公共C语言函数库。注意:v1.0.39与FastDFS11不兼容。
下载地址:https://github.com/happyfish100/fastdfs
下载后解压
tar -zxvf libfastcommon-1.0.36.tar.gz
cd libfastcommon-1.0.36
./make.sh
./make.sh install
(3.)下载fastDFS包
下载地址:https://github.com/happyfish100/fastdfs/tags
下载后解压
tar -zxvf fastdfs-5.11.tar.gz
cd fastdfs-5.11
./make.sh
./make.sh install
(4.)修改配置文件
cd /etc/fdfs
mv client.conf.sample client.conf
mv storage.conf.sample storage.conf
mv storage _ids.conf.sample storage_ids.conf
mv tracker.conf.sample tracker.conf
(5.)修改tracker.conf文件
vim tracker.conf
base_path=/opt/fastdfs/tracker
(6.)修改storage.conf文件
vim storage.conf
base_path=/opt/fastdfs/storage # storage存储数据目录,注意:需要提前手动创建对应的目录
store_path0=/opt/fastdfs/storage/files # 真正存放文件的目录
tracker_server=192.168.1.120:22122 # 跟踪器服务器地址
# 创建对应的目录
cd /opt
mkdir fastdfs/tracker -p
mkdir fastdfs/storage/files -p
(7.)启动FastDFS的tracker服务
fdfs_trackerd /etc/fdfs/tracker.conf 启动
fdfs_trackerd /etc/fdfs/tracker.conf restart # 重启
fdfs_trackerd /etc/fdfs/tracker.conf stop # 停止
(8.)启动storage
fdfs_storaged /etc/fdfs/storage.conf # 启动
fdfs_storaged /etc/fdfs/storage.conf stop # 停止
fdfs_storaged /etc/fdfs/storage.conf restart 重启
(9.)测试
修改client.conf配置文件
vim /etc/fdfs/client.conf
base_path=/opt/fastdfs/client # 提前创建目录
tracker_server=192.168.1.120:22122
# 创建目录
mkdir -p /opt/fastdfs/client
上传文件
fdfs_test /etc/fdfs/client.conf upload /root/test.txt
# 查看上传的文件
cd /opt/fastdfs/storage/files/data/00/00/
ls
# 生成的文件目录结构和目录说明
goup1/M00/00/0C/wkjiExxdjklsfjljljsdfa.h
组名/磁盘/目录/文件名
注意:没有搭建集群只有一个组group1,后缀包含-m的为属性文件(meta)
测试文件删除
fdfs_delete_file /etc/fdfs/client.conf group1/文件路径
(9.)配置HTTP访问
将fastdfs的Nginx扩展模块源码fastdfs-nginx-module-master.zip
上传到linux上,解压unzip fastdfs-nginx-module-master.zip
(9.1)安装Nginx
下载Nginx源码
cd nginx-1.14.2
./configure --prefix=/usr/local/nginx --add-module=/home/fastdfs-nginx-module-master/src # 需要制定模块的源码路径
make
make install
# 拷贝配置文件
cp /home/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
修改mod_fastdfs.conf文件
base_path=/opt/fastdfs/nginx_mod # 提前创建目录
tracker_server=192.168.1.120:22122
url_have_group_name=true # true表示访问路径中需要有group1
storage_path0=/opt/fastdfs/storage/files
# 创建目录
mkdir -p /opt/fastdfs/nginx_mod
# 修改nginx.conf配置文件
location ~/group[1-9]/M0[0-9]{
ngx_fastdfs_module;
}
# 启动Nginx
nginx -c /usr/local/nginx、conf/nginx.conf -t
注意:nginx安装需要gcc,openssl,pcre,zlib需要提前安装
yum install gcc openssl openssl-devel pcre zlib-devel -y