• ceph扩展bluestore的db分区


    前言

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

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

    操作方法

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

    停止osd

    systemctl stop ceph-osd@0
    

    替换分区

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

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

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

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

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

    [root@lab102 ~]# ceph daemon osd.0 perf dump|grep bluefs -A 10
        "bluefs": {
            "gift_bytes": 0,
            "reclaim_bytes": 0,
            "db_total_bytes": 39998971904,
            "db_used_bytes": 2918178816,
            "wal_total_bytes": 1999630336,
            "wal_used_bytes": 223342592,
            "slow_total_bytes": 160000114688,
            "slow_used_bytes": 7261519872,
            "num_files": 181,
            "log_bytes": 178040832,
    

    db_total_bytes是分区的大小
    slow_used_bytes是使用了慢分区的大小

    做下压缩

    ceph tell osd.0 compact
    

    再次检查

    ceph daemon osd.0 perf dump|grep bluefs -A 10
        "bluefs": {
            "gift_bytes": 0,
            "reclaim_bytes": 0,
            "db_total_bytes": 39998971904,
            "db_used_bytes": 10199490560,
            "wal_total_bytes": 1999630336,
            "wal_used_bytes": 82833408,
            "slow_total_bytes": 160000114688,
            "slow_used_bytes": 0,
            "num_files": 160,
            "log_bytes": 25575424,
    

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

    注意事项

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

    总结

    分区替换可以换一个大的盘
    替换后需要compact才会把slow的数据刷掉

  • 相关阅读:
    MVC中使用AuthorizeAttribute做身份验证操作
    Entity Framework 5.0 Code First全面学习
    AngularJs学习教程
    安装完Oracle数据库,给scott账户解锁方法
    Signalr学习教程
    javascript学习教程【Qi Fei】
    并行开发
    MongoDB教程【一】
    统计学习概念
    自学Python的点滴
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13879154.html
Copyright © 2020-2023  润新知