源码编译ceph

来源:互联网 发布:百丽运动旗舰店 知乎 编辑:程序博客网 时间:2024/06/05 08:26

1. 前言

毕业进入公司后,接触的第一个项目是做ceph内核客户端的优化,为了对ceph以及其客户端有更加深刻的了解,在通过rpm安装了一次ceph后,这里又通过源码编译配置了一次。其中,操作系统为centos7.2,编译ceph-10.2.3的源码。

2. 本文分析内容安排

  • 下载源码并编译
  • 配置ceph运行环境
  • 使用ceph-deploy配置环境
  • ceph运行命令

3. 下载源码并编译

  1. 从github下载源码,要加上–recursive参数,不然ceph源码内的很多子程序无法下载
    git clone --recursive https://github.com/ceph/ceph.git
  2. 选择对应版本,跳到源码根目录,用git tag显示已有的版本,然后git checkout v10.2.3跳到我们要编译的版本
  3. 下载依赖并开始编译
    ./install-deps.sh
    ./autogen.sh
    ./configure
    make
    注意:最后make编译的过程中,如果遇到编译器错误,可以添加-j参数指定处理器数量,make -j2
  4. 执行make install命令安装到本地,这一步也可以通过手动移动二进制文件和配置文件到相应目录。其中,二进制文件放到/usr/bin,库文件放到/usr/lib,配置文件存入/etc/ceph。

4. 配置ceph运行环境

接下来可以有两种方式来配置ceph运行环境,其一是直接手动运行,这种方式繁琐且容易出错,下面列出部分步骤,注意,这里步骤并不全,只是为了说明;后面会详细介绍ceph-deploy的方式,这种方式一键式自动化配置管理文档,并管理ceph的实际运行。
首先,通过手动的方式:
1. 查看/etc/ceph目录是否存在,不存在的话就自己建一个,然后创建/etc/ceph/ceph.conf文件
2. 运行uuidgen命令创建unique ID,并将其赋值给fsid写入到ceph.conf文件,同时也将monitor节点的主机名和ip地址写入,最后的ceph.conf文件如下
3. 创建monitor keyring
ceph-authtool --create-keyring /tmp/ceph.mon --gen-key -n mon. --cap mon 'allow *'
4. 将client.admin的可以添加到monitor的keyring中
ceph-authtool /tmp/ceph.mon.keyring —import-keying /etc/ceph/ceph.client.admin.keyring
而所有上面这些操作如果通过ceph-deploy来运行,仅需一条ceph-deploy new MON命令,便建立并配置了上述所有文档,下面一节讲通过ceph-deploy部署并运行ceph的过程。

5. 使用ceph-deploy配置环境

  1. 建立运行ceph-mon的配置文件和秘钥,将在/ect/ceph下生成ceph.conf和ceph.mon.keyring文件
    ceph-deploy new [HOST...]
  2. 接下来的过程是为了在节点上实际安装ceph-mon,如果用户不指定HOST,这里因为我们已经提前安装了ceph组件,这里就不用这一步了
    ceph-deploy mon create [HOST...]
  3. 在其中一个mon节点上执行ceph-deploy gatherkeys [HOST...]命令,收集新加入集群的节点的keys
  4. 添加osd,准备osd磁盘 ceph-deploy osd create localhost:/dev/sdb

6. ceph运行命令

7. 总结

本文主要包含两部分,第一介绍了ceph源码编译过程,第二介绍了编译完成后的使用。

8. 作者介绍

梁明远,国防科大并行与分布式计算国家重点实验室研究生,读研期间重点研究docker容器技术。17年毕业后回老家进入浪潮,主攻ceph分布式文件系统的优化。邮箱:liangmingyuanneo@gmail.com

9. 参考文献

编译ceph
ceph-deploy使用

原创粉丝点击