FASTDFS 5X安装

http://www.wingdevops.com/?p=603

流行的开源分布式文件系统有很多,FastDFS 是国人在mogileFS的基础上进行改进的key-value型文件系统,不支持FUSE,提供比mogileFS更好的性能。即可以这样理解:FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

作者

淘宝余庆(happy fish)大神

应用场景:

适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务

如:1.超大数量存储;

      2.数据高可用(冗余备份);

      3.读/写高性能;

     4.海量数据计算。最好还得支持多平台多语言,支持高并发

5.支持http下载

相关资料:

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

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

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

http://code.google.com/p/fastdfs/downloads/list ,

具连接池的java客户端

https://github.com/baoming/FastdfsClient

https://github.com/mikesu/FastdfsClient

应用案例:

方案示意图:

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

http://sourceforge.net/projects/fastdfs/files/
FastDFS_v5.01.tar.gz
fastdfs-nginx-module_v1.16.tar.gz

安装步骤

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

下载
http://sourceforge.net/projects/fastdfs/files/
FastDFS_v5.01.tar.gz
fastdfs-nginx-module_v1.16.tar.gz

(一)安装tracker
tar zxvf FastDFS_v5.01.tar.gz
cd FastDFS
./make.sh
./make.sh install
安装完成后,所有可执行文件在/usr/local/bin下,以fdfs开头
所有配置文件在/etc/fdfs下

vim /etc/fdfs/tracker.conf
一般只需改动以下几个参数即可:
disabled=false            #启用配置文件
port=22122                #设置tracker的端口号
base_path=/fdfs/tracker   #设置tracker的数据文件和日志目录(需预先创建)
http.server_port=8080     #设置http端口号

mkdir -p /fdfs/tracker
cp init.d/fdfs_trackerd /etc/init.d/
chmod 755 /etc/init.d/fdfs_trackerd
chkconfig --add fdfs_trackerd
chkconfig fdfs_trackerd --level 35 on
/etc/init.d/fdfs_trackerd start

(二)安装storage
tar zxvf FastDFS_v5.01.tar.gz
cd FastDFS
./make.sh
./make.sh install
安装完成后,所有可执行文件在/usr/local/bin下,以fdfs开头
所有配置文件在/etc/fdfs下

vim /etc/fdfs/storage.conf
一般只需改动以下几个参数即可:
disabled=false                    #启用配置文件
group_name=group1                 #组名,根据实际情况修改
port=23000                        #设置storage的端口号
base_path=/fdfs/storage           #设置storage的日志目录(需预先创建)
store_path_count=1                #存储路径个数,需要和store_path个数匹配
store_path0=/data0                #存储路径
tracker_server=10.2.3.154:22122 #tracker服务器的IP地址和端口号
http.server_port=8080     #设置http端口号

mkdir -p /fdfs/storage
mkdir -p /data0  #一般还要挂载一个磁盘分区
cp init.d/fdfs_storaged /etc/init.d/
chmod 755 /etc/init.d/fdfs_storaged
chkconfig --add fdfs_storaged
chkconfig fdfs_storaged --level 35 on
/etc/init.d/fdfs_storaged start

运行fdfs_monitor查看storage服务器是否已经登记到tracker服务器

/usr/local/bin/fdfs_monitor /etc/fdfs/client.conf

(三)storage上安装nginx
注意:
编译的时候增加如下参数
--add-module=/usr/local/src/fastdfs-nginx-module/src \
解压缩该软件包
tar zxvf fastdfs-nginx-module_v1.16.tar.gz

nginx安装过程
http://blog.sina.com.cn/s/blog_4e37be480102v05m.html

cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

cd /usr/local/nginx/conf/vhosts
vim fdfs.conf
server {
       listen  8080;
       location ~/group[1-3]/M00 {
               root
/fdfs/storage/data/M00;
               ngx_fastdfs_module;
       }
}

vim /etc/fdfs/mod_fastdfs.conf
一般只需改动以下几个参数即可:
base_path=/fdfs/storage           #保存日志目录
tracker_server=10.2.3.154:22122 #tracker服务器的IP地址以及端口号
storage_server_port=23000        
#storage服务器的端口号
group_name=group1                 #当前服务器的group名
url_have_group_name = true        #文件url中是否有group名
store_path_count=1                #存储路径个数,需要和store_path个数匹配
store_path0=/data0                #存储路径
http.need_find_content_type=true  #从文件扩展名查找文件类型(nginx时为true)
group_count = 1                   #设置组的个数
在末尾增加1个组的具体信息:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data0

建立M00至存储目录的符号连接
ln -s /data0/data /fdfs/storage/data/M00

启动nginx
/usr/local/nginx/sbin/nginx

(四)上传测试
vim /etc/fdfs/client.conf
修改以下参数:
base_path=/fdfs/tracker                   
#日志存放路径
tracker_server=10.2.3.154:22122         
#tracker服务器IP地址和端口号
http.tracker_server_port=8080             
#tracker服务器的http端口号

执行:
/usr/local/bin/fdfs_upload_file
/etc/fdfs/client.conf /root/aa.txt

使用浏览器访问
http://10.2.3.155:8080/group1/M00/00/00/CgIDm1O7zbiABgeHAAAADMRHqIs525.txt

