FastDFS单机及集群环境搭建

Java组件总目录


能够完成FastDFS环境搭建(使用docker镜像即可)
在Docker 环境下安装FastDFS,集群FastDFS搭建

一、Docker基本命令

在机器中创建Linux 容器,在其中运行FastDFS。

1)下载docker引擎:
yum install docker

2)查询docker
docker -v #查询docker是否下载成功

3)基本命令
Systemctl start docker # 启动docker
Systemctl stop docker # 停止docker
Systemctl restart docker

4)下载镜像(可使用镜像地址)
docker pull centos:7

5)查询镜像是否下载
docker images

6)创建容器
在机器中创建docker 容器
-di 创建容器的名字 以centos:7 为基础镜像创建新的镜像

docker run -di --name=java5-tracker-01 centos:7 /bin/bash

7)查询容器,正在运行的容器
docker ps

8)登录容器
容器名称 java5-tracker-01
docker exec -it java5-tracker-01 /bin/bash

二、 单机FastDfs安装

1 文件下载

  • 下载 libfastcommon 包(github 源码)
    https://github.com/happyfish100/fastdfs/tags
    linux wget下载
    wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz

  • 下载 fastdfs 源码包(github 源码)
    https://github.com/happyfish100/fastdfs/tags
    linux wget下载
    wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V5.11.tar.gz

2 软件安装

1 libfastcommon 安装

# 解压
tar -zxvf V1.0.39.tar.gz
cd libfastcommon-1.0.39/
# 如果系统中没有make指令,需要安装 
# yum -y install gcc automake autoconf libtool make
# 安装
./make.sh && ./make.sh install

# 拷贝 libfastcommon.so 文件至 /usr/lib 目录(该1.0.39版本不需要此步)
# libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录,所以需要将/usr/lib64下的库文件拷贝至/usr/lib下

2 fastdfs 安装

  • 1.fastdfs 安装
