移植指南 - huawei cloud...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel...

26
鲲鹏 BoostKit 分布式存储使能套件 移植指南 文档版本 03 发布日期 2021-03-23 华为技术有限公司

Upload: others

Post on 22-Jan-2021

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

鲲鹏 BoostKit 分布式存储使能套件

移植指南

文档版本 03

发布日期 2021-03-23

华为技术有限公司

Page 2: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

版权所有 © 华为技术有限公司 2021。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明

和其他华为商标均为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 i

Page 3: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

目 录

1 Bcache 移植指南(CentOS 7.6)........................................................................................... 11.1 介绍.............................................................................................................................................................................................. 11.2 环境要求......................................................................................................................................................................................11.3 配置编译环境............................................................................................................................................................................. 21.4 获取源码......................................................................................................................................................................................21.5 编译和安装................................................................................................................................................................................. 21.6 运行和验证................................................................................................................................................................................. 91.6.1 设置系统默认启动的内核版本.........................................................................................................................................101.6.2 安装 bcache 配置工具....................................................................................................................................................... 101.6.3 Bcache 基础操作................................................................................................................................................................. 111.7 更多资源................................................................................................................................................................................... 14

2 Ceph 14.2.1 移植指南(CentOS 7.6).................................................................................152.1 介绍............................................................................................................................................................................................ 152.2 环境要求................................................................................................................................................................................... 172.3 配置编译环境...........................................................................................................................................................................182.4 安装依赖包............................................................................................................................................................................... 192.5 编译安装与运行验证............................................................................................................................................................. 20

A 修订记录................................................................................................................................... 23

鲲鹏 BoostKit 分布式存储使能套件移植指南 目 录

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 ii

Page 4: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

1 Bcache 移植指南(CentOS 7.6)

1.1 介绍

1.2 环境要求

1.3 配置编译环境

1.4 获取源码

1.5 编译和安装

1.6 运行和验证

1.7 更多资源

1.1 介绍

简要介绍

Bcache是Linux内核块层cache,使用SSD来作为HDD硬盘的cache,从而起到加速作用。Bcache内核模块仅在Linux 3.10及以上版本支持,因此使用Bcache,需要将内核升级到3.10及以上版本。

更多详情见Bcache主页和使用手册:

https://bcache.evilpiepirate.org/

https://evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt

1.2 环境要求

操作系统要求

操作系统要求如表1-1所示。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 1

Page 5: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

表 1-1 操作系统要求

项目 版本

CentOS 7.6

Kernel 4.14.0

1.3 配置编译环境步骤1 重新编译内核将PAGESIZE改为4K,并打开Bcache开关。

步骤2 下载Bcache工具包bcache-tools 1.0.8。

https://github.com/g2p/bcache-tools/releases

步骤3 安装编译依赖。

yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev

说明

如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。具体参见配置本地yum仓库。

----结束

1.4 获取源码步骤1 创建路径。

mkdir /root/kernel

cd /root/kernel

步骤2 下载CentOS 7.6内核源码。

● 方法一:在线下载

下载地址:kernel-alt-4.14.0-115.el7a.0.1.src.rpm

● 方法二:本地下载

wget http://vault.centos.org/centos/7.6.1810/os/Source/SPackages/kernel-alt-4.14.0-115.el7a.0.1.src.rpm

步骤3 解压源码包。

rpm2cpio kernel-alt-4.14.0-115.el7a.0.1.src.rpm | cpio -div

tar -vxf linux-4.14.0-115.el7a.tar.xz

----结束

1.5 编译和安装步骤1 复制本地config文件到源码路径下。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 2

Page 6: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

cd /root/kernel/linux-4.14.0-115.el7a/

cp /boot/config-4.14.0-115.el7a.0.1.aarch64 .config

步骤2 编译配置.config文件,更改页大小为4K。

1. make menuconfig2. “Kernel Features > Page size (64KB) > Page size (4KB)” 保存 #Page size调整

为4K。

3. 按“Enter”键进入下一页。

4. 按“Enter”键进入Page size选择页,按上下键选择4KB,16KB,64KB,此处选中4KB,按“Enter”键退出。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 3

