rgw_请求处理流程 前言本文主题: 当我们用 s3cmd(s3,Swift等)上传文件时候,rgw是如何处理的(这次先单独讨论 整体上传) 从一个s3请求 到如何转换成 rgwRequest 再到 数据如何切割存储到rados中 整体架构 接受请求的 前端– beast 在N版中默认 是用 beast (可以异步处理http服务器 )前端来解析HTTP请求,rgw 默认是使用beast,并用 RGW 2023-03-20 #ceph
rgwput流程-execute分析 前言本文主题: 当我们用 s3cmd 上传文件是,rgw是如何处理的 对于s3cmd(s3 api) 的每个请求操作,再rgw 中都有对应的 handle op 来处理如 put 请求, 对于这类请求操作有专门的类做处理 RGWPutObj::execute() 在处理之前的流程基本都是通用的,即 解析请求 -> 验证请求 -> 生成对应hanle (流程多,单独一篇文章介 2023-03-11 #ceph
关于指针的一些问题 看到一个改错题(很常见的一道题),一个关于申请内存的函数,即传入一个指针 p,然后分配内存,首地址保存到p,然后返回,由于malloc 是分配到栈的,即使函数消亡了,内存也不会回收,逻辑上没毛病,但实际上这个传入的参数是有问题的,刚好借这个题目复习下指针的一些操作 12345678910111213void * memory(int num,void *p){ p = malloc(s 2022-12-11 #指针
osd 心跳(深入理解) 使用场景 在分布式系统中有很多节点,节点数量多了,各种异常就会经常发生,如:宕机、磁盘损坏、网络故障等;如果集群的某个节点出现什么故障是难以知道的;还有就是监测各个节点的健康状况,快速定位集群中的异常节点。 心跳机制是什么 通俗解释: 客户端每隔 N秒发送心跳数据包给服务端,正常来说在M秒内,服务端会回复客户端消息,若是 服务端大于M秒内没回复,则客户端会认为是出现心跳超时的异常,客户端会进一 2022-10-11 #ceph
osd 心跳 osd 心跳是什么,有什么功能作用心跳是什么? 心跳是一种用于故障检测的手段(简单的说就是发个数据包给你,通过有没有回复来判断你的状态)。在分布式系统中有很多节点,节点数量多了,各种异常就会经常发生,如:宕机、磁盘损坏、网络故障等,通过心跳这种机制可以快速有效的定位集群中的错误节点,并做及时的处理保证集群正常服务。 osd 心跳 osd是什么? 通俗理解为 主要负责管理ceph集群中磁盘 2022-10-01 #ceph
ceph-模块初始化中 prefork源码解析 在 osd启动流程的代码中有一个 global_init_prefork() 的 函数,发现在很多 模块启动流程都有 这个函数,这和模块对应的进程有关系,所以对这个函数剖析下 具体实现函数都在 Preforker 类中 在先执行是 global_init_prefork(g_ceph_context) 函数 global_init_prefork(g_ceph_context)p 2022-08-25 #ceph
raft leader选举 raft介绍 是一种强一致性、去中心化、高可用的分布式协议,是一种leader-based的共识算法;由于 一致性算法中最为出名 Paxos比较难理解,于是有两位学者研究出了raft算法,号称是最容易理解的共识算法(读了论文,确实比较容易理解) 这篇文章主要对 结合raft论文和网上的文章做一个输出,从三个部分介绍 raft raft 协议能做什么 raft 中的 leader 选 2022-08-19 分布式 #raft
ceph admin socket 源码分析 test 预备知识Unix domain socket 和 网络 socket的区别 对于网络socket,大家应该比较熟悉,两个不同主机上的进程通信,就可以网络 socket来通信;对于同一台主机上的两个进程通信也可以使用socket,地址使用 127.0.0.1就可以实现,但是对于同一主机的两个进程通信而言,其数据还是需要通过网络协议栈(数据需要打包又要拆包…),这样效率并不高,后来 2022-08-19 #ceph
一致性哈希的简单理解 什么是一致性哈希 一致性hash算法,是麻省理工学院1997年提出的一种算法,目前主要应用于分布式缓存当中。 一致性hash算法可以有效地解决分布式存储结构下动态增加和删除节点所带来的问题。 传统hash假如现在有三台服务器用作图片缓存,如何使用大量的图片均衡的分布在服务器上呢,如果有30万张图片,最理想的是每个服务器都负载10万张图片;使用传统hash可以对文件名进行hash(假设文件 2022-08-04 #分布式基础
ceph中的 weight 最近在群里讨论 crush weight的问题,什么是 crush weight?这两天都只是部署安装,还没了解这个,在osd tree中是可以看到 weight,如下图,有weight 和 reweight。前者我知道是对应osd (磁盘)容量,后者呢?这个reweight有什么?这几个问题网上几乎是千篇一律,说是 weight会改变 它影响PG的到OSD的映射关系?是为什么呢?而且还有一个问题 2022-08-03 #ceph