美文网首页分布式存储-CEPHCeph
Ceph调试开发环境搭建

Ceph调试开发环境搭建

作者: lihanglucien | 来源:发表于2018-10-12 10:25 被阅读3次

    一、相关依赖包安装

    1. 安装依赖包

    yum install  libtool  gcc gcc-c++  libuuid-devel   keyutils-libs-devel  libblkid-devel   redhat-lsb   libedit-*
     
    yum  install libatomic_ops-devel snappy-devel leveldb-devel   libudev-devel  cryptopp-*  fuse-devellibaio-devel xfsprogs-devel  automake autoconf boost-devel   expat-devel
    

    2.安装调试依赖包

    yum install  lttng-tools* lttng-ust* lttng*
    

    3.下载源码

    wget http://download.ceph.com/tarballs/ceph_12.2.2.orig.tar.gz
    

    二、源码编译

    1.解压ceph

    tar xvf ceph_12.2.2.orig.tar.gzcd ceph_12.2.2
    

    2. 安装官方依赖包

    ./install-deps.sh
    ./run-make-check.sh
    

    3. 开始编译

    #编译源码是个漫长的过程,根据机器配置指定。如果是虚拟机可能需要好几个小时。还会出现各种依赖包缺失的情况,非常耗时。
     
    mkdir build
    cd build
    cmake ..
    make -j40 (可以多核编译加快编译速度)
    make install
    

    三、测试环境部署

    1. 启动开发集群

    #此处有一个非常大的坑,折腾了半天。
    #必须在build目录下面执行启动脚本,否则一直报缺少libec_jerasure.so,即使配置到系统变量里面也不行。
    load dlopen(/libec_jerasure.so): /libec_jerasure.so: cannot open shared object file: No such file or directory
     
    #启动开发集群
    cd build
    MON=1 MDS=0 OSD=3  ../src/vstart.sh -d -n -x
     
    参数说明:
            -m 指出monitor节点的ip地址和默认端口6789;
            -n 指出此次部署为全新部署;
            -d 指出使用debug模式(便于调试代码);
            -r 指出启动radosgw进程;
            --mon_num 指出部署的monitor个数;
            --osd_num 指出部署的OSD个数;
            --mds_num 指出部署的MDS个数;
            --bluestore 指出ceph后端存储使用最新的bluestore;
    

    2. 停止开发集群

    #启动开发集群
    cd build
    ../src/stop.sh all
    

    3. 运行单元测试

    cd build
    make check
    

    四、源码分析工具

    1. gdb

    擅长做精细化的调试。比如查看变量内容,查看内存内容,条件断点等。

    #待续
    

    2.lttng

    ceph自带,兼容性好。适当的时候可以打印关键变量内容

    #待续
    

    3.systemtap

    擅长分析代码流程,打印函数调用关系,不需要修改源码,据说还能分析性能瓶颈

    #待续
    

    相关文章

      网友评论

        本文标题:Ceph调试开发环境搭建

        本文链接:https://www.haomeiwen.com/subject/quuwaftx.html