搜档网
当前位置:搜档网 › FastDFS安装配置与使用

FastDFS安装配置与使用

FastDFS安装配置与使用
FastDFS安装配置与使用

FastDFS安装配置与使用

目录

一、简介 (3)

二、前置准备 (4)

三、安装 (5)

1、Tracker的安装与配置 (5)

2、Storage的安装与配置 (7)

3、在Storage上安装与配置nginx (12)

4、安装nginx反向代理及缓存服务器 (15)

5、测试上传文件 (17)

6、优化部分 (21)

四、FastDFS使用 (23)

1.上传文件 (23)

2.下载文件 (24)

3.监视服务器资源 (25)

4.Java客户端调用 (26)

五、常见问题 (28)

一、简介

1.系统概述

FastDFS是一个开源的分布式文件系统,对文件进行管理,它的主要功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。

2.功能特性

?分组存储,灵活简洁

?对等结构,不存在单点

?文件ID由FastDFS生成,作为文件访问凭证。FastDFS不需要传统的name server

?和流行的web server无缝衔接,FastDFS已提供apache和nginx扩展模块

?大、中、小文件均可以很好支持,支持海量小文件存储

?支持多块磁盘,支持单盘数据恢复

?支持相同文件内容只保存一份,节省存储空间

?存储服务器上可以保存文件附加属性

?下载文件支持多线程方式,支持断点续传

提供功能

upload:上传普通文件,包括主文件

upload_appender:上传appender文件,后续可以对其进行append操作

upload_slave:上传从文件

download:下载文件

delete:删除文件

append:在已有文件后追加内容

set_metadata:设置文件附加属性

get_metadata:获取文件附加属性

3.架构示意图

FastDFS客户端,其作用是完成客户与服务端之间的交互。

FastDFS服务端,有两个角色:

a.跟踪器(tracker),其作用是完成调度工作,在访问上起负载均衡的作用。

b.存储节点(storage),其作用是完成文件的存储,完成文件管理的所有功能:存储、同步和提供存取接口;

FastDFS同时对文件的meta data进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。

二、前置准备

FastDFS相关软件

?FastDFS_v5.05.tar.gz

?fastdfs-nginx-module_v1.16.tar.gz

?libfastcommon-master.zip

Nginx相关软件

?nginx-1.4.2.tar.gz

?pcre-8.36.tar.gz

?zlib-1.2.8.tar.gz

?libevent-2.0.22-stable.tar.gz

?ngx_cache_purge-2.1.tar.gz

拓扑图

三、安装

1、Tracker的安装与配置

以下在Tracker机器上进行:

3.配置FastDFS

进入到 /etc/fdfs 目录下,复制模版文件到 tracker.conf

至此tracker上的安装与配置结束。

2、Storage的安装与配置

以下在Storage1机器上进行:

1.安装 libfastcommon

[同Tracker的安装与配置]

2.安装 FastDFS

[同Tracker的安装与配置]

至此FastDFS在 Storage上安装完成,所有的可执行文件位于 /usr/bin 目录下,以fdfs

至此 FastDFS在Storage上安装完成,以下进行配置

group count: 1

Group 1:

group name = group1

disk total space = 20157 MB

disk free space = 9466 MB

trunk free space = 0 MB

storage server count = 1

active server count = 1

storage server port = 23000

storage HTTP port = 8080

store path count = 1

subdir count per path = 256

current write server index = 0

current trunk file id = 0

Storage 1:

id = 192.168.0.105

ip_addr = 192.168.0.105 (rkhd-opensuse) ACTIVE http domain =

version = 5.05

join time = 2015-03-31 18:21:56

up time = 2015-04-01 10:57:27

total storage = 20157 MB

free storage = 9466 MB

upload priority = 10

store_path_count = 1

subdir_count_per_path = 256

storage_port = 23000

storage_http_port = 8080

current_write_path = 0

source storage id =

if_trunk_server = 0

connection.alloc_count = 256

connection.current_count = 0

connection.max_count = 1

total_upload_count = 4

success_upload_count = 4

total_append_count = 0

success_append_count = 0

total_modify_count = 0

success_modify_count = 0

total_truncate_count = 0

success_truncate_count = 0

total_set_meta_count = 1

success_set_meta_count = 1

total_delete_count = 1

success_delete_count = 1

total_download_count = 0

success_download_count = 0

total_get_meta_count = 0

