#####需下载:
- fastDFS_v5.08(最新版本):https://sourceforge.net/projects/fastdfs/files/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.08/
- libfastcommon:https://sourceforge.net/projects/libfastcommon/files/?source=navbar
- (注:fastdfs是国内happyfish100的作品)github:https://github.com/happyfish100/fastdfs*
- (另外,最新版本已不需要libevent支持)
#####作为一个ubuntu菜鸟,首先需要掌握几个终端命令才行:
查看指定端口占用:netstat -ap | grep 23000
显示服务运行状态:ps -ef |grep fdfs
打开任务管理器管理进程:gnome-system-monitor
删除文件:rm [选项] 文件… -r是所有子文件删除
重命名文件:mv 文件名1 文件名2
查看本机ip:ifconfig(fastdfs tracker和storage都是用的本机ip,因为只有一台服务器,只能加以端口区分)
显示当前文件目录:ctrl+l(很有用)
保存并退出vi:先esc,然后输入:wq
不保存退出vi:esc,输入:q(针对只读文件)
vi切换到编辑模式才能修改文件:按键盘上insert键
#####准备好这些,下面开始配置:
- 安装fastdfs:
tar -zxvf FastDFS_v5.08.tar.gz(解压文件)
cd FastDFS(转到解压后的文件路径)
./make.sh
./make.sh install - 配置tracker:
mkdir /var/www/fdfs-tracker(创建tracker目录,用于存放日志)
vi /etc/fdfs/tracker.conf(修改tracker的配置文件)
进入后找到以下字段并修改之:
base_path=/var/www/fdfs-tracker(即tracker目录)
port=22122(tracker监听的端口) - 配置storage:
mkdir /var/www/fdfs-storage(创建storage目录,用于存放日志和数据)
mkdir /var/www/fdfs-storage/storage0(创建存放上传数据的文件)
vi /etc/fdfs/storage.conf(vi模式进入配置文件)
找到以下字段并修改之:
group_name=group1
port=23000(storage监听的端口)
base_path=/var/www/fdfs-storage(即storage的目录)
store_path0=/var/www/fdfs-storage/storage0(即存放数据 文件)
tracker_server=192.168.247.128:22122(指定tracker_server的地址,注意这个ip地址是你本机的IP地址,通过终端输入ifconfig来查看) - 配置client:
mkdir /var/www/fdfs-client(存放日志)
vi /etc/fdfs/client.conf(vi模式进入配置文件)
修改:
base_path=/var/www/fdfs-client
tracker_server=192.168.247.128:22122(tracker地址)
其他的字段保持原样即可
#####测试文件上传:
- 启动tracker和storage:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_trackerd /etc/fdfs/storage.conf - 查看启动情况
netstat -unltp | grep fdfs
- 利用fastdfs自带的测试工具测试上传文件:
fdfs_test /etc/fdfs/client.conf upload /home/用户名/test.c
出现这个界面表示上传成功,最后的url即为你的文件上传到的路径,他是在/var/www/fdfs-storage/storage0这个文件夹下,即前面创建的存放数据的文件夹。
注意每次开机或重新启动时,本机ip如果变的话,要重新修改client和storage的配置文件里的trackerip地址,然后重新启动。先启动tracker,再启动storage。
重新启动storage:/usr/bin/restart.sh /usr/bin/fdfs_storaged /etc/fdfs/storage.conf(tracker一样)
#####上传文件交互过程:
- client请求tracker服务器;
- tracker返回一台可用的storage;
- client直接和storage通讯完成文件上传。
原理图:(摘自http://tech.uc.cn/?p=221)
架构:
FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)。
tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。
storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。
client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。
其他参考: