前言在ceph 14版本里面才加入了bluefs-bdev-migrate,分区迁移相关的命令,那么在12版本里面其实也是可以扩展分区的测试的版本
12[root@lab102 ceph-0]# ceph -vceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
操作方法如果db分区之前有做独立独立分区,但是发现db的大小设置小了,想把这个db调大,或者是从ssd设备迁移到nvme的分区,那么可以通过dd命令来实现的
停止osd1systemctl stop ceph-osd@0
替换分区123dd if=/dev/sdb1 of=/dev/sda1 bs=64Mln -s /dev/sda1 /var/lib/ceph/osd/ceph-0/block.dbchown ceph:ceph -R /var/lib/ceph/osd/ceph-0/*
把原来的db分区整体复制一份,注意后面的分区要大于或者等于/dev/sdb1这个原始的db分区,加上后面的 ...
暂未分类
未读前言之前写过一篇重构rbd的元数据的文章,讲的是如果rbd的元数据丢失了,数据还在的时候怎么恢复相关的元数据,但是实际使用的场景是,集群可能崩溃了,数据还在,osd无法拉起来,数据又很重要,需要把数据拼接回来,这个也是最底层的一种数据还原方式了
网上有非快照的rbd的拼接的文章,对于快照使用方式的拼接这个没有太多信息,而实际上很多使用场景就是克隆了一个原始系统后,再使用的,本篇就是把还原需要的细节都写出来了
重构的步骤获取基本的信息
1、找到rbd_directory,通过这个找到整个环境里面的rbd的名称和prefix的对应关系
2、根据rbd_header的元数据信息找到rbd下面的信息
rbd的大小
rbd的块大小
rbd是否有parent(判断这个是通过哪个快照创建的)
3、rbd是否做了快照(做了快照有两种可能,本身的快照或者本身做的快照被克隆了),不是快照的image的对象,直接取head的对象进行拼接即可,通过快照克隆的对象,需要判断每个对象的状态来进行拼接(后面讲)
正常情况
正常的情况就是通过命令能够获取到上面的信息1,2的信息,这个的前提是,相关的对象所在的osd ...
前言centos7默认内核没有带nbd的模块,可以通过下载跟当前版本匹配的内核源码,编译源码指定的模块,然后加载到系统
步骤判断版本12345678[root@lab201 linux-3.10.0-957.el7]# uname -aLinux lab201 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux[root@lab201 linux-3.10.0-957.el7]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarchDistributor ID: CentOSDescription: CentOS Linux release 7.6.1810 (Core) Release: 7.6.1810Codename: Core
没更新过内核的话,就是centos7.6的3.10.0-957版本的内核
获取源码1wget https://mirrors.tuna.tsinghua.edu.cn/ ...
前言centos7 服务器上面支持通过tuned进行统一的系统参数调整,以前我们可能会通过修改内核配置文件修改内核参数,通过echo去调整磁盘预读,等等很多调整会分散在各处而系统实际上是可以通过一个地方进行固化的,这个就是tuned-adm做的事情,本篇是一个集合贴,会持续补充各种调整的方法
操作调整配置生效配置整体调整系统提供了很多模式的调整参数,默认的是最平衡的,如果不是很清楚调整了什么,建议不要整体模式应用,可能引起性能巨大的衰减或者抖动,需要根据实际情况进行调整
总结本篇是对服务器进行一个调整,如果使用过不同的os的会清楚,同样的硬件在不同的环境下的性能会有所不通,有的是软件版本的问题,有的是内核版本的问题,有的是参数的问题,本篇是从参数角度来进行一些调整
暂未分类
未读前言测试cephfs的写入大量文件,通过mdtest写入1K大小的文件1亿个,每个目录里面文件为1万,目录总数为1万,总文件数目就为1亿了
写入的命令1mdtest -C -F -L -z 4 -b 10 -I 10000 -d /mnt/1yi/ -w 1024
-C 只创建
-F 只创建文件
-L 只在叶子层目录创建文件
-z 目录深度层级为4
-b 每个树下面子目录为10
-I 指定目录里面的文件数目
-w指定文件大小为1K每层的目录数目
1,10,100,1000,10000
统计写入的情况通过扩展属性统计
12345678910[root@lab101 #test-dir.0]# getfattr -d -m ceph.dir.* mdtest_tree.0/# file: mdtest_tree.0/ceph.dir.entries="10"ceph.dir.files="0"ceph.dir.rbytes="1000307712"ceph.dir.rctime="1600762346.0916 ...
前言如果使用场景是多路径iscsi,那么数据一致性的就需要去验证一致性,就需要一个比较通用的测试方法,最近在处理这块,记录下简单的测试方法
测试方法写入数据123dd if=/dev/urandom of=/dev/sdb bs=512 count=8000 oflag=direct或者dd if=/dev/urandom of=/dev/sdb bs=512 count=8000
通常来说需要用下面的那种,上面的带参数的是模拟的direct的请求,如果在当前设备之上的软件会处理好这个,这个地方就不要用direct的请求的,用direct是模拟软件的写,不带direct模拟正常读写
验证数据1sha512sum /dev/sdb1
如果设备被多路径软件接管以后,那么sha512sum就不要对着多路径接管的设备去操作了,多路径接管后的数据多路径自己去处理的,否则测试方法本身就是存在问题的,如果要确认一致性,可用先停到多路径软件,确认没问题之后,启动多路径软件从多路径设备路径检查
总结实际就是两条命令,一个写一个读,然后设备路径的问题,这个路径选择错误可能引起测试结论的错误的
更新 ...
前言使用librbd通过tgt出iscsi,多路径数据是一致的,由于环境的原因,切换为kernel rbd 出iscsi,然后通过不同的iscsi路径写入后,发现在rbd端就出现了数据没有刷新的问题
问题分析这里有个类似的问题
1https://github.com/ceph/ceph-csi/issues/461
这个是通过把rbd map到不同的节点,通过dd写入的时候发现数据不同步,需要通过增加参数direct才能保证数据一致,我们通过官网的描述和这个issue里面的回答可以看到
1https://docs.ceph.com/docs/luminous/rbd/rbd-config-ref/
The kernel driver for Ceph block devices can use the Linux page cache to improve performance.
rbd内核客户端是会通过linux page cache来改善性能的,而librbd是可以通过参数关闭缓存的,这个在我以前的理解里面krbd是没有缓存的,实际上这个是存在缓存的
而通过tgt的客户端写 ...
前言本篇主要是分析ceph的版本之间参数的变化,参数变化意味着功能的变化,通过参数来分析增加,删除,修改了哪些功能,以及版本之间的变化,本篇主要通过导出参数,然后通过脚本去比对不同的版本的参数变化
14版本之前安装一个ceph-common,然后touch一个空配置文件就可以通过ceph –show-config拿到版本的配置文件14版本之后需要安装好mon,并且这个命令取消了,通过下面的命令获取
1ceph config show-with-defaults mon.lab204|awk '{print $1,"=",$2}'
处理过程选取了6个版本的配置文件做分析
123456789[root@lab204 cephconf]# lltotal 304-rw-r--r-- 1 root root 35475 Sep 14 15:30 ceph.conf.10.2.11-rw-r--r-- 1 root root 47857 Sep 14 15:32 ceph.conf.12.2.13-rw-r--r-- 1 root r ...
前言在比对rgw的不同前端的区别的时候,官方说civetweb是通过线程池来控制连接的,beast是后面加入了流控相关的,这块一直也没有调整过相关的参数,然后通过ab压测了一下,还是有很明显的区别的
测试很简单,虚拟机下面就可以完成
测试过程rgw_thread_pool_size = 512默认参数为这个
123456[root@lab201 ~]# ps -ef|grep radosgwroot 242156 239377 0 11:42 pts/1 00:00:02 tailf /var/log/ceph/ceph-client.radosgw1.logceph 247068 1 3 11:53 ? 00:00:00 /usr/bin/radosgw -f --cluster ceph --name client.radosgw1 --setuser ceph --setgroup cephroot 247654 234613 0 11:53 pts/0 00:00:00 grep --col ...
前言ceph的rgw现在提供了两种前端, civetweb和beast
配置修改配置文件
1rgw_frontends = civetweb port=7481
为
1rgw frontends = beast port=7481
然后重启rgw进程,查看日志
1234567892020-09-11 10:23:52.117738 7f90b45f8000 0 ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable), process radosgw, pid 2357812020-09-11 10:23:52.204891 7f90b45f8000 -1 *** experimental feature 'rgw-beast-frontend' is not enabled ***This feature is marked as experimental, which means it - is untested - is unsupported - m ...