上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页
摘要: 缓存变量 参考资料 1. CMake语法—缓存变量(Cache Variable) 阅读全文
posted @ 2022-03-01 20:40 苏格拉底的落泪 阅读(65) 评论(0) 推荐(0)
摘要: yum命令 查看提供某个命令的rpm包: # yum provides gcc Loading mirror speeds from cached hostfile * base: mirrors.bupt.edu.cn * centos-sclo-rh: mirrors.nju.edu.cn * 阅读全文
posted @ 2022-02-28 22:50 苏格拉底的落泪 阅读(41) 评论(0) 推荐(0)
摘要: https://www.jianshu.com/u/9456fecb5f96 1 #include <algorithm> 2 #include <atomic> 3 #include <cstddef> 4 #include <iostream> 5 #include <thread> 6 #in 阅读全文
posted @ 2022-02-28 10:48 苏格拉底的落泪 阅读(364) 评论(0) 推荐(0)
摘要: cmake_dependent_option cmake_dependent_option(<option> "<help_text>" <value> <depends> <force>) 说明: 如果<depends>中以分号分割的条件列表全部为true,则使<option>对用户可用。否则,名 阅读全文
posted @ 2022-02-24 20:51 苏格拉底的落泪 阅读(53) 评论(0) 推荐(0)
摘要: radosgw-admin 命令 删除bucket: radosgw-admin bucket rm --bucket=test 删除bucket所有对象: radosgw-admin bucket rm --bucket=bucketname --purge-objects --bypass-gc 阅读全文
posted @ 2022-02-24 14:50 苏格拉底的落泪 阅读(1007) 评论(0) 推荐(0)
摘要: iptables 禁止 IP和端口 1. 禁止指定 IP iptables -I INPUT -s 10.0.28.15 -j DROP 2. 禁止指定 IP段 iptables -I INPUT -s 10.0.28.15/24 -j DROP 3. 禁止指定 IP和端口 iptables -I 阅读全文
posted @ 2022-02-22 16:53 苏格拉底的落泪 阅读(4827) 评论(0) 推荐(0)
摘要: Linux 远程挂载 Ceph RBD 磁盘 创建存储池 1 sudo ceph osd pool create <pool-name> 128 128 2 sudo ceph osd pool application enable <pool-name> rbd View Code 查看独占锁信息 阅读全文
posted @ 2022-02-22 14:57 苏格拉底的落泪 阅读(781) 评论(0) 推荐(0)
摘要: 字节序 与同一台计算机上的进程进行通信时,一般不用考虑字节序,字节序是一个处理器架构特性,用于指示像整数计算的大数据类型内部的字节如何排序。 假设上图图 中在内存 0x1000 到 0x1003 这连续的 4 个字节保存了数据,这段数据对应的数据类型是 int 类型。我们知道 int 类型的数据在大 阅读全文
posted @ 2022-01-15 14:53 苏格拉底的落泪 阅读(186) 评论(0) 推荐(0)
摘要: 修改集群配置 启动 ceph 存储集群时,各守护进程都从同一个配置文件(默认的 ceph.conf )里查找它自己的配置。ceph.conf 中可配置参数很多,有时我们需要根据实际环境对某些参数进行修改。 修改的方式分为两种:直接修改 ceph.conf 配置文件中的参数值,修改完后需要重启 Cep 阅读全文
posted @ 2022-01-11 17:34 苏格拉底的落泪 阅读(1522) 评论(0) 推荐(0)
摘要: 删除mon 当你想要删除一个 mon 时,需要考虑删除后剩余的 mon 个数是否能够达到法定人数。 1、停止 mon 进程: systemctl stop ceph-mon@node01 2、从集群中删除 mon: ceph mon remove node01 3、从 ceph.conf 中移除 m 阅读全文
posted @ 2022-01-11 15:35 苏格拉底的落泪 阅读(465) 评论(0) 推荐(0)
摘要: 参考资料 1. 存储基础和Ceph 阅读全文
posted @ 2022-01-11 10:33 苏格拉底的落泪 阅读(72) 评论(0) 推荐(0)
摘要: DNE状态解析 删除osd时,如果没有在crush中删除,osd可能会出现DNE的状态,具体解决方法: 1)过滤处于DNE状态的osd: ceph osd tree | grep DNE 2)osd DNE状态清楚方法: ceph osd crush remove osd.id 注意: 删除一块磁盘 阅读全文
posted @ 2022-01-04 17:14 苏格拉底的落泪 阅读(577) 评论(0) 推荐(0)
摘要: fmt fmt库地址:https://github.com/fmtlib/fmt fmt输出: #include <fmt/core.h> int main() { std::string name = "龙龙米"; int age = 25; fmt::print("你好,{}!你今年 {} 岁。 阅读全文
posted @ 2021-12-29 22:49 苏格拉底的落泪 阅读(67) 评论(0) 推荐(0)
摘要: 用户API 1. 函数原型: #include <unistd.h> uid_t getuid(void); uid_t geteuid(void); 说明:1. getuid()返回调用进程的真实用户ID。 2. geteuid()返回调用进程的有效用户ID。 和系统数据相关的一个结构passwd 阅读全文
posted @ 2021-12-29 19:59 苏格拉底的落泪 阅读(176) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-12-29 10:47 苏格拉底的落泪 阅读(25) 评论(0) 推荐(0)
摘要: shared_mutex 解析 1. 示例 #include <mutex> #include <shared_mutex> #include <thread> #include <list> #include <iostream> #include <vector> #define READ_TH 阅读全文
posted @ 2021-12-27 18:19 苏格拉底的落泪 阅读(611) 评论(0) 推荐(0)
摘要: 标准IO库(C库函数) 标准IO库 FILE *fopen(const char *restrict pathname, char *restrict type); FILE *fdopen(int fd, const char *type); FILE *freopen(const char *r 阅读全文
posted @ 2021-12-25 16:53 苏格拉底的落泪 阅读(128) 评论(0) 推荐(0)
摘要: 标准输入输出 1. cin 原型: template <class CharT, class Traits = std::char_traits<CharT>> class basic_istream : virtual public std::basic_ios<CharT, Traits> 2. 阅读全文
posted @ 2021-12-25 14:08 苏格拉底的落泪 阅读(116) 评论(0) 推荐(0)
摘要: stream_buf 解析 1. stream_buf原型: template <class CharT, class Traits = std::char_traits<CharT>> class basic_streambuf; 【注意】 typedef basic_streambuf<char 阅读全文
posted @ 2021-12-25 13:59 苏格拉底的落泪 阅读(1082) 评论(0) 推荐(0)
摘要: 文件输入输出 对于文件读取流和向文件写入流,需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型: 数据类型 描述 ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 ifstream 该数据类型表示输入文件流,用于从文件读取信息。 fstream 该数 阅读全文
posted @ 2021-12-25 12:31 苏格拉底的落泪 阅读(192) 评论(1) 推荐(0)
摘要: 容器set 解析 1. 例子 #include <boost/intrusive/set.hpp> #include <utility> #include <iostream> #include <string> using namespace boost::intrusive; struct ve 阅读全文
posted @ 2021-12-24 10:06 苏格拉底的落泪 阅读(140) 评论(0) 推荐(0)
摘要: last_epoch_started介绍 Info中实际保存了两个last_epoch_started属 性,一个位于Info属性之下,另一个则位于Info的history属性之 下。 1. info.last_epoch_started由每个副本收到Primary发送的Peering完成通知之后更 阅读全文
posted @ 2021-12-23 16:57 苏格拉底的落泪 阅读(444) 评论(0) 推荐(0)
摘要: boost::statechart Boost 提供了状态机的实现接口,采用了CRTP技术实现,下面以秒表为例子实现一个状态机,这是一个官方的例子,也可以参考资料:Boost Statechart 庫,状态机的状态转换图如下所示 实现代码如下: 1 #include <stdio.h> 2 #inc 阅读全文
posted @ 2021-12-22 22:27 苏格拉底的落泪 阅读(417) 评论(0) 推荐(0)
摘要: boost::statechart Ceph在处理PG的状态转换时,使用了boost库提供的statechart状态机。因此,这里先简单介绍一下statechart状态机的基本概念和涉及的相关知识,以便更好地理解Peering过程PG的状态转换流程。 3.1 状态 在statechart里,状态的定 阅读全文
posted @ 2021-12-22 19:51 苏格拉底的落泪 阅读(1061) 评论(0) 推荐(0)
摘要: OSDMap 机制浅析 OSDMap 机制是 Ceph 架构中非常重要的部分,PG 在 OSD 上的分布和监控由 OSDMap 机制执行。OSDMap 机制和 CRUSH 算法一起构成了 Ceph 分布式架构的基石。 OSDMap 机制主要包括如下3个方面: 1、Monitor 监控 OSDMap 阅读全文
posted @ 2021-12-22 17:07 苏格拉底的落泪 阅读(592) 评论(0) 推荐(0)
摘要: paxos算法解析 阅读论文 《Paxos Made Simple》 选定提案的最简单方式就是只允许一个accpetor存在。Proposer发送提案给accpetor,Acceptor会选择它接收到的第一个提案作为被选定的提案。尽管简单,但是这个解决方式却很难让人满意,因为如果accpetor出错 阅读全文
posted @ 2021-12-21 22:46 苏格拉底的落泪 阅读(148) 评论(0) 推荐(0)
摘要: 流程细化 写流程:以 FileStore 后端存储为例 1)client把写请求发到Primary OSD上,Primary OSD上将写请求序列化到一个事务中(在内存里),然后构造一条pglog记录,也序列化到这个事务中,然后将这个事务以directIO的方式异步写入journal,同时Prima 阅读全文
posted @ 2021-12-20 16:16 苏格拉底的落泪 阅读(617) 评论(0) 推荐(0)
摘要: peering 1.1 acting set和up set acting set是一个PG对应副本所在的OSD列表,该列表是有序的,列表中第一个OSD为主OSD。与up的区别在于,acting不是基于CRUSH计算出来的,而是基于一定的规则选出来;在通常情况下,up set和acting set列表 阅读全文
posted @ 2021-12-16 11:52 苏格拉底的落泪 阅读(591) 评论(0) 推荐(0)
摘要: pg归纳总结 1.如下图: pg状态变化 1. 状态变化如下图: 参考资料 1. ceph存储 PG的状态机 源码分析 2. ceph PG设计,状态机,peering,recovery 导图 阅读全文
posted @ 2021-12-15 14:04 苏格拉底的落泪 阅读(166) 评论(0) 推荐(0)
摘要: OSD的状态转化 状态意义位置 STATE_INITIALIZING OSD初始状态;新建OSD对象后,state的默认值。 class OSD STATE_PREBOOT OSD准备初始化;在OSD::start_boot中发送get_version消息之前设置。 OSD::start_boot 阅读全文
posted @ 2021-12-13 17:07 苏格拉底的落泪 阅读(123) 评论(0) 推荐(0)
摘要: PG的生成过程 1. 首先将OSD对象new出来: 1 osd = new OSD(g_ceph_context, 2 store, 3 whoami, 4 ms_cluster, 5 ms_public, 6 ms_hb_front_client, 7 ms_hb_back_client, 8 m 阅读全文
posted @ 2021-12-13 14:03 苏格拉底的落泪 阅读(299) 评论(0) 推荐(0)
摘要: peering 运行过程 1.写入object1。初始状态pg ,他由osd.0 、osd.1、osd.2组成的三副本形式,这时up集合为[0,1,2],acting集合为[0,1,2],acting_primary 为osd 0。这时该pg已经完成写入object1,那osd0,1,2上都保存这o 阅读全文
posted @ 2021-12-11 13:31 苏格拉底的落泪 阅读(245) 评论(0) 推荐(0)
摘要: 参考资料 1. VScode配置C/C++环境(MinGW) & 编写运行C/C++程序(Windows) 阅读全文
posted @ 2021-12-11 13:18 苏格拉底的落泪 阅读(70) 评论(0) 推荐(0)
摘要: BACKOFF 通常,OSD会简单地将任何不能立即在内存中处理的请求进队,直到它可以处理的时间。这可能会产生问题,因为OSD会限制传入消息所消耗的RAM总量:如果达到消息数量或字节数量的任何一个阈值,新的消息将不会从网络套接字中读取,从而通过网络造成反压力。 然而,在某些情况下,OSD知道或预计PG 阅读全文
posted @ 2021-12-10 11:34 苏格拉底的落泪 阅读(446) 评论(0) 推荐(0)
摘要: 概述 OSD是RADOS集群的基本存储单元。 PG(placement group)从名字可理解为放置策略组,它是对象的集合,该集合里的所有对象都具有相同的放置策略:对象的副本都分布在相同的OSD列表上。一个对象只能属于一个PG,一个PG对应于放置在其上的OSD列表。一个OSD上可以分布多个PG。处 阅读全文
posted @ 2021-12-10 10:21 苏格拉底的落泪 阅读(2125) 评论(0) 推荐(0)
摘要: OSD的内部队列 由于op可能各种各样的原因需要背推迟处理,为此PG内部维护了多种op重试队列,它们的含义下表所示: 队列名称 入队条件 wait_for_map 当收到op时,已经有来自同一个客户端的op存在于此队列中,,或者op携带的Epoch大于PG当前的Epoch waiting_for_p 阅读全文
posted @ 2021-12-09 22:02 苏格拉底的落泪 阅读(184) 评论(0) 推荐(1)
摘要: PG相关命令 查询pool中pg的详细信息 ceph pg ls-by-pool default.rgw.buckets.data 阅读全文
posted @ 2021-12-09 16:53 苏格拉底的落泪 阅读(71) 评论(0) 推荐(0)
摘要: boost安装 可执行文件下载:https://hadoop.apache.org/releases.html: yum install boost yum install boost-devel yum install boost-doc boost编译: ./bootstrap.sh ./b2 阅读全文
posted @ 2021-12-09 16:14 苏格拉底的落泪 阅读(493) 评论(0) 推荐(0)
摘要: Ceph IO, Rados IO 流程解析(读写) CEPH RADOS IO(读写) 处理流程图: CPEH读写顺序保证: 不同对象的并发控制 不同的对象有可能落到同一个pg里,ceph实现里,在OSD的处理线程中就会给PG加锁,一直到queue_transactions里把事务放到bluest 阅读全文
posted @ 2021-12-09 14:19 苏格拉底的落泪 阅读(898) 评论(0) 推荐(0)
摘要: 稀疏写 我们知道一个文件的逻辑空间上是连续的,但是真正在磁盘上的物理空间分布并不一定是连续的。同时我们也会使用lseek系统调用,使得文件偏移量大于文件的长度,此时再对文件写入,便会在文件中形成一个空洞,这些空洞中的字节都是0。空洞是否占用磁盘空间是有文件系统决定的,不过大部分的文件系统ext4、x 阅读全文
posted @ 2021-12-09 10:04 苏格拉底的落泪 阅读(982) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页