法斯特DFS架构简单介绍

CentOS陆.5意况搭建分布式存款和储蓄法斯特DFS-伍.0.5集群详细进程,fastdfs遍及式集群

法斯特DFS架构简单介绍

法斯特DFS是1款开源的、分布式文件系统(Distributed File
System),由天猫开拓平台部资深架构师余庆开荒。FastDFS 是总结一组 Tracker
Server 和 Storage Server 的。Tracker Server 与 Storage Server
之间不直接通讯,其焦点的信息由安插文件在系统运营加载时获悉。多台 Tracker
Server 之间保险了 Tracker 的分布式,Tracker Server
之间是对等的,幸免了单点故障。 Storage Server 是分成多少个 Group,各个Group 中的Storage 都以相互备份的,也便是说,假诺 Group一 有
Storage一、Storage二、Storage三,其体量分别是十0GB、十0GB、十0GB,那么
Group1 的仓库储存技能是 100GB,而不是
300GB,这便是相互备份的意味。进一步说,整个 Group
的蕴藏本领由该组中该储技术最小的 Storage 决定。八个 Group
之间的储存格局,能够应用 round robin(轮流培训)、load
balanced(负载均衡)或钦赐 Group
的诀窍。另一些针锋绝对于MS(Master-Slave)格局的优势,就是 Tracker Server 与
Master 是毫无疑问分歧的,不仅 master 有上边也许波及的单点故障难题,而且
client 与 master 之间恐怕会油但是生瓶颈。但 法斯特DFS 架构中,Tracker Server
不会称呼系统瓶颈,数据最终是与二个 available 的 Storage Server
举办传输的。

上传流程

大家可以通过 法斯特DFS 对文本的上传进度,来初叶询问 法斯特DFS
的着力架构。首先客户端 client 发起对 法斯特DFS
的文件传输动作,是因此连日到某1台 Tracker Server
的钦点端口来兑现的,Tracker Server
依据近期已精通的音讯,来决定取舍哪一台 Storage Server
,然后将那些Storage Server 的地点等消息重返给 client,然后 client
再经过这么些消息连接到那台 Storage Server,就要上传的文件传送到给 Storage
Server上。

总结

大致总计一下,FastDFS的性状包蕴(壹)高可相信性:无单点故障;(二)高吞吐量:只要
Group 丰富多,数据流量是十足分散的。

 

FastDFS部署:

一、机器布满

Tracker 192.168.100.106:22122 CentOS

Group1-Storage1 192.168.100.106:23001 CentOS

Group1-Storage1 192.168.100.125:23001 CentOS

 

二、供给到的软件和本子(软件存放地方:/root/soft)

 澳门金沙国际 1

证实:nginx重要完毕负载均衡、缓存等职能

 

叁、创制连锁文书夹

配置tracker所需的base_path: /opt/fastdfs_tracker

陈设storage所需的日志目录:fastdfs_storage_info。备注:存款和储蓄storage之间同步文件等日志的

布置storage所需的仓库储存文件目录: /opt/fastdfs_storage_data。备注:
这一个目录是用来存款和储蓄文件的

 

如上多个文本就要承继的tracker.conf和storage.conf、mod_fastdfs.conf中用到

 

四、安装libfastcommon-一.0.七.zip
(注意:先检查是否安装unzip、zip、gcc、perl等)

unzip libfastcommon-1.0.7.zip

cd libfastcommon-1.0.7

sh make.sh && sh make.sh install

 

perl安装:

wget

              tar zxvf perl-5.20.2.tar.gz               

              mkdir /usr/local/perl

              ./Configure -des -Dprefix=/usr/local/perl
-Dusethreads -Uversiononly

              make

              make install

              perl -version   

 

留意:上述安装路线在/usr/lib64/,法斯特DFS主程序设置lib目录是/usr/local/lib,创制软连接如下: 

             ln -s /usr/lib64/libfastcommon.so
/usr/local/lib/libfastcommon.so

             ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

             ln -s /usr/lib64/libfdfsclient.so
/usr/local/lib/libfdfsclient.so

             ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

 

5、安装fastdfs-5.05.tar.gz:

tar -zxvf fastdfs-5.05.tar.gz

cd fastdfs-5.05

./make.sh && ./make.sh install

 

进入/etc/fdfs那些目录,假如有配备文件存在,则设置成功

 

 

 

 

如上步骤在tracker和storage机器上都亟需实行

 

6、配置tracker (192.168.100.106)

进入/etc/fdfs文件夹,实行命令: cp  tracker.conf.sample  tracker.conf。

      编辑tracker.conf,实施命令: vi  tracker.conf ,配置成如下:

disabled=false #false代表开启配置文件

bind_addr= #空代表享有host,也足以钦命host

port=22122 #tracker暗中同意开启的端口号

connect_timeout=30 #老是超时时间

network_timeout=60 #网络超时时间

base_path=/opt/fastdfs_tracker #存放store的数据和日志文件

max_connections=256 #允许最第Billy斯接数

accept_threads=1 #允许的线程数

work_threads=4 #工作线程数,必须低于等于max_connections

store_lookup=2 #采用上传文件方式0:轮询,一:钦定组,二:负载均衡

store_group=group1 #上传到组group1

store_server=0 #上传到storage,0:轮询,一:IP顺序,2:服务器顺序

store_path=0 #上传文件到哪个路径0:轮询,二:负载均衡

download_server=0 #点名下载服务器0:轮询,一:使用源服务器

reserved_storage_space = 10% #保存的蕴藏空间

log_level=info #日志等第

run_by_group= #挑选择户组,空代表当前用户组

run_by_user= #选拔用户,空代表当前用户

