FastDFS部署迁移

# 12、FastDFS部署迁移

## 一、FastDFS部署

1、安装libevent

FastDFS内部使用libevent作为http服务器,如果使用apache、nginx做代理服务器,可以跳过此步骤

安装依赖包

yum install -y make cmake gcc gcc-c++

安装libevent

yum install -y libevent

yum install -y libevent-devel.x86_64

安装libfastcomon

cd /data

wget https://codeload.github.com/happyfish100/libfastcommon/zip/master

unzip master

cd libfastcommon-master

./make.sh

./make.sh install



 

2、安装TrackerServer(跟踪服务器)

cd /data

tar -xvf FastDFS_v4.06.tar.gz

cd FastDFS/

vim make.sh

将以下一行注释去掉,更改服务启动方式

WITH_LINUX_SERVICE=1

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

mkdir -p /data/fastdfs/tracker

配置跟踪服务器

修改配置文件

服务端

vim /etc/fdfs/tracker.conf

disabled=false(默认为 false,表示是否无效)

port=22122(默认为 22122)

base_path=/data/fastdfs/tracker

http.server_port=80 #nginx代理端口

store_lookup=2

//该值默认是 2(即负载均衡策略),现在把它修改为 0(即轮询策略,修改成这样方便一会儿我们进行测试,当然,最终还是要改回到 2 的

客户端

vim /etc/fdfs/client.conf

       base_path=/data/fastdfs/tracker

       tracker_server=ip:22122

       #tracker_server=ip:22122 ## tracker_server服务如果有多个就写多个

       http.tracker_server_port=80

启动tracker_server

       service fdfs_trackerd start

       #/etc/init.d/fdfs_tracker start

设置开机自启动

chkconfig --add fdfs_trackerd

启动后在/data/fastdfs/tracker/目录下产生 2 个文件夹 data 和 logs

3、安装storage_server

下载地址

mkdir -p /data/fastdfs/storage

vim /etc/fdfs/storage.conf

一般只需改动以下几个参数即可:

disabled=false

//启用配置文件

group_name=group1

//组名,根据实际情况修改如果是group2修改下名字

port=23000

//设置storage的端口号

base_path=/data/fastdfs/storage

//设置storage的日志目录(需预先创建)

store_path_count=1

//存储路径个数,需要和store_path个数匹配

store_path0=/data/fastdfs/storage

//存储路径

tracker_server=ip:22122

//tracker服务器的IP地址和端口号单个

tracker_server=ip:22122

//tracker服务器的IP地址和端口号多个,在写一行

http.server_port=8888

因为开发者中心storage的配置文件http.server_port的端口为8888,为了避免数据迁移的时候出现以下问题,建议安装FastDFS时将此端口设置为8888.

ERROR - file: tracker_mem.c, line: 4433, client ip: ip, http port 8888 is not same in the group "group1", group http port is 8888

//设置http端口号 如需要进行性能调优,可以参照附录的配置文件的详细说明。 如果是多台tracker,配置多个tracker_server

启动storage

/etc/init.d/fdfs_storaged start

设置开机自启动

chkconfig --add fdfs_storaged

启动成功会自动在/data/fastdfs/tracker目录新建data和logs目录(启动storage server的前提是tracker server必须事先已启动)

4、上传文件测试

fdfs_upload_file /etc/fdfs/client.conf /home/oldcat/imgs/test.jpg

fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/asdfghjklzxcv.jpg


 

5、安装NGINX

下载fastdfs模块

https://pan.baidu.com/s/1jnJxuZJT8vwv9fMZ0yPoMQ

下载下来的是个文件夹,里面包含fastdfs-nginx-module_v1.16.tar.gz和nginx配置参考等。

解压

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

修改参数

cd /data/fastdfs-nginx-module/src

vim config

命令行模式批量修改替换

:%s+/usr/local/+/usr/+g

将fastdfs-nginx-module模块中的配置文件拷贝到/etc/fdfs

