说明:
FastDSF适合存储小文件,不对文件分块处理。
由Tracker群和Storage群组成
Tracker端:客户端访问Tracker端,根据策略返回Storage端主机地址进行文件上传/下载。
Storage端:内部分组,每组都是一个集群,同组的每台机器上存的都是相同的文件。
一、创建2个虚拟机(或真机器),系统为centos7,分别为Tracker01和Storage01:
(1)Tracker01配置IP:
192.168.233.133
(2)Storage01配置IP:
192.168.233.134
二、FastDSF依赖环境与库安装(Tracker01主机和Storage01主机上安装):
1.安装依赖库:
[root@localhost ~]# yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
2.安装libfastcommon基础库:
(1)下载libfastcommon-1.0.43.tar.gz,并用Xftp上传到/usr/local/目录:
https://github.com/happyfish100/libfastcommon/releases
(2)解压:
[root@localhost local]# tar -zxvf libfastcommon-1.0.43.tar.gz
(3)编译安装(cd到/usr/local/libfastcommon-1.0.43目录):
[root@localhost libfastcommon-1.0.43]# ./make.sh
[root@localhost libfastcommon-1.0.43]# ./make.sh install
(4)默认/usr/lib目录下会有libfastcommon.so,如果没有,则将libfastcommon.so库文件拷贝至/usr/lib下(cd到/usr/lib64目录):
[root@localhost lib64]# cp libfastcommon.so /usr/lib
三、FastDSF-Tracker端安装(此处为Tracker01主机,可以配2台Tracker端或更多):
1.下载fastdfs-6.06.tar.gz,并用Xftp上传到/usr/local/目录:
https://github.com/happyfish100/fastdfs/releases
2.解压:
[root@localhost local]# tar -zxvf fastdfs-6.06.tar.gz
3.编译安装(cd到/usr/local/fastdfs-6.06目录):
[root@localhost fastdfs-6.06]# ./make.sh
[root@localhost fastdfs-6.06]# ./make.sh install
4.将client.conf、http.conf、storage.conf、storage_ids.conf、tracker.conf库文件拷贝至/etc/fdfs下(cd到/usr/local/fastdfs-6.06/conf目录):
[root@localhost conf]# cp client.conf http.conf storage.conf storage_ids.conf tracker.conf /etc/fdfs
5.配置tracker.conf(cd到/etc/fdfs目录):
[root@localhost fdfs]# vi tracker.conf
修改内容如下:
base_path = /home/fastdfs #数据存储目录,需要手动创建fastdfs目录
http.server_port = 80 #配置http端口
port = 22122 #给客户端访问的端口
#0:轮循,依次给第1组store到最后1组store的地址。
#1: 假如有2组store,指定给第1组store或第2组store的地址。不推荐使用
#2:根据负载均衡算法,给空闲组的地址,推荐使用
store_lookup=2 #配置给客户端store组地址的策略
6.启动tracker:
[root@localhost fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
四、FastDSF-Storage端安装(此处为Storage01主机,可以配多台Storage端):
1-4.同FastDSF-Tracker端安装。
5.配置storage.conf(cd到/etc/fdfs目录):
[root@localhost fdfs]# vi storage.conf
修改内容如下:
group_name = group1
base_path = /home/fastdfs #数据存储目录,需要手动创建fastdfs目录
store_path0 = /home/fastdfs #有多个磁盘时,配置store_path1、store_path2...
tracker_server = 192.168.233.133:22122 #配置Tracker端地址,此处为Tracker01主机地址
#tracker_server = 192.168.233.135:22122 #有多个Tracker端时,配置多行
http.server_port=80 #配置http端口,与nginx.conf中server.listen一致
6.启动storage:
[root@localhost fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
五、使用fdfs_test测试效果():
1.配置client.conf:
[root@localhost fdfs]# vi /etc/fdfs/client.conf
修改内容如下:
base_path = /home/fastdfs #数据存储目录,需要手动创建fastdfs目录
tracker_server=192.168.233.133:22122 #配置tracker服务器地址此处为Tracker01主机
2.上传文件到FastDSF服务器:
[root@localhost fdfs]# /usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/file.PNG
六、每个Storage端安装nginx,支持HTTP访问(此处Storage01主机上安装nginx):
1.安装配置fastdfs-nginx-module:
(1)下载fastdfs-nginx-module-1.22.tar.gz,并用Xftp上传到/usr/local目录:
https://github.com/happyfish100/fastdfs-nginx-module/releases
(2)解压:
[root@localhost local]# tar -zxvf fastdfs-nginx-module-1.22.tar.gz
(3)配置config文件(cd到/usr/local/fastdfs-nginx-module-1.22/src目录):
[root@localhost src]# vi config
修改内容如下:
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
(4)拷贝mod_fastdfs.conf到/etc/fdfs目录下(cd到/usr/local/fastdfs-nginx-module-1.22/src目录):
[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/
(5)配置mod_fastdfs.conf文件(cd到/etc/fdfs目录):
[root@localhost fdfs]# vi mod_fastdfs.conf
修改内容如下:
base_path=/home/fastdfs #数据存储目录,需要手动创建fastdfs目录
tracker_server=192.168.233.133:22122 #配置tracker服务器地址此处为Tracker01主机
url_have_group_name=true #url中带group名称
store_path0=/home/fastdfs #指定文件存储路径,多个时配置store_path1,store_path2等
(6)拷贝libfdfsclient.so到/usr/lib/目录下(cd到/usr/lib64目录):
[root@localhost lib64]# cp libfdfsclient.so /usr/lib/
2.安装配置nginx:
(1)下载nginx-1.18.0.tar.gz,并用Xftp上传到/usr/local目录:
http://nginx.org/en/download.html
(2)解压nginx(cd到/root目录):
[root@localhost local]# tar zxf nginx-1.18.0.tar.gz
(3)创建/var/temp/nginx/client目录:
[root@localhost local]# mkdir -p /var/temp/nginx/client
(4)用configure创建makeFile文件(cd到/usr/local/nginx-1.18.0目录):
[root@localhost nginx-1.18.0]# ./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/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=/usr/local/fastdfs-nginx-module-1.22/src #表示添加fastdfs-nginx-module模块
(5)编译源码,并安装:
[root@localhost nginx-1.18.0]# make
[root@localhost nginx-1.18.0]# make install
(6)添加虚拟主机(cd到/usr/local/nginx/conf目录):
[root@www conf]# vi nginx.conf
修改内容如下:
server {
listen 80; #端口,与storage.conf中http.server_port一致
server_name 192.168.233.134; #本机IP或者用域名
location /group1/M00/{ #group1为Storage端分组名,M00对应store_path0配置
#location ~/group[0-9]/ { #官方文档示例
root /home/fastdfs/fdfs_storage/data;
ngx_fastdfs_module;
}
}
(7)启动nginx(cd到usr/local/nginx/sbin目录):
[root@localhost sbin]# ./nginx
七、搭建nginx代理机:
1.创建1个虚拟机(或真机器),系统为centos7,IP为:
192.168.233.135
2.按上面一样的方式安装安装nginx。
3.配置nginx代理:
upstream storage_server_group1{ #storage群group1组
server 192.168.233.133:80 weight=10;
}
server {
listen 80;
server_name 192.168.233.135;
location /group1{
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.233.133:80;
}
}
4.启动。