5

分布式文件系统FastDFS实战(中)——FastDFS部署

 2 years ago
source link: https://chegva.com/2484.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

分布式文件系统FastDFS实战(中)——FastDFS部署

1. FastDFS安装

安装环境准备:

1、运行环境及相关软件

  • CentOS Linux release 7.2.1511 (Core)

  • fastdfs-5.11

  • nginx-1.10.1

  • php 5.6.22

  • fastdfs-nginx-module Version 1.20 

  • libfastcommon Version 1.36

2、服务器规划

服务器名称
IP地址和端口
备注
fastdfs-tracker

192.168.56.11:22122

192.168.56.12:22122

跟踪服务器/调度服务器fastdfs-storage

192.168.56.11:23000

192.168.56.12:23000

存储服务器

安装依赖包

[root@linux-node1 ~]# cd /usr/local/src/
[root@linux-node1 /usr/local/src]# git clone https://github.com/happyfish100/libfastcommon.git
[root@linux-node1 /usr/local/src/libfastcommon]# ./make.sh
[root@linux-node1 /usr/local/src/libfastcommon]# cd libfastcommon/ && ./make.sh && ./make.sh install

安装最新版FastDFS(v5.11版本)

[root@linux-node1 /usr/local/src/libfastcommon]# cd ..
[root@linux-node1 /usr/local/src]# wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
[root@linux-node1 /usr/local/src]# tar xf V5.11.tar.gz && cd fastdfs-5.11/ && ./make.sh && ./make.sh install

配置文件目录:/etc/fdfs

[root@linux-node1 /usr/local/src/fastdfs-5.11]# tree /etc/fdfs/
/etc/fdfs/
├── client.conf.sample
├── storage.conf.sample
├── storage_ids.conf.sample
└── tracker.conf.sample

软件安装目录:/usr/bin

[root@linux-node1 /usr/local/src/fastdfs-5.11]# ll /usr/bin/fdfs*
-rwxr-xr-x 1 root root  317442 Sep 11 00:33 /usr/bin/fdfs_appender_test
-rwxr-xr-x 1 root root  317219 Sep 11 00:33 /usr/bin/fdfs_appender_test1
-rwxr-xr-x 1 root root  304067 Sep 11 00:33 /usr/bin/fdfs_append_file
-rwxr-xr-x 1 root root  303817 Sep 11 00:33 /usr/bin/fdfs_crc32
-rwxr-xr-x 1 root root  304126 Sep 11 00:33 /usr/bin/fdfs_delete_file
-rwxr-xr-x 1 root root  304861 Sep 11 00:33 /usr/bin/fdfs_download_file
-rwxr-xr-x 1 root root  304451 Sep 11 00:33 /usr/bin/fdfs_file_info
-rwxr-xr-x 1 root root  322376 Sep 11 00:33 /usr/bin/fdfs_monitor
-rwxr-xr-x 1 root root 1111634 Sep 11 00:33 /usr/bin/fdfs_storaged
-rwxr-xr-x 1 root root  327378 Sep 11 00:33 /usr/bin/fdfs_test
-rwxr-xr-x 1 root root  326595 Sep 11 00:33 /usr/bin/fdfs_test1
-rwxr-xr-x 1 root root  453868 Sep 11 00:33 /usr/bin/fdfs_trackerd
-rwxr-xr-x 1 root root  305053 Sep 11 00:33 /usr/bin/fdfs_upload_appender
-rwxr-xr-x 1 root root  306073 Sep 11 00:33 /usr/bin/fdfs_upload_file

启动文件

[root@linux-node1 /usr/local/src/fastdfs-5.11]# ll /etc/init.d/fdfs*
-rwxr-xr-x 1 root root 961 Sep 11 00:33 /etc/init.d/fdfs_storaged
-rwxr-xr-x 1 root root 963 Sep 11 00:33 /etc/init.d/fdfs_trackerd

2. FastDFS配置启动

创建存储路径:node1,node2上都执行以下操作

mkdir -p /data/{fdfs_tracker,fdfs_storage}
mkdir /data/fdfs_storage/base
mkdir /data/fdfs_storage/store
cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
cp storage.conf.sample storage.conf

