当前位置: 首页 > news >正文

HDD介质OSD新增SSD或NVME类型的DB或WAL分区

关注公众号singless,后台回复ceph可以获取文中相关脚本。

1 介绍

在ceph中,BlueStore使用RocksDB key-value数据库来管理内部元数据,比如从对象名称到磁盘上块位置的映射。一个对象的元数据在bluestore内称为Onode。RocksDB不能直接写原始磁盘设备,它需要底层的文件系统来存储它的持久数据,这就是BlueFS的由来,BlueFS是一个用RocksDB所需的最小功能集开发的文件系统,用于存储它的sst文件。RocksDB使用WAL作为持久性存储上的事务日志,与Filestore不同,Filestore中所有写操作都先写入日志盘,而bluestore中有两个不同的数据路径用于写操作,一种是数据直接写入块设备,另一种是使用延迟写入,通过延迟写入,数据被写入WAL设备,然后异步刷新到磁盘。

BlueStore可以使用多个块设备来存储不同的数据,例如:硬盘(HDD)用于存储数据,固态硬盘(SSD)用于存储元数据,NVM (Non-volatile Memory)或NVRAM (Non-volatile random-access Memory)用于存储RocksDB write-ahead log (WAL)的持久化内存。

 

2 场景

正常情况下,我们在部署ceph集群部署前会根据业务需求规划好osd是使用纯HDD设备上还是加上ssd做缓存。如果说已经使用纯HDD部署的osd希望将db或wal迁移到sdd或nvme上来提升速度的话,那么有以下几种方式可以实现。

2.1 重建osd

将osd从存储池移除,重新部署,重新部署时将osd的db和wal指定在ssd或nvme设备上。

2.1.2 非容器部署方式

直接使用ceph-volume lvm create并指定db设备或wal设备及db大小

root@node1:/# ceph-volume lvm create --bluestore --data  /dev/sdg  --block.db /dev/nvme0n2 --block.db-size 5g --osd-id 5

 

2.1.3 容器部署方式

root@node1:/# ceph orch daemon add osd host1:data_devices=/dev/sda,db_devices=/dev/nvme

不过这里也有坑,在16和17的老版本里按照上面这条官方文档的命令是无法无法执行成功的,会报错。相关bug参考以下链接

2.2 使用ceph-volume

使用ceph-volume的new-db或new-wal参数可以将osd的db或wal新增到ssd或nvme设备上。osd的fsid可以通过ceph-volume lvm list看到

root@node1:/# ceph-volume lvm new-db --osd-id 0 --osd-fsid cd3b6512-2292-4963-b96f-b4b4b2d54494 --target ceph_db_0/lv_ceph_db_0

但是该方式在16.2.7之前的版本存在bug,按照官方文档进行操作会失败

 

该bug在16.2.8版本修复,具体细节见以下链接

 

2.3 使用ceph-bluestore-tool

ceph-bluestore-tool也是官方文档中所提到的工具,可以用来给osd新建db、wal或迁移db、wal

给osd添加db的步骤为

  1. 停止osd
  2. 使用bluestore-tool给osd添加db,将osd中的db数据迁移至新db
  3. 给osd和db对应的lvm添加tag
  4. 启动osd
  5. ceph-volume lvm list检查db分区是否已成功添加上

其中主要是第四步添加给osd添加lvm tag这个步骤比较繁琐。正常的osd和db的tag如下

 

因为步骤较为繁琐,因此我们可以通过脚本完成上述步骤。关注公众号singless,回复ceph可以获取脚本。-b指定db分区的大小,默认单位为B,-d指定db设备,-o指定osd id。

执行完成后使用检查db分区是否已经添加成功。

 

 

 
http://www.jsqmd.com/news/25689/

相关文章:

  • 什么是跨网域资源共享(CROS)
  • 【生活】选购油烟机
  • consul入门
  • 从经验到数据:MyEMS 如何推动能源管理的范式升级?
  • 2025 年试压泵厂家最新推荐榜,技术实力与市场口碑深度解析,展现国产设备卓越性能四缸电动/三缸电动/水管/大流量电动/柴油动力试压泵公司推荐
  • Ceph运维手册(基于P版本)
  • 个人微信机器人开发
  • 2025最新AI智能体学习路线图
  • K8S如何查询PVC的已用容量和剩余可用容量
  • 学术会议会议合集 | 人工智能、未来教育 、智能控制 、计算科学 、传感器技术等EI会议合集
  • 完整教程:金融分析师技能提升路径与学习资源指南
  • 2025 年水磨石厂家最新推荐榜,技术实力与市场口碑深度解析水磨石预制板/人造水磨石/水磨石地砖/水磨石成品地砖/彩色水磨石地砖公司推荐
  • Unreal:如何调用DLL
  • 建筑矿山设备工厂:MyEMS 如何助力实现 30% 能源自给率与 ISO 50001 认证?
  • lldpd介绍
  • HarmonyOS6纯血鸿蒙开发
  • 2025年10月短视频营销公司实力榜:五强对比评测与选择指南
  • kettle调度系统-kettle嵌入集成方式调度,稳如磐石,一分钟完成任务调度配置
  • 探索 RoCE v2:高性能网络技术在 AI 场景中的应用
  • K8S下的GPU监控
  • Unreal:多屏幕全屏后只有一个屏幕显示怎么办
  • MyEMS 的智慧大脑:从能耗建模到预测性维护的全流程技术逻辑
  • 用Go语言从零开始开发一个Prometheus Exporter
  • CentOS7下OpenSSH10.0p2升级实践
  • 2025年美国威盾VTON进口分体式流量计生产厂家权威推荐:美国威盾VTON进口气体流量计/美国威盾VTON进口流量计/美国威盾VTON进口旋进漩涡流量计源头供应商精选
  • Linux服务器感染病毒,如何处理?
  • 2025年塑料瓶灌装机优质厂家权威推荐榜单:液体灌装旋盖机/灌装旋盖机/膏液两用灌装机源头厂家精选
  • Bash 中的 shopt -s globstar:递归 Glob 模式详解 - 教程
  • Linux-按下开机键后,究竟发生了什么
  • Docker存储驱动OverLay2介绍