allow_hosts=* #允许访问的IP,*表示全体

sync_log_buff_interval = 10 #联机日志buff到磁盘的间隔时间

check_active_interval = 120 #检查storage状态间隔时间

thread_stack_size = 64KB #线程的货仓大小,必须大于等于64KB

storage_ip_changed_auto_adjust = true #storageIP改动是自动调度

storage_sync_file_max_delay = 86400 #联合文件的最大延迟

storage_sync_file_max_time = 300 #一块文件的最大时间

use_trunk_file = false #是否选取中继文件存款和储蓄小文件

slot_min_size = 256 #积攒文件的极小单位,必须超越等于4KB

slot_max_size = 16MB #存款和储蓄文件的最大单位,必须当先slot_min_size

trunk_file_size = 64MB #联网文件的轻重缓急,必须高于等于四MB

trunk_create_file_advance = false #是还是不是同意创设中继文件超前

trunk_create_file_time_base = 02:00 #创设trunk文件的大运规范

trunk_create_file_interval = 86400 #创造trunk文件的岁月距离

trunk_create_file_space_threshold = 20G

trunk_init_check_occupying = false

trunk_init_reload_from_binlog = false

trunk_compress_binlog_min_interval = 0

use_storage_id = false

storage_ids_filename = storage_ids.conf

id_type_in_filename = ip

store_slave_file_use_link = false

rotate_error_log = false

error_log_rotate_time=00:00

rotate_error_log_size = 0

log_file_keep_days = 0

use_connection_pool = false

connection_pool_max_idle_time = 3600

http.server_port=8080

http.check_alive_interval=30

http.check_alive_type=tcp

http.check_alive_uri=/status.htm

 

布局文件详细表明参考:

 

启动tracker: /usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf
 start (start\stop\restart)

检查评定是不是运转成功:netstat -lntup|grep fdfs_trackerd

 

 

安装开机运维:

echo “/usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf  start” >>
/etc/rc.d/rc.local

 

7、配置storage (192.168.100.106\192.168.100.125)

跻身/etc/fdfs文件夹,推行命令: cp  storage.conf.sample  storage.conf

编写制定storage.conf,试行命令: vi storage.conf ,配置成如下:

disabled=false

group_name=group1

bind_addr=

client_bind=true

port=23001

connect_timeout=30

network_timeout=60

heart_beat_interval=30

stat_report_interval=60

base_path=/opt/fastdfs_storage_info

max_connections=256

buff_size = 256KB

accept_threads=1

work_threads=4

disk_rw_separated = true

disk_reader_threads = 1

disk_writer_threads = 1

sync_wait_msec=50

sync_interval=0

sync_start_time=00:00

sync_end_time=23:59

write_mark_file_freq=500

store_path_count=1

store_path0=/opt/fastdfs_storage_data

subdir_count_per_path=256

tracker_server=192.168.100.106:22122

log_level=info

run_by_group=

run_by_user=

allow_hosts=*

file_distribute_path_mode=0

file_distribute_rotate_count=100

fsync_after_written_bytes=0

sync_log_buff_interval=10

sync_binlog_buff_interval=10

sync_stat_file_interval=300

thread_stack_size=512KB

upload_priority=10

if_alias_prefix=

check_file_duplicate=0

file_signature_method=hash

伍集群详细经过,安装和布署。key_namespace=FastDFS

keep_alive=0

use_access_log = false

rotate_access_log = false

access_log_rotate_time=00:00

rotate_error_log = false

error_log_rotate_time=00:00

rotate_access_log_size = 0

rotate_error_log_size = 0

log_file_keep_days = 0

file_sync_skip_invalid_record=false

use_connection_pool = false

connection_pool_max_idle_time = 3600

http.domain_name=

http.server_port=8888

 

布局文件详细评释参考:

 

启动storage: /usr/local/bin/fdfs_storage  /etc/fdfs/storage.conf  start

检查测试是还是不是运维成功:netstat -lntup|grep fdfs_storaged

 澳门金沙国际 2

检查实验运营状态:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

       查看1玖二.168.100.十陆:2300壹 是ACTIVE状态就能够

 

安装开机自动运维:

echo “/usr/bin/fdfs_trackerd  /etc/fdfs/storage.conf  start” >>
/etc/rc.d/rc.local

 

8、安装nginx

storage中设置nginx,主若是为了为提供http的走访服务,同时消除group中storage服务器的同台延迟难点。而tracker中设置nginx,首假使为了提供http访问的反向代理、负载均衡以及缓存服务 

yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl
openssl-devel

 

a、在storage中安装nginx (192.168.100.106\192.168.100.125)

tar -zxvf nginx1.7.8.tar.gz

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

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

编辑config文件,找到蕴涵CORE_INCS那么些一行,将路径中local全体去掉,变为CORE_INCS=”$CORE_INCS
/usr/include/fastdfs /usr/include/fastcommon/”

cd nginx1.7.8

–prefix=/opt/nginx –add-module=/root/soft/fastdfs-nginx-module/src

make && make install

 

编辑nginx.conf文件如下:

 

 

 

 

 

 

 

 

 

 

 

 

将http.conf和mime.types拷贝到/etc/fdfs/下,要是不施行这一步,运维nginx时会报错。

cp /root/soft/fastdfs-5.05/conf/http.conf /etc/fdfs/

cp /root/soft/fastdfs-5.05/conf/mime.conf /etc/fdfs/

将mod_fastdfs.conf那一个文件拷贝到 /etc/fdfs 目录下

cp /root/soft/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

编辑mod_fastdfs.conf 文件如下:

connect_timeout=2

network_timeout=30

