FastDFS分布式存储

FastDFS

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS 服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口.

FastDFS 同时对文件的 meta data 进行管理(所谓文件的 meta data 就是文件的相关属性)

流程示意图

上传流程图

上传文件交互过程:

1. client询问tracker上传到的storage
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。 

下载流程图

下载文件交互过程:

1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。

因为FastDFS网上已经有了很多的部署文档了,我就不在照葫芦画瓢了,我也是根据这边博文所部署成功的。

备份

备份很简单,只需要在一个Group内增加一个storage,系统会自动完成备份,可以理解为网络版的RAID1。

需要注意的是如果storage 1的硬盘是100G,storage 2的硬盘是200G,那么只会按照100G来算,互相备份的意思,木桶效应。 进一步说,整个 Group 的存储能力由该组中该储能力最小的 Storage 决定。

扩充

当group1的容量不够的时候,只需要再新建一个group即可,系统会自动添加到tracker,很简单

地址:http://www.open-open.com/lib/view/open1435468300700.html

部署:

unzip libfastcommon-master.zip 
unzip fastdfs-master.zip 
ls
cd libfastcommon-master
./make.sh 
echo $?
./make.sh install
echo $?

cd ../fastdfs-master/
./make.sh 
echo $?
./make.sh install
echo $?
cd /etc/fdfs/

tracker

cp tracker.conf.sample  tracker.conf
cp storage.conf.sample storage.conf
mkdir /application/fastdfs/tracker -p
mkdir /application/fastdfs/storage -p

vim tracker.conf
bind_addr=10.251.194.213
base_path=/application/fastdfs/tracker
log_level=warn

/etc/init.d/fdfs_trackerd start
netstat -lntup|grep 22122

storage

vim storage.conf
bind_addr=10.251.194.213
base_path=/application/fastdfs/storage/base
store_path0=/application/fastdfs/storage/store
tracker_server=10.251.194.213:22122
tracker_server=10.251.193.8:22122
log_level=warn

mkdir -p /application/fastdfs/storage/base
mkdir -p /application/fastdfs/storage/store
/etc/init.d/fdfs_storaged start 
tailf  /application/fastdfs/storage/base/logs/storaged.log
fdfs_monitor storage.conf

nginx

cd /application/tools/
rz nginx-1.8.1.tar.gz
rz fastdfs-nginx-module-master.zip
tar xf nginx-1.8.1.tar.gz
unzip fastdfs-nginx-module-master.zip
cd nginx-1.8.1
useradd nginx
yum install -y gcc gcc-c++  pcre pcre-devel zlib zlib-devel  openssl openssl-devel
./configure --add-module=/application/tools/fastdfs-nginx-module-master/src/ --user=nginx --group=nginx --with-http_realip_module --with-http_stub_status_module --prefix=/application/nginx-1.8.1
make 
make install

cd /application/nginx-1.8.1/
vim conf/nginx.conf

        location ~/group1/M00 {
            root   /application/fastdfs/storage/store/data;
            ngx_fastdfs_module;
        }

cd /application/tools/fastdfs-master/conf/
cp -a http.conf mime.types /etc/fdfs/
cd /application/tools/fastdfs-nginx-module-master/src/
cp -a mod_fastdfs.conf /etc/fdfs/

cd /etc/fdfs/
vim mod_fastdfs.conf 
base_path=/application/fastdfs/storage/base/logs/
tracker_server=10.251.194.213:22122
tracker_server=10.251.193.8:22122
url_have_group_name = true
store_path0=/application/fastdfs/storage/store
log_level=warn
log_filename=/application/fastdfs/tracker/logs/mod_fastdfs.log

ln -s /application/fastdfs/storage/store/data/M00 /application/fastdfs/storage/store/data/

cd /application/nginx-1.8.1/
sbin/nginx


本篇文章里的图片均来自于互联网,如果侵权请联系笔者撤回!!!

发表评论