EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

编译Ceph安装包

源码合入插件后需编译生成新的Ceph安装包,主要包括配置编译环境、修改相关文件和执行编译等操作。请在编译机上完成编译出包的操作。

前提条件

编译时“/home”目录下需要存放编译的中间结果和目标文件,建议“/home”目录下的可用容量不小于100GB。

注:本文档Ceph部署适用于openEuler 20.03 LTS SP1操作系统

配置本地源

  1. 下载liboath源码及补丁。
    1
    2
    3
    yum install git -y
    git config --global http.sslVerify false
    git clone https://gitee.com/src-openeuler/oath-toolkit.git
    
  2. 通过Yum方式安装RPM打包所需的依赖。
    1
    yum install wget rpmdevtools gtk-doc pam-devel xmlsec1-devel libtool libtool-ltdl-devel createrepo cmake -y
    
  3. 创建“rpmbuild”目录,并将patch文件和源码包移动到“/root/rpmbuild/SOURCES”目录下。
    1
    2
    3
    4
    5
    rpmdev-setuptree
    cd oath-toolkit
    mv 0001-oath-toolkit-2.6.5-lockfile.patch /root/rpmbuild/SOURCES
    mv oath-toolkit-2.6.5.tar.gz /root/rpmbuild/SOURCES
    cp oath-toolkit.spec /root/rpmbuild/SPECS/
    
  4. 编译RPM包。
    1
    rpmbuild -bb /root/rpmbuild/SPECS/oath-toolkit.spec
    
  5. 将编译好的RPM包作为本地Yum源。
    1
    2
    3
    mkdir -p /home/oath
    cp -r /root/rpmbuild/RPMS/*  /home/oath/
    cd  /home/oath && createrepo .
    
  6. 配置repo文件。
    1. 新建“local.repo”文件。
      1
      vi /etc/yum.repos.d/local.repo
      
    2. “i”键进入编辑模式,在文件中加入以下内容。
      1
      2
      3
      4
      5
      6
      [local-oath]
      name=local-oath
      baseurl=file:///home/oath
      enabled=1
      gpgcheck=0
      priority=1
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
  7. 设置Yum证书验证状态为不验证。
    1. 打开“yum.conf”文件。
      1
      vim /etc/yum.conf
      
    2. “i”键进入编辑模式,添加如下内容至末尾。
      1
      2
      sslverify=false
      deltarpm=0
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
  8. 将pip源配置为华为镜像源,以提高下载速度。
    1. 新建“.pip”目录并在该目录下新建“pip.conf”文件。
      1
      2
      mkdir -p ~/.pip
      vim ~/.pip/pip.conf
      
    2. “i”键进入编辑模式,添加如下内容。
      1
      2
      3
      4
      [global]
      timeout = 120
      index-url = https://repo.huaweicloud.com/repository/pypi/simple
      trusted-host = repo.huaweicloud.com
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。

安装依赖包

  1. 配置epel源。
    1. 新建“epel.repo”文件。
      1
      vim /etc/yum.repos.d/epel.repo
      
    2. “i”键进入编辑模式,添加如下内容。
      1
      2
      3
      4
      5
      6
      [epel]
      name=epel
      baseurl=https://repo.huaweicloud.com/epel/7/aarch64/
      enabled=1
      gpgcheck=0
      priority=1
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
  2. 使用epel源安装openEuler中缺少的依赖。
    1
    yum install python-routes python-tox -y
    
  3. 删除epel源。
    1
    rm -rf /etc/yum.repos.d/epel.repo
    

    epel源仅用于2中的两个依赖的安装,使用后必须删除,否则后续步骤将会从epel源下载与openEuler冲突的RPM包。

  4. 下载华为镜像源repo。
    1
    wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_aarch64.repo
    
  5. 安装服务端Ceph源码编译需要的依赖。
    1
    yum install java-devel sharutils checkpolicy selinux-policy-devel gperf cryptsetup fuse-devel gperftools-devel libaio-devel libblkid-devel libcurl-devel libudev-devel libxml2-devel libuuid-devel ncurses-devel python-devel valgrind-devel xfsprogs-devel xmlstarlet yasm nss-devel libibverbs-devel openldap-devel CUnit-devel python2-Cython python3-setuptools python-prettytable lttng-ust-devel expat-devel junit boost-random keyutils-libs-devel openssl-devel libcap-ng-devel python-sphinx python2-sphinx python3-sphinx leveldb leveldb-devel snappy snappy-devel lz4 lz4-devel liboath liboath-devel libbabeltrace-devel librabbitmq librabbitmq-devel librdkafka librdkafka-devel libnl3 libnl3-devel rdma-core-devel numactl numactl-devel numactl-libs createrepo openldap-devel rdma-core-devel lz4-devel expat-devel lttng-ust-devel libbabeltrace-devel python3-Cython python2-Cython gperftools-devel bc dnf-plugins-core librabbitmq-devel rpm-build java-1.8.0-openjdk-devel -y
    

编译出包

  1. 修改ceph.spec.in文件。
    1
    2
    cd /home/ceph-14.2.8/
    sed -i 's#%if 0%{?fedora} || 0%{?rhel}#%if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler}#' ceph.spec.in
    
  2. 回到上级目录并将ceph-14.2.8目录打包为tar.bz2格式的压缩包。
    1
    2
    cd /home
    tar -cjvf ceph-14.2.8.tar.bz2 ceph-14.2.8
    
  3. 修改rpmmacros文件。
    1. 打开文件。
      1
      vi /root/.rpmmacros
      
    2. “i”进入编辑模式,修改“%_topdir”的路径为“/home/rpmbuild”,并注释掉如下四行代码。
      1
      2
      3
      4
      5
      6
      %_topdir /home/rpmbuild
      
      #%__arch_install_post \
      #    [ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \
      #    case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \
      #    /usr/lib/rpm/check-buildroot
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
    4. 再次执行rpmbuild安装命令。
      1
      rpmdev-setuptree
      
  4. 将ceph.spec文件拷贝到SPECS目录下。
    1
    cp ceph-14.2.8/ceph.spec /home/rpmbuild/SPECS/
    
  5. 2打包好的文件放到SOURCES目录下。
    1
    cp ceph-14.2.8.tar.bz2 /home/rpmbuild/SOURCES/
    
  6. 删除“/etc/profile.d/performance.sh”以提高编译速度。
    1
    rm -rf  /etc/profile.d/performance.sh
    
  7. 重新开启一个新的终端让6生效,使用rpmbuild开始编译。
    1
    2
    unset GOMP_CPU_AFFINITY
    rpmbuild -bb /home/rpmbuild/SPECS/ceph.spec
    

    编译过程需要花费半小时以上,编译完成后会在“/home/rpmbuild/RPMS/”目录下生成两个目录“aarch64”“noarch”,其中包含有部署Ceph集群相关的RPM包。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    [root@localhost RPMS]# ls
    aarch64 noarch 
    [root@localhost RPMS]# ls *
    aarch64: 
    ceph-14.2.8-0.aarch64.rpm              Librbd-devel-14.2.8-0.aarch64.rpm 
    ceph-base-14.2.8-0.aarch64.rpm         librgw2-14.2.8.0.aarch64.rpm 
    ceph-common-14.2.8-0.aarch64.rpm       librgw-devel-14.2.8-0.aarch64.rpm 
    ceph-debuginfo-14.2.8-0.aarch64.rpm    python3-ceph-argparse-14.2.8-0.aarch64.rpm 
    ceph-debugsource-14.2.8-0.aarch64.rpm  python3-cephfs-14.2.8-0.aarch64.rpm 
    ceph-fuse-14.2.8-0.aarch64.rpm         python3-rados-14.2.8-0.aarch64.rpm 
    ceph-nds-14.2.8-0.aarch64.rpm          python3-rbd-14.2.8-0.aarch64.rpm 
    ceph-mgr-14.2.8-0.aarch64.rpm          python3-rgw-14.2.8-0.aarch64.rpm 
    ceph-mon-14.2.8-0.aarch64.rpm          python-ceph-argparse-14.2.8-0.aarch64.rpm 
    ceph-osd-14.2.8-0.aarch64.rpm          python-ceph-compat-14.2.8-0.aarch64.rpm 
    ceph-radosgw-14.2.8-0.aarch64.rpm      python-cephfs-14.2.8-0.aarch64.rpm 
    ceph-test-14.2.8-0.aarch64.rpm         python-rados-14.2.8-0.aarch64.rpm 
    Libcephfs2-14.2.8-0.aarch64.rpm        python-rbd-14.2.8-0.aarch64.rpm 
    Libcephfs-devel-14.2.8-0.aarch64.rpm   python-rgw-14.2.8-0.aarch64.rpm 
    Librados2-14.2.8-0.aarch64.rpm         rados-objclass-devel-14.2.8-0.aarch64.rpm 
    librados-devel-14.2.8-0.aarch64.rpm    rbd-fuse-14.2.8-0.aarch64.rpm 
    libradospp-devel-14.2.8-0.aarch64.rpm  rbd-mirror-14.2.8-0.aarch64.rpm 
    librbd1-14.2.8-0.aarch64.rpm           rbd-nbd-14.2.8-0.aarch64.rpm 
    noarch: 
    ceph-grafana-dashboards-14.2.8-0.noarch.rpm        ceph-mgr-k8sevents-14.2.8-0.noarch.rpm 
    ceph-mgr-dashboard-14.2.8-0.noarch.rpm             ceph-mgr-rook-14.2.8-0.noarch.rpm 
    ceph-mgr-diskprediction-cloud-14.2.8-0.noarch.rpm  ceph-mgr-ssh-14.2.8-0.noarch.rpm 
    ceph-mgr-diskprediction-local-14.2.8-0.noarch.rpm 
    
  8. 打包编译出的RPM包。
    1
    2
    cd /home/rpmbuild/RPMS
    tar -zcvf ceph-ksal-rpm.tar.gz aarch64/ noarch/
    
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词