Page 7: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

5. 按左右键移动光标到“Exit”选项,按“Enter”键退出。

步骤3 打开Bcache模块。

1. 回退到最外层菜单,选择“Device Drivers > Multiple device driver support(RAID and LVM )”,按“Enter”键进入下一级菜单。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 4

Page 8: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

2. 选中“Block device as cache”,输入“Y”选中。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 5

Page 9: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

步骤4 自定义kernel版本。

1. 在最外层菜单,选择“General setup > Local version – append to kernelrelease”。

2. 输入自定义kernel版本,如“bcache_kernel”。

步骤5 按照原名保存。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 6

Page 10: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

步骤6 退出。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 7

Page 11: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

步骤7 删除CONFIG_SYSTEM_TRUSTED_TRUSTED_KEYS配置。

1. vi .config2. 找到“CONFIG_SYSTEM_TRUSTED_KEYS”,将

CONFIG_SYSTEM_TRUSTED_KEYS="certs/centos.pem" 修改为CONFIG_SYSTEM_TRUSTED_KEYS="",以下是修改后的呈现。CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"CONFIG_SYSTEM_TRUSTED_KEYRING=yCONFIG_SYSTEM_TRUSTED_KEYS=""# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set# CONFIG_SECONDARY_TRUSTED_KEYRING is not set# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set

3. 保存并退出。

步骤8 打开.config文件,确认“CONFIG_ARM64_4K_PAGES”是否为“y”,“CONFIG_BCACHE”是否为“y”。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 8

Page 12: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

步骤9 生成RPM包。

make rpm

上图中红色方框部分为保存的RPM包路径。

步骤10 安装新内核RPM包。

cd /root/rpmbuild/RPMS/aarch64/

yum install -y kernel-4.14.0bcache_kernel-1.aarch64.rpm

yum install -y kernel-devel-4.14.0bcache_kernel-1.aarch64.rpm

yum install -y kernel-headers-4.14.0bcache_kernel-1.aarch64.rpm

----结束

1.6 运行和验证

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 9

Page 13: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

1.6.1 设置系统默认启动的内核版本

步骤1 查看Bcache内核版本。

cat /etc/grub2-efi.cfg | grep "bcache_kernel"

说明

"bcache_kernel”为自定义内核版本信息,见“编译和安装”章节步骤4。

步骤2 找到单引号中的内核版本,此处是CentOS Linux (4.14.0bcache_kernel) 7 (AltArch)。[root@ceph1 aarch64]# cat /etc/grub2-efi.cfg | grep bcache_kernelmenuentry 'CentOS Linux (4.14.0bcache_kernel) 7 (AltArch)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.14.0-115.el7a.0.1.aarch64-advanced-9ba3eaee-5c33-4412-8a03-e3ed8a6c2826' { linux /vmlinuz-4.14.0bcache_kernel root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 initrd /initramfs-4.14.0bcache_kernel.img

说明

若未设置自定义的内核版本名称,可通过 grep "menuentry"筛选,系统自带的内核版本有4.14.0-115相应信息。

步骤3 设置带Bcache的内核为系统默认启动内核,此处设置为用户自定义的版本。

grub2-set-default “user-defined version”

以bcache_kernel为例,此处应执行:

grub2-set-default 'CentOS Linux (4.14.0bcache_kernel) 7 (AltArch)'

步骤4 确认修改生效。

grub2-editenv list

[root@ceph1 aarch64]# grub2-editenv listsaved_entry=CentOS Linux (4.14.0bcache_kernel) 7 (AltArch)

步骤5 重启系统。

reboot

重启后,按上述的内核配置编译,bcache模块已经bulit-in kernel,直接使用即可。可以通过查看“/sys/fs/bcache”目录或者是查看“/lib/modules/<kernel version>/kernel/drivers/md/bcache.ko”确认bcache是否存在。

----结束

1.6.2 安装 bcache 配置工具

操作准备

Bcache通过make-bcache命令完成bcache的创建,需要安装相关的工具包bcache-tools。

下载链接:https://github.com/g2p/bcache-tools/releases。

