FastDFS海量数据分布式存储方案

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

FastDFS百度百科:http://baike.baidu.com/view/2466025.htm

FastDFS官方论坛:http://bbs.chinaunix.net/forum-240-1.html

FastDFS下载:http://sourceforge.net/projects/fastdfs/files/


研究了几天淘宝余庆大神开发的分布式存储FastDFS后来个总结方案


方案详细讲解:


tracker1,CentOS6.3(x64) :192.168.0.10

tracker2,CentOS6.3(x64) :192.168.0.11

group1, CentOS6.3(x64); storager1:192.168.0.20   storager2:192.168.0.21  (预留IP192.168.0.22成熟的存储方案是三份)

group2, CentOS6.3(x64); storager1:192.168.0.23   storager2:192.168.0.24  (预留IP192.168.0.25成熟的存储方案是三份)

group3, CentOS6.3(x64); storager1:192.168.0.26   storager2:192.168.0.27  (预留IP192.168.0.28成熟的存储方案是三份)


下载fastdfs最新版5.0.1,所有服务器的fastdfs安装基本一样

tar zxvf fastdfs5.0.1.tar.gz

cd fastdfs5.0.1

sh -x make.sh   ###fastdfs5.0版本后不再依赖libevent库

sh -x make.sh install


一:Tracker服务器相关配置

1.安装tracker服务器需要提供上传,更新,删除操作的php,nginx,安装php,nginx请自行查找安装方法,本文不再赘述

安装fastdfs-php扩展

cd ./fastdfs5.0.1/php_client

phpize
./configure
make
make install

安装完毕

vim fastdfs_client.ini

只需注意一项fastdfs_client.tracker_group0 = /etc/fdfs/client.conf 看下配置文件位置是否正确

一般默认配置是没有问题的

cat fastdfs_client.ini >> /usr/local/php/etc/php.ini   ####把配置文件写入到php.ini

重启/etc/init.d/php-fpm restart

测试扩展安装是否成功 php fastdfs_test.php 或phpinfo查看fastdfs_client扩展信息

若安装没有成功最可能出现fastdfs_client.ini 文件配置不正确,请检查


2.tracker服务器配置文件/etc/fdfs/tracker.conf,可相关详解http://bbs.chinaunix.net/thread-1941456-1-1.html

vim /etc/fdfs/tracker.conf

base_path=/home/yuqing/fastdfs ###tracker状态与log日志存储目录

其它保持默认即可


至此tracker服务器安装完毕,PHP的fastdfs的API使用,可查询相关资料,也可研究上面的 fastdfs_test.php测试页面

启动fastdfs tracker端

/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf

写入系统服务,开机自动启动

echo "/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf" >> /etc/rc.local


二:Storage服务器相关配置

修改storage配置文件

vim /etc/fdfs/storage.conf

base_path=/home/yuqing/fastdfs  ###数据与log日志存储目录路径,可自行修改

store_path_count=1  ##存储目录数目,默认是1,如果想做raid可改为2,下面设置增加store_path1的配置

store_path0=/home/yuqing/fastdfs  ###数据存储目录路径,可自行修改,若不填以base_path的值为默认存储目录

重点配置,两台tracker服务器的,tracker服务器的端口要打开,否则连接不成功,会造成storage启动一直卡住

tracker_server=192.168.0.10:22122

tracker_server=192.168.0.11:22122

其它配置保持默认即可

启动fastdfs storage端

/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

写入系统服务,开机自动启动

echo "/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf" >> /etc/rc.local



fastdfs-nginx扩展安装有两方式,

一是在编译安装nginx时以添加模块方式安装,如:

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6

--add-module=/home/soft/fastdfs-nginx-module/src


二是先安装nginx再安装扩展库

cd /home/soft/fastdfs-nginx-module/src

./configure --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6  

--add-module=/home/yuqing/fastdfs-nginx-module/src  
####注意一定要加上之前编译安装nginx的扩展参数,否则,之前的会没有了,造成nginx提示模块不存在

make && make install


fastdfs-nginx安装完毕

复制配置文件

cp mod_fastdfs.conf  /etc/fdfs/

vim /etc/fdfs/mod_fastdfs.conf

重点配置

group_name=group1   ####组名一定要和当前storage所属的组名一样

store_path_count=1   ###存储数目一定要和当前storage配置一样

store_path0=/home/yuqing/fastdfs   //存储路径一定要和当前storage配置一样

其它保持默认即可


配置nginx模块

 location /M00 {
            root /home/yuqing/fastdfs/data;
            ngx_fastdfs_module;
        }


重启nginx

/etc/init.d/nginx restart ####nginx启动重启停止脚本,自行编写

若重启不成功检查相关配置文件是否有误

storage配置完毕


三:相关测试

回到tracker服务器上

vim /etc/fdfs/client.conf

重点配置文件,若这里配置有误,将影响FastDFS的PHP扩展,以及PHP API的使用

base_path=/home/yuqing/fastdfs  ###和tracker.conf的目录路径保持一致

tracker_server=192.168.0.10:22122   ####和storage服务器的storage.conf保持一致

tracker_server=192.168.0.11:22122


测试

上传文件:/usr/local/bin/fdfs_upload_file  /etc/fdfs/client.conf /etc/rc/local

返回上传后生成的文件名,如:group1/MOO/00/00/test_1922
下载文件:/usr/local/bin/fdfs_download_file/etc/fdfs/client.confgroup1/MOO/00/00/test_1922
删除文件:/usr/local/bin/fdfs_delete_file/etc/fdfs/client.confgroup1/MOO/00/00/test_1922

也可使用 /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload /etc/rc.local  ##上传文件会显示更加详细的上传后返回的信息,包括上传分配的组和stroage信息


其它相关技术信息


两台tracker向外提供上传更新删除等操作

利用表单form直接提交到tracker服务器中的php页面,上传更新删除等操作成功后返回相关信息

可分担前端网站的压力,以端对端形式上传文件,更省资源,更省时间


三组storage服务器直接向外提供http服务,上传后返回的组信息可存入数据库中

如图片链接:http://pic1.test.com/MOO/00/00/test.jpg

域名解析方案如:

pic1.test.com 指向group1组的外网IP

pic2.test.com 指向group2组的外网IP

pic3.test.com 指向group3组的外网IP


大型网站文件存储都是采用定向存储,定向链接.定向访问的方式达到分布式CDN



/usr/local/bin/fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.0.21   ###手动删除storage服务器


/usr/local/bin/fdfs_monitor /etc/fdfs/client.conf    ###查看tracker服务器状态信息


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值