摘要:
LExtent Extent是对象内的基本数据管理单元,数据压缩、数据校验、数据共享等功能都是基于Extent粒度实现的。这里的Extent是对象内的,并不是磁盘内的,所以我们称为lextent,和磁盘内的pextent以示区分。 struct Extent { // 对象内逻辑偏移,不需要块对齐。
阅读全文
posted @ 2021-12-08 16:44
苏格拉底的落泪
阅读(205)
推荐(0)
摘要:
参考资料 1. ceph bluestore 写操作源码分析(上) 2. ceph bluestore中的磁盘空间管理 3. Ceph luminous + bluestore存储引擎部署 4. BlueStore源码分析之对象IO 5. Ceph luminous + bluestore存储引擎部
阅读全文
posted @ 2021-12-08 10:21
苏格拉底的落泪
阅读(476)
推荐(0)
摘要:
int BlueStore::_minimal_open_bluefs(bool create) { bluefs = new BlueFS(cct); /** * 在这里,会创建三个块设备block.db、block、block.wal * * bluefs->add_block_device用于
阅读全文
posted @ 2021-12-07 18:25
苏格拉底的落泪
阅读(225)
推荐(0)
摘要:
参考资料 1. ceph-bluestore-tool 工具实践及源代码解析 2. Ceph-Volume源码分析osd创建和开机自启
阅读全文
posted @ 2021-12-07 16:41
苏格拉底的落泪
阅读(212)
推荐(0)
摘要:
预分配磁盘空间 我们在开发程序的过程中,往往需要预分配磁盘空间,防止因磁盘空间不够而引发程序异常问题(已踩过坑), 现网查阅资料,有些预分配磁盘空间的方法不正确。 1.1 posix_fallocate函数 函数原型: #include <fcntl.h> int posix_fallocate(i
阅读全文
posted @ 2021-12-06 22:13
苏格拉底的落泪
阅读(866)
推荐(0)
摘要:
参考资料 1.Linux Page Cache的理解 2. Linux系统中的Page cache和Buffer cache 3.Linux 的 Page Cache
阅读全文
posted @ 2021-12-06 21:35
苏格拉底的落泪
阅读(105)
推荐(0)
摘要:
BlueStore源码分析之BitMap分配器 参考资料 1. BlueStore源码分析之BitMap分配器
阅读全文
posted @ 2021-12-06 19:56
苏格拉底的落泪
阅读(180)
推荐(0)
摘要:
扇区与块/簇 如图所示,描述介绍了扇区、磁道等概念: A:Track 磁盘磁道(粉红色部分) B:Geometrical sector 几何学中的扇形(紫色部分) C:Track sector 磁盘扇区(玫红色部分) D:Cluster 块/簇(绿色部分) 说完扇区,就不得不提一些其他相关概念,因为
阅读全文
posted @ 2021-12-06 17:52
苏格拉底的落泪
阅读(437)
推荐(0)
摘要:
Ceph 集群在运行一段时间后常会碰到OSD 数据不均衡的时候,有的OSD 使用率超过的80%,有的甚至不足60%。一般有两种方法去均衡各个OSDs 间的数据 OSD Reweight 其实就是给各个OSDs 设置均衡权重(区别OSD weight 是根据容量设置的固定权重) 调整数据量超过阀值的O
阅读全文
posted @ 2021-12-06 14:13
苏格拉底的落泪
阅读(1845)
推荐(0)
摘要:
参考资料 1. ceph internal 之 底层对象
阅读全文
posted @ 2021-12-03 15:39
苏格拉底的落泪
阅读(46)
推荐(0)
摘要:
osd_data "/var/lib/ceph/osd/$cluster-$id" path to OSD data osd_journal "/var/lib/ceph/osd/$cluster-$id/journal" path to OSD journal (when FileStore ba
阅读全文
posted @ 2021-12-03 10:20
苏格拉底的落泪
阅读(81)
推荐(0)
摘要:
uuidgen ceph osd create uuidgen mkdir -R /var/lib/ceph/osd/ceph-3 ceph-osd -i 0 --mkfs --mkkey --osd-uuid 63970d8a-597a-4123-9767-097f88bbcd00 sudo ce
阅读全文
posted @ 2021-12-02 17:42
苏格拉底的落泪
阅读(149)
推荐(0)
摘要:
OSD模块在tp_osd_tp线程上下文的最后阶段,通过queue_transactions调用FileStore模块功能将操作请求以日志的方式提交到日志队列中,至此tp_osd_tp线程中的工作就完成了。后续由一个独立的日志写入线程journal_write从日志队列中取出操作日志并调用文件系统写
阅读全文
posted @ 2021-12-02 15:31
苏格拉底的落泪
阅读(402)
推荐(0)
posted @ 2021-12-02 15:08
苏格拉底的落泪
阅读(34)
推荐(0)
摘要:
OSD写操作失效如何处理 很多人对Ceph写操作的异常处理的过程还不是特别的清楚。本文就介绍Ceph如何处理异常处理的。 首先需要明确的是,Ceph的读写操作并没有超时机制。 rbd_write并没有超时机制。所有经常看到,用ceph -s 命令查看,有些 slow request请求会显示延迟 3
阅读全文
posted @ 2021-12-02 10:31
苏格拉底的落泪
阅读(647)
推荐(0)
摘要:
ceph-kvstore-tool 查看mon数据库中都有哪些表项 ceph-kvstore-tool rocksdb /var/lib/ceph/mon/ceph-node1/store.db/ list|awk '{print $1}'|uniq 参考资料 1. ceph-kvstore-too
阅读全文
posted @ 2021-12-02 09:37
苏格拉底的落泪
阅读(339)
推荐(0)
摘要:
class PG min_last_complete_ondisk 这个表示各个副本上last_complete的最小版本,是主OSD在收到3个副本都完成时再进行计算的,也就是计算last_complete_ondisk和其他副本OSD上的last_complete_ondisk,即peer_las
阅读全文
posted @ 2021-12-01 16:36
苏格拉底的落泪
阅读(69)
推荐(0)
摘要:
OSD 图解如下: 接下来我们看一下tp_osd_tp线程是如何处理分片中的请求,线程处理的核心函数是ShardedOpWQ::_process,其调用栈如下: ShardedOpWQ::_process() |-OpQueue<>::dequeue() |-OSD::_look_up_pg() \
阅读全文
posted @ 2021-12-01 15:42
苏格拉底的落泪
阅读(975)
推荐(0)
摘要:
struct pg_log_entry_t { ObjectModDesc mod_desc; //用于保存本地回滚的一些信息,用于EC模式下的回滚操作 bufferlist snaps; //克隆操作,用于记录当前对象的snap列表 hobject_t soid; //操作的对象 osd_reqi
阅读全文
posted @ 2021-12-01 15:08
苏格拉底的落泪
阅读(932)
推荐(0)
摘要:
1.1 acting set和up set acting set是一个PG对应副本所在的OSD列表,该列表是有序的,列表中第一个OSD为主OSD。在通常情况下,up set和acting set列表完全相同。要理解他们的不同之处,需要理解下面介绍的“临时PG”概念。 1.2 临时PG 假设一个PG的
阅读全文
posted @ 2021-12-01 14:36
苏格拉底的落泪
阅读(721)
推荐(0)
摘要:
PG 状态 statedescription Activating Peering已经完成,PG正在等待所有PG实例同步并固化Peering的结果(Info、Log等) Active PG可以正常处理来自客户端的读写请求 Backfilling PG正在执行Backfill。Backfill总是在R
阅读全文
posted @ 2021-12-01 14:02
苏格拉底的落泪
阅读(444)
推荐(0)
摘要:
命令rados 删除pool test: rados purge test --yes-i-really-really-mean-it 查看资源池信息: rados df -p pool1 -p test # 参数是指定具体资源池,如果不加,则显示所有 创建rados对象: rados -p tes
阅读全文
posted @ 2021-12-01 10:41
苏格拉底的落泪
阅读(388)
推荐(0)
摘要:
ceph-objectstore-tool工具 基本命令使用如下:ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-8/ --type bluestore xxx一般前半部分如左,指定osd路径,指定存储引擎(bluestore或者fi
阅读全文
posted @ 2021-12-01 10:12
苏格拉底的落泪
阅读(944)
推荐(0)
摘要:
亲和性 #Ceph 客户端读写数据时,总是连接 acting set 里的主 OSD (如 [2, 3, 4] 中, osd.2 是主的)。#有时候某个 OSD 与其它的相比并不适合做主 OSD (比如其硬盘慢、或控制器慢),最大化硬件利用率时为防止性能瓶颈(特别是读操作),#你可以调整 OSD 的
阅读全文
posted @ 2021-12-01 09:35
苏格拉底的落泪
阅读(359)
推荐(0)
摘要:
radosgw-admin bucket limit check
阅读全文
posted @ 2021-11-26 10:55
苏格拉底的落泪
阅读(28)
推荐(0)
摘要:
rsync断点续传 1. 断点续传命令: rsync -P --rsh=ssh /root/test 172.10.33.87:/root/test 需求:主机A传送文件夹TestDB到主机B,实验rsync断点续传的过程记录: [oracle@rac1-server TestDB]$ rsync
阅读全文
posted @ 2021-11-24 22:56
苏格拉底的落泪
阅读(363)
推荐(0)
摘要:
vim多文件操作 1. 在终端输入如下命令,即可打开所有想要打开的文件: vim file1 file2 ... 2. Vim已经启动,输入如下命令可以再打开一个文件,并且此时里会显示file文件的内容: :e file 两文件之间的切换: Ctrl+6 多文件操作中,切换下一个文件: :bn 上一
阅读全文
posted @ 2021-11-24 21:42
苏格拉底的落泪
阅读(176)
推荐(0)
摘要:
分屏模式 垂直分屏 :vs [file] vs 将当前文件垂直分屏 vs file 创建新文件并垂直分屏 2. 水平分屏 :sv [file] ::sp [file] sv 将当前文件水平分屏 sv file 创建新文件并水平分屏 分屏屏间光标移动 分屏间循环移动光标:ctrl-w ctrl-w c
阅读全文
posted @ 2021-11-24 21:26
苏格拉底的落泪
阅读(2602)
推荐(0)
摘要:
自动格式化代码 步骤如下: 1. gg 快捷键跳转到第一行 2. shift + v 转到可视模式 3. shift + g 全选 4. 敲击 键盘“=”按键 在没有权限的情况下,打开vim文件,修改后的保存: :w !sudo tee % 参考资料 1. vim中自动格式化代码
阅读全文
posted @ 2021-11-24 21:20
苏格拉底的落泪
阅读(69)
推荐(0)
摘要:
Vim基本快捷键 屏幕【向下】移动一页,相当于【Page Down】按键:ctrl + f ctrl + f ctrl + f 屏幕【向上】移动一页,相当于【Page Up】按键 ctrl + b 屏幕【向下】移动半页 ctrl + d 屏幕【向上】移动半页 ctrl + u 光标向后查找整个关键词
阅读全文
posted @ 2021-11-24 13:05
苏格拉底的落泪
阅读(364)
推荐(0)
摘要:
数据流重定向 命令: $ command > file 2>&1 $ command >> file 2>&1 这里的&没有固定的意思。放在>后面的&,表示重定向的目标不是一个文件,而是一个文件描述符,内置的文件描述符说明如下: 换言之 2>1 代表将stderr重定向到当前路径下文件名为1的reg
阅读全文
posted @ 2021-11-16 22:45
苏格拉底的落泪
阅读(140)
推荐(0)
摘要:
install install和cp类似,都可以将文件/目录拷贝到指定的地点。但是,install允许你控制目标文件的属性。install通常用于程序的makefile(在RPM的spec里面也经常用到),使用它来将程序拷贝到目标(安装)目录 --backup[=CONTROL]:为每个已存在的目的
阅读全文
posted @ 2021-11-16 22:01
苏格拉底的落泪
阅读(1461)
推荐(1)
摘要:
centos8 stream仓库配置 默认仓库: [root@centos8-stream yum.repos.d]# ll total 48 -rw-r--r--. 1 root root 713 Mar 28 2022 CentOS-Stream-AppStream.repo -rw-r--r-
阅读全文
posted @ 2021-11-16 21:41
苏格拉底的落泪
阅读(195)
推荐(0)
摘要:
更改hostname 命令 hostnamectl set-hostname your-new-hostname 参考资料 1. How to Set or Change Hostname in CentOS/RHEL 7/8
阅读全文
posted @ 2021-11-14 11:45
苏格拉底的落泪
阅读(345)
推荐(0)
摘要:
虚拟机安装 centos stream 8教程 200 GiB 硬盘容量分区方案如下图: /boot 2 GiB ext4 /var 30 GiB ext4 / 150 GiB ext4 swap 18 GiB 无 250 GiB 硬盘容量分区方案如下图: /boot 2 GiB ext4 /var
阅读全文
posted @ 2021-11-13 17:22
苏格拉底的落泪
阅读(568)
推荐(0)
摘要:
概述 在使用Ceph的CephFS时,每个client都会建立与MDS的连接,以获取CephFS的元数据信息。如果有多个Active的MDS,则一个client可能会与多个MDS都建立连接。 Ceph提供了client/session子命令来查询和管理这些连接,在这些子命令中,有一个命令来处理当Ce
阅读全文
posted @ 2021-11-13 12:07
苏格拉底的落泪
阅读(173)
推荐(0)
摘要:
互斥锁 相比std::lock_guard的优势: 功能 std::lock_guard std::unique_lock 自动加锁+自动解锁 支持 支持 手动加锁/解锁 不支持 支持 延迟加锁(defer_lock) 不支持 支持 条件变量wait支持 不支持 支持 可移动(不可复制) 不可移动
阅读全文
posted @ 2021-11-12 22:55
苏格拉底的落泪
阅读(224)
推荐(0)
摘要:
crush \luminous版本的ceph新增了一个功能crush class,这个功能又可以称为磁盘智能分组。因为这个功能就是根据磁盘类型自动的进行属性的关联,然后进行分类。无需手动修改crushmap,极大的减少了人为的操作 ceph中的每个osd设备都可以选择一个class类型与之关联,默认
阅读全文
posted @ 2021-11-12 22:29
苏格拉底的落泪
阅读(502)
推荐(0)
摘要:
inux查看某个软件的安装路径 Linux中查看某个软件的安装路径(地址)有时显得非常重要。比如某个文件的快速启动项被删除,或者你要建立快速启动项,或者想删除、添加安装文件等等,很多地方都要用到查案文件安装路径的命令。 这里给大家介绍Linux查看文件安装路径(地址)命令。 1. 【查询文件安装路径
阅读全文
posted @ 2021-11-12 22:10
苏格拉底的落泪
阅读(1875)
推荐(1)
摘要:
vmware虚拟机网络配置 桥接模式像是一种嫁接模式,把主机主机网卡和虚拟机网卡嫁接到一起,这个连接的工具就是虚拟网桥。虚拟机上的虚拟网卡连接到虚拟交换机Vmnet0上,Vmnet0又通过虚拟网桥与主机网卡相连。这种方式的虚拟机类似于和主机在同一网段中的物理机一样,可以访问局域网中的任何机器,主机能
阅读全文
posted @ 2021-11-12 22:10
苏格拉底的落泪
阅读(108)
推荐(0)