centos7配置fastdfs集群(5.09)
简介:
FastDFS是一个开源的轻量级分布式文件系统,它的特性在这里略过几千字。
基础环境准备:
centos7虚拟机2台,暂时关闭机器的防火墙,iptables -F。
机器A: 192.168.1.106
机器B: 192.168.1.107
目标:使用两台机,组成一个fastdfs集群,含有1组存储服务
1.安装依赖库libfastcommon
下载:https://github.com/happyfish100/libfastcommon (master分支)
unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh
./make.sh install
2.安装fastdfs
下载:https://github.com/happyfish100/fastdfs(5.09版本)
unzip fastdfs-5.09.zip
cd fastdfs-5.09
./make.sh
./make.sh install
cp conf/http.conf /etc/fdfs/
cp conf/mime.types /etc/fdfs/
a)如果全程没报错,则安装成功,在这里必须拷贝conf下的两个文件,否则运行报错。
b)安装完毕后,执行进程默认都在/usr/bin目录中,可以通过ls /usr/bin/fdfs_*查看。
c)安装完毕后,启动的配置文件默认都在/etc/fdfs中。
3.安装nginx fastdfs moudel(用于下载文件)
下载module:https://github.com/happyfish100/fastdfs-nginx-module(master分支)
下载nginx:http://nginx.org/en/download.html (选个最新稳定版,在这里我选择了1.10.3)
tar -xzvf nginx-1.10.3.tar.gz
unzip fastdfs-nginx-module-master.zip
mkdir /usr/local/nginx-1.10.3
cd nginx-1.10.3
./configure --prefix=/usr/local/nginx-1.10.3 --add-module=/home/daiyu/soft/fastdfs-nginx-module-master/src
make
make install
a)fastdfs的文件名包含了下载路径,所以可以通过nginx模块进行静态下载,而不需要通过tracker服务。
b)接下来还需要把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下
cp fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
4.启动fastdfs前的一些目录准备
mkdir /fdfs0 #文件存储路径0
mkdir /fdfs1 #文件存储路径1
mkdir /fastdfs/tracker #tracker服务的日志和一些数据存储
mkdir /fastdfs/storage #storage服务的日志和一些数据存储(非文件数据)
mkdir /fastdfs/mod_fastdfs #fastdfs nginx模块
mkdir /fastdfs/mod_fastdfs/logs #fastdfs nginx模块日志
mkdir /fastdfs/client #测试客户端的日志,备用
配置文件简单介绍
tracker.conf #tracker服务依赖的配置
storage_ids.conf #tracker服务依赖的配置
storage.conf #storage服务依赖的配置
http.conf #nginx模块依赖的配置
mime.types #nginx模块依赖的配置
mod_fastdfs.conf #nginx模块依赖的配置
client.conf #测试客户依赖的配置
5.配置tracker的配置,并启动服务
cp tracker.conf.sample tracker.conf
vim tracker.conf
#修改配置项如下(A/B机器只需要更换bind_addr)
bind_addr=192.168.1.106
port=22122
base_path=/fastdfs/tracker
use_storage_id = true
storage_ids_filename = /etc/fdfs/storage_ids.conf
id_type_in_filename = id
cp storage_ids.conf.sample storage_ids.conf
vim storage_ids.conf
#修改配置项如下(A/B机器一致)
# <id> <group_name> <ip_or_hostname>
100001 G001 192.168.1.106
100002 G001 192.168.1.107
启动服务:fdfs_trackerd /etc/fdfs/tracker.conf start
重启服务:fdfs_trackerd /etc/fdfs/tracker.conf restart
停止服务:fdfs_trackerd /etc/fdfs/tracker.conf stop
6.配置storage的配置,并启动服务
cp storage.conf.sample storage.conf
vim storage.conf
#修改配置项如下(A/B机器只需要更换bind_addr)
group_name=G001
bind_addr=192.168.1.106
port=23000
base_path=/fastdfs/storage
store_path_count=2
store_path0=/fdfs0
store_path1=/fdfs1
tracker_server=192.168.1.106:22122
tracker_server=192.168.1.107:22122
启动服务:fdfs_storaged /etc/fdfs/storage.conf start
重启服务:fdfs_storaged /etc/fdfs/storage.conf restart
停止服务:fdfs_storaged /etc/fdfs/storage.conf stop
做完这一步,集群已经启动,可以通过命令观测集群是否都处于ACTIVE状态
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
7.配置nginx fastdfs的配置
vim mod_fastdfs.conf
#修改配置项如下
base_path=/fastdfs/mod_fastdfs
load_fdfs_parameters_from_tracker=true
use_storage_id = true
storage_ids_filename = /etc/fdfs/storage_ids.conf
tracker_server=192.168.1.106:22122
tracker_server=192.168.1.107:22122
group_name=G001
url_have_group_name = true
store_path_count=2
store_path0=/fdfs0
store_path1=/fdfs1
log_filename=/fastdfs/mod_fastdfs/logs/mod_fastdfs.log
response_mode=proxy
group_count = 0
8.配置nginx,并启动
mkdir /fastdfs/nginx
mkdir /fastdfs/nginx/conf
mkdir /fastdfs/nginx/logs
cd /fastdfs/nginx
vim fastdfs.proxy.conf
#修改配置项如下
user root root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
log_format main '$msec $status $request $request_time '
'$http_referer $remote_addr [ $time_local ] '
'$upstream_response_time $host $bytes_sent '
'$request_length $upstream_addr';
server {
listen 8080;
location / {
ngx_fastdfs_module;
}
}
}
a) 配置好nginx的执行文件搜索路径/etc/profile
b) 上家伙
测试配置:nginx -p `pwd` -c conf/fastdfs.proxy.conf -t
启动:nginx -p `pwd` -c conf/fastdfs.proxy.conf
9.测试上传
cp client.conf.sample client.conf
vim client.conf
#修改配置项如下
base_path=/fastdfs/client
tracker_server=192.168.1.106:22122
tracker_server=192.168.1.107:22122
load_fdfs_parameters_from_tracker=true
use_storage_id = true
storage_ids_filename = /etc/fdfs/storage_ids.conf
echo "hello world" > t.txt
fdfs_upload_file /etc/fdfs/client.conf t.txt
根据文件名,可以找到文件在这个目录中,同时到B机器检测这个文件是否已经同步成功:
ls /fdfs0/data/00/0F/
10.测试下载
curl -i "127.0.0.1:8080/G001/M00/00/0F/oYYBAFjCxnSAbU63AAAADFmwwCQ201.txt"
小结:
至此,基本的安装配置流程就结束了,实际线上部署还会有很多优化配置,这里就不一一展开了,有兴趣可以私下交流。
原文出自:http://blog.csdn.net/daiyudong2020/article/details/61210303
End;