移植指南 - huawei cloud...yum -y install elfutils-libelf-devel bc openssl-devel ncurses-devel...
TRANSCRIPT
鲲鹏 BoostKit 分布式存储使能套件
移植指南
文档版本 03
发布日期 2021-03-23
华为技术有限公司
版权所有 © 华为技术有限公司 2021。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明
和其他华为商标均为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 i
目 录
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
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
表 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
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
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
2. 选中“Block device as cache”,输入“Y”选中。
鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)
文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 5
步骤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
步骤6 退出。
鲲鹏 BoostKit 分布式存储使能套件移植指南 1 Bcache 移植指南(CentOS 7.6)
文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 7
步骤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
步骤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
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
操作步骤
步骤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
● 删除缓存盘。
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
说明
若需要恢复缓存,可通过以下方式重新绑定缓存:
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
须知
卸载后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
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
图 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
模块名称 功能描述
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
表 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
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
步骤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
步骤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
步骤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
A 修订记录
发布日期 修订记录
2021-03-23 第三次正式发布
鲲鹏分布式存储解决方案更名为鲲鹏BoostKit分布式存储使能套件。
2020-05-09 第二次正式发布
《Bcache 移植指南(CentOS 7.6)》“设置系统默认启动的内核版本”章节新增部分操作描述。
2020-03-20 第一次正式发布
鲲鹏 BoostKit 分布式存储使能套件移植指南 A 修订记录
文档版本 03 (2021-03-23) 版权所有 © 华为技术有限公司 23