前言

在ceph 14版本里面才加入了bluefs-bdev-migrate,分区迁移相关的命令,那么在12版本里面其实也是可以扩展分区的

测试的版本

  1. [root@lab102 ceph-0]# ceph -v
  2. ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)

操作方法

如果db分区之前有做独立独立分区,但是发现db的大小设置小了,想把这个db调大,或者是从ssd设备迁移到nvme的分区,那么可以通过dd命令来实现的

停止osd

  1. systemctl stop ceph-osd@0

替换分区

  1. dd if=/dev/sdb1 of=/dev/sda1 bs=64M
  2. ln -s /dev/sda1 /var/lib/ceph/osd/ceph-0/block.db
  3. chown ceph:ceph -R /var/lib/ceph/osd/ceph-0/*

把原来的db分区整体复制一份,注意后面的分区要大于或者等于/dev/sdb1这个原始的db分区,加上后面的bs,复制的速度会快很多

扩展db分区的大小,如果不使用扩展命令,显示的就是跟原始的分区大小是一致的

  1. [root@lab102 ceph-0]# ceph-bluestore-tool bluefs-bdev-expand --path /var/lib/ceph/osd/ceph-0/
  2. infering bluefs devices from bluestore path
  3. slot 0 /var/lib/ceph/osd/ceph-0//block.wal
  4. slot 1 /var/lib/ceph/osd/ceph-0//block.db
  5. slot 2 /var/lib/ceph/osd/ceph-0//block
  6. 0 : size 0x77300000 : own 0x[1000~772ff000]
  7. 1 : size 0x950200000 : own 0x[2000~737afe000]
  8. 2 : size 0x3a352400000 : own 0x[1bf08c00000~2540c00000]
  9. Expanding...
  10. 0 : no changes detected. Bypassed.
  11. 1 : expanding from 0x737b00000 to 0x950200000
  12. 1 : size label updated to 39998980096
  13. 2 : unable to expand. Bypassed.

检测是否使用了慢分区和检测db分区大小的命令

  1. [root@lab102 ~]# ceph daemon osd.0 perf dump|grep bluefs -A 10
  2. "bluefs": {
  3. "gift_bytes": 0,
  4. "reclaim_bytes": 0,
  5. "db_total_bytes": 39998971904,
  6. "db_used_bytes": 2918178816,
  7. "wal_total_bytes": 1999630336,
  8. "wal_used_bytes": 223342592,
  9. "slow_total_bytes": 160000114688,
  10. "slow_used_bytes": 7261519872,
  11. "num_files": 181,
  12. "log_bytes": 178040832,

db_total_bytes是分区的大小

slow_used_bytes是使用了慢分区的大小

做下压缩

  1. ceph tell osd.0 compact

再次检查

  1. ceph daemon osd.0 perf dump|grep bluefs -A 10
  2. "bluefs": {
  3. "gift_bytes": 0,
  4. "reclaim_bytes": 0,
  5. "db_total_bytes": 39998971904,
  6. "db_used_bytes": 10199490560,
  7. "wal_total_bytes": 1999630336,
  8. "wal_used_bytes": 82833408,
  9. "slow_total_bytes": 160000114688,
  10. "slow_used_bytes": 0,
  11. "num_files": 160,
  12. "log_bytes": 25575424,

可以看到上面的慢分区的数据都刷到新替换的快分区里面去了

注意事项

替换的时候一定操作谨慎,一个个替换,确认数据没有问题再做相关的处理,比较安全的方式是下线osd,再新创建osd

总结

分区替换可以换一个大的盘

替换后需要compact才会把slow的数据刷掉

ceph扩展bluestore的db分区的更多相关文章

  1. ceph bluestore的db分区应该预留多大的空间

    前言 关于bluestore的db应该预留多少空间,网上有很多资料 如果采用默认的 write_buffer_size=268435456 大小的话 那么几个rocksdb的数据等级是 L0: in ...

  2. ceph中用sgdisk工具进行分区--------固定uuid

    ceph中两种类型分区的type code: type type code journal 45b0969e-9b03-4f30-b4c6-b4b80ceff106 osd 4fbd7e29-9d25 ...

  3. Ceph的BlueStore总体介绍

    整体架构 bluestore的诞生是为了解决filestore自身维护一套journal并同时还需要基于系统文件系统的写放大问题,并且filestore本身没有对SSD进行优化,因此bluestore ...

  4. 教程:使用Diskpart创建、扩展或删除磁盘分区

    在Windows Server环境下进行基本的磁盘操作时,管理员可以使用Disk Partition Utility或Diskpart等工具.后者是一个命令行解释器,可作为磁盘管理工具. 管理员可以使 ...

  5. 003.Ceph扩展集群

    一 基础准备 参考<002.Ceph安装部署>文档部署一个基础集群. 二 扩展集群 2.1 扩展架构 需求:添加Ceph元数据服务器node1.然后添加Ceph Monitor和Ceph ...

  6. Linux上把新磁盘扩展到已有分区中(基于LVM)

    0.在不重启服务器的前提下找到新加的磁盘 --查看主机总线号 ls /sys/class/scsi_host/ --根据查询结果生成刷新磁盘语句 echo "- - -" > ...

  7. ceph luminous bluestore热插拔实现

    需求描述 在某些测试场景下面,需要满足能够拔盘以后在插入的时候能够自动上线磁盘,这个需求实际在生产中是不建议使用的,原因是插入的磁盘如果本身存在问题,那么拉起的操作可能会破坏了本身集群的稳定性,所以这 ...

  8. Oracle DB 分区特性概述 Overview of Partitions

    概述:在Oracle数据库中,分区(partitioning)可以使非常大的表(table)或索引(index)分解为小的易管理的块(pieces),这些块被称作分区(partitions).每个分区 ...

  9. LVM 创建分区扩展分区记录

    LVM 原理   图片来自百度百科   测试环境centOS 7                 LVM version:     2.02.115(2)-RHEL7 (2015-01-28)     ...

随机推荐

  1. IDEA SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统

    先放上github地址:spike-system,可以直接下载完整项目运行测试 SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统 技术栈:SpringBoot, MyS ...

  2. 【C语言教程】双向链表学习总结和C语言代码实现!值得学习~

    双向链表 定义 我们一开始学习的链表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表. 虽然使用单向链表能 100% 解决逻辑关系为 "一对一" ...

  3. kubernetes:用kubeadm管理token(kubernetes 1.18.3)

    一,token的用途: 1,token是node节点用来连接master节点的令牌字串, 它和ca证书的hash值是把一台node节点加入到kubernetes集群时要使用的凭证 2, 通过kubea ...

  4. JS时间扩展插件

    前言 原生JS有些没定义的方法只能自己封装了,比如获取现在相隔本年过了几天以及过了多少周,这些都是原JS里没有的方法,现在插件只有一些方法,后期再慢慢扩展 插件使用方法 引用TimeToPack.js ...

  5. 去重想到set,排序想到Arrays.sort

    package test; import java.util.Arrays; import java.util.Scanner; import java.util.Set; import java.u ...

  6. 【Flutter 面试】main入口函数会被调用几次

    老孟导读:这是一个读者面试时被问到的问题,这个问题前段时间我也在VIP交流群和大家一起探讨过. 这个问题涉及引擎的相关知识,如果不了解相关知识,很难回答正确,因为不管说调用几次都是错误的,下面来看一下 ...

  7. 万字长文深入理解java中的集合-附PDF下载

    目录 1. 前言 2. List 2.1 fail-safe fail-fast知多少 2.1.1 Fail-fast Iterator 2.1.2 Fail-fast 的原理 2.1.3 Fail- ...

  8. Parquet 列式存储格式

    Parquet 列式存储格式 参考文章: https://blog.csdn.net/kangkangwanwan/article/details/78656940 http://parquet.ap ...

  9. Linux的top命令及交换分区

    TOP命令关键指标 %MEM,在内存中的占用率 %CPU,使用率,如果两核,最大可到200% TIME+, 占用cpu的总时间/s SHR,分享内存 RES, 常驻内存,进程当前使用的内存大小,不包括 ...

  10. Luogu P6280 [USACO20OPEN]Exercise G

    题意 定义一个长度为 \(n\) 的置换的步数为将 \(P=(1,2,\cdots,n)\) 在该置换操作下变回原样的最小次数. 求所有 \(K\) 的和,使得存在一个长度为 \(n\) 的置换使得其 ...