简介
角色
- 跟踪器(tracker)
主要做调度工作,在访问上起负载均衡的作用 - 存储节点(storage)
存储系欸但存储文件,完成文件管理的所有功能
术语
TrackkerServer
:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server 的状态,是链接Client 和 Storage Server 的枢纽。
Storage Server
:存储服务器,文件和 meta data 都保存到存储服务器上
group
:组,也成为卷,同组内服务器上的文件是完全相同的
文件标识
:包括两部分:组名和文件名(包含路径)
meta data
:文件相关属性,键值对(Key Value Pair)方式,如: key=a,value=123
meta data
可存可不存,但存了更清晰!
同步机制
- 同一组内的 storage server 之间是对等的,文件上传、删除等操作可以在任意一台 storage server 上进行;
- 文件同步只在同组内的 storage server 之间进行,采用 push 方式,即源服务器同步给目标服务器;
- 源头数据才需要同步,备份数据不需要再次同步,否则就构成环路(死循环);
上述第二条规则有个例外情况,就是新增加一台 storage server 时,由已有的一台 storage server 将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器
安装
安装地址
fastdfs:
GitHub:happyfish100/fastdfs
libfastcommon:
GitHub:happyfish100/libfastcommon
C语言环境
由于 fastDFS 是 C语言
开发,故需保证C语言环境
centos
yum -y install cmake make gcc-c++
ubuntu
apt-get install 'g++'
apt-get install make cmake
安装核心库
#新建目录
mkdir -p /opt/fastdfs
#上传libfastcommon-1.0.43.tar.gz 到该目录 然后解压
tar -zxvf libfastcommon-1.0.43.tar.gz
cd libfastcommon-1.0.43/
#编译
./make.sh
#安装
./make.sh install
安装
#上传fastdfs-6.06.tar.gz到 /opt/fastdfs 目录下并解压
tar -zxvf fastdfs-6.06.tar.gz
#编译
cd fastdfs-6.06/
./make.sh
#安装
./make.sh install
跟踪器(Tracker)配置
配置
#创建Tracker存储节点目录
mkdir -p /fastdfs/tracker
#修改配置文件
cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
vim /etc/fdfs/tracker.conf
#修改Tracker存储节点目录
base_path = /fastdfs/tracker
#保存退出
启动
cd /etc/init.d/
./fdfs_trackerd start
#查看进程是否启动成功
ps -ef | grep fdfs
开机启动
不推荐开机启动,建议手动启动
centos
vim /etc/rc.d/rc.local
#加入
/etc/init.d/fdfs_tracked start
Ubuntu
#查看/etc/rc.local 是否存在
cat /etc/rc.local
#不存在主动创建
touch /etc/rc.local
#编辑 rc.local
vim /etc/rc.local
#!/bin/bash
cd /etc/init.d/
./fdfs_trackerd start
exit 0
存储节点(storage)配置
#创建存储节点(storage)目录
mkdir -p /fastdfs/storage/base
mkdir -p /fastdfs/storage/store
#修改配置文件
cd /etc/fdfs/
cp storage.conf.sample storage.conf
vim /etc/fdfs/storage.conf
#修改storage存储节点目录
base_path = /fastdfs/storage/base
#修改存放文件目录store_path0
store_path0 = /fastdfs/storage/store
#修改tracker_server ip地址为 tracker 机器的ip ,本地的话请填写局域网ip,不能为127.0.0.1或localhost
tracker_server = 192.168.0.2:22122
#保存退出
启动
cd /etc/init.d/
./fdfs_storaged start
#查看进程是否启动成功
ps -ef | grep fdfs
开机启动
不推荐开机启动,建议手动启动
centos
vim /etc/rc.d/rc.local
#加入
/etc/init.d/fdfs_storaged start
Ubuntu
#查看/etc/rc.local 是否存在
cat /etc/rc.local
#不存在主动创建
touch /etc/rc.local
#编辑 rc.local
vim /etc/rc.local
#!/bin/bash
cd /etc/init.d/
./fdfs_storaged start
exit 0
客户端(client)配置
使用命令行测试,不是必须
mkdir -p /fastdfs/client
cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf
#修改storage存储节点目录
base_path = /fastdfs/client
#修改tracker_server ip地址为 tracker 机器的ip ,本地的话请填写局域网ip,不能为127.0.0.1或localhost
tracker_server = 192.168.0.2:22122
上传
以上传libfastcommon-1.0.43.tar.gz
为例:
cd /usr/bin/
./fdfs_upload_file /etc/fdfs/client.conf /opt/fastdfs/libfastcommon-1.0.43.tar.gz
#或者
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/fastdfs/libfastcommon-1.0.43.tar.gz
返回
group1/M00/00/00/wKgAAmDQTm2AHlDaAAKKfr3HBzE.tar.gz
对应存储节点位置为:
cd /fastdfs/storage/store/data/00/00/
ll
wKgAAmDQTm2AHlDaAAKKfr3HBzE.tar.gz
删除文件
cd /usr/bin/
./fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgAAmDQTm2AHlDaAAKKfr3HBzE.tar.gz