cp -p /data/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

修改配置文件

vim /etc/fdfs/mod_fastdfs.conf

tracker_server=ip:22122

url_have_group_name = true

group_name=group1

建立M00至存储目录的符号链接

ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00

安装nginx依赖

yum install -y glib2-devel openssl-devel pcre-devel bzip2-devel perl-ExtUtils* zlib-devel gd-devel

下载nginx安装包

wget http://nginx.org/download/nginx-1.14.2.tar.gz

解压安装包

tar -xvf nginx-1.14.2.tar.gz

进入目录

cd nginx-1.14.2

编译参数

./configure --prefix=/data/nginx --sbin-path=/data/nginx/sbin/nginx --conf-path=/data/nginx/conf/nginx.conf --error-log-path=/data/nginx/log/error.log --http-log-path=/data/nginx/log/access.log --pid-path=/data/nginx/log/pid/nginx.pid --lock-path=/data/nginx/log/lock/subsys/nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_perl_module --with-ld-opt="-Wl,-E" --with-http_image_filter_module --add-module=/data/fastdfs-nginx-module/src/

make && make install

在nginx下建立目录

mkdir -p /data/nginx/proxy_temp

mkdir -p /data/nginx/proxy_cache

mkdir -p /data/nginx/proxy_cache_image

拷贝fastdfs中的部分配置文件到/etc/fdfs

cp /data/FastDFS/conf/http.conf /etc/fdfs

cp /data/FastDFS/conf/mime.types /etc/fdfs/

修改nginx的配置文件

nginx配置模板

12、FastDFS部署迁移

FastDFS一键部署脚本链接地址如下。

FastDFS.zip

## 二、FastDFS迁移

1、准备一套新的集群环境。新的集群版本需要与开发者中心一致(FastDFS_v4.06)


 

2、停止所有的storage服务,开发者中心则停止storage容器,

/etc/init.d/fdfs_storage stop

docker ps | grep fastdfs

docker stop fastdfs-storage

docker stop fastdfs-tracker

在新集群的所有storage节点操作

3、修改新的集群storage配置文件,将tracker_server指向开发者中心主节点

vim /etc/fdfs/storage.conf

tracker_server=开发者中心主节点ip:22122

vim /etc/fdfs/client.conf

tracker_server=开发者中心主节点ip:22122

4、启动storage服务,开发者中心启动storage容器

/etc/init.d/fdfs_storage start

docker start fastdfs-storage

docker start fastdfs-tracker

5、查看同步状态

fdfs_monitor /etc/fdfs/storage.conf | grep -A 2 Storage

在新集群的storage节点查看,若状态为ACTIVE,可去/data/fastdfs/storage/data/00/00下查看文件是否同步过来,

开发者中心主节点FastDFS数据存放路径:/data/developercenter_enterprise/data_center/fastdfs/store_path/00/00

ll /data/developercenter_enterprise/data_center/fastdfs/store_path/00/00 | wc -l

ll /data/fastdfs/storage/data/00/00 | wc -l

比对一下两条命令执行结果,查看文件是否全部同步过来,是否有缺失。

storage状态列表:

// FDFS_STORAGE_STATUS:INIT :初始化,尚未得到同步已有数据的源服务器

//FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到同步已有数据的源服务器

//FDFS_STORAGE_STATUS:SYNCING :同步中

// FDFS_STORAGE_STATUS:DELETED :已删除,该服务器从本组中摘除

// FDFS_STORAGE_STATUS:OFFLINE :离线

// FDFS_STORAGE_STATUS:ONLINE :在线,尚不能提供服务

// FDFS_STORAGE_STATUS:ACTIVE :在线,可以提供服务,同步完成

当storage状态从SYNCING变为ACTIVE,说明同步完成

6、同步完成后,开发者中心主节点操作,修改开发者中新主节点nginx配置 文件

vim /data/developercenter_enterprise/config_center/nginx/nginx.conf

在events下面添加以下内容:

stream {

server {

listen 22122;

proxy_connect_timeout 10s;

proxy_timeout 600s;

proxy_pass ip:22122;    #新集群的tracker_server地址

}

}

7、停止storage有关的容器,并设置开机不自启

docker ps | grep fastdfs



 

docker update --restart=no containname

8、将新集群的tracker_server修改回来,指向自己的tracker_server

vim /etc/fdfs/storage.conf

tracker_server=ip:22122

vim /etc/fdfs/client.conf

tracker_server=ip:22122

9、启动新的集群的storage服务。

/etc/init.d/fdfs_storage start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/556828.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Binary Heap 二叉堆 (二)

一、二叉堆 二叉堆本质上是一种完全二叉树。 它分为两类:最大堆和最小堆。最大堆的任何一个父节点的值都大于或等于它左右孩子节点的值;最小堆的任何一个父节点的值,都小于或等一它左右孩子节点的值。 二叉堆虽然是一个完全二叉树&#xff0c…

国产数据库实践:亚信安慧AntDB在DTC 2024展示创新实力

4月12至13日,我国数据库行业最具影响力的活动之一——第十三届『数据技术嘉年华』(DTC 2024) 在京成功举办,业内众多专家学者、技术领袖、各行业客户和实力厂商均到场参会。亚信安慧AntDB数据库总架构师洪建辉受邀参与“数据库一体化”专题论坛&#xff…

XDEFIANT不羁联盟怎么申请测试 不羁联盟参与测试教程

《不羁联盟》有五个独具特色的阵营可供选择:自由武装、暗影小队、梯队、净化者、DedSec,全部出自育碧知名的角色与世界。无论是拥有“声纳护目镜”超能的梯队探员,还是拥有黑入对手设备能力的 DedSec,每个阵营都有自己的一套独特技…

MySQL 8.0 新特性之 Clone Plugin

个人感觉,主要还是为 Group Replication 服务。在 Group Replication 中,如果要添加一个新的节点,这个节点差异数据的补齐是通过分布式恢复( Distributed Recovery )来实现的。 在 MySQL 8.0.17 之前,只支…

第二证券|突发!美联储释放重磅信号,中国资产大涨

美联储稀有开释“加息”信号。 北京时刻4月18日晚间,有“美联储三把手”之称的享有FOMC(美国联邦公开商场委员会)永久投票权的美国纽约联储主席威廉姆斯宣布说话。他正告称,假如数据显现,美联储需求加息,以…

Python Flask Web框架快速入门

Flask 入门Demo Flask 开发环境搭建,执行如下指令: pip install flask # 第一节: Flask 快速入门from flask import Flask app Flask(__name__)app.route(/flask) def hello_flask():return Hello Flaskapp.run() 核心代码剖析: 从 fla…

【机器学习】小波变换在特征提取中的实践与应用

小波变换在特征提取中的实践与应用 一、小波变换的基本原理与数学表达二、基于小波变换的特征提取方法与实例三、小波变换在特征提取中的优势与展望 在信号处理与数据分析领域,小波变换作为一种强大的数学工具,其多尺度分析特性使得它在特征提取中扮演着…

2024最新面试跳槽,软件测试面试题的整理与解析

今天接着来说说测试工程师面试比较高频的面试题,大家可以通过面试题内的一些解析再结合自己的真实工作经验来进行答题思路的提取、整理。 硬背答案虽可,但容易翻车哦。能够举一反三才是重点! 1:请介绍一下UI自动化测试中三种时间等…

解线性方程组——上三角、下三角,回代算法 | 北太天元

解上三角(回代) a i i ≠ 0 a_{ii\neq0} aii0​ , i 1 , 2 , … , n i1,2,\ldots,n i1,2,…,n a 11 x 1 a 12 x 2 ⋯ a 1 n x n b 1 a 22 x 2 ⋯ a 2 n x n b 2 ⋯ a n n x n b n \begin{aligned} a_{11}x_1a_{12}x_2\cdotsa_{1n}x_n&b_1 \\ a_{22}x_2\cdotsa_…