success_get_meta_count = 0

total_create_link_count = 0

success_create_link_count = 0

total_delete_link_count = 0

success_delete_link_count = 0

total_upload_bytes = 2185218

success_upload_bytes = 2185218

total_append_bytes = 0

success_append_bytes = 0

total_modify_bytes = 0

success_modify_bytes = 0

stotal_download_bytes = 0

success_download_bytes = 0

total_sync_in_bytes = 0

success_sync_in_bytes = 0

total_sync_out_bytes = 0

success_sync_out_bytes = 0

total_file_open_count = 4

success_file_open_count = 4

total_file_read_count = 0

success_file_read_count = 0

total_file_write_count = 11

success_file_write_count = 11

last_heart_beat_time = 2015-04-01 17:36:57

last_source_update = 2015-04-01 15:13:50

last_sync_update = 1970-01-01 08:00:00

last_synced_timestamp = 1970-01-01 08:00:00

看到ACTIVE,就说明已经成功注册到了tracker。

至此 storage 已经成功安装,再把另外一台服务器也同样的步骤进行安装。

等第二台storage2(10.10.10.122)安装完成并成功启动后,来查看一下storage2的状态

3、在Storage上安装与配置nginx

1.安装nginx

※nginx文件非常小但是性能非常的高效,这方面完胜apache,nginx文件小的一个原因之一是nginx自带的功能相对较少,好在nginx允许第三方模块,第三方模块使得nginx越发的强大. 在安装模块方面,nginx显得没有apache安装模块方便,当然也没有php安装扩展方便.在原生的nginx,不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.

2.将 FastDFS 的 nginx 插件模块的配置文件copy 到 FastDFS 配置文件目录

3.修改nginx配置文件

将server段中的listen端口改为8080

/data/fastdfs/storage/data 这个是指向真正存储文件的地方,该目录下有这些个二级目录

4. 修改 fastdfs的nginx模块的配置文件 mod_fastdfs.conf

启动nginx # sbin/nginx

查看nginx的日志错误日志logs/error.log 看是否有问题

也可以访问http://10.10.10.120:8080

至此在storage1上安装配置nginx结束。在storage2上以相同的步骤来安装nginx。

4、安装nginx反向代理及缓存服务器

以下在反向代理服务器进行:

1.安装nginx。

2.配置

编辑 vim /usr/local/nginx/conf/nginx.conf 文件修改以下内容:

user nobody;

worker_processes 1;

error_log logs/error.log info;

pid logs/nginx.pid;

events {

worker_connections 65535;

use epoll;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

tcp_nopush on;

keepalive_timeout 65;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 300m;

proxy_redirect off;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 16k;

proxy_buffers 4 64k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 128k;

#设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限

proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2

keys_zone=http-cache:500m max_size=10g inactive=30d;

proxy_temp_path /var/cache/nginx/proxy_cache/tmp;

#设置 group1 的服务器

upstream fdfs_group1 {

server 10.10.10.120:8080 weight=1 max_fails=2 fail_timeout=30s;

server 10.10.10.122:8080 weight=1 max_fails=2 fail_timeout=30s;

}

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

server {

listen 80;

server_name localhost;

access_log logs/host.access.log main;

#设置 group1 的反向代理参数

location /group1/M00 {

proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache http-cache;

proxy_cache_valid 200 304 12h;

proxy_cache_key $uri$is_args$args;

proxy_pass http://fdfs_group1;

expires 30d;

}

#设置清除缓存的访问权限

location ~ /purge(/.*) {

allow 127.0.0.1;

allow 10.10.10.0/24;

deny all;

proxy_cache_purge http-cache $1$is_args$args;

}

}

}

3.启动nginx

5、测试上传文件

以下操作在tracker服务器上进行:

1.创建client 使用的日志目录

这个信息里面可以看到这个文件上传的时候首先上传到了10.10.10.120这台服务器,文件的创建时间、文件的大小

10.10.10.123 就是nginx反向代理缓存服务器

成功访问到图片

http://10.10.10.123/purge/group1/M00/00/00/CgoKeFRQqaaASsgNAAEgRqu1UiU712.jpg

6.配置浏览器端查看是否命中缓存

可以使用Chrome浏览器的开发工具,查看响应的头部信息来查看是否命中缓存,要启用此功能,修改nginx的主配置文件如下:

显示MISS,代表缓存中没有

相关主题