版本:v1.0.8

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 10

Page 14: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

操作步骤

步骤1 通过传输工具将下载的bcache-tools-1.0.8.tar.gz包上传到“/home”目录下。

步骤2 解压缩。

cd /home/

tar -zxvf bcache-tools-1.0.8.tar.gz

cd /home/bcache-tools-1.0.8

步骤3 安装依赖。

yum install libblkid-devel -y

步骤4 安装。

make

make install

步骤5 执行make-bcache命令,如下图所示。

----结束

1.6.3 Bcache 基础操作● 创建Bcache后端和缓存磁盘。

make-bcache -B /dev/sdx1 -C /dev/sdx2

说明

-B:指定后端磁盘设备(即数据盘)

-C:指定缓存设备(用于加速数据盘)

此处以sdb为后端磁盘,sdc为缓存设备为例。

make-bcache -B /dev/sdb -C /dev/sdc

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 11

Page 15: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

● 删除缓存盘。

a. 查看缓存盘的cset-uuid。

bcache-super-show /dev/sd*以sdc为例:

bcache-super-show /dev/sdc

b. 删除缓存操作。

echo cset-uuid > /sys/block/bcahce<n>/bcache/detach举例:

echo 5f50eddf-69d8-45e3-9b67-7386ffdaceb7 > /sys/block/bcache0/bcache/detach此时sdc与bcache0解除绑定。

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 12

Page 16: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

说明

若需要恢复缓存,可通过以下方式重新绑定缓存:

echo cset-uuid > /sys/block/bcahce<n>/bcache/attach

● 注销缓存盘。

echo 1 > /sys/fs/bcache/<cset-uuid>/unregister

举例:

echo 1 > /sys/fs/bcache/5f50eddf-69d8-45e3-9b67-7386ffdaceb7/unregister

● 停用缓存盘。

echo 1 > /sys/fs/bcache/<cset-uuid>/stop

举例:

echo 1 > /sys/fs/bcache/5f50eddf-69d8-45e3-9b67-7386ffdaceb7/stop

● 停用后端设备。

echo 1 > /sys/block/bcahce<n>/bcache/stop

举例:

echo 1 > /sys/block/bcache0/bcache/stop

此时 sdb,sdc均与bcache0解除绑定关系

● 卸载bcache模块。

rmmod bcache

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 13

Page 17: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

须知

卸载后bcache无法使用。

1.7 更多资源

配置本地 yum 仓库

步骤1 创建本地仓库。

cd /etc/yum.repos.d/

touch local.repo

输入以下信息:

name = local_repobaseurl=file:///mntenabled=1gpgcheck=0

步骤2 将OS镜像源mount到“/mnt/”目录下。

----结束

鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 14

Page 18: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

2 Ceph 14.2.1 移植指南(CentOS 7.6)

2.1 介绍

2.2 环境要求

2.3 配置编译环境

2.4 安装依赖包

2.5 编译安装与运行验证

2.1 介绍

简要介绍

Ceph 是一个专注于分布式的、弹性可扩展的、高可靠的、性能优异的存储系统平台,可以同时支持块设备、文件系统和对象网关三种类型的存储接口。Ceph架构如图2-1所示。

鲲鹏 BoostKit 分布式存储使能套件移植指南 2 Ceph 14.2.1 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 15

Page 19: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

图 2-1 Ceph 架构

图中模块说明如表2-1所示。

表 2-1 模块说明

模块名称 功能描述

RADOS RADOS(Reliable Autonomic Distributed Object Store,RADOS)是Ceph存储集群的基础。Ceph中的一切都以对象的形式存储,而RADOS就负责存储这些对象,而不考虑它们的数据类型。RADOS层确保数据一致性和可靠性。对于数据一致性,它执行数据复制、故障检测和恢复,还包括数据在集群节点间的recovery。

OSD 实际存储数据的进程。通常一个OSD daemon绑定一个物理磁盘。Client write/read数据最终都会走到OSD去执行write/read操作。