base_path=/opt/fastdfs_storage_info

load_fdfs_parameters_from_tracker=true

storage_sync_file_max_delay = 86400

use_storage_id = false

storage_ids_filename = storage_ids.conf

tracker_server=192.168.100.106:22122

storage_server_port=23001

group_name=group1

url_have_group_name = true

store_path_count=1

store_path0=/opt/fastdfs_storage_data

log_level=info

log_filename=

response_mode=proxy

if_alias_prefix=

flv_support = true

flv_extension = flv

group_count = 1

[group1]

group_name=group1

storage_server_port=23001

store_path_count=1

store_path0=/opt/fastdfs_storage_data

store_path1=/opt/fastdfs_storage_data

 

布署文件详细注明参考:

 

确立软连接:

ln  -s  /opt/fastdfs_storage_data/data
 /opt/fastdfs_storage_data/data/M00

 

启动nginx: /opt/nginx/sbin/nginx

 

b、在tracker中安装nginx

tar -zxvf nginx1.7.8.tar.gz

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

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

编写制定config文件,找到包涵CORE_INCS那一个壹行,将路线中local全体去掉,变为CORE_INCS=”$CORE_INCS
/usr/include/fastdfs /usr/include/fastcommon/”

cd nginx1.7.8

–prefix=/opt/nginx –add-module=/root/soft/fastdfs-nginx-module/src
–add-module=/root/soft/ngx_cache_purge-2.1 –with-http_ssl_module
–with-pcre=/root/soft/pcre-8.40 –with-zlib=/root/soft/zlib-1.2.11

make && make install

 

编写制定nginx.conf文件如下:

 澳门金沙国际 3

启动nginx:/opt/nginx/sbin/nginx

 

玖、测试并上传文件

编写client.conf 文件,编辑内容如下:

 

 

 

 

 

 

测试上传文件:

echo “this is a test file — hello world” >> test.txt

/usr/bin/fdfs_test /etc/fdfs/client.conf upload test.txt #上传

扭转如下url,并复制到浏览器访问

 

澳门金沙国际 4

 澳门金沙国际 5

澳门金沙国际 6

以上测试申明成功,并且两台stroage同步成功了

 

测试负载均衡办法:停掉19二.168.100.125依然1玖贰.16捌.拾0.十陆的storage再开始展览上传测试

 /usr/local/bin/fdfs_storage  /etc/fdfs/storage.conf  stop

 

 

十、PHP安装FasfDFS扩充模块

cd /root/soft/fastdfs-5.05/client

make && make install

cd /root/soft/fastdfs-5.05/php_client

 

/usr/local/php/bin/phpize

./configure –with-php-config=/usr/local/php/bin/php-config

make && make install

cd /etc/fdfs

vi client.conf

tracker_server=1九二.168.拾0.十6:2212贰 //依照情状填写IP地址及端口号

 

在php.ini配置文件中加载fastdfs

cat fastdfs_client.ini >> /usr/local/php/etc/php.ini

 

新增添nginx配置如下:

server {

listen 8080;

server_name localhost;

access_log /data/wwwlogs/access_nginx_cms.log combined;

root /opt/nginx/html;

index index.html index.htm index.php forum.php;

location /nginx_status {

access_log off;

allow 127.0.0.1;

deny all;

}

error_page 404 /404.html;

location ~ [^/]\.php(/|$) {

fastcgi_pass 192.168.100.106:9000;

fastcgi_index index.php;

include /usr/local/nginx/conf/fastcgi_params;

include fastcgi.conf;

}

location \(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {

expires 30d;

access_log off;

}

location \(js|css)?$ {

expires 7d;

access_log off;

}

}

 

重启nginx和php

/opt/nginx/sbin/nginx -s reload

或者

pkill -9 nginx

/opt/nginx/sbin/nginx

 

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

或者

pkill -9 php

/usr/local/php/sbin/php-fpm

 

测试:在浏览器中输入:

若果出现类似于以下截图则象征成功

 澳门金沙国际 7

 

法斯特DFS架构简要介绍 法斯特DFS是1款开源的、布满式文件系统(Distributed
Fil…

0.参考
正文是在上学淘淘店4项目时记下的。首借使参照了淘淘市四录制及《Java
技师眼中的 Linux》
https://github.com/judasn/Linux-Tutorial

法斯特DFS是一款开源的、遍及式文件系统(Distributed File
System),由天猫开辟平台部资深架构师余庆开拓。法斯特DFS
是包罗一组 Tracker Server 和 Storage Server 的。Tracker Server 与
Storage Server
之间不直接通讯,其主导的音信由安顿文件在系统运营加载时获悉。多台 Tracker
Server 之间保障了 Tracker 的遍及式,Tracker Server
之间是对等的,幸免了单点故障。 Storage Server 是分成七个 Group,每一种Group 中的Storage 都是相互备份的,也正是说,即便 Group一 有
Storage壹、Storage二、Storage3,其体积分别是十0GB、拾0GB、100GB,那么
Group一 的蕴藏技巧是 100GB,而不是
300GB,那便是互为备份的意趣。进一步说,整个 Group
的贮存才干由该组中该储本事最小的 Storage 决定。四个 Group
之间的囤积格局,能够行使 round robin(轮训)、load
balanced(负载均衡)或内定 Group
的不二等秘书诀。另一些争论于MS(Master-Slave)格局的优势,就是 Tracker Server 与
Master 是迟早区别的,不仅 master 有上边大概涉及的单点故障难点,而且
client 与 master 之间只怕会现出瓶颈。但 法斯特DFS 架构中,Tracker Server
不会称呼系统瓶颈,数据最终是与三个 available 的 Storage Server
进行传输的。

1.什么是FastDFS
FastDFS是用c语言编写的一款开源的布满式文件系统。法斯特DFS为网络量身定制,丰裕思量了冗余备份、负载均衡、线性扩大体量等体制,并爱惜高可用、高质量等目的,使用法斯特DFS很轻便搭建1套高质量的文本服务器集群提供文件上传、下载等劳务。

上传流程

澳门金沙国际 8

咱俩得以因此 法斯特DFS 对文本的上传进程,来初始询问 法斯特DFS
的基本架构。首先客户端 client 发起对 法斯特DFS
的文件传输动作,是经过连日到某一台 Tracker Server
的钦定端口来完结的,Tracker Server
依照目前已驾驭的音讯,来决定选拔哪壹台 Storage Server
,然后将以此Storage Server 的地方等音信再次回到给 client,然后 client
再通过那一个音讯连接到那台 Storage Server,将要上传的公文传送到给 Storage
Server上。

1.png

总结

2.文本上传流程

简简单单总计一下,法斯特DFS的特征包蕴(壹)高可信赖性:无单点故障;(二)高吞吐量:只要
Group 丰盛多,数据流量是10足分散的。

澳门金沙国际 9

 

2.png

FastDFS部署:

3.文书下载流程

一、机器布满

澳门金沙国际 10

Tracker 192.168.100.106:22122 CentOS

3.png

Group1-Storage1 192.168.100.106:23001 CentOS

四.上传文件的公文名
客户端上传文件后存款和储蓄服务器将文件ID重临给客户端,此文件ID用于以后访问该文件的目录新闻。文件索引新闻包涵:组名,虚拟磁盘路线,数据两级目录,文件名。

Group1-Storage1 192.168.100.125:23001 CentOS

澳门金沙国际 11

 

clipboard.png

二、须求到的软件和版本(软件存放地点:/root/soft)

组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,供给客户端自行保留。
虚拟磁盘路线:storage配置的虚构路线,与磁盘选项store_path*相应。借使布置了store_path0则是M00,若是安顿了store_path1则是M0壹,依此类推。
数据两级目录:storage服务器在各种虚拟磁盘路线下创办的两级目录,用于存储数据文件。

 澳门金沙国际 12

文件名:与公事上传时不一样。是由存款和储蓄服务器遵照特定新闻改造,文件名包涵:源贮存服务器IP地址、文件创立时间戳、文件大小、随机数和文书拓展名等音讯。
5.FastDFS搭建

表达:nginx首要实现负载均衡、缓存等职能

澳门金沙国际 13

 

clipboard2.png

三、创立连锁文书夹

能够使用一台虚拟机来模拟,唯有2个Tracker、1个Storage服务。配置nginx访问图片。
伍.1 搭建步骤(单机安装配备CentOS 6.七 境况)

配置tracker所需的base_path: /opt/fastdfs_tracker

软件希图
FastDFS_v5.05.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
libfastcommon-1.0.7.tar.gz

配备storage所需的日记目录:fastdfs_storage_info。备注:存款和储蓄storage之间同步文件等日志的

设置正视包:yum install -y libevent
跻身安装路线:cd /usr/local
创建fastFDS文件夹:mkdir fastFDS
进入fastFDS文件夹:cd fastFDS
安装 libfastcommon-1.0.7.tar.gz
下载:wget
https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
修改名字:mv V一.0.7 libfastcommon-1.0.7.tar.gz
解压:tar zxvf libfastcommon-1.0.7.tar.gz
进入解压后目录:cd libfastcommon-一.0.7/
编译:./make.sh
安装:./make.sh install
安装几个软链接:ln -s /usr/lib64/libfastcommon.so
/usr/local/lib/libfastcommon.so
安装多少个软链接:ln -s /usr/lib64/libfastcommon.so
/usr/lib/libfastcommon.so
设置多少个软链接:ln -s /usr/lib64/libfdfsclient.so
/usr/local/lib/libfdfsclient.so
设置几个软链接:ln -s /usr/lib64/libfdfsclient.so
/usr/lib/libfdfsclient.so

配备storage所需的贮存文件目录: /opt/fastdfs_storage_data。备注:
这几个目录是用来囤积文件的

安装 tracker (跟踪器)服务 FastDFS_v5.05.tar.gz
下载:wget
https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
修改名字:mv V伍.0伍 法斯特DFS_v5.05.tar.gz
解压:tar zxvf FastDFS_v5.05.tar.gz
跻身解压后目录:cd fastdfs-伍.05/
编译:./make.sh
安装:./make.sh install
设置结果:

 

/usr/bin 存放有编写翻译出来的公文/etc/fdfs 存放有计划文件
配置 tracker 服务
复制1份配置文件:cp /etc/fdfs/tracker.conf.sample
/etc/fdfs/tracker.conf
编制:vim /etc/fdfs/tracker.conf,编辑内容看下边中文注释
<pre>
disabled=false
bind_addr=
port=22122
connect_timeout=30
network_timeout=60

上述八个文件将要继续的tracker.conf和storage.conf、mod_fastdfs.conf中用到

上面这一个门路是保留 store data 和 log 的地点,要求改下,指向我们贰个设有的目录

 

创造目录:mkdir -p /opt/fastdfs/tracker/data-and-log

base_path=/opt/fastdfs/tracker/data-and-log
max_connections=256
accept_threads=1
work_threads=4
store_lookup=2
store_group=group2
store_server=0
store_path=0
download_server=0
reserved_storage_space = 10%
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
sync_log_buff_interval = 10
check_active_interval = 120
thread_stack_size = 64KB
storage_ip_changed_auto_adjust = true
storage_sync_file_max_delay = 86400
storage_sync_file_max_time = 300
use_trunk_file = false
slot_min_size = 256
slot_max_size = 16MB
trunk_file_size = 64MB
trunk_create_file_advance = false
trunk_create_file_time_base = 02:00
trunk_create_file_interval = 86400
trunk_create_file_space_threshold = 20G
trunk_init_check_occupying = false
trunk_init_reload_from_binlog = false
trunk_compress_binlog_min_interval = 0
use_storage_id = false
storage_ids_filename = storage_ids.conf
id_type_in_filename = ip
store_slave_file_use_link = false
rotate_error_log = false
error_log_rotate_time=00:00
rotate_error_log_size = 0
log_file_keep_days = 0
use_connection_pool = false
connection_pool_max_idle_time = 3600
http.server_port=8080
http.check_alive_interval=30
http.check_alive_type=tcp
http.check_alive_uri=/status.html
</pre>

启动 tracker 服务:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启 tracker 服务:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
restart
查看是或不是有 tracker 进度:ps aux | grep tracker

storage (存款和储蓄节点)服务配置
一般 storage
服务大家会单独装1台机子,可是这里为了便利大家设置在同一台。
只要 storage
单独安装的话,那方面安装的有最先续都要在走叁次,只是到了编辑配置文件的时候,编辑的是
storage.conf 而已
复制1份配置文件:cp /etc/fdfs/storage.conf.sample
/etc/fdfs/storage.conf
编排:vim /etc/fdfs/storage.conf,编辑内容看上边粤语注释

<pre>

disabled=false
group_name=group1
bind_addr=
client_bind=true
port=23000
connect_timeout=30
network_timeout=60
heart_beat_interval=30
stat_report_interval=60

四、安装libfastcommon-壹.0.七.zip
(注意:先反省是不是安装unzip、zip、gcc、perl等)

上面这么些渠道是保存 store data 和 log 的地点,须要改下,指向3个存在的目录

unzip libfastcommon-1.0.7.zip

创办目录:mkdir -p /opt/fastdfs/storage/data-and-logbase_path=/opt/fastdfs/storage/data-and-log

max_connections=256
buff_size = 256KB
accept_threads=1
work_threads=4
disk_rw_separated = true
disk_reader_threads = 1
disk_writer_threads = 1
sync_wait_msec=50
sync_interval=0
sync_start_time=00:00
sync_end_time=23:59
write_mark_file_freq=500
store_path_count=1

cd libfastcommon-1.0.7

图片实际存放路线,若是有多个,这里能够有多行:

sh make.sh && sh make.sh install

store_path0=/opt/fastdfs/storage/images-data0

 

store_path1=/opt/fastdfs/storage/images-data1

perl安装:

store_path2=/opt/fastdfs/storage/images-data2

wget

开创目录:mkdir -p /opt/fastdfs/storage/images-datastore_path0=/opt/fastdfs/storage/images-data

subdir_count_per_path=256

              tar zxvf perl-5.20.2.tar.gz               

钦点 tracker 服务器的 IP 和端口

tracker_server=192.168.1.114:22122
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
file_distribute_path_mode=0
file_distribute_rotate_count=100
fsync_after_written_bytes=0
sync_log_buff_interval=10
sync_binlog_buff_interval=10
sync_stat_file_interval=300
thread_stack_size=512KB
upload_priority=10
if_alias_prefix=
check_file_duplicate=0
file_signature_method=hash
key_namespace=FastDFS
keep_alive=0
use_access_log = false
rotate_access_log = false
access_log_rotate_time=00:00
rotate_error_log = false
error_log_rotate_time=00:00
rotate_access_log_size = 0
rotate_error_log_size = 0
log_file_keep_days = 0
file_sync_skip_invalid_record=false
use_connection_pool = false
connection_pool_max_idle_time = 3600
http.domain_name =
http.server_port=8888

</pre>

启动 storage 服务:/usr/bin/fdfs_storaged
/etc/fdfs/storage.conf,第贰遍运行会一点也不快,因为它在创建预设存款和储蓄文件的目录
重启 storage 服务:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
restart
翻看是或不是有 storage 进度:ps aux | grep storage

测试是或不是计划成功
用自带的 client 进行测试
复制1份配置文件:cp /etc/fdfs/client.conf.sample
/etc/fdfs/client.conf
编纂:vim /etc/fdfs/client.conf,编辑内容看上边汉语注释

<pre>

connect_timeout=30
network_timeout=60

              mkdir /usr/local/perl

上边这些渠道是保留 store log 的地点,须要改下,指向三个留存的目录

              ./Configure -des -Dprefix=/usr/local/perl
-Dusethreads -Uversiononly

创办目录:mkdir -p /opt/fastdfs/client/data-and-log

base_path=/opt/fastdfs/client/data-and-log

              make

点名 tracker 服务器的 IP 和端口

tracker_server=192.168.1.114:22122
log_level=info
use_connection_pool = false
connection_pool_max_idle_time = 3600
load_fdfs_parameters_from_tracker=false
use_storage_id = false
storage_ids_filename = storage_ids.conf
http.tracker_server_port=80

</pre>

从英特网下载一张图纸到 /opt下:

cd /opt
wget
http://www.rettc.org/staticImage/news/20160419/1460995882635.jpg
在终极中经过 shell 上传 opt 目录下的一张图片:/usr/bin/fdfs_test
/etc/fdfs/client.conf upload /opt/1460995882635.jpg

结果如下:

纵然大家明天晓得图片的拜访地址我们也走访不了,因为我们还没装 法斯特DFS 的
Nginx 模块

设置Nginx和其插件
一经Nginx已经设置过,则仅要求fastdfs-nginx-module_v一.16.tar.gz。安装
Nginx 第二方模块也就是那个 Nginx 都以要重新安装三遍的
进入usr/local:cd /usr/local
下载Nginx:wget
http://nginx.org/download/nginx-1.11.8.tar.gz
下载Nginx插件:wget
http://jaist.dl.sourceforge.NET/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module\_v1.16.tar.gz
解压 Nginx 模块:tar zxvf
fastdfs-nginx-module_v一.1陆.tar.gz,放到目录地址:/opt/setups/FastDFS/fastdfs-nginx-module
编纂 Nginx 模块的配备文件:vim
/opt/setups/法斯特DFS/fastdfs-nginx-module/src/config
找到下边一行包涵有 local 字眼去掉,因为那三个门路根本不是在 local
目录下的

<pre>

CORE_INCS=”$CORE_INCS /usr/local/include/fastdfs
/usr/local/include/fastcommon/”

</pre>
改为如下:

<pre>

CORE_INCS=”$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/”

</pre>

复制文件:cp /usr/local/fastDFS/fastdfs-伍.05/conf/http.conf /etc/fdfs
复制文件:cp /usr/local/fastDFS/fastdfs-5.05/conf/mime.types /etc/fdfs

安装 Nginx 依赖包:yum install -y gcc gcc-c++ pcre pcre-devel zlib
zlib-devel openssl openssl-devel
预设多少个公文夹,方便等下安装的时候有点公文能够实行存放:mkdir -p
/usr/local/nginx /var/log/nginx /var/temp/nginx /var/lock/nginx
解压 Nginx:tar zxvf /opt/setups/nginx-1.8.1.tar.gz
跻身解压后目录:cd /opt/setups/nginx-1.八.1/
编写翻译配置:(注意最终1行)

<pre>

./configure
–prefix=/usr/local/nginx
–pid-path=/var/local/nginx/nginx.pid
–lock-path=/var/lock/nginx/nginx.lock
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–with-http_gzip_static_module
–http-client-body-temp-path=/var/temp/nginx/client
–http-proxy-temp-path=/var/temp/nginx/proxy
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi
–http-scgi-temp-path=/var/temp/nginx/scgi
–add-module=/opt/setups/FastDFS/fastdfs-nginx-module/src

</pre>

编译:make
安装:make install
复制 Nginx 模块的布局文件:cp
/opt/setups/法斯特DFS/fastdfs-nginx-module/src/mod_fastdfs.conf
/etc/fdfs
编排 Nginx 模块的配备文件:vim
/etc/fdfs/mod_fastdfs.conf,编辑内容看上边普通话注释
即使在已经启动 Nginx 的气象下修改上边内容记得要重启 Nginx。

<pre>

connect_timeout=2
network_timeout=30

              make install

上边那么些门路是保留 log 的地点,必要大家改下,指向大家二个设有的目录

              perl -version   

创建目录:mkdir -p /opt/fastdfs/fastdfs-nginx-module/data-and-log

base_path=/opt/fastdfs/fastdfs-nginx-module/data-and-log
load_fdfs_parameters_from_tracker=true
storage_sync_file_max_delay = 86400
use_storage_id = false
storage_ids_filename = storage_ids.conf

 

点名 tracker 服务器的 IP 和端口

tracker_server=192.168.1.114:22122
storage_server_port=23000
group_name=group1

小心:上述安装路线在/usr/lib64/,法斯特DFS主程序设置lib目录是/usr/local/lib,创立软连接如下: 

因为我们走访图片的地址是:

             ln -s /usr/lib64/libfastcommon.so
/usr/local/lib/libfastcommon.so

http://192.168.1.114/group1/M00/00/00/wKgBclb0aqWAbVNrAAAjn7\_h9gM813\_big.jpg

             ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

该地址前边是含有 /group1/M00,所以我们那边要采取 true,不然访问不到(原值是 false)

url_have_group_name = truestore_path_count=1

             ln -s /usr/lib64/libfdfsclient.so
/usr/local/lib/libfdfsclient.so

图表实际存放路线,若是有多少个,这里能够有多行:

             ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

store_path0=/opt/fastdfs/storage/images-data0

 

store_path1=/opt/fastdfs/storage/images-data1

5、安装fastdfs-5.05.tar.gz:

store_path2=/opt/fastdfs/storage/images-data2

store_path0=/opt/fastdfs/storage/images-data
log_level=info
log_filename=
response_mode=proxy
if_alias_prefix=
flv_support = true
flv_extension = flv
group_count = 0

</pre>

编纂 Nginx 配置文件

<pre>

tar -zxvf fastdfs-5.05.tar.gz

留神那一行行,尤其丰裕了动用 root 用户去实践,不然某个日记目录未有权力访问

user root;
worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

server {
listen 80;
# 访问本机
server_name 192.168.1.114;
# 拦截包涵 /group1/M00 请求,使用 fastdfs 那个 Nginx 模块进行转账
location /group1/M00 {
ngx_fastdfs_module;
}
}
}

</pre>

启动 Nginx
停掉防火墙:service iptables stop
启航:/usr/local/nginx/sbin/nginx,运转成功 shell 是不会有出口的
访问:1九二.168.1.11肆,固然能看出:Welcome to nginx!,就能够表示安装成功
自己研究 时候有 Nginx 进度:ps aux | grep nginx,通常是展现 三 个结果出来
刷新 Nginx 配置后重启:/usr/local/nginx/sbin/nginx -s reload
停止 Nginx:/usr/local/nginx/sbin/nginx -s stop
假若访问不了,或是现身其它新闻看下错误立刻:vim
/var/log/nginx/error.log本文首要参考

cd fastdfs-5.05

./make.sh && ./make.sh install

 

进去/etc/fdfs这几个目录,假诺有配备文件存在,则设置成功

澳门金沙国际 14

 

 

 

 

如上步骤在tracker和storage机器上都亟需实施

 

6、配置tracker (192.168.100.106)

进去/etc/fdfs文件夹,实行命令: cp  tracker.conf.sample  tracker.conf。

      编辑tracker.conf,推行命令: vi  tracker.conf ,配置成如下:

disabled=false #false代表开启配置文件

bind_addr= #空代表享有host,也能够钦点host

port=22122 #tracker暗中认可开启的端口号

connect_timeout=30 #再而三超时时间

network_timeout=60 #互联网超时时间

base_path=/opt/fastdfs_tracker #存放store的数据和日志文件

max_connections=256 #允许最菲尼克斯接数

accept_threads=1 #同意的线程数

work_threads=4 #工作线程数,必须低于等于max_connections

store_lookup=2 #选料上传文件格局0:轮询,一:内定组,二:负载均衡

store_group=group1 #上传到组group1

store_server=0 #上传到storage,0:轮询,一:IP顺序,二:服务器顺序

store_path=0 #上传文件到哪些路线0:轮询,二:负载均衡

download_server=0 #内定下载服务器0:轮询,一:使用源服务器

reserved_storage_space = 10% #保存的存款和储蓄空间

log_level=info #日记等第

run_by_group= #分选拔户组,空代表当前用户组

run_by_user= #选料用户,空代表当前用户

allow_澳门金沙国际 ,hosts=* #允许访问的IP,*表示整个

sync_log_buff_interval = 10 #一路日志buff到磁盘的间隔时间

check_active_interval = 120 #反省storage状态间隔时间

thread_stack_size = 64KB #线程的酒店大小,必须赶过等于64KB

storage_ip_changed_auto_adjust = true #storageIP改动是半自动调节

storage_sync_file_max_delay = 86400 #联机文件的最大延迟

storage_sync_file_max_time = 300 #一起文件的最大时间

use_trunk_file = false #是还是不是选拔中继文件存款和储蓄小文件

slot_min_size = 256 #储存文件的细小单位,必须大于等于4KB

slot_max_size = 16MB #积攒文件的最大单位,必须高出slot_min_size

trunk_file_size = 64MB #接通文件的轻重,必须高于等于肆MB

trunk_create_file_advance = false #是或不是同意创制中继文件超前

trunk_create_file_time_base = 02:00 #创建trunk文件的时刻尺度

trunk_create_file_interval = 86400 #创制trunk文件的日子距离

trunk_create_file_space_threshold = 20G

trunk_init_check_occupying = false

trunk_init_reload_from_binlog = false

trunk_compress_binlog_min_interval = 0

use_storage_id = false

storage_ids_filename = storage_ids.conf

id_type_in_filename = ip

store_slave_file_use_link = false

rotate_error_log = false

error_log_rotate_time=00:00

rotate_error_log_size = 0

log_file_keep_days = 0

use_connection_pool = false

connection_pool_max_idle_time = 3600

http.server_port=8080

http.check_alive_interval=30

http.check_alive_type=tcp

http.check_alive_uri=/status.htm

 

安排文件详细注脚参考:

 

启动tracker: /usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf
 start (start\stop\restart)

检验是不是运转成功:netstat -lntup|grep fdfs_trackerd

澳门金沙国际 15 

 

安装开机运营:

echo “/usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf  start” >>
/etc/rc.d/rc.local

 

7、配置storage (192.168.100.106\192.168.100.125)

进入/etc/fdfs文件夹,施行命令: cp  storage.conf.sample  storage.conf

编辑storage.conf,推行命令: vi storage.conf ,配置成如下:

disabled=false

group_name=group1

bind_addr=

client_bind=true

port=23001

connect_timeout=30

network_timeout=60

heart_beat_interval=30

stat_report_interval=60

base_path=/opt/fastdfs_storage_info

max_connections=256

buff_size = 256KB

accept_threads=1

work_threads=4

disk_rw_separated = true

disk_reader_threads = 1

disk_writer_threads = 1

sync_wait_msec=50

sync_interval=0

sync_start_time=00:00

sync_end_time=23:59

write_mark_file_freq=500

store_path_count=1

store_path0=/opt/fastdfs_storage_data

subdir_count_per_path=256

tracker_server=192.168.100.106:22122

log_level=info

run_by_group=

run_by_user=

allow_hosts=*

file_distribute_path_mode=0

file_distribute_rotate_count=100

fsync_after_written_bytes=0

sync_log_buff_interval=10

sync_binlog_buff_interval=10

sync_stat_file_interval=300

thread_stack_size=512KB

upload_priority=10

if_alias_prefix=

check_file_duplicate=0

file_signature_method=hash

key_namespace=FastDFS

keep_alive=0

use_access_log = false

rotate_access_log = false

access_log_rotate_time=00:00

rotate_error_log = false

error_log_rotate_time=00:00

rotate_access_log_size = 0

rotate_error_log_size = 0

log_file_keep_days = 0

file_sync_skip_invalid_record=false

use_connection_pool = false

connection_pool_max_idle_time = 3600

http.domain_name=

http.server_port=8888

 

计划文件详细申明参考:

 

启动storage: /usr/local/bin/fdfs_storage  /etc/fdfs/storage.conf  start

检验是还是不是运转成功:netstat -lntup|grep fdfs_storaged

 澳门金沙国际 16

检查实验运维状态:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

       查看1九二.16八.100.10陆:2300一 是ACTIVE状态就可以

 

安装开机自动运营:

echo “/usr/bin/fdfs_trackerd  /etc/fdfs/storage.conf  start” >>
/etc/rc.d/rc.local

 

8、安装nginx

storage中安装nginx,首若是为了为提供http的拜访服务,同时减轻group中storage服务器的联合具名延迟难点。而tracker中安装nginx,首要是为了提供http访问的反向代理、负载均衡以及缓存服务 

yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl
openssl-devel

 

a、在storage中安装nginx (192.168.100.106\192.168.100.125)

tar -zxvf nginx1.7.8.tar.gz

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

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

编写config文件,找到包蕴CORE_INCS那些1行,将路线中local全部去掉,变为CORE_INCS=”$CORE_INCS
/usr/include/fastdfs /usr/include/fastcommon/”

cd nginx1.7.8

–prefix=/opt/nginx –add-module=/root/soft/fastdfs-nginx-module/src

make && make install

 

编写nginx.conf文件如下:

澳门金沙国际 17 

 

 

 

 

 

 

 

 

 

 

 

将http.conf和mime.types拷贝到/etc/fdfs/下,假设不实行这一步,运转nginx时会报错。

cp /root/soft/fastdfs-5.05/conf/http.conf /etc/fdfs/

cp /root/soft/fastdfs-5.05/conf/mime.conf /etc/fdfs/

将mod_fastdfs.conf那几个文件拷贝到 /etc/fdfs 目录下

cp /root/soft/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

编辑mod_fastdfs.conf 文件如下:

connect_timeout=2

network_timeout=30

base_path=/opt/fastdfs_storage_info

load_fdfs_parameters_from_tracker=true

storage_sync_file_max_delay = 86400

use_storage_id = false

storage_ids_filename = storage_ids.conf

tracker_server=192.168.100.106:22122

storage_server_port=23001

group_name=group1

url_have_group_name = true

store_path_count=1

store_path0=/opt/fastdfs_storage_data

log_level=info

log_filename=

response_mode=proxy

if_alias_prefix=

flv_support = true

flv_extension = flv

group_count = 1

[group1]

group_name=group1

storage_server_port=23001

store_path_count=1

store_path0=/opt/fastdfs_storage_data

store_path1=/opt/fastdfs_storage_data

 

配置文件详细申明参考:

 

确立软连接:

ln  -s  /opt/fastdfs_storage_data/data
 /opt/fastdfs_storage_data/data/M00

 

启动nginx: /opt/nginx/sbin/nginx

 

b、在tracker中安装nginx

tar -zxvf nginx1.7.8.tar.gz

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

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

编辑config文件,找到包蕴CORE_INCS那么些一行,将路线中local全体去掉,变为CORE_INCS=”$CORE_INCS
/usr/include/fastdfs /usr/include/fastcommon/”

cd nginx1.7.8

–prefix=/opt/nginx –add-module=/root/soft/fastdfs-nginx-module/src
–add-module=/root/soft/ngx_cache_purge-2.1 –with-http_ssl_module
–with-pcre=/root/soft/pcre-8.40 –with-zlib=/root/soft/zlib-1.2.11

make && make install

 

编辑nginx.conf文件如下:

 澳门金沙国际 18

启动nginx:/opt/nginx/sbin/nginx

 

九、测试并上传文件

编排client.conf 文件,编辑内容如下:

澳门金沙国际 19 

 

 

 

 

 

测试上传文件:

echo “this is a test file — hello world” >> test.txt

/usr/bin/fdfs_test /etc/fdfs/client.conf upload test.txt #上传

变动如下url,并复制到浏览器访问

 

澳门金沙国际 20

 澳门金沙国际 21

澳门金沙国际 22

如上测试表明成功,并且两台stroage同步成功了

 

测试负载均衡办法:停掉19二.168.100.1二伍要么1玖二.16捌.十0.10陆的storage再开始展览上传测试

 /usr/local/bin/fdfs_storage  /etc/fdfs/storage.conf  stop

 

 

10、PHP安装FasfDFS扩充模块

cd /root/soft/fastdfs-5.05/client

make && make install

cd /root/soft/fastdfs-5.05/php_client

 

/usr/local/php/bin/phpize

./configure –with-php-config=/usr/local/php/bin/php-config

make && make install

cd /etc/fdfs

vi client.conf

tracker_server=1九二.16八.100.10六:2212二 //依据情形填写IP地址及端口号

 

在php.ini配置文件中加载fastdfs

cat fastdfs_client.ini >> /usr/local/php/etc/php.ini

 

增产nginx配置如下:

server {

listen 8080;

server_name localhost;

access_log /data/wwwlogs/access_nginx_cms.log combined;

root /opt/nginx/html;

index index.html index.htm index.php forum.php;

location /nginx_status {

access_log off;

allow 127.0.0.1;

deny all;

}

error_page 404 /404.html;

location ~ [^/]\.php(/|$) {

fastcgi_pass 192.168.100.106:9000;

fastcgi_index index.php;

include /usr/local/nginx/conf/fastcgi_params;

include fastcgi.conf;

}

location \(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {

expires 30d;

access_log off;

}

location \(js|css)?$ {

expires 7d;

access_log off;

}

}

 

重启nginx和php

/opt/nginx/sbin/nginx -s reload

或者

pkill -9 nginx

/opt/nginx/sbin/nginx

 

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

或者

pkill -9 php

/usr/local/php/sbin/php-fpm

 

测试:在浏览器中输入:

即使出现类似于以下截图则意味成功

 澳门金沙国际 23

 

相关文章