FastDFS社区:http://bbs.chinaunix.net/forum-240-1.html
配置参考:http://bbs.chinaunix.net/thread-1941456-1-1.html
参考PDF链接:http://pan.baidu.com/s/1c2iEudy 密码: vfsm
作者发布在社区的FastDFS PPT文档
由于开源社区下载PPT比较麻烦,自己转存到百度网盘一份
链接: http://pan.baidu.com/s/1i56QCZz 密码: gjra
一、FastDFS安装,本文是安装的当前最新版本FastDFS5.08
参考文章:http://www.cnblogs.com/hesiyi/archive/2016/05/30/5543717.html
1、安装libfastcommon,该步骤需要git,也可以通过https://codeload.github.com/happyfish100/libfastcommon/zip/master,这里我是使用的git
git clone https://github.com/happyfish100/libfastcommon.git
cd libfastcommon/
./make.sh
./make.sh install
执行如上命令后,libfastcommon默认安装在/usr/lib64/文件夹内
可通过如下命令查看
2、下载FastDFS并解压
tar -zxvf FastDFS_v5.08.tar.gz
3、 进入解压目录 ,编译安装
cd FastDFS/
./make.sh
./make.sh install
安装过程会产生一些文件:具体看下图
4、修改基本配置使fastdfs可以运行
(4.1)进入fastdfs生成在/etc/fdfs/目录下
cd /etc/fdfs/
通过ls可以看到有如下三个文件
去掉他们所有的.sample后缀,保留原始配置文件,方便测试
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
修改配置文件信息
(1)tracker.conf不用修改任何东西
(2)storage.conf中修改:
tracker_server=192.168.29.132:22122 #指定tracker服务器地址(是你Ubuntu的ip地址)
(3)client.conf中同样要修改:
tracker_server=192.168.29.132:22122 #指定tracker服务器地址(是你Ubuntu的ip地址)
5、启动tracker和storage
(1)、创建运行时目录结构(存储路径)文件夹(名字有点别扭,是参考作者的PPT),由于没有修改任何配置,下载下来的FastDFS默认路径指向这个文件夹,可以修改/etc/fdfs/下的配置文件,该目录下的3个文件都需要修改
在22行可以看见存在base_path信息,这里我没有做修改,直接使用默认配置
创建base_path文件夹
mkdir -p /home/yuqing/fastdfs/
关于启动顺序,本文经过我测试,发现不需要按照(2)、(3)、的顺序启动,因为如果事先启动storage,它会每间隔15秒尝试连接tracker(直至连接成功为止),这里的15秒我想应该是可以配置吧,具体还没有研究,通过如下命令可以查看日志
tail -f /home/yuqing/fastdfs/logs/storaged.log
(2)、 启动:Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽。
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
(3)、启动: Storage Server:存储服务器,文件和meta data都保存到存储服务器上
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
通过netstat -tunpl,可以看到下图,说明fastdfs已经启动了
(4)、 停止:Tracker Server:跟踪服务器
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
(5)、 停止: Storage Server:存储服务器
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
6、补充,关于FastDFS安装目录结构
/etc/fdfs/:存放配置文件位置
/etc/init.d/:服务脚本文件位置
/usr/bin/:可执行命令文件位置
7、上传
准备文件:/test/hello.txt,同时到 /home/yuqing/fastdfs/data/00/00 目录下查看是否有文件,发现目前为空目录
执行上传
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /test/hello.txt
到/home/yuqing/fastdfs/data/00/00目录下查看文件,发现有一个wKgBZldajPmARf1oAAAAELNLRzU978.txt,至此上传结束。
上传成功,在上图可以看到返回结果,规则:group 名称、虚拟磁盘路径、数据两级
目录、file_id。
其中,组名:文件上传后所在的存储组的名称,在文件上传成功后由存储服务器返回,需要客户端自行保存
虚拟磁盘路径:存储服务器配置的虚拟路径,与磁盘选项 store_path*参数对应(storage.conf配置文件中的store_path0=/home/yuqing/fastdfs)
数据两级目录:存储服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件
8、下载测试
/usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgBZldajPmARf1oAAAAELNLRzU978.txt hello_download.txt