MON Monitor在Ceph集群中扮演者管理者的角色,维护了整个集群的状态,是Ceph集群中最重要的组件。MON保证集群的相关组件在同一时刻能够达成一致,相当于集群的领导层,负责收集、更新和发布集群信息。为了规避单点故障,在实际的Ceph部署环境中会部署多个MON,同样会引来多个MON之前如何协同工作的问题。

MGR MGR目前的主要功能是一个监控系统,包含采集、存储、分析(包含报警)和可视化几部分,用于把集群的一些指标暴露给外界使用。

鲲鹏 BoostKit 分布式存储使能套件移植指南 2 Ceph 14.2.1 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 16

Page 20: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

模块名称 功能描述

Librados 简化访问RADOS的一种方法,目前支持PHP、Ruby、Java、Python、C和C++语言。它提供了Ceph存储集群的一个本地接口RADOS,并且是其他服务(如RBD、RGW)的基础,此外,还为CephFS提供POSIX接口。Librados API支持直接访问RADOS,使开发者能够创建自己的接口来访问Ceph集群存储。

RBD Ceph块设备,对外提供块存储。可以像磁盘一样被映射、格式化和挂载到服务器上。

RGW Ceph对象网关,提供了一个兼容S3和Swift的RESTful API接口。RGW还支持多租户和OpenStack的Keystone身份验证服务。

MDS Ceph元数据服务器,跟踪文件层次结构并存储只供CephFS使用的元数据。Ceph块设备和RADOS网关不需要元数据。MDS不直接给Client提供数据服务。

CephFS 提供了一个任意大小且兼容POSlX的分布式文件系统。CephFS依赖Ceph MDS来跟踪文件层次结构,即元数据。

建议的版本

建议使用的版本为“14.2.1”。

说明

本文档适用于Ceph 14.2.1,其他版本的移植步骤可参考本文档。

2.2 环境要求

硬件要求

硬件要求如表2-2所示。

表 2-2 硬件要求

项目 说明

服务器 TaiShan 200服务器(型号2280)或TaiShan 200服务器(型号5280)

CPU 鲲鹏920处理器

操作系统要求

操作系统要求如表2-3所示。

鲲鹏 BoostKit 分布式存储使能套件移植指南 2 Ceph 14.2.1 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 17

Page 21: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

表 2-3 操作系统要求

项目 版本

CentOS CentOS Linux release 7.6.1810 (AltArch)

Kernel 4.14.0-115.el7a.0.1.aarch64

说明

如果是全新安装操作系统,安装方式建议不要使用最小化安装,否则很多软件包需要手动安装,可选择“Infrastructure Server”->“Development Tools”安装方式。

2.3 配置编译环境步骤1 安装SCL软件集。

yum -y install centos-release-scl

步骤2 修改SCL repo源。vi /etc/yum.repos.d/CentOS-SCLo-scl.repo

添加以下字段:

baseurl=http://mirror.centos.org/altarch/7/sclo/$basearch/rh/

步骤3 模拟gcc7编译环境。yum -y install devtoolset-7scl enable devtoolset-7 bashgcc --version

----结束

鲲鹏 BoostKit 分布式存储使能套件移植指南 2 Ceph 14.2.1 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 18

Page 22: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

2.4 安装依赖包

获取源码

源码下载链接:https://download.ceph.com/tarballs/

下载完成后将源码包放入服务器“/home”目录下。

安装依赖包

步骤1 进入“/home”目录,解压源码包并进入解压后的目录。cd /home && tar -zxvf ceph-14.2.1.tar.gz && cd ceph-14.2.1/

步骤2 修改scl-rh repo源中http为https。vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

步骤3 设置yum证书验证。vi /etc/yum.confsslverify=false

步骤4 修改install-deps.sh中“x86_64”为“aarch64”。vi /home/ceph-14.2.1/install-deps.sh

鲲鹏 BoostKit 分布式存储使能套件移植指南 2 Ceph 14.2.1 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 19

Page 23: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

步骤5 运行install-deps.sh,安装依赖包。./install-deps.sh

----结束

2.5 编译安装与运行验证

编译和安装