tracker服务配置文件

[root@linux-node1 /etc/fdfs]# egrep -v "^$|^#" tracker.conf
disabled=false	#配置开启
bind_addr=	#地址绑定
port=22122	#默认端口
connect_timeout=30	#连接超时
network_timeout=60	#网络反应超时

# the base path to store data and log files
base_path=/data/fdfs_tracker

#最大连接数及启动线程数	
max_connections=256
accept_threads=1
work_threads=4
min_buff_size = 8KB
max_buff_size = 128KB

#上传策略:
# the method of selecting group to upload files
# 0: round robin
# 1: specify group
# 2: load balance, select the max free space group to upload file
store_lookup=2	#选择最大空闲的group上传文件

# which storage server to upload file
# 0: round robin (default)
# 1: the first server order by ip address
# 2: the first server order by priority (the minimal)
# Note: if use_trunk_file set to true, must set store_server to 1 or 2
store_server=0	#多个目录会轮流存放

# which path(means disk or mount point) of the storage server to upload file
# 0: round robin
# 2: load balance, select the max free space path to upload file
store_path=0

#下载策略:
# which storage server to download file
# 0: round robin (default)
# 1: the source storage server which the current file uploaded to
download_server=0


# reserved storage space for system or other applications.
# if the free(available) space of any stoarge server in 
# a group <= reserved_storage_space, 
# no file can be uploaded to this group.
# bytes unit can be one of follows:
### G or g for gigabyte(GB)
### M or m for megabyte(MB)
### K or k for kilobyte(KB)
### no unit for byte(B)
### XX.XX% as ratio such as reserved_storage_space = 10%
reserved_storage_space = 10%	#多个服务器存储空间以最小的为准

#日志级别
#standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info

#运行用户和组(要用非root用户启动)
run_by_group=
run_by_user=

#允许连接的主机,会影响存储端和客户端
# allow_hosts can ocur more than once, host can be hostname or ip address,
# "*" (only one asterisk) means match all ip addresses
# we can use CIDR ips like 192.168.5.64/26
# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com
# for example:
# allow_hosts=10.0.1.[1-15,20]
# allow_hosts=host[01-08,20-25].domain.com
# allow_hosts=192.168.5.64/26
allow_hosts=*

#刷新日志到磁盘的时间间隔
sync_log_buff_interval = 10

#检察服务器存活的时间间隔
check_active_interval = 120

thread_stack_size = 64KB

#存储IP改变是是否自动调整
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

启动追踪服务

[root@linux-node1 /etc/fdfs]# 
[root@linux-node1 /etc/fdfs]# /etc/init.d/fdfs_trackerd start
Reloading systemd:                                         [  OK  ]
Starting fdfs_trackerd (via systemctl):                    [  OK  ]

[root@linux-node1 /etc/fdfs]# netstat -tunpl | grep 22122
tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      4231/fdfs_trackerd 
#在node2上也安装启动追踪服务,配置与node1相同

storage存储服务配置

#每30秒向追踪服务器发送心跳信息
# heart beat interval in seconds
heart_beat_interval=30

磁盘使用的状态报告
# disk usage report interval in seconds
stat_report_interval=60

#存储路径
# the base path to store data and log files
base_path=/data/fdfs_storage/base

#存储的路径统计,有多个硬盘可以写多个
# path(disk or mount point) count, default value is 1
store_path_count=1

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/data/fdfs_storage/store
#store_path1=/home/yuqing/fastdfs2

#子目录数设定
# subdir_count  * subdir_count directories will be auto created under each 
# store_path (disk), value can be 1 to 256, default value is 256
subdir_count_per_path=256

#设置追踪服务器地址
# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
tracker_server=192.168.56.11:22122
tracker_server=192.168.56.12:22122

启动服务

[root@linux-node1 /etc/fdfs]# /etc/init.d/fdfs_storaged start
Starting fdfs_storaged (via systemctl):                    [  OK  ]
[root@linux-node1 /etc/fdfs]# netstat -tunpl|grep 23000
tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      4768/fdfs_storaged
#启动,node2也采用相同配置
anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/2484.html | ☆★★每天进步一点点,加油!★★☆

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK