
存储|ceph|DAOS
文章平均质量分 90
分布式存储
bandaoyu
这个作者很懒,什么都没留下…
展开
-
【DAO】DAOS在后傲腾时代的发展策略
WAL 相比PMEM的缺点还有,等节点故障时,需要从SSD把元数据重新恢复到内存中,这个过程比较慢,而PMEM就不存在这个动作(上电数据就在内存--PMEM中)WAL 方案:元数据写到DRAM,定时的回刷到SSD,大部分时间性能和PMEM一样,但是在回刷数据到SSD的时候会有性能抖动。副本:数据丢失,恢复副本,性能影响较小。缺点:请求发给主,主通知其他副本去拉数据,从节点同时去拉数据,带宽压力大。傲腾方案: PMEM 数据写到内存就完成"落盘",是一个原子操作.EC:数据丢失,重构数据,性能影响较大。原创 2024-06-21 01:46:21 · 501 阅读 · 0 评论 -
【Daos】Daos软件 架构
否则daos server核实涉及读操作的数据块的校验码,然后计算出读取数据的校验码,然后返回数据和校验码给客户端。的协议服务,server中的raft服务会扫描object id,计算每个对象的layout,然后找出所有受影响的obejcts;会首先获取所有的数据的stripe信息来重建已经丢失的数据,采用两阶段提交协议,把事务传递给正常的sever节点,然后进行丢失数据的数据重建。是一个轻量级的库,整个到进程中,因此数据的EC编码是在客户端进行的,那么客户端进程所在节点会消耗更多的cpu资源。转载 2024-06-02 01:55:36 · 318 阅读 · 0 评论 -
【DAOS】daos client和dfuse 是什么?
DAOS Client是一个与应用程序集成的库。从堆栈分层的角度来看,DAOS是一个client-server模型的分布式存储系统。DAOS Client是一个与应用程序集成的库,应用程序调用daos client 的.so库与daos server 交互。DAOS Client通过DAOS的lib库提供的的数据模型可以直接集成在将在接下来介绍的所有传统数据格式和中间件库中。4.1 DAOS数据模型数组对象(Array objects),允许应用程序表示一个多维数组;原创 2024-05-26 23:59:24 · 1429 阅读 · 2 评论 -
【linux】多路径|Multipath I/O 技术
普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了分布式环境,主机和存储网络连接中间每一层可能存在多块网卡多个交换机可选就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择那么就有以下问题需要解决1 )每条路径如何表达?2 )I/O流量如何选择路径?3)流量如何在多条路径之间分配?负载均衡4)其中一条路径坏掉了,如何处理?高可用第一条比较简单。原创 2024-04-20 21:04:36 · 4328 阅读 · 0 评论 -
【存储】纠删码EC2+1,EC2+2,EC4+1,EC4+2:1分别是什么意思?
简介:纠删码技术主要是通过纠删码算法将原始的数据进行编码得到冗余,并将数据和冗余一并存储起来,以达到容错的目的。将n块原始的数据元素,通过计算(编码)得到m块冗余元素(校验块)。也就是n+m份数据通过DHT算法分别存储不同硬盘中。当其中任意的m块元素出错(包括原始数据和冗余数据)时,均可以通过对应的重构算法恢复出原来的n块数据。在这种方式下,空间的利用率约为 n/(n+m),数据的可靠性由 m 值的大小决定,m越大可靠性越高。原创 2024-04-25 23:37:01 · 5557 阅读 · 0 评论 -
【k8s】deamonset文件和说明
在Kubernetes的`DaemonSet`配置文件的`template`下的`spec`部分,可以指定`serviceAccount`或`serviceAccountName`。据我所知截止到我的知识截止点,`DaemonSet`中是不具有`serviceAccount`字段的,只有`serviceAccountName`字段。是Pod使用的Service Account的名称,Pod与Kubernetes API进行交互时,例如拉取配置信息,更新资源状态等,需要对API请求进行授权。原创 2024-01-01 00:33:31 · 5729 阅读 · 2 评论 -
【时钟】分布式时钟HLC|Logical Time|Vector Clock|True Time
VectorClock是一种用向量来表示偏序关系的逻辑时钟,从数据结构上可以理解为一个集合内包含所有节点的“时间戳”,当然这个时间戳并不是物理意义上的时间(也有些实践会同时加入timestamps以解决冲突问题),而是由程序赋予的逻辑计数(count),{Node1:0,Node2:2,Node3:3.......},如果我们已经统一了向量内的位置对应的node,那么时钟可以直接用一个{0,2,3}来表示。各节点相互通信的最终结果是,节点的“本地时钟”的物理部分,最终记录的是所有参与者中最大的本地时钟。原创 2023-12-31 01:52:44 · 1665 阅读 · 0 评论 -
【分布式】什么是云原生
云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative),Cloud+Native。Cloud表示应用程序位于云中,Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。DevOps+持续交付+微服务+容器。云原生架构的应用程序。原创 2022-10-05 01:39:10 · 338 阅读 · 0 评论 -
【ceph】 MDS处理mkdir
之前记录了《cephfs:用户态客户端mkdir》,但是并没有具体研究MDS怎么处理mkdir的。现在就研究下MDS这边处理mkdir的流程。例子:mkdir /test/a。转载 2022-09-04 20:02:13 · 647 阅读 · 0 评论 -
【ceph】AsyncMessenger 网络模块总结--编辑中
AsyncConnection有很多个状态,可以简单分为connect,accept,open, standby,closed,wait。连接建立后,还需要将AsyncConnection的状态转换为STATE_OPEN,才可以正常发送消息,STATE_CONNECTING/STATE_ACCEPTING状态切换到SATE_OPEN的过程中,会去做一些校验,这个过程很有必要。如下是状态切换的流程图: https://blog.youkuaiyun.com/bandaoyu/article/details/1123075原创 2022-07-11 20:26:22 · 452 阅读 · 0 评论 -
【ceph】CephFS 内部实现(四):MDS是如何启动的?--未消化
MDS启动时要经历一系列状态装换,但mds的各个状态是如何产生、确定的?这些状态究竟在处理什么?本篇尝试以正常启动mds为背景解释这两个问题。为提供FS服务,首先要命令创建filesystem,然后再启动mds进程。其中命令由组件处理,将一个文件系统信息(底层pool是哪些,一些feature等)写入monitor store,此时文件系统是没有关联mds的,所以是不可用的。mds进程启动后,通过向发送消息,并接收从返回的消息逐步启动自己。除了用于告知monitor关于mds的健康状态,还有这一信息。的转载 2022-06-25 17:41:32 · 891 阅读 · 0 评论 -
【ceph】CephFS 内部实现(三):快照
CephFS快照几个特点:快照通过组织成树形结构,每个有快照信息的inode节点都会有对应的,没有快照信息的inode使用父节点路径上最近的,根节点默认有。在client端创建快照时mds会在对应的inode节点新建(仅首次创建时),普通文件inode中也会出现,但都是mds的cow机制创建的,client端无法直接操作。 快照究竟是在备份什么? 快照是对当前目录及以下的子树状态进行保存,创建快照相当于对目录树中(节点以下的子目录树)每个inode进行备份,因为inode承载了文件系统的全部信息。根据MD转载 2022-06-25 17:37:14 · 715 阅读 · 0 评论 -
【ceph】CephFS 内部实现(二):示例--未消化
ceph-fuse在不指定rootpath参数时,client端的root inode和mds的root一样。如果指定了rootpath参数,那么client端的root inode则是rootpath中的最后一个dentry的inode,不过从这个inode的往上一直到mds root inode的路径上的所有inode也都会在client端存一份副本(下图红色圆圈节点),这些父节点是为了计算quota时使用,比如quota可能设置在了mds root inode上,这时client端如果没有mds ro转载 2022-06-25 17:35:29 · 371 阅读 · 0 评论 -
【ceph】CEPHFS 内部实现(一):概念篇--未消化
CephFS致力于提供POSIX兼容的文件系统接口,为了实现这一目标,CephFS选择了以目录树的形式在内存管理和使用元数据信息。和S3的“伪目录”做对比,这种目录树的方式能更高效、直接地实现POSIX语义。CephFS作为分布式文件系统,面临所有分布式系统都要着力解决的两个问题:海量数据,单点。面对海量元数据,单机内存容量显然无法满足要求,对此CephFS提供了多个Active MDS机制,将目录树划分成不同区域,分别在不同MDS上管理,MDS在检测到对端MDS故障后,能对故障MDS进行接管,解决单点问转载 2022-06-25 17:05:05 · 708 阅读 · 0 评论 -
【ceph】mkdir|mksnap流程源码分析|锁状态切换实例
Client----------------------op:mkdir-------------->MDSmkdir就是创建目录,客户端并不直接创建目录,而是将mkdir的请求(op为CEPH_MDS_OP_MKDIR)发给MDS,然后MDS执行mkdir的操作,并返回创建的目录的元数据。客户端无非就是发送请求和处理回复。例子 mkdir /mnt/ceph-fuse/test转自:cephfs:用户态客户端mkdir - https://zhuanlan.zhihu.com/p/85624700两类请求转载 2022-06-22 11:48:27 · 713 阅读 · 0 评论 -
【ceph】cephfs的锁 笔记
1、本文讨论的锁不是flock。flock是posix标准中对文件某部分偏移加的锁。而这里的锁指的是MDS集中管理多客户端对于文件并发访问时,Dentry和Inode等数据结构控制的锁。每个锁内有parent变量记录的就是该锁相关的Dentry或者Inode。Cephfs采用和GPFS类似的并发更新元文件的方式。同一份元数据分散多个MDS节点,但是有一个Auth节点,该节点负责- 串行更新(serializing updates)- 将元数据持久化到磁盘上(committing changes to dis转载 2022-06-21 11:32:37 · 793 阅读 · 0 评论 -
【文件】VFS四大struct:file、dentry、inode、super_block 是什么?区别?关系?--编辑中
Linux文件系统基础之inode和dentryinode(节点)和dentry(目录项)在VFS和实体的文件系统(ext2、ext3等)中都是比较重要的概念。首先看一下虚拟文件系统的标准定义:虚拟文件系统(英语:Virtual file system,缩写为VFS),又称虚拟文件切换系统(virtual filesystem switch),是操作系统的文件系统虚拟层,在其下是实体的文件系统。虚拟文件系统的主要功用在于让上层的软件,能够用单一的方式,来跟底层不同的文件系统沟通。在操作系统与之下的各种文件系原创 2022-06-20 16:53:53 · 1728 阅读 · 0 评论 -
【ceph】cephfs内核客户端到MDS的Lookup流程分析--未消化
在文件系统中读写文件时,一般需要先得到操作对象的索引inode信息,在客户端未缓存的情况下,除了调用open外,客户端也会下发lookup或者getattr命令到服务端去获取操作对象的inode。Lookup和getattr IO的mds端流程几乎一致,所以以lookup流程为例进行介绍。客户端以linux 4.18内核源码(cephfs的内核客户端在linux内核中实现)进行分析,服务端使用单活冷备的3节点集群。函数入口:大体流程为创建输入父目录testdir的inode和文件1的名字,创建请求发送到md转载 2022-06-16 17:17:03 · 860 阅读 · 0 评论 -
【存储】存储基本概念(lun,volume,HBA,DAS,NAS,SAN,iSCSI,IPSAN、存储池和存储卷)
目录什么是KVM(虚拟化软件)存储池和存储卷的区别(pool vs Volume)LUN (Target ID不够用,用LUN扩充)VOLUME (在LUN上划分)HBA (总线适配器)DAS/NAS/SAN iSCSI(互联网小型计算机系统接口)KVM 就是linux环境下的“VMware ” ,对比Windows下的VMware worstation。KVM功能强大,定制性高,只要入了门,绝对是功能强大。用来作云计算不错。不过就是操作性差了点。没有vmware workstation方便,毕竟,work原创 2022-06-11 16:55:05 · 5846 阅读 · 1 评论 -
【Ceph】Ceph快照的原理和实现--未消化
ceph的基本的特性之一,就是支持rbd的snapshot和clone功能。Ceph都可以完成秒级别的快照。ceph支持两种类型的快照,一种poo snaps,也就是是pool级别的快照,是给整个pool中的对象整体做一个快照。另一个是self managed snaps. 目前rbd的快照就这类,用户写时必须自己提供SnapContex信息。这两种快照时互斥的,两种不能同时存在。无论是pool级别的快照,还是rbd的快照,其实现的基本原理都是相同的。都是基于对象COW(copy-on-write)机制。本转载 2022-06-11 16:03:39 · 881 阅读 · 0 评论 -
【存储】超融合(HCI)和云是什么以及区别|超融合和虚拟化的区别
目录什么是超融合(HCI)简介主要构成超融合和云计算的区别超融合和虚拟化的区别与虚拟化对比来解释超融合超融合的技术特点超融合的优势和限制超融合应用场景超融合厂商云计算(一)云是什么(二)云计算是什么(三)特点(四)云资源的部署模式(五)云计算的优劣势(六)云计算的服务类型(七)云计算的核心理念(八)云厂商超融合和云计算的区别以下内容大部分参考or摘抄自:超融合和云计算 -https://zhuanlan.zhihu.com/p/441944211官方式定义: 超融合基础架构(Hyper-Converged原创 2022-06-10 20:43:12 · 6208 阅读 · 0 评论 -
【存储】NVM,NVRAM,FLASH,PROM,eFuse,NAND FLASH,NOR FLASH,NVMe区别是?
目录简略详细1. 什么是NVM?2. Mask ROM, PROM, EPROM, EEPROM3. OTP NVM3.1 eFuse vs. Anti-Fuse4. Summary5.什么是FlashNVM 包含FLASH(NAND FLASH/NOR FLASH),PROM、EPROM、EEPROM等NVRAM 和NVM一样NVRAM也是一种概念,比NVM更小范围的概念,有不同的技术方法可以实现这一概念,例如非常常见的 EEPROM。NVM--|EPROM 可擦写可编程只读存储器。--原创 2022-06-10 17:57:09 · 7516 阅读 · 1 评论 -
【ceph】ceph配置源码分析|common/config.*
如果一个class中有成百上千个成员变量,有没有觉得当写类头文件都写到手痛,还要在构造函数里初始化它们,简直不敢再想下去了……像下图这样这只是头文件还有实现的接着还有get 和 set然而,以上是最笨的方法~那么问题来了,ceph的开发者是怎样做的呢?利用c++的宏,在class的头文件定义成员变量前定义好要用的宏,如下OPTION(name,ty,init)宏能根据ty,也就是成员变量的类型,在编译时生成成员变量,成员变量的最终定义是在common/config_opts.h下:Class的构造函数初始化原创 2022-06-02 21:43:47 · 1079 阅读 · 0 评论 -
【存储】下一代分布式文件系统 研究
全球将有80%的数据是非结构化的。文件协议是存取非结构化数据最普遍的使用方式,根据IDC统计,2019年度,中国的软件定义存储市场约60%是文件存储。传统文件系统有很多的限制:1、元数据和数据使用本地存储,无法横向扩展,不具备节点级高可用;2、受限于元数据的存储空间和性能,实际可保存的文件数有限,一般小于1亿,存储空间为TB级别;3、非统一命名空间,多个挂载目录之间无法互通,使用复杂;4、文件存储网关不可扩展,无法提升带宽,造成访问瓶颈;5、不支持大数据和容器等新业务。分原创 2022-05-28 14:04:20 · 780 阅读 · 0 评论 -
【ceph】ceph 网络问题和工具
查看socketnetstat -lnxpunix STREAM LISTENING 84402953 2946130/rados /var/run/ceph/ceph-admin.2946130.94651089703712.asokunix STREAM LISTENING 336026461 2807156/rados /var/run/ceph/ceph-admin.2807156.94357368345376.asokunix STREAM LISTENING 186741342 .原创 2022-05-20 16:12:04 · 667 阅读 · 0 评论 -
【SPDK】什么是SPDK?为什么用SPDK
什么是SPDKSPDK 存储性能开发套件(Storage Performance Development Kit ) —— 针对于支持nvme协议的SSD设备。 SPDK是一种高性能的解决方案。存储性能开发套件 (SPDK) 提供了一组工具和库,用于编写高性能、可扩展的用户模式存储应用程序。它通过使用一些关键技术实现高性能:将所有必要的驱动程序移动到用户空间,从而避免 syscalls,并允许从应用程序中访问零拷贝。 对硬件进行完成轮询,而不是依赖中断,这降低了总延迟和延迟方差。 避免原创 2022-05-12 21:54:40 · 9810 阅读 · 0 评论 -
Ceph读写性能估算方法
前言最近在做Ceph性能测试相关工作,在测试初期由于没有得到理想的测试结果,因此对Ceph集群进行了优化,但是一直有个问题萦绕在我的脑海:基于当前硬件配置,这个Ceph集群的极限是多少?由于这个问题和Ceph的配置息息相关,为了简化问题,在本文中我们只会会讨论3个变量:冗余策略(纠删码、多副本),读/写,ObjectStore。我们将会基于磁盘、网络、CPU性能来估算出一个集群的性能,除此以外的参数影响均归并到损耗系数μ这个变量。本文会分别解释写性能公式推演、读性能公式推演,并且在每个推演中加入冗余转载 2022-05-09 11:33:43 · 901 阅读 · 0 评论 -
【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述
什么是DAOSDAOS ( Distributed Asynchronous Object Storage,分布式异步对象存储 )是 对象存储容器。可为高性能计算应用提供高带宽、低延迟和高IOPS的存储容器,是英特尔构建百亿亿次级存储堆栈的基础。DAOS 与针对高性能储存的英特尔® 傲腾™ 技术;https://www.intel.cn/content/www/cn/zh/high-performance-computing/daos-high-performance-storage-.原创 2022-04-20 11:16:26 · 5363 阅读 · 1 评论 -
【ceph】CEPH 单活MDS主从切换流程|REPLAY
代码基于ceph nautilus版本MDS关键概念想要理解MDS切换过程,首先需要理清一些基本概念。MDSMAP包含整个ceph集群的所有mds的状态信息:fs个数、fs名称、各mds状态、数据池、元数据池信息,等等 Contains the current MDS map epoch, when the map was created, and the last time it changed. It also contains the pool for storing metad转载 2022-04-16 22:33:21 · 1767 阅读 · 0 评论 -
【ceph】ceph-mds journal模块解读
CephFS通过ceph-mds将文件系统元数据存储于metadata pool中,一般metadata pool实际生产环境中都建议用高性能ssd,加快元数据落盘以及加载至内存中性能。本篇介绍ceph-mds如何将元数据存入metadata pool中,以及通过cephfs-journal-tool如何查看相关journal信息。class MDLog () 类class MDLog () 管理整个journal模块,内存数据与journal模块通道,所有元数据操作都通过此类与journal相关.转载 2022-04-16 15:03:38 · 1316 阅读 · 1 评论 -
【ceph】ceph OSD状态及常用命令
1. OSD概念OSD:Object Storage Device,主要负责响应客户端请求返回具体数据的守护进程,一般一个集群会有多个OSD,每一块盘都会对应一个OSD。2. OSD 状态[root@data1 ~]# ceph osd stat4 osds: 3 up (since 23m), 3 in (since 13m); epoch: e345OSD状态说明:a. 集群内(in)b. 集群外(out)c. 活着且在运行(up)d. 挂了且不再运行(down).转载 2022-04-16 15:01:00 · 11684 阅读 · 0 评论 -
【ceph】CEPH源码解析:读写流程
一、OSD模块简介1.1 消息封装:在OSD上发送和接收信息。cluster_messenger -与其它OSDs和monitors沟通client_messenger -与客户端沟通1.2 消息调度:Dispatcher类,主要负责消息分类1.3 工作队列:1.3.1 OpWQ: 处理ops(从客户端)和sub ops(从其他的OSD)。运行在op_tp线程池。1.3.2 PeeringWQ: 处理peering任务,运行在op_tp线程池。1.3.3 CommandWQ转载 2022-04-11 23:31:51 · 5446 阅读 · 0 评论 -
【ceph】《Ceph源码分析》finisher 类
转自:ceph中的finisher类:https://blog.youkuaiyun.com/tiantao2012/article/details/79419556finisher 类是ceph中定义的专门检查操作是否结束的一个类。《Ceph源码分析》一书中的第2章,第2.4节Finisher,作者常涛,有讲到这个类。更多章节内容可以访问云栖社区“华章计算机”公众号查看。类Finisher用来完成回调函数Context的执行,其内部有一个FinisherThread线程来用于执行Context回调函数:.转载 2022-04-06 16:17:08 · 441 阅读 · 0 评论 -
【CTDB】什么是CTDB(Cluster Trivial Database)
1、简介CTDB(Cluster Trivial Database,集群琐碎数据库)是一种轻量级的集群数据库实现,是集群Samba的集群数据库组件,主要用于处理Samba的跨节点消息以及在所有集群节点上实现分布式的TDB数据库。CTDB的主要功能:1) 提供TDB数据库的集群版本,并在节点故障时自动重建/恢复数据库;2) 监视集群中的节点和每个节点上运行的服务;3) 管理用于向客户端提供服务的公共IP地址池。或者,CTDB可与LVS一起使用;现今,CTDB不仅支持管理Samba,而且也转载 2022-04-01 10:59:25 · 3680 阅读 · 0 评论 -
【ceph】Rados的客户端RadosClient|MonClient|Osdc
本文介绍Ceph客户端方面的某些模块的实现。(摘抄自:https://blog.youkuaiyun.com/CSND_PAN/article/details/78707756)客户端主要是实现了接口,让外部可以调用实现访问操作。上层可以通过调用这些接口来访问Ceph存储。Librados 与 Osdc 位于Ceph客户端中比较底层的位置,Librados 提供了Pool的创建、删除、对象的创建、删除等基本接口;Osdc则用于封装操作,计算对象的地址,发送请求和处理超时。如图:根据.原创 2022-03-31 03:04:27 · 1368 阅读 · 0 评论 -
【ceph】ceph命令处理流程代码分析(终端敲命令之后发生的事)
既然讲了admin_socket的的后台部分,那前端输入命令到底是怎么去调用的后台呢,或者前台的命令到底是怎么发送的呢?平时的ceph命令到底是怎么解析的呢?讨论会后带着这些疑问,看起了ceph代码。在终端敲入了ceph stastus,终端就返回了集群的状态。那在这个过程中,到底是调用了什么。主要涉及了ceph-12.2.2\src\ceph.inceph-12.2.2\src\pybind\ceph_argparse.pyceph-12.2.2\src\pybind\rados\rados原创 2022-03-25 22:09:45 · 1749 阅读 · 1 评论 -
【ceph】ceph osd blacklist cep黑名单|MDS问题分析
目录blacklist是什么blacklist相关操作Ceph MDS问题分析blacklist是什么(摘自:https://blog.51cto.com/wendashuai/2493435)blacklist最常用于CephFS场景中,以防止滞后的元数据服务器对OSD上的数据进行不良更改。当文件系统客户端无响应或行为异常时,可能有必要强制终止其对文件系统的访问。 此过程称为eviction(驱逐)。驱逐CephFS客户端会阻止其与MDS daemons和OS...原创 2022-03-14 15:58:15 · 3267 阅读 · 1 评论 -
【Ceph】Ceph Client
libradoslibrados是RADOS对象存储系统访问的接口层,它提供了pool的创建、删除、对象的创建、删除、读写等基本操作接口在最上层是RadosClient,它是librados的核心管理类,处理整个RADOS系统层面以及pool层面的管理。类IoctxImpl实现单个pool 层的对象读写等操作OSDC模块实现了请求的封装和通过网络模块发送请求的逻辑,其核心类Objecter完成对象的地址计算、消息的发送等工作librados主要接口:1.集群句柄创建...转载 2022-03-07 01:58:16 · 1272 阅读 · 0 评论 -
【存储】数据重删压缩
重删压缩是什么?(个人觉得更好的翻译应该是:删重和压缩)重删和压缩时完全不同的两种技术,解决不同的问题。 重删:就是说有很多分相同的数据,我只存储其中一份,其他的重复数据块我保留一个地址引用到这个唯一存储的块即可。压缩:将一个大字符串中的子串用一个很简短的数字来标记,然后检索该字符串出现的位置,用个简单的字符来替代。从而来减少数据表达所需要的空间,带来空间节省。比如说用1代表“AB”,用2代表“CD”,然后用255 来代表“hanfute”。1到255只需要8个bit,而“...转载 2022-03-03 23:41:16 · 3400 阅读 · 0 评论 -
【ceph】ceph osd启动及peering过程中osdmap相关加载和更新流程
OSD启动过程中osdmap加载流程OSD启动入口是ceph_osd.cc的main函数,他会调用osd->init()进行osd启动前的初始化工作。int OSD::init(){ ...... int r = store->mount(); // 检查osd目录相关持久化数据,以及文件系统属性等,加载FileStore驱动。 ...... r = read_superblock(); // 这个是读取的current/meta目录下的osd_superblo转载 2022-02-26 21:30:32 · 1932 阅读 · 0 评论