zoukankan      html  css  js  c++  java
  • 已配置好的osd增加opencas配置

    前言

    环境已经配置好了osd,想增加opencas的缓存加速,因为opencas支持在lvm之上部署,也支持在opencas上面创建lvm,而已经部署好osd的场景是属于前面的一种情况,也就是已经有lvm 的情况再加缓存加速

    因为ceph有自己的挂载逻辑,所以这里需要梳理一下,把整个启动路径给屏蔽掉,然后加入自己的启动逻辑

    本篇是讲的没有单独的db wal的部署缓存加速的方式

    操作方法

    创建一个缓存设备

    casadm -S -i 1 -d /dev/disk/by-id/nvme-A6F1600_SW20B27P7040007-part2 -c wb
    

    opencas的配置逻辑是创建缓存设备,然后把需要加速的设备加入到缓存设备里面,然后生成新的路径,使用新的路径即可,上面就是创建了编号为1的wb模式的缓存设备

    创建好了以后写配置文件/etc/opencas/opencas.conf

    [caches]
    ## Cache ID     Cache device                            Cache mode      Extra fields (optional)
    ## Uncomment and edit the below line for cache configuration
    1               /dev/disk/by-id/nvme-A6F1600_SW20B27P7040007-part2      WB
    

    默认ceph启动逻辑

    正常的启动是lvm设备形成以后通过ceph-volume进行启动,然后进行挂载,ceph-volume实际上就是去挂载目录的操作,这两步我们需要屏蔽掉

    禁用自启动部分

    我们举例osd编号为3

    [root@node153 ~]# systemctl stop ceph-osd@3
    [root@node153 ~]# umount /var/lib/ceph/osd/ceph-3/
    
    获取osd uuid
    [root@node153 ~]#  ceph osd dump|grep osd.3
    
    [root@node153 ~]# systemctl disable ceph-volume@lvm-3-de370e9a-6f2c-4584-9d3d-0b6e4c891ae2
    Removed symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-3-de370e9a-6f2c-4584-9d3d-0b6e4c891ae2.service.
    [root@node153 ~]# systemctl disable ceph-osd@3
    [root@node153 ~]# umount /var/lib/ceph/osd/ceph-3
    

    上面的操作以后,osd.3 的自挂载,自启动就去掉了

    添加缓存设备

    获取到osd.3 的lvm的路径(取osd uuid前几位grep)

    ls /dev/mapper/ceph--|grep de370e9a
    

    添加后端设备到缓存设备

    casadm -A  -d /dev/mapper/ceph--81296ca1--c3f9--403c--974d--0058f9eba49a-osd--block--de370e9a--6f2c--4584--9d3d--0b6e4c891ae2 -i 1 -j 3
    

    注意后面的-j是后端设备的id,这个可以设置为osd的id,方便后面查找

    添加配置文件到/etc/opencas/opencas.conf

    [cores]
    ## Cache ID	Core ID		Core device
    ## Uncomment and edit the below line for core configuration
    1		3		/dev/mapper/ceph--81296ca1--c3f9--403c--974d--0058f9eba49a-osd--block--de370e9a--6f2c--4584--9d3d--0b6e4c891ae2
    

    手动启动缓存加速之后的设备

    mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-3
    restorecon /var/lib/ceph/osd/ceph-3
    chown -R ceph:ceph /var/lib/ceph/osd/ceph-3
    ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/cas1-3 --path /var/lib/ceph/osd/ceph-3
    chown -h ceph:ceph /var/lib/ceph/osd/ceph-3/block
    chown -R ceph:ceph /dev/cas1-3
    chown -R ceph:ceph /var/lib/ceph/osd/ceph-3
    systemctl start ceph-osd@3
    

    然后就启动了

    上面的操作写成脚本

    绑定部分的处理

    #! /bin/sh
    for osd in 5 8 11
    do
    systemctl stop ceph-osd@$osd
    umount /var/lib/ceph/osd/ceph-$osd
    osdid=`ceph osd dump|grep osd.|awk -v  A=osd.$osd '{if($1==A) print $19}'`
    systemctl disable ceph-volume@lvm-$osd-$osdid
    systemctl disable ceph-osd@$osd
    osdpathprefix=`echo $osdid|cut -d "-" -f 1`
    osdpath=`ls /dev/mapper/ceph--*|grep $osdpathprefix`
    casadm -A  -d $osdpath -i 1 -j $osd
    echo "1           $osd            $osdpath"
    done
    

    会输出几行对应关系,拷贝到配置文件

    #! /bin/sh
    # start osd.5 osd.8 osd.11
    for osd in 5  8  11
    do
    mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-$osd
    restorecon /var/lib/ceph/osd/ceph-$osd
    chown -R ceph:ceph /var/lib/ceph/osd/ceph-$osd
    ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/cas1-$osd --path /var/lib/ceph/osd/ceph-$osd
    chown -h ceph:ceph /var/lib/ceph/osd/ceph-$osd/block
    chown -R ceph:ceph /dev/cas1-$osd
    chown -R ceph:ceph /var/lib/ceph/osd/ceph-$osd
    systemctl start ceph-osd@$osd
    done
    

    启动osd的脚本

    如果重启机器,等opencas自带的服务启动好了,只用执行上面的启动osd的脚本即可

    总结

    本篇记录了配置过程,未涉及参数调优,模式改变等等,都是默认配置

  • 相关阅读:
    Python面向对象(组合、菱形继承、多态)
    Python面向对象
    Python hash、xml、configparser、sheve、shutil模块讲解 以及 面向对象初识
    python正则re模块
    Python序列化、date、random、os模块
    Python包和日志模块
    python面向对象、模块讲解
    python递归函数、二分法、匿名函数、(sorted、map、filter内置函数应用)
    Python生成器、三元表达式、列表生成式、字典生成式、生成器表达式
    Python迭代器
  • 原文地址:https://www.cnblogs.com/zphj1987/p/14548617.html
Copyright © 2011-2022 走看看