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的數據刷掉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM