FastDFS扩容操作

FastDFS扩容操作

  • 3.FastDFS 扩容操作
    • 3.1 迁移到全新的FastDFS
      • 3.1.1 部署全新的FastDFS
      • 3.1.2 Storage连接即将被迁移的Tracker
      • 3.1.3 启动Storage节点
      • 3.1.4 在老FastDFS服务器上查看同步进程
      • 3.1.5 停止storage节点
      • 3.1.6 Storage连接全新的的Tracker
      • 3.1.7 修改.data_init_flag文件
      • 3.1.8 启动所有进程
    • 3.2 合并到已有的FastDFS(策划中)
    • 3.3 清理磁盘,清除FastDFS所有文件(线上环境不推荐)
    • 3.4 单机版FastDFS扩容
      • 3.4.1 基于group存储空间扩容
      • 3.4.2 添加多个storage

3.FastDFS 扩容操作

3.1 迁移到全新的FastDFS

3.1.1 部署全新的FastDFS

<!--参照单机版部署方案完成部署,切记不要启动任何节点-->

3.1.2 Storage连接即将被迁移的Tracker

#编辑storage配置,修改tracker_server连接即将被迁移的Tracker
vim /etc/fdfs/storage.conf
#修改成
tracker_server = old_tracker_ip:22122 

3.1.3 启动Storage节点

service fdfs_storaged restart

3.1.4 在老FastDFS服务器上查看同步进程

fdfs_monitor /etc/fdfs/client.conf

找到新添加的storage节点,关注以下信息

Storage n:
id = x.x.x.x
ip_addr = x.x.x.x (anantes-651-1-49-net.w2-0.abo.wanadoo.fr)  WAIT_SYNC/SYNCING/ACTIVE/OFFLINE
total_sync_in_bytes 
success_sync_in_bytes
total_sync_out_bytes
success_sync_out_bytes
total_file_open_count
success_file_open_count
total_file_read_count
success_file_read_count
total_file_write_count
success_file_write_count
last_heart_beat_time 
last_source_update
last_sync_update
last_synced_timestamp

当该节点显示为ACTIVE时,表示同步成功。

3.1.5 停止storage节点

service fdfs_storaged stop

3.1.6 Storage连接全新的的Tracker

#编辑storage配置,修改tracker_server连接全新的Tracker
vim /etc/fdfs/storage.conf
#修改成
tracker_server = new_tracker_ip:22122 

3.1.7 修改.data_init_flag文件

该文件所在位置为storage.conf文件中所配置的base_path路径后面的data路径下。如配置为/opt/fastdfs, 则文件所在位置为/opt/fastdfs/data/
#将文件中sync_src_server配置项留空,其它配置项不变
sync_src_server=

3.1.8 启动所有进程

启动新的tracker服务器进程和storage服务器进程

#启动tracker
service fdfs_trackerd start
#启动storage
service fdfs_storaged start

查看Storage状态

fdfs_monitor /etc/fdfs/client.conf

关注以下参数

Storage n:
id = x.x.x.x
ip_addr = x.x.x.x (anantes-651-1-49-net.w2-0.abo.wanadoo.fr)  WAIT_SYNC/SYNCING/ACTIVE/OFFLINE
total_sync_in_bytes 
success_sync_in_bytes
total_sync_out_bytes
success_sync_out_bytes
total_file_open_count
success_file_open_count
total_file_read_count
success_file_read_count
total_file_write_count
success_file_write_count
last_heart_beat_time 
last_source_update
last_sync_update
last_synced_timestamp

至此数据迁移完成,如需配置http服务,请参考 2.2.3部署HTTP服务

3.2 合并到已有的FastDFS(策划中)

3.3 清理磁盘,清除FastDFS所有文件(线上环境不推荐)

# 1.查看磁盘使用率
df -h# 2.停止trackerd 与 storaged
service fdfs_trackerd stop
service fdfs_storaged stop# 3.删除图片存储目录。rm -rf /opt/fastdfs/data/*(文件存储目录)# 4.启动trackerd 与 storagedservice fdfs_trackerd startservice fdfs_storaged start# 5.查看状态
fdfs_monitor /etc/fdfs/client.conf

3.4 单机版FastDFS扩容

