自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

super的博客

大家好,我是super

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ceph存储池详解

ceph对象池详解

2025-08-12 18:17:03 1093

原创 Ceph放置组(PG)详解

Ceph 的放置组(PG)是数据分布的核心逻辑单元,负责将对象映射到物理存储设备(OSD),同时管理数据冗余、负载均衡和故障恢复。PG 作为中间层,通过 CRUSH 算法降低计算复杂度,并均衡数据分布。每个 PG 由唯一标识符、OSD 列表和状态等组成,状态包括 active、clean、recovering 等。PG 数量需合理计算,过多或过少均影响性能。运维操作包括查看 PG 状态、修复问题 PG 和调整分布。最佳实践包括合理设置 PG 数量、监控状态和隔离热点池。PG 是 Ceph 高效管理数据的关键

2025-08-12 18:15:40 873

原创 Ceph存储池参数中pg_num和pgp_num的关系

摘要: Ceph中的pg_num和pgp_num是存储池关键参数,二者职责不同但通常设为相同值。pg_num决定逻辑分片(PG)总数,影响数据写入和分布粒度,修改会触发数据迁移;pgp_num限定CRUSH算法计算时的可用PG范围,仅影响新数据分布。最佳实践是保持二者一致以确保数据均匀分布,例外场景可临时调整pgp_num优化性能。调整pg_num需谨慎,因其会导致数据重平衡,而修改pgp_num仅影响新写入数据。通过ceph osd pool命令可监控和修改参数,生产环境建议通过公式计算合理PG数量。

2025-08-12 18:15:15 684

原创 Ceph的Crush算法思想

Ceph的CRUSH算法是一种去中心化的数据分布机制,通过伪随机计算实现对象在OSD上的智能放置。核心流程包括对象到PG的哈希映射,以及PG到OSD的CRUSH计算,综合考虑权重、故障域和放置规则。算法采用层级化拓扑结构(OSD→主机→机架)和Straw2选择机制,确保数据均匀分布、负载均衡和容灾能力。CRUSH支持动态扩展,新增OSD时数据迁移量最小化,同时允许自定义放置规则优化存储策略。该设计使Ceph能够实现高效、弹性的分布式存储管理。

2025-08-12 18:14:54 719

原创 Ceph数据副本机制详解

摘要:Ceph支持多副本(Replication)和纠删码(Erasure Coding)两种数据冗余机制。副本模式通过3副本保障数据可靠性,写入需主OSD同步到副本OSD,恢复速度快但空间利用率低。纠删码将数据分为k个数据块和m个校验块,空间效率高但恢复需计算,适合冷数据存储。两者在性能、空间利用和适用场景上各有优劣,副本适合高性能业务,纠删码适合归档场景。Ceph通过CRUSH算法控制数据分布,支持故障恢复和一致性保证,可根据业务需求选择合适机制或混合部署。

2025-08-12 18:14:28 864

原创 Ceph的FileStore存储引擎详解

Ceph FileStore存储引擎将对象数据以文件形式存储在本地文件系统上,通过日志机制保证数据一致性。其核心架构包括Journal日志、ObjectMap对象映射和底层文件系统三个关键组件,采用"先写日志再写数据"的写入流程。文章详细介绍了FileStore的数据组织方式、性能优化方法,并与BlueStore进行了对比分析,包括日志配置、并发调优等具体参数设置。虽然FileStore已被BlueStore取代,但理解其工作机制对掌握Ceph存储原理仍有重要意义,文中还提供了典型问题的

2025-08-12 18:13:29 714

原创 Ceph BlueStore存储引擎详解

摘要: BlueStore 是 Ceph 的高性能存储引擎,直接管理裸设备,绕过文件系统,优化 SSD/NVMe 性能。其核心包括 RocksDB(元数据)、WAL(预写日志)和直接数据写入,支持压缩、校验和高效空间管理。相比 FileStore,BlueStore 减少写入放大,提升吞吐,适合元数据密集型场景。生产建议分离 WAL/RocksDB 到高速设备,并启用压缩(Zstd/LZ4)。运维可通过 ceph-bluestore-tool 管理,监控关键指标优化性能。作为 Ceph 的默认后端,Blue

2025-08-12 18:13:08 1000

原创 虚拟机环境部署Ceph集群的详细指南

虚拟机Ceph集群部署摘要 本指南详细阐述了在虚拟机环境下部署Ceph集群的完整流程,包含Dashboard和Prometheus监控集成。部署方案支持3节点最小配置或6节点扩展架构,提供两种节点规划模板。环境准备包括主机名解析、SELinux/防火墙配置、NTP时间同步和专用用户创建。关键步骤涉及管理节点SSH免密登录设置、Ceph部署工具安装(需特殊处理已停维护的ceph-deploy工具),以及初始化集群配置。后续操作涵盖Monitor节点部署、OSD存储添加、集群扩展和监控组件集成,为学习者提供完整

2025-08-12 18:12:37 1083

原创 使用ceph-deploy安装和配置RADOS Gateway (RGW)并使用S3访问集群

本文介绍了使用ceph-deploy工具安装和配置Ceph RADOS Gateway(RGW)的完整步骤。主要内容包括:RGW服务安装方法、默认配置验证、S3用户创建与测试访问,以及高级配置如修改监听端口和启用HTTPS。文档还提供了常见问题解决方法,并整理了s3cmd常用命令集,涵盖存储桶管理、文件操作、权限设置等实用功能。通过本指南,用户可以快速部署Ceph对象存储服务并掌握基本管理操作。

2025-08-12 18:11:50 1146

原创 使用openssl生成自签名证书

/CN= Common Name 域名或IP www.xxxx.com。#/O= Organization 组织或企业。# X.509证书包含三个文件:key,csr,crt。# -out server.key 生成的私钥文件名。# -genra 生成RSA私钥。# -subj 生成CSR证书的参数。# 生成CSR(证书签名请求)# -req 生成证书签名请求。# -out 生成的CSR文件。# 生成私钥(key文件)# -key 生成私钥文件。# -1024 私钥长度。

2024-07-10 14:27:41 702 1

原创 基于java的栈实现

栈可基于数组和链表来实现,基于数组的栈被称为顺序栈,栈的容量指定初始大小之后不可扩容,扩容需要传新建新数组,将原数组copy过来,基于链表实现的栈成为链式栈,容量理论上无上限,以下分别实现顺序栈public class ArrayStack { int[] stack; public int top; public ArrayStack(int size) { this.stack = new int[size]; } publi

2020-11-19 15:53:48 290

原创 springboot集成rabbitmq

在开始整合之前,让我们先了解下rabbitmq,先来灵魂三问,rabbitmq是什么,它解决了什么问题,如何使用它。带着这三大问题开始我今天的主题,rabbitmq是一款消息中间件,它可以为你的应用提供通用的消息发送与接收平台,并保证消息的安全性,在谈如何使用之前,我们先抛开rabbitmq来讨论下消息队列,使用消息队列的三大核心目的:业务解耦、流量削峰、消息异步。业务解耦: 假如公司有a...

2020-03-07 01:56:04 813 2

原创 springboot整合jedis

在开始整合之间先来回答三个问题1、什么是jedis2、它解决了什么问题3、如何使用基本上所有的技术都可以用这三问快速入门答1: jedis集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。答2:jedis提供了更为方便的redis操作,类别mybatis、hibernate等框架合数据库直接的关系答3 : 本文的主题,我们通过sprin...

2020-03-05 08:55:34 10639 3

原创 golang实现动态规划算法(背包问题)

本文是学习完算法图解之后的总结以及代码实现,第一部分是问题引入,第二部分是动态规划工作原理简介,第三部分是基于golang的代码实现问题引入【以小偷到商店偷东西为例,假设小偷有个4磅容量的背包,商店里有吉他、音响、笔记本电脑三样商品,吉他一磅重,价值1500,音响4磅,价值3000,笔记本3磅价值2000,问怎么才能让此次偷盗价值最大化? 】对于这个问题,很容易想到偷吉他和笔记本电脑价...

2019-06-30 20:03:08 2751 1

原创 golang实现快速排序算法

代码即思想。有空在补全思想吧。。package mainimport ( "fmt")func main() { arr := []int{4, 3, 1, 5, 6} fmt.Printf("arr is %v", quickSort(arr))}func quickSort(arr []int) []int { if len(arr) < 2 { retu...

2019-06-13 00:04:29 712

原创 springboot整合mybatis

springboot整合mybatis过程中,想把xml文件和Dao接口文件放到同一个包下,结果报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxl.job.executor.mapper.RecordDAO.sum这种问题大多数情况下先检查xml文件的<...

2019-06-04 17:55:42 294

原创 Springboot-ObjectMapper类使用

springboot文档中提供了三种关于json的操作方式,Gson、Jackson、JSON-B,其中Jackson是默认配置,也就是说在springboot项目中可以使用如下方式直接使用@AutowiredObjectMapper objectMapper;我自己简单封装了下ObjectMapper 使用泛型来适应java bean、集合类list、map和json的互转,代码如下...

2019-04-09 22:36:21 7336

原创 springboot跨域配置(cors)

这篇文章需要读者对nginx和springboot相关的知识有一定了解,起码入过门。一、什么是跨域(cors)?关于跨域的介绍网上有很多,我参考跨域资源共享 CORS 详解,阮老师写的很到位,我们来做个简单的总结1、首先我们知道ajax只能同源使用限制,这是跨域问题产生的原因,我们前端在ajax中请求了跨域资源。2、然后才有了cors,cors允许浏览器向跨源服务器发出XMLHtt...

2019-01-29 09:18:39 8125

原创 svg image

背景介绍,画svg的时候因为需要插入图片,然后生成的svg是要可以下载的,也就是要脱离web环境显示,那么xlink:href="url"的形势就不可以了,并且要插入的图片在图片服务器上,那么如何才能插入到svg中呢? 基本格式如下&lt;image xlink:href="data:image/png;base64, ivBORw..." /&gt;  其中ivBORw...这个是图片二进制流用...

2018-12-12 16:33:23 9896

原创 svg text文字

背景介绍:最近研究svg生成pdf,那我遇到的问题是我们前端编辑器编辑文字的时候有文字框,文字可以左中右对齐,研究svg的应该知道svg文字没有文字框属性,并且svg文字的原点是左下角,而css的文本框对齐是左上角,我们应该都可以想到用text+rect的组合来实现文字框,但问题是文字的原点如何确定成了问题,那有没有办法把text文字的原点从左下角变换到右上角呢?这个问题我在itext里找到了答案...

2018-12-12 16:11:51 4537

原创 jsPDF生成pdf文件

需求:前端从服务器获取图片信息,然后将图片插入到pdf中并下载使用的是jsPDF.js  官方文档地址:https://rawgit.com/MrRio/jsPDF/master/docs/module-addImage.html#~addImage需要解释的是myloadImageFile 这个方法,这个是jsPDF提供的一个方法,但是他的if判断如果有跨域请求就不去获取文件了因为我...

2018-12-04 15:57:47 9206 2

原创 挖矿程序入侵解决方案

本人自己购买了一台阿里云服务器来玩,晚上收到被挖矿机程序入侵,处理过程大概是这样的使用top命令查看看那些进程是陌生的并且占用大量cpu,因为是挖矿机肯定会占用很多cpu,先不要着急kill掉,因为一般都会重启启动的,我用history(也可以查看~/.bash_history文件)查看历史命令发现如下内容(我手敲的代码,可能有个别手误,网页端不能copy),这个是入侵系统的脚本,从中可以看出些端...

2018-11-28 13:16:17 4434 3

原创 Linux查看项目进程号、杀死进程、脚本启动项目

背景介绍,工作中接手一个项目,由于使用了maven profile(可能是这个原因),必须打包部署,改点代码clean package不说,还要kill项目的进程,心好累。懒惰的人肯定要写脚本的ID=`ps -ef | grep mall-web | grep -v 'grep' | awk '{print $2}'`echo $IDecho '-------start-------...

2018-09-26 17:22:11 4933 1

原创 Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:get

使用mvn dependency:get 报错:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:get (default-cli) on project standalone-pom: The parameters 'repositoryUrl' for goal org.a...

2018-08-29 21:32:22 9161

翻译 js trim()

String.prototype.trim = function() { return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); } var a = " a "; console.log(a.trim());使用js 原生链扩展String类增加trim 方法,把str...

2018-08-21 19:52:14 1687

原创 js准确判断对象类型

我们知道js里有typeof  instanceof等判断类型的方法,但是这个判断类型都不太准确有个十分准确的判断方法就是 Object.prototype.toString.call() 截屏如下

2018-08-21 19:47:33 3111

原创 js call方法使用

今天看到公司一道js面试题,代码如下,问使用getName方法打印出1,2,3 var name = "1"; var obj = { name:2, prop: { name:3, getName: function() { return this.name; ...

2018-08-21 19:40:45 6002 2

原创 maven profiles多环境配置

今天做了一个小项目,需要配置开发、测试、预发布、生产四套环境配置文件,正常是用配置中心的,但是我的项目还没上线,所以想下maven的profiles+filters,我看了下官网对profiles的介绍,官网profiles地址,一个字,累。开始吧,要想实现多环境打包,总共分6步步骤一、在src/main 下创建filters文件夹,maven文件目录结构里建议有filters文件夹(感兴...

2018-08-20 19:08:07 7166

原创 使用iframe遇到的问题

应用场景介绍:1、需要在一个页面嵌入两个页面,假设叫做A和B,其中A一个还是跨域的2、B页面有个【通过】按钮,点击时后台ajax取数据id,然后刷新A和B页面问题1: 跨域的A页面无法获取A页面Dom元素问题2:ajax返回值不能被方法外部使用问题3:B页面无法获取父页面的方法(这个是我自己瞎搞出来的问题)代码如下图,然后分析解决我的问题问题1:这个跨域问题确实没法解决...

2018-08-08 09:46:36 1794

原创 spring websocket实现前后端通信

  项目要用websocket实现一个前后端实时通信的功能,做完之后感触颇多,写个博客回顾下整个历程,也希望能给后面的同志有点帮助。我使用springmvc的websocket组件,官网地址:点击打开链接示例内容:用户登陆之后往设置session设置登陆名,之后跳转到发送消息页面,加载页面时创建websocket连接,这时,springmvc拦截器拦截到websocket请求,把session中登...

2018-07-10 17:00:22 39663 51

原创 jquery图片翻页

一个简单的图片翻页效果,代码只需替换image数组即可使用.思路:使用img标签展示图片,在图片下方提供上一页和下一页按钮,点击时候触发时间,使用$('#id').attr('src',image url)实现图片翻页,整体效果如下图,效果一般,后台系统使用对美没要求。&lt;html&gt;&lt;meta http-equiv="Content-Type" content="text/htm...

2018-06-22 16:51:12 1771

原创 设计模式之策略模式

HEAD_FIRST设计模式 策略模式读后感策略模式:定义算法族,分别封装算法族,算法族之间可以随意替换,此模式让算法的变化独立于算法的用户。此模式中用到的oo原则:1、分离变化和不变的部分,封装变化。2、针对接口(supertype)编程,不针对实现编程,这里的接口不是狭义的interface ,抽象类也可以理解为接口。3、多用组合,少用继承。 自己的感悟:什么是组合?  组合是让类持有某个属性...

2018-05-23 19:49:00 201

原创 img4java、ImageMagic、GraphicsMagick

今天处理轻设计导出图片的问题,代码中使用了img4java这个工具包,本地window环境,要想处理图片需要安装ImageMagick和GraphicsMagick, 这两个window下安装挺简单的,大概是这样的ImageMagic安装 官网走一走, google页面右键翻译,选择ImageMagick-7.0.7-35-Q16-x64-static.exe ,静态库版本就可以了,动态的好像比较...

2018-05-22 19:23:18 2623

原创 jQuery子页面调用父页面元素

今天做了一个功能,在子页面完成操作后关闭子页面并刷新父页面内容,这种功能以前也做过很多次,但是每次做完都不记录,也使用过几种方法,比如window.open() 打开,然后子页面 window.parent.document来获取父页面元素。但这次是修改别人的代码, 他的打开方式是用&lt;a&gt; 标签, 这时候用window.parent.document就不好用, 可以使用window.o...

2018-05-17 19:06:52 3938

原创 异常处理-DefaultHandlerExceptionResolver

工作中遇到springmvc框架定义的方法中使用了【@RequestBody】 这个注解代码如下: @RequestMapping(value = "create", method = RequestMethod.POST) @ResponseBody public ResultData createOrder(@RequestBody PrintOrders printOrders, Htt...

2018-05-07 11:10:36 29353 3

原创 oracle方法块

工作中突然需要使用类似存储过程的sql来修正下线上数据,于是想到使用方法块, 虽然我有丰富的oracle学习经验(皮一下),但是实际上手写存储过程的机会还是很少的。由于长年不使用,写的过程中翻书百度的还挺频繁,那么是我的sql如下declare ...

2018-03-22 14:44:43 1365

原创 hive数据精度问题

工作用遇到hive查询中sum数据精度丢失问题。问题描述:公司大数据组把线上数据库表的类型简单粗暴的设置为string类型了,我在hive上做算数运算时精度丢失。处理方案:使用cast(table.column_name as decimal(38,2)) 将string类型转换成decimal(38,2)为保留两位小数。另外还使用了下regexp正则。case when orders.name ...

2018-03-22 14:26:40 19894

原创 如何用命令将本地项目上传到git

hello,你好,欢迎来到我博客,我写内容基本都是我工作中遇到的问题,主要还是为了给自己看的,有时候也怕误导别人,浪费别人时间。咳咳!今天遇到的问题是将本机项目发布到或者说上传到gitlab(gitlab 是什么? 就是你们公司的github)实现如下1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库git init2、使用命令 git add .添加到版本控制...

2018-02-10 15:53:58 402

原创 redis连接与关闭

hello, 今天学习过程中需要使用redis,在使用过程中遇到了一些问题,在这里记录下,也希望给遇到相同问题的人一点帮助, ok开始描述今天遇到的问题和解决办法。首页redis在linux的安装,请参考网站:点击打开链接 http://www.redis.net.cn/tutorial/3503.html 这个是网站上安装的版本过于老旧,目前最新版是Redis 4.0.6,而我安装的

2018-02-03 22:24:35 21662 2

原创 mongoDB linux安装与远程访问。

背景介绍:小的在工作中需要用mongo,就琢磨在虚拟机centos7上安装一个mongo玩玩。安装完之后,发现远程连接不上。那么小的就从安装开始给各位看客老爷们道来。curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz # 下载tar -zxvf mongodb-linux-x86_64-3.

2018-01-24 16:31:54 1092

尚硅谷虚拟机(centos7.x)安装指南

尚硅谷虚拟机安装指南

2025-08-18

golang实现选择排序

golang实现选择排序

2024-07-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除