(五)tracker或者使用单独的服务器上安装nginx作为缓存
nginx安装过程
http://blog.sina.com.cn/s/blog_4e37be480102v05m.html

cd /usr/local/nginx/conf/vhosts
具体缓存的一些参数优化参数这边因时间关系先不写出,仅仅实现反向代理的功能
vim image.conf
upstream fdfs_group1 {
       server 10.2.3.155:8080 weight=1
max_fails=2 fail_timeout=30s;
       server 10.2.3.156:8080 weight=1
max_fails=2 fail_timeout=30s;
}

server {
       listen  80;  
       location /group1/M00 {
               proxy_pass
http://fdfs_group1;
       }
}

启动nginx
/usr/local/nginx/sbin/nginx

(六)php使用fastdfs上传文件
cd /usr/local/src/FastDFS/php_client

/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config
make
make install
mkdir -p /etc/fdfs
cd /etc/fdfs
vim client.conf
base_path=/fdfs/tracker                   
#日志存放路径
tracker_server=10.2.3.154:22122         
#tracker服务器IP地址和端口号
http.tracker_server_port=8080             
#tracker服务器的http端口号

cp fastdfs_client.ini /etc/php.d
/etc/init.d/php-fpm restart

php测试代码
       $fdfs = new FastDFS();
      
$fdfs->connect_server("10.2.3.154",22122);
       $file_info =
$fdfs->storage_upload_by_filename("/root/a.txt");
       print_r($file_info);

 

============================================================================

有了上面的理解及实践,你可以继续从另一个方面理解

安装说明二:

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

fdfs_monitor 使用:

/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服务器状态信息

FASTDFS 5X安装的更多相关文章

  1. 01.FastDFS的安装部署

    1.FastDFS简介 (1)FastDFS的功能介绍 FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负 ...

  2. 轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级)

    轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级) 实验室所在的课题组以研究云计算为主,但所有的研究都是在基于理论的凭空想像,缺少分布式环境的平台的实践,云计算神马的都是浮云了.因此,我 ...

  3. FastDFS的安装(复制自己用)

    FastDFS 安装及使用 FastDFS 安装及使用 2012-11-17 13:10:31|  分类: Linux|举报|字号 订阅     Google了一下,流行的开源分布式文件系统有很多,介 ...

  4. 图片服务器FastDFS的安装及使用

    FastDFS介绍 FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS ...

  5. FastDFS的安装配置

    一:实验描述: fastdfs 介绍 FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别 ...

  6. FastDFS的安装步骤

    1.安装相关环境 yum install -y gcc-c++ yum -y install libevent yum install -y pcre pcre-devel yum install - ...

  7. FastDFS + Nginx 安装

    1.安装FastDFS依赖lib包 cd /usr/local/src/ git clone https://github.com/happyfish100/libfastcommon.git cd  ...

  8. FastDFS+Nginx安装配置

    下载相关包: libevent-2.0.22-stable.tar.gz => https://github.com/libevent/libevent/releases/download/re ...

  9. FastDFS单机版安装

    FastDFS 分布式文件系统 1 目标 了解项目中使用FastDFS的原因和意义. 掌握FastDFS的架构组成部分,能说出tracker和storage的作用. 了解FastDFS+nginx上传 ...

随机推荐

  1. ios开发之C语言第4天

    自增和自减运算 自增运算符 ++ 自增表达式 1>.前自增表达式.     int num = 1;     ++num; 2>.后自增表达式     int num = 1;     n ...

  2. 自定义modal一个控制器的效果, presentViewController

    presentViewController 一.主要用途 弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UI ...

  3. php实例-正则获取网站音频地址的实例(Listen to this 1)

    主要用到了:file_get_contents();preg_match_all(); 这2个函数 查看地址:http://git.oschina.net/xiaoz6/phpExample

  4. Response.Redirect:无法在发送 HTTP 标头之后进行重定向

    URL:http://blog.163.com/asp_neter/blog/static/17510918820107258107558/ 错误出现语句:“Response.Redirect(&qu ...

  5. WINDOWS WMI--这是一个神奇的应用

    运行:wbemtest.exe

  6. xbmc

    XBMC是一个优秀的自由和开源的(GPL)媒体中心软件.XBMC最初为Xbox而开发,可以运行在Linux.OSX.Windows.Android4.0系统.XBMC能够播放几乎所有流行的音频和视频格 ...

  7. 【Xamarin挖墙脚系列:Android最重要的命令工具ADB】

    原文:[Xamarin挖墙脚系列:Android最重要的命令工具ADB] adb工具提供了很好的基于命令的对系统的控制. 以前说过,安卓的本质是运行在Linux上的虚机系统.在Linux中,对系统进行 ...

  8. bzoj2553

    似乎挂精度了,不过这是一道好题 很明显看题知算法,知道这道题肯定是AC自动机上矩阵乘法 首先要明确一点,对一个字符串,怎样划分禁忌串最多 根据求最多不相交线段可知,从头到尾能划分出禁忌串就划分 根据这 ...

  9. extjs form 取值 赋值 重置

    一.从form中获取field的三个方法: 1.Ext.getCmp('id'); 2.FormPanel.getForm().findField('id/name'); 3.Ext.get('id/ ...

  10. poj 1556 The Doors(线段相交,最短路)

      The Doors Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7430   Accepted: 2915 Descr ...