当你发现新文件再也无法继续上传至FastDFS时,极大地可能性是FastDFS存储空间已经不够用了(可通过 `df -h` 命令进行查看)。此时你将需要加新的磁盘,也就是需要加存储目录。基于FastDFS文件服务器的特性,在做扩容时,可采取如下两种方案:

1.基于group扩容,配置多个存储文件目录地址。
2.基于存储节点扩容,新加服务器配置多个storage。

3.4.1 基于group存储空间扩容

此扩容方案是通过给`group`所在机器添加新硬盘的方式,实现该`group`的扩容。FastDFS在一台服务器支持多个`store_path`,每个`store_path`指向一个存储路径。如:`M00/00/06/wKgBe1xOehmATFFpAAAAAAAAAAA042.txt``M00`表示使用`store_path0`。如果没有配置`store_path`,就使用`base_path`的路径。添加了硬盘后,通过把新的`store_path`指向新硬盘的挂载点,再修改配置文件,就能实现`group`的扩容。扩容后的地址如:`M01/00/04/wKgBe1xOehmATFFpAAAAAAAAAAA042.txt``M01`表示使用`store_path1``group`模式扩容主要步骤如下:
# 1.停止现有的tracker服务,storage服务。
service fdfs_trackerd stop
service fdfs_storaged stop
# 2.挂载新的磁盘(过程略)# 3.修改tracker.conf配置文件
vi /etc/fdfs/tracker.conf
#修改以下参数为2,上传时选择路径规则。(取值只有0和2。0:轮询(默认);2:负载均衡,选择可用空间最大的文件夹)
store_path=2# 4.修改storage.conf配置文件
vi /etc/fdfs/storage.conf
#将以下参数值改为2
store_path_count=2 
#新增存储路径store_path1(必须存在的路径,需提前手动创建 mkdir -p /data/fastdfs)
store_path1=/data/fastdfs# 5.修改mod_fastdfs.conf配置文件
vi /etc/fdfs/mod_fastdfs.conf
#修改以下参数为2
store_path_count=2
#新增存储路径store_path1
store_path1=/data/fastdfs(同storage.conf 一致)# 6.启动tracker,storage服务
service fdfs_trackerd start
service fdfs_storaged start#7.查看状态
fdfs_monitor /etc/fdfs/client.conf# 8.修改nginx.conf配置文件并重载nginx
vi /usr/local/nginx/conf/nginx.conf
# 添加store_path1的路径
location ~/group[0-9]/M00 {alias   /opt/fastdfs/data/;ngx_fastdfs_module;}
location ~/group[0-9]/M01 {alias   /data/fastdfs/data/;ngx_fastdfs_module;}
# nginx加载配置文件
nginx -s reload# 9.测试上传
/usr/bin/fdfs_test /etc/fdfs/client.conf upload test.txt

3.4.2 添加多个storage

# 1.挂载新的磁盘(过程略)# 2.复制storage配置一份并重命名为storageX.conf
cp /etc/fdfs/storage.conf /etc/fdfs/storage1.conf# 3.修改storage1.conf配置
# 3.1修改组名
group_name=group2
# 3.2修改端口
port=23001
# 3.3修改日志文件目录
base_path=/data/fastdfs(必须存在的路径,需提前手动创建 mkdir -p /data/fastdfs)
# 3.4修改资源保存路径
store_path0=/data/fastdfs# 4.修改mod_fastdfs.conf配置
vi /etc/fdfs/mod_fastdfs.conf
# 4.1修改组名,多个用/区分开 可设置多组
group_name=group1/group2/...
# 4.2设置组个数
group_count = 2
# 4.3设置每一组信息
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs
[group2]
group_name=group2
storage_server_port=23001 #特别提醒:防火墙需要放行
store_path_count=1
store_path0=/data/fastdfs
[...] #以此类推# 5.修改mod_fastdfs.conf配置
vi /etc/fdfs/mod_fastdfs.conf
# 修改以下参数
url_have_group_name=true# 6.启动新的storage节点
service fdfs_storaged /etc/fdfs/storage1.conf# 7.fastdfs的状态查询
fdfs_monitor /etc/fdfs/client.confFDFS_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    :在线,可以提供服务# 8.修改nginx.conf配置文件并重载nginx
vi /usr/local/nginx/conf/nginx.conf
## 添加store_path1的路径
location ~/group[0-9]/M00 {alias   /opt/fastdfs/data/;ngx_fastdfs_module;}
location ~/group[0-9]/M01 {alias   /data/fastdfs/data/;ngx_fastdfs_module;}
# nginx加载配置文件
nginx -s reload# 9.测试上传
/usr/bin/fdfs_test /etc/fdfs/client.conf upload test.txt

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度SEO前10关键词排名波动跟用户行为反馈有很大关系