从零开始搭建社交圈子系统:充实人脉的最佳路径

线上交友圈:拓展社交网络的新时代 线上交友圈是社交网络的新引擎,提供了更广泛的社交机会,注重共同兴趣的连接,强调多样性的社交形式,更真实地展示自己,让朋友更全面地了解我们的生活状态。虽然虚拟交往存在…

【智能算法】饥饿游戏搜索算法(HGS)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年,Yang等人受到自然界饥饿驱动的活动和动物的行为选择启发,提出了饥饿游戏搜索算法(Hunger Games Search, HGS)。 2.算法原理 2.1算法思想 HGS…

SPN的相关利用(下)

Kerberoasting kerberos通信过程: 在TGS-REQ中会发出ST服务票据获取servicePrincipalName(SPN),该SPN是用户或者机器用户注册的。TGS-REP中TGS会返回给user一个ST,而ST是由user请求的server的密码进行加密的,我们可以从TGS-REP中…

RT-Thread时钟管理

操作系统需要通过时间来规范其任务,主要介绍时钟节拍和基于时钟节拍的定时器。 时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时、线程的时间片轮转调度以及定时器超时等。 RT-Thread 中,时钟节拍的长度可以根据 RT_TICK_P…

Module外贸主题开心版下载-v5.7.0版本WordPress企业模板

主题下载地址:Module外贸主题开心版下载-v5.7.0版本 Module主题介绍:采用全新模块化开发,首页模块可视化拖拽自由组合,可自定义搭建出不同行业适用的企业网站。同时主题全面支持WPML多语言切换,可轻松搭建外贸网站。W…

JetBrains Rider 2024.1.1 .NET集成开发环境 mac/win

JetBrains Rider是一个新的跨平台的基于Inte lliJ平台和ReSharper的. NET集成技术开发工作环境。 Rider提供了大量人工智能系统代码进行编辑管理功能,如不同类型的代码可以完成、自动设备名称发展空间设计导入、自动通过插入大括号和突出研究显示信息匹配作为分隔符…

torchEEG工具箱

文章信息: 题目:TorchEEGEMO:基于脑电图的情绪识别深度学习工具箱 期刊:Expert Systems with Applications 环境:pytorch 1.11.0 CUDA 11.3 摘要: ​ 一个python工具箱TorchEEG,将工作流程分为五个模块…

软考 - 系统架构设计师 - 架构风格例题

问题一: 什么是软件架构风格? 软件架构风格指特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式。惯用模式反映了众多系统所共有的结构和语义。 集成开发环境与用户的交互方式 (实际上询问在交互方面&am…

干货-PMP常考知识点,都给你们汇总到这里了

PMP认证考试考来考去,其实就是那些知识点。把这些知识点吃透了,你会发现做题稳准狠。不仅速度快,正确率也有很大的提升。 我们结合了10几年PMP备考辅导经验,给大家梳理了这些PMP常考的知识点集锦,希望能帮到大家&#…

css中all 的使用记录

all 在 CSS 中是一个特殊的属性值,它允许我们重置元素或元素父级的所有属性到其初始值、继承的值或取消设置的值。这一属性非常有用,特别是在需要快速重置多个属性的情况下,它避免了逐一设置每个属性的繁琐过程。 先看一下浏览器兼容性&#…

【SAP HANA 15】SQL锁表 (查询,解锁)

锁表查看 --锁表检查语句 SELECT C.CONNECTION_ID,PS.STATEMENT_STRINGFROM M_CONNECTIONS C JOIN M_PREPARED_STATEMENTS PSON C.CONNECTION_ID PS.CONNECTION_ID AND C.CURRENT_STATEMENT_ID PS.STATEMENT_IDWHERE C.CONNECTION_STATUS RUNNINGAND C.CONNECTION_TYPE Re…
最新文章