nginx的FastDFS分布式存储模块测试方法

来源:互联网 发布:php 日程管理系统 编辑:程序博客网 时间:2024/05/16 15:45

 

很长时间没有关注FastDFS了,第一次使用FastDFS 是在 08年的时候11月的时候,那个时候是为了解决公司的数据存储~那时候可能是对Fastdfs了解不深,功能还不算太健全,最后选择了lustre。

再回过头来看FastDFS更新很快,还看到fastdfs-nginx-module_v1.01.tar.gz nginx模块,所以今天在一台测试机上测试了·测试几天看稳定不稳定,在考虑换掉浪费资源的 lustre !

环境:

storage1:192.168.6.100storage2:192.168.6.101tracker:192.168.6.102

1. 在每个机器上,下载安装 FastDFS

nginx $> wget http://fastdfs.googlecode.com/files/FastDFS_v2.04.tar.gz# 解压nginx $> tar zxvf FastDFS_v2.04.tar.gznginx $> cd FastDFS# 因为我是给nginx添加fastdfs模块,所以不需要fastdfs支持 http 所以我就不需要去掉 #WITH_HTTPD=1 前的注释了,直接编译nginx $> ./make.shnginx $> ./make.sh install

2.修改tracker 和 storage 的配置文件
# tracker 的修改

tracker $> vim /etc/fdfs/tracker.conf
bind_addr=192.168.6.102#绑定IPport=22122#服务端口work_threads=4#线程数,通常设置CPU数store_lookup=2上传组(卷) 的方式 0:轮询方式 1: 指定组 2: 平衡负载(选择最大剩余空间的组(卷)上传)这里如果在应用层指定了上传到一个固定组,那么这个参数被绕过store_group=group1当上一个参数设定为1 时 (store_lookup=1,即指定组名时),必须设置本参数为系统中存在的一个组名。如果选择其他的上传方式,这个参数就没有效了store_server=0选择哪个storage server 进行上传操作(一个文件被上传后,这个storage server就相当于这个文件的storage server源,会对同组的storage server推送这个文件达到同步效果)# 0: 轮询方式# 1: 根据ip 地址进行排序选择第一个服务器(IP地址最小者)# 2: 根据优先级进行排序(上传优先级由storage server来设置,参数名为upload_priority)store_path=0选择storage server 中的哪个目录进行上传。storage server可以有多个存放文件的base path(可以理解为多个磁盘)。# 0: 轮流方式,多个目录依次存放文件# 2: 选择剩余空间最大的目录存放文件(注意:剩余磁盘空间是动态的,因此存储到的目录或磁盘可能也是变化的)download_server=0 选择哪个 storage server 作为下载服务器# 0: 轮询方式,可以下载当前文件的任一storage server# 1: 哪个为源storage server 就用哪一个 (前面说过了这个storage server源 是怎样产生的) 就是之前上传到哪个storage server服务器就是哪个了
#两台 storage.conf的修改
storage $> vim /etc/fdfs/storage.conf
disabled=false#配置是否生效group_name=group1#storage所在组(卷)bind_addr=192.168.6.100# 绑定IP,另一太 storage IP为 192.168.6.101client_bind=true#bind_addr通常是针对server的。当指定bind_addr时,本参数才有效。port=23000# 是storage 服务端口
3.建立tracker 和 storage 的根目录
# trackertracker $> mkdir -p /home/eric# storagestorage $> mkdir -p /home/yangzi

4.在 一台storage上下载,比如我在 192.168.6.100上下载 nginx 和 fastdfs-nginx-module 模块

storage $> wget http://www.nginx.org/download/nginx-0.8.53.tar.gzstorage $> svn export http://fastdfs-nginx-module.googlecode.com/svn/trunk/ fastdfs-nginx-module-read-only

5.编译安装 nginx 附带 fastdfs-nginx-module 模块

storage $> tar zxvf nginx-0.8.53.tar.gzstorage $> cd nginx-0.8.53storage $> ./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs-nginx-module-read-only/srcstorage $> makestorage $> make install# 拷贝mod_fastdfs.conf 到/etc/fdfs/storage $> cp /root/fastdfs-nginx-module-read-only/src/mod_fastdfs.conf /etc/fdfs/

6.修改 nginx 配置文件增加

storage $> vim /usr/local/nginx/conf/nginx.conf

# 增加一下
location /M00 {
alias /home/eric/data;
ngx_fastdfs_module;
}

7. 给 storage 的存储目录做一个软连接

storage $> ln -s /home/yangzi/data /home/yangzi/data/M00

8. 启动两台 storage 和tracker nginx

# 启动 trackertracker $> /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf# 启动 storagestorage $> /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf# 启动 storage2storage2 $> /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf#在 storage启动 nginxstorage $> /usr/local/nginx/sbin/nginx

9、上传文件测试。
# 修改客户端配置文件

storage $> vim /etc/fdfs/client.confconnect_timeout=30network_timeout=60base_path=/home/yangzitracker_server=192.168.6.102:22122log_level=info#下面参数无所谓了反正没有用到http 服务http.tracker_server_port=80
storage $> vim a.htmltest FastDFS!
storage $> /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload a.htmlThis is FastDFS client test program v2.04Copyright (C) 2008, Happy Fish / YuQingFastDFS may be copied only under the terms of the GNU GeneralPublic License V3, which may be found in the FastDFS source kit.Please visit the FastDFS Home Page http://www.csource.org/for more detail.base_path=/home/yangzi, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0tracker_query_storage_store_list_without_group:    server 1. group_name=group1, ip_addr=192.168.6.100, port=23000group_name=group1, ip_addr=192.168.6.100, port=23000storage_upload_by_filenamegroup_name=group1, remote_filename=M00/00/00/wKgGvEz3Y9MAAAAAAAAADigvbpc73.htmlsource ip address: 192.168.6.100file timestamp=2010-12-02 17:16:03file size=14file crc32=674197143file url: http://192.168.6.100/group1/M00/00/00/wKgGvEz3Y9MAAAAAAAAADigvbpc73.htmlstorage_upload_slave_by_filenamegroup_name=group1, remote_filename=M00/00/00/wKgGvEz3Y9MAAAAAAAAADigvbpc73_big.htmlsource ip address: 192.168.6.100file timestamp=2010-12-02 17:16:03file size=14file crc32=674197143file url: http://192.168.6.100/group1/M00/00/00/wKgGvEz3Y9MAAAAAAAAADigvbpc73_big.html

打开IE浏览器访问:

 

原创粉丝点击