大家好&#xff0c;我是林汉文&#xff08;谷歌SEO专家&#xff09;&#xff0c;在百度SEO优化中&#xff0c;网站的排名并非一成不变&#xff0c;尤其是前10名的位置&#xff0c;更是动态变化。很多站长可能会发现&#xff0c;有时明明内容质量不错&#xff0c;外链也稳定&…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-20

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-20 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-20目录1. FLARE: Faithful Logic-Aided Reasoning and Exploration摘要研究背景问题与挑战如何解决创新点算法模型实验效果重要数…

多线程进阶——线程池的实现

什么是池化技术 池化技术是一种资源管理策略&#xff0c;它通过重复利用已存在的资源来减少资源的消耗&#xff0c;从而提高系统的性能和效率。在计算机编程中&#xff0c;池化技术通常用于管理线程、连接、数据库连接等资源。 我们会将可能使用的资源预先创建好&#xff0c;…

Ubuntu22.04虚拟机安装

一、安装介质下载&#xff1a; 在官网下载安装镜像&#xff0c;下载地址https://releases.ubuntu.com/22.04/ubuntu-22.04.5-live-server-amd64.iso 二、操作系统安装&#xff1a; step 1:进入ubuntu的安装界面&#xff0c;直接回车安装。 step 2:选择语言&#xff0c;直接回…

liunx线程互斥

临界资源和临界区 临界资源&#xff1a;多线程执行流共享的资源就叫临界资源。 临界区&#xff1a;每个线程中&#xff0c;访问临界区的代码&#xff0c;就叫临界区。 互斥&#xff1a;任何时候&#xff0c;互斥保证只有一个执行流进入临界区&#xff0c;访问临界资源&#…

iframe里放的视频,如何采用纯css适配

步骤1&#xff1a;设置包含iframe的父元素 首先&#xff0c;确保iframe的父容器具有一个适当的宽高比。通过为父容器设置一个相对定位和一定的宽度和高度&#xff0c;你可以控制它的尺寸。 <div class"video-container"><iframe src"https://www.exa…

NXP Smart Access Car-车用产品整合应用

在汽车技术不断进步的今天&#xff0c;智能化已成为汽车行业发展的主要趋势之一。本次研讨会将深入探讨NXP的Smart Access Car技术&#xff0c;说明如何通过NXP 产品设计提升汽车的安全性、便利性和使用者体验。研讨会将涵盖NXP MCU/NFC等方面的最新解决方案&#xff0c;并探讨…

Qt调用Yolov11导出的Onnx分类模型开发分类检测软件

软件视频地址:视频地址 代码开源地址 之前用Python配合YOLOV11开发一个了分类训练软件&#xff0c;软件只要准备好数据&#xff0c;然后导入就可以训练数据&#xff0c;训练完成后还可以验证&#xff0c;测试&#xff0c;但是要真正落地&#xff0c;还是有点欠缺。配合YOLOV1…

Qt 中实现进程保护的方法

引言 在开发桌面应用程序时&#xff0c;确保应用程序的稳定运行和防止非法关闭是非常重要的。本文将介绍如何在 Qt 框架中实现进程保护&#xff0c;以提高应用程序的稳定性和安全性。 什么是进程保护&#xff1f; 进程保护是一种确保应用程序持续运行的机制。它可以防止应用程序…

入门数据结构JAVADS——如何通过遍历顺序构建二叉树

目录 前言 构建二叉树的前提&#xff1a; 为什么需要两个不同类型的遍历&#xff1a; 前序遍历 中序遍历 我们的算法思路如下: 举例&#xff1a; 代码实现 后序遍历 中序遍历 结尾 前言 入门数据结构JAVA DS——二叉树的介绍 (构建,性质,基本操作等) (1)-CSDN博客 在上…