步骤1 修改“do_cmake.sh”中的“-DCMAKE_BUILD_TYPE”为“RelWithDebInfo”。vi do_cmake.sh

修改为以下内容:

说明

默认的“do_cmake.sh”会编译一个DEBUG环境,为了不影响性能,使用参数“-DCMAKE_BUILD_TYPE=RelWithDebInfo”,取消DEBUG编译。

步骤2 安装RPM打包工具,并设置rpmbuild默认目录为“/home”。

1. 安装rpmdevtools。yum install rpmdevtools -y

2. 安装rpmbuild。rpmdev-setuptree

说明

若使用root用户进行编译,则会在“/root”目录下生成一个“rpmbuild”目录,由于编译过程会占用20~30GB左右的空间,若“/root”目录下空间较小,可以更改“rpmbuild”目录到其他路径下,如“/home”目录:

1. 执行rpmbuild安装命令之后修改“.rpmmacros”文件。vi /root/.rpmmacros

修改“%_topdir”为“/home/rpmbuild”

2. 再次执行rpmbuild安装命令。rpmdev-setuptree

鲲鹏 BoostKit 分布式存储使能套件移植指南 2 Ceph 14.2.1 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 20

Page 24: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

步骤3 将源码包中的ceph.spec文件拷贝到SPECS中。cp /home/ceph-14.2.1/ceph.spec /home/rpmbuild/SPECS/

步骤4 在ceph.spec文件开头添加字段。vi /home/rpmbuild/SPECS/ceph.spec

添加字段如下:

%define _binaries_in_noarch_packages_terminate_build 0

步骤5 回到“/home”目录,将源码包打包为tar.bz2格式。cd /home/ && tar -cjvf ceph-14.2.1.tar.bz2 ceph-14.2.1

步骤6 将打包好的文件放到SOURCES目录下。cp ceph-14.2.1.tar.bz2 /home/rpmbuild/SOURCES/

步骤7 使用rpmbuild开始编译。rpmbuild -bb /home/rpmbuild/SPECS/ceph.spec

编译过程需要花费较长时间,编译完成后会在“/home/rpmbuild/RPMS/”目录下生成两个目录“aarch64”和“noarch”,其中包含有Ceph相关的RPM包。

鲲鹏 BoostKit 分布式存储使能套件移植指南 2 Ceph 14.2.1 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 21

Page 25: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

步骤8 使用yum命令安装RPM包。yum -y install /home/rpmbuild/RPMS/aarch64/*.rpm

说明

● aarch64目录下的RPM包都是ceph的核心组件和依赖,涵盖了块(RBD)、文件(CephFS)和对象(RGW)三种存储模式。其中ceph-debuginfo-14.2.1-0.el7.aarch64.rpm和ceph-test-14.2.1-0.el7.aarch64.rpm不是必要组件,如果不需要在开发过程中调试ceph建议不安装这两个RPM包。

● noarch目录下的RPM包主要包含了一些Ceph的额外功能,如果没有明确需求可以不安装。

● 安装Ceph RPM包的过程中可能还会需要一些基础依赖包,建议让服务器能够接入互联网,yum命令会自动下载并安装依赖包。其中一些依赖包可能需要提前配置好epel源,执行如下命令即可配置epel源。yum -y install epel-release

----结束

运行和验证

验证Ceph版本,能正确显示版本为14.2.1说明安装成功。

ceph --version

鲲鹏 BoostKit 分布式存储使能套件移植指南 2 Ceph 14.2.1 移植指南(CentOS 7.6)

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 22

Page 26: 移植指南 - HUAWEI CLOUD...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel libssl-dev 说明 如果发现依赖包缺失,可以mount镜像包,配置本地镜像源。

A 修订记录

发布日期 修订记录

2021-03-23 第三次正式发布

鲲鹏分布式存储解决方案更名为鲲鹏BoostKit分布式存储使能套件。

2020-05-09 第二次正式发布

《Bcache 移植指南(CentOS 7.6)》“设置系统默认启动的内核版本”章节新增部分操作描述。

2020-03-20 第一次正式发布

鲲鹏 BoostKit 分布式存储使能套件移植指南 A 修订记录

文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 23