tar -zxvf V5.11.tar.gz 
cd fastdfs-5.11
./make.sh && ./make.sh install
# 拷贝/root/fastdfs-5.11/conf目录下的文件到/etc/fdfs目录下
# 因为tracker server 默认加载/etc/fdfs 的配置文件
cp conf/* /etc/fdfs
  • 2 tracker server配置
    修改/etc/fdfs/tracker.conf 的 base_path, 注意:base_path目录要存在。
mkdir /kkb/server/fastdfs/tracker -p
cd /etc/fdfs
vim /tracker.conf
# 修改目录
base_path=/kkb/server/fastdfs/tracker
  • 3 storage server配置
    注意:base_path和store_path0目录要存在
vi /etc/fdfs/storage.conf
mkdir -p /kkb/server/fastdfs/storage 
# 修改内容如下:
#指定storage的组名 group_name=group1 
base_path=/kkb/server/fastdfs/storage
# 存储文件路径 M00虚拟磁盘路径 
store_path0=/kkb/server/fastdfs/storage 

# 获取tracker_server 的ip地址 eth0 inet
ipconfig
172.17.0.6

#如果有多个挂载磁盘则定义多个store_path,如下 #store_path1=..... #store_path2=...... 
#配置tracker服务器IP和端口 
tracker_Server=172.17.0.6:22122 
#如果有多个则配置多个tracker #tracker_Server=192.168.101.4:22122

3 完成安装测试

Tracker 启动命令,重启先退出后启动,说明已经启动。
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

上传图片测试

FastDFS安装成功后可通过【fdfs_test】命令测试上传、下载等操作

vi /etc/fdfs/client.conf
base_path=/kkb/server/fastdfs/client 
tracker_Server=172.17.0.6:22122
mkdir -p /kkb/server/fastdfs/client
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg

其他命令

# Tracker 启动命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
# 集群状态检查命令
fdfs_monitor /etc/fdfs/storage.conf
# 删除 Storage
fdfs_monitor /etc/fdfs/storage.conf delete 组名 storage的ip
# Tracker 关闭命令
killall fdfs_trackerd
killall fdfs_storaged
# Tracker storage  开机自启动
vim /etc/rc.d/rc.local
# 将运行命令行添加进文件:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

三 FastDFS 与Nginx 整合

1 安装FastDFS的Nginx模块

#下载
https://github.com/happyfish100/fastdfs-nginx-module
tar -zxvf V1.20.tar.gz
vi /root/fastdfs-nginx-module-1.20/src/config
# 修改前
ngx_module_incs="/usr/local/include"
CORE_INCS="$CORE_INCS /usr/local/include"
# 修改后
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
# fastdfs-nginx-module-1.20/src/mod_fastdfs.conf拷贝mod_fastdfs.conf
cp mod_fastdfs.conf /etc/fdfs/

# 修改mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
base_path=/kkb/server/fastdfs/storage tracker_Server=192.168.10.135:22122 
#url中是否包含group名称 
url_have_group_name=true 
#指定文件存储路径,访问时使用该路径 
store_path0=/kkb/server/fastdfs/storage

# 拷贝libfdfsclient.so(新版不需要)
cp /usr/lib64/libfdfsclient.so /usr/lib/

2 安装Nginx

https://github.com/nginx/nginx/releases
tar -xf nginx-1.15.6.tar.gz
# 执行configure配置
# prefix=/kkb/server/nginx 中的/kkb/server/nginx指的是要安装的nginx的路径
# add-module=/opt/fastdfs-nginx-module/src中的路径指的是fastdfs-nginx-module模块的解压缩路径
# 参数指定的目录一定要存在
mkdir -p /var/temp/nginx/client # 创建nginx/client目录
mkdir /var/temp/nginx -p # 创建临时目录

./configure  
--prefix=/kkb/server/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  
--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  
--with-http_gzip_static_module  
--add-module=/kkb/soft/fastdfs-nginx-module-1.20/src

# 编译安装
make && make install

# 修改nginx.conf
vi  /kkb/server/nginx/conf/nginx.conf
# location /group1/M00/:以/group1/M00/开头的请求
# 使用Nginx模块ngx_fastdfs_module下载访问
图片。
server {
	listen 80; 
	server_name localhost; 
	location /group1/M00/{ 
		ngx_fastdfs_module; 
	} 
}
# 切换到nginx/bin目录启动Nginx
./nginx

3 网络问题

Windows 访问容器,实现集群搭建,端口映射无法解决集群的问题。
添加路由表:

route add 172.17.0.0 mask 255.255.255.0 192.168.56.100
		  (容器 网段.0)                (centos 虚拟机)
# 查看Gateway 和 ip
docker inspect d4b0b809e82d # docker id号码

Route add 172.17.0(跟据网段).0(必须是0) mask 255.255.255.0 转发ip
注意: 此命令必须在管理员权限下进行设计。
(容器能ping通windows宿主,能访问了docker 的eth0,但是windows访问不了容器,该方案最终未实现
(可以使用端口映射方式实现同样功能, 将Nginx 端口(访问) 与 tracker 端口(上传) 映射即可)

四、FastDFS 的集群搭建

在Docker的基础上构建镜像,集群:集群就是把单机版拷贝几份,构建一个集群网络. 提交为镜像后创建多份。
1)提交为一个镜像
docker commit java5-tracker-01 java5-fastdfs

2)镜像备份
docker save -o java5-fastdfs xxxx.tar

3)导入镜像
docker load -i xxxx.tar

4) 创建镜像

docker load -i fastdfs.tar
docker images
service docker start
docker run -it --name=java5-tracker-01  kkb_fastdfs /bin/bash
# 登录进入容器
docker exec -it java5-tracker-01 /bin/bash
# docker ps -a 查看所有的容器

# 启动容器 之后进入容器
docker start -it java5-tracker-02 /bin/bash
# 删除容器
docker rm java5-tracker-01

2 修改配置文件

搭建2个Tracker, 4个storage。

tracker.conf修改内容:

轮询策略 
store_lookup = 0

Storage配置(修改IP)

1 nginx.conf 监听端口改为80, 与Storage.conf 的端口改成一致。
2 Storage.conf 修改IP;
3 mod_fastdfs.conf修改组名。

# 修改组名为对应名称
group_name = group1 

3 启动集群

依次启动2个Tracker, 4个storage, 以及与Storage配套的4个Nignx服务。 查看log 看到集群情况。
Fastdfs日志文件存储在 基础路径中: base_path/log
使用测试方法上传文件,在data 目录下看到同组的文件实现同步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值