我毕业后的8年嵌入式工作

2015年毕业&#xff0c;2016年工作到现在已经过了8个年头&#xff0c;借着征文&#xff0c;做个简单的回顾与总结。 2015年从广州番禺职业技术学院毕业&#xff0c;学的是嵌入式技术与应用&#xff0c;我的下一届学弟学妹变物联网了&#xff0c;算是绝版专业了吧。出来后谨遵校…

07 设计模式-结构型模式-桥接模式

桥接&#xff08;Bridge&#xff09;是用于把抽象化与实现化解耦&#xff0c;使得二者可以独立变化。这种类型的设计模式属于结构型模式&#xff0c;它通过提供抽象化和实现化之间的桥接结构&#xff0c;来实现二者的解耦。 这种模式涉及到一个作为桥接的接口&#xff0c;使得…

redis的string是怎么实现的

Redis 的 String 类型是最基本的数据类型&#xff0c;底层通过多种方式实现&#xff0c;能够存储字符、整数、浮点数等各种形式的值。String 数据结构的实现基于 Redis 的简单动态字符串&#xff08;SDS&#xff09;&#xff0c;同时在处理不同的数据类型时也进行了优化。 1. …

实用AI工具推荐

在当今数字化时代&#xff0c;AI工具已经成为提升工作效率的重要助手。 以下是一些实用AI工具的推荐&#xff0c;它们能在不同领域帮助你提高生产力&#xff1a; ChatGPT&#xff1a;由OpenAI开发&#xff0c;擅长文本生成、撰写文章、回答问题和编程辅助&#xff0c;支持多语言…

JAVA单列集合

List系列集合:添加的元素是 有序、可重复、有索引 Set系列集合:添加的元素是 无序、不重复、无索引 Collection Collection是单列集合的接口&#xff0c;它的功能是全部单列集合都可以继承使用的 public boolean add(E e) 把给定的对象添加到当前集合中 public void …

AI学习指南深度学习篇-自注意力机制(Self-Attention Mechanism)

AI学习指南深度学习篇—自注意力机制&#xff08;Self-Attention Mechanism&#xff09; 在深度学习的研究领域&#xff0c;自注意力机制&#xff08;Self-Attention Mechanism&#xff09;作为一种创新的模型结构&#xff0c;已成为了神经网络领域的一个重要组成部分&#xf…

附录章节:SQL标准与方言对比

目录 1. SQL标准 2. 常见的SQL方言及其特性 3. 对比总结 附录 B: 常见错误及解决方案 1. 语法错误 2. 数据类型不匹配 3. 索引缺失 4. 存储过程执行失败 5. 锁定问题 6. 性能瓶颈 附录 C: 进一步阅读资源 1. 书籍 2. 在线资源 3. 视频课程 1. SQL标准 定义: SQL…

SpringBoot 事务管理 @Transactional

Spring JDBC的事务管理 事务&#xff08;Transaction&#xff09;&#xff1a;是关系型数据库中一种能够保障多个写操作&#xff08;增、删、改&#xff09;要么全部成功&#xff0c;要么全部失败的机制。 在基于Spring JDBC的项目中&#xff0c;只需要在业务方法上添加Trans…

Java基于数据库的分布式可重入锁(带等待时间和过期时间)

文章目录 技术背景介绍代码实现数据库表结构尝试获取锁续约阻塞式获取锁解锁检查锁是否过期或者释放 使用示例优化方案 项目代码 技术背景介绍 一般分布式锁使用最方便的就是使用redis实现&#xff0c;因为他自带超时过期机制、发布订阅模式、高吞吐高性能的优势&#xff0c;…

Redis环境的搭建

Redis环境的搭建可以分为Linux系统和Windows系统两种情况。 一、Linux系统下Redis的搭建 1. 安装前准备 确保Linux系统已安装GCC环境&#xff0c;可以使用yum install gcc-c命令安装。下载Redis安装包&#xff0c;例如redis-6.2.6.tar.gz&#xff0c;并将其上传到Linux服务器…