前言
FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文 件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。
Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些 策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务 器。
Storage server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上, Storageserver 没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将 storage 称为存储服务器。
我使用的是Ubantu安装的FastDFS,并且是在刚刚装的虚拟机上安装,期间出现了很多的问题,请过多方面查找原因,终于将FastDFS与Nginx安装并测试成功,下面我就将我的步骤和出现的错误完整的记录下来。
一、安装Git
我使用git下载安装的一些依赖包。
apt-get install git
二、克隆libfastcommon依赖库
我都将下载下来的库统一先放到了/home/user/下载/
中了,这样便于我查找这些文件。
git clone https://github.com/happyfish100/libfastcommon.git
如果是下载下来的需要对libfastcommon-master.zip
这个文件进行解压缩。
unzip libfastcommon-master.zip
三、安装 libfastcommon依赖库
首先进入下载好的libfastcommon依赖库目录。
cd /home/user/下载/libfastcommon
然后:
./make.sh
我这里直接编译成功了没有出现问题,再然后:
./make.sh install
编译通过后,在32位Ubantu中会安装在/usr/lib/
中,在64位会在/usr/lib64/
,我的是64位,所以在/usr/lib64/
中。
四、配置环境变量和软链接
软链接就是在另一个位置建立一个同步的链接,然后根据自己的操作系统,需要执行以下命令:
export LD_LIBRARY_PATH=/usr/lib64/
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
五、安装FastDFS
如果不用Git下载的话也可以直接去下载FastDFS。
下载完后执行以下命令:
tar -zxvf fastdfs-5.11.tar.gz
解压完后进入目录后编译:
./make.sh
./make.sh install
安装完成之后默认安装在/etc/fdfs/
中,并会生成这四个文件:
tracker.conf.sample
client.conf.sample
storage.conf.sample
storage_ids.conf.sample
之后可以在这个基础上直接改名,也可以复制之后再修改这些配置文件。
· 改名,需要先修改配置文件的权限:
chmod 777 tracker.conf.sample
mv tracker.conf.sample tracker.conf
chmod 777 client.conf.sample
mv client.conf.sample client.conf
chmod 777 storage.conf.sample
mv storage.conf.sample storage.conf
chmod 777 storage_ids.conf.sample
mv storage_ids.conf.sample storage_ids.conf
·复制文件:
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
sudo cp /etc/fdfs/storage_ids.conf.sample /etc/fdfs/storage_ids.conf
六、配置跟踪服务器的tracker的配置文件
首先建立一个文件夹fastdfs/tracker
,我的这个文件夹建立在/home/python/
中,这个文件夹其实建立在哪里都行。
mkdir –p /home/python/fastdfs/tracker
然后编辑tracker.conf
这个配置文件,如果没有安装vim编辑器需要先安装vim编辑器,在编辑配置文件。
apt install vim
vi tracker.conf
# the base path to store data and log files
base_path=/home/python/fastdfs/tracker
# HTTP port on this tracker server
http.server_port=8090
然后再去修改storage.conf
,在/home/python/fastdfs/
目录中创建目录 storage
。
mkdir –p /home/python/fastdfs/storage
然后编辑配置文件,这里先查看当前虚拟机的IP地址。
vi storage.conf
group_name=group1
store_path0=/home/python/fastdfs/storage
base_path=/home/python/fastdfs/storage
tracker_server=自己虚拟机的IP地址:22122
http.server_port=8888
继续修改client.conf
base_path=/home/python/fastdfs/tracker
tracker_server=自己虚拟机的IP地址:22122
http.tracker_server_port=8888
#include http.conf
注意,#include http.conf 这句,原配置文件中有2个#,删掉一个。
这里可以先暂时不修改http.conf
这个配置文件,如果想改也可以直接改了,这个文件在fastdfs-5.11
的安装路径中,/home/user/下载/fastdfs-5.11/conf/http.conf
。
http.anti_steal.token_check_fail=/home/fastdfs/anti-steal.jpg
之后将下面这两个文件复制到etc/fdfs/
下。
cp http.conf /etc/fdfs/http.conf
cp mime.types /etc/fdfs/mime.types
七、启动服务,测试是否安装成功
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
# 检查是否启动成功, 启动成功之后会看见
ps aux|grep tracker
ps aux|grep storage
注意上述测试需要配置后相应的路径,如果没有配置后会报一些错误,我这里都配置了所以没有出现错误,如果出错把相应的路径配置上后再次执行一遍就好。
八、上传文件测试
准备一张图片在你的电脑上,位置随意。
fdfs_test /etc/fdfs/client.conf upload /home/user/下载/1.jpg
上传成功之后会在这里看到里两个文件,一个是xxx.jpg,另一个是xxx_big.jpg,类似于
M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg
,如果看到这个说明上传成功了。
但这些文件在哪里呢,他在/home/python/fastdfs/storage/data/
下,M00/00/00/
就是文件的坐标,进入/home/python/fastdfs/storage/data/00/00/
就能找到这个文件了。但你会发现生成了4个文件。
这是因为
fdfs_test
和
fdfs_test1
是FastDFS自带的测试程序,会对一个文件上传两次,分别作为主文件和从文件。返回的文件ID也是两个。 并且会上传文件附加属性,storage server上会生成4个文件。
九、删除文件
删除文件需要完整的group_name。
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgSslVkLFOAWOw_AADfP3RIu5Y687_big.jpg
十、关闭fadtDFS
killall fdfs_trackerd
killall fdfs_storaged
十一、重启fastDFS
先重启tracker
/usr/local/bin/.restart.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
在重启storage
/usr/local/bin/.restart.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
十二、接下来就是配置Nginx了
看下一篇文章吧~
首次在虚拟机上配置nginx