FastDFS-单机扩容

描述

周一上班收到用户反馈系统异常,紧急排查日志发现报错:FdfsServerException:错误:28,错误信息:没有足够的存储空间

解决

根据异常信息判断是文件服务器可用内存不够了,首先登录文件服务器,使用df -h命令查看一下内存占用情况。

在这里插入图片描述

然后使用fdfs_monitor /etc/fdfs/storage.conf 命令查看Fast DFS的内存使用情况,查看storage.conf 配置文件的store_path0属性,确认文件服务器使用的是根目录。先紧急修改tracker.conf配置文件的reserved_storage_space属性,保留空间大小默认值为 20% ,先调低为10% ,重启FastDFS服务,保证线上服务正常运行。

扩容

通过 df -h命令发现/data节点还有九百多G内存空闲, 咨询服务器管理人员确认该节点是否有其它用途,如果没有则可以将其作为空闲内存扩容到FastDFS服务器,否则就要去申请再挂载一个节点内存。好在得到的回复是这个节点并没有其它用途,那么将其作为空闲节点扩容到FastDFS服务器。

由于是单机部署,考虑使用基于group模式的文件存储扩容。

创建目录

mkdir /data/fdfs

修改 tracker.conf文件

# 默认值为 0 , 改为2代表负载均衡,优先使用内存大的 path
store_path = 2

修改 storage.conf

# path(disk or mount point) count, default value is 1
store_path_count=2# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/home/admin/fastdfs-5.11/storage
store_path1=/data/fdfs

修改mod_fastdfs.conf 文件, 如果不存在则新建

[group]
group_name=qroupl
storage_server_port=23000
store_path_count=2
store_path0=/home/admin/fastdfs-5.1l/storage
store_pathl=/data/fdfs

重启FastDFS服务

fdfs_trackerd /etc/fdfs/tracker.conf restart
fdfs_storaged /etc/fdfs/storage.conf restart

使用fdfs_monitor /etc/fdfs/storage.conf 命令查看FastDFS内存使用情况,空闲内存已经添加进去了。

在这里插入图片描述

使用/usr/bin/fdfs_upload_file /etc/fdfs/client.conf ‘待上传文件’ 命令上传文件,根据返回路径在新增加的/data/fdfs存储目录中找到上传的文件, 至此扩容成功。

上传文件返回路径解释, 以group1/M00/00/00/L2rGaWYvcWaAIYQtAAON672Q_AQ102.pdf 为例:
group1 : 分组
M00: M00代表使用的是store_path0, M01代表使用的是store_path1
00/00: 存储目录下的 data/00/00 目录
L2rGaWYvcWaAIYQtAAON672Q_AQ102.pdf:实际存储在文件系统中的文件名

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

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

相关文章

如何使用systemctl管理自定义Python服务(Flask应用)

诸神缄默不语-个人CSDN博文目录 在本教程中,我们将学习如何在 Linux 系统中创建并管理一个自定义 Python 服务。这里的例子将展示如何通过 systemd 的 systemctl 命令来启动、监控和管理一个基于 Flask 的 web 应用。通过这种方式,你可以确保你的应用作…

teleport内置组件和plugins插件基本使用

teleport内置组件和plugins插件基本使用 一. teleport内置组件使用1. 模板中使用teleport1. public中模板中不在app元素中的任意html元素 二. plugins插件使用1.创建插件的方式:2.main.js中引用 一. teleport内置组件使用 在组件化开发中,我们封装一个组…

5.合并两个有序数组

文章目录 题目简介题目解答解法一 :合并后排序解法二:双指针排序 题目链接 大家好,我是晓星航。今天为大家带来的是 合并两个有序数组 相关的讲解!😀 题目简介 题目解答 解法一 :合并后排序 假设我们要合…

NXP i.MX8系列平台开发讲解 - 3.11 Linux PCIe设备调试(WIFI模块)

专栏文章目录传送门:返回专栏目录 文章目录 目录 1. WIFI 模块简单介绍 2. 设备驱动原理介绍 3. PCIE WIFI驱动实例分析 3.1 查看设备树 3.2 wifi 设备驱动代码分析 3.3 内核配置选项 4. WIFI驱动调试相关 根据前面对PCIe的讲解,对PCIe的整体都有…

练习题(2024/5/7)

1验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 …

Grafana 重置 admin 密码

Grafana 重置 admin 密码 1. 已知 admin 密码修改新密码1.1 方法一:常规方法1.2 方法二:API 接口 2. 忘记 admin 密码重置密码2.1 方法一:命令行2.2 方法二:修改数据库2.3 方法三:将某个用户提权为 admin 权限用户 参考…

c++ cpp 在类中执行线程 进行恒定计算

在编程中,顺序执行是常见的模式,但是对cpu的利用率不是很高,采用线程池,又太麻烦了,原因是还得不断地把任务拆分,扫描返回值。 如果 初始化n个类的时候,传递数据自身即可异步计算,那…

看完这篇文章我奶奶都懂Opentracing了 (三)

三. 扩展点分析 通过前面的分析我们了解到,Opentracing对分布式链路追踪中的各种概念进行了统一的定义,某种程度上,已经成为分布式链路追踪的规范。 在Java语言中,Opentracing定义了诸如Span和Tracer等概念对应的接口&#xff0…

JavaWEB 框架安全:Spring 漏洞序列.(CVE-2022-22965)

什么叫 Spring 框架. Spring 框架是一个用于构建企业级应用程序的开源框架。它提供了一种全面的编程和配置模型,可以简化应用程序的开发过程。Spring 框架的核心特性包括依赖注入(Dependency Injection)、面向切面编程(Aspect-Or…

AIGC绘画辅助网站

Midjourney风格样式 Midjourney Style Classifier | Andrei Kovalevs Midlibrary

124.反转链表(力扣)

题目描述 代码解决(思路1:双指针) class Solution { public:ListNode* reverseList(ListNode* head) {ListNode*temp;//保存cur下一个节点ListNode*curhead;ListNode*preNULL;while(cur){tempcur->next;// 保存一下 cur的下一个节点&#…

【图论】Floyd

算法-Floyd 前置知识 dp基础图论基础 思路 Floyd 是一种优秀的全源最短路算法。 它的执行过程类似于 dp,如下: 首先我们定义 d [ i ] [ j ] d[i][j] d[i][j] 为节点 i i i 到节点 j j j 的最短距离。 我们枚举中转节点 k k k,再枚举两个…

接口自动化测试的最佳实践和常见错误!

引言: 随着软件开发的不断演进,接口自动化测试在软件质量保障的过程中扮演着越来越重要的角色。良好的接口自动化测试可以提升测试效率、减少人力成本,但同时也存在着一些常见错误。本文将从零到一详细介绍接口自动化测试的最佳实践和常见错…

open-vm-tools使用虚机的拷贝/粘切

open-vm-tools 是一组用于 VMware 虚拟机中的开源工具,它们提供了一些与虚拟机操作和管理相关的功能。这些工具与 VMware 虚拟化平台集成,可以在虚拟机中提供更好的性能和功能。以下是一些 open-vm-tools 提供的功能: 1. 虚拟机增强功能: open-vm-tools 提供了与 VMware 虚…

node.js中的断言

assert.ok(value, [message]):如果value不为真,则抛出一个AssertionError,可选地包含message。 const assert require(assert); assert.ok(true); // 没有错误 assert.ok(false, 这里应该是true); // 抛出 AssertionError: 这里应该是tru…

突破传统 重新定义:3D医学影像PACS系统源码(包含RIS放射信息)实现三维重建与还原

突破传统,重新定义PACS/RIS服务,洞察用户需求,关注应用场景,新一代PACS/RIS系统,系统顶层设计采用集中分布式架构,满足医院影像全流程业务运行,同时各模块均可独立部署,满足医院未来影像信息化扩展新需求、…

Ecovadis认证是什么?

Ecovadis认证是一种企业社会责任(CSR)评估和评级的认证,旨在衡量企业在环境、劳工和人权、道德以及可持续采购四个方面的可持续发展表现。该认证已成为全球范围内许多公司和组织的评估标准之一,有助于提高企业的会声誉和可持续发展…

Linux专栏10:Linux权限详解(上)

博客主页:Duck Bro 博客主页系列专栏:Linux专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Linux权限详解(上) 编号:10 文章…

Leetcode274

题目 274. H 指数 思路 题目有点绕,最开始就想到了对数组进行排序,那就可以通过下标来得到有多少篇论文的引用大于等于当前论文的引用,如果大于了当前论文的引用量则将当前论文的引用量更新为h值。后面考虑到[3,3]这种情况,也就是…

String.intern()的作用

在Java中,String.intern() 是一个非常特殊的方法,它用于处理字符串常量池。字符串常量池(String Pool)是Java堆内存的一个特定区域,用来存储字符串字面量和显式调用 intern() 方法的字符串实例。这个池的目的是避免在J…