国产操作系统实战在Kylin v10上手动编译Ceph 15.2.17的完整教程在信息技术自主可控的大背景下国产操作系统正逐步成为企业级基础设施的重要选择。作为国产操作系统的代表之一Kylin v10凭借其稳定性和安全性已在金融、政务等领域得到广泛应用。而Ceph作为开源的分布式存储系统其高可靠性和可扩展性使其成为构建企业存储平台的理想选择。本文将详细介绍在Kylin v10操作系统上手动编译Ceph 15.2.17的完整过程帮助技术人员掌握在国产化环境下的Ceph部署技能。1. 环境准备与系统配置1.1 Kylin v10基础环境检查在开始编译前首先需要确认系统基础环境是否符合要求# 查看系统版本 cat /etc/kylin-release # 查看内核版本 uname -r # 查看CPU架构 uname -mKylin v10推荐使用以下配置CPU4核及以上内存8GB及以上磁盘空间100GB以上可用空间编译过程会产生大量中间文件1.2 软件源配置Kylin v10的默认软件源可能不包含所有必要的依赖包需要添加官方源和EPEL源# 创建kylin软件源配置文件 vim /etc/yum.repos.d/kylin_x86_64.repo添加以下内容[ks10-adv-cdrom] name Kylin Linux Advanced Server 10 - cdrom baseurl http://archive2.kylinos.cn/rpm/kylin/production/KY10-GFB-amd64/custom/kylin-server/KY10-GFB-amd64/ gpgcheck 0 enabled 11.3 基础依赖安装安装编译所需的基础工具链和开发库yum groupinstall Development Tools -y yum install -y make cmake autoconf automake libtool rpm-build yum install -y python3-devel openssl-devel graphviz gperf2. 特殊依赖处理2.1 额外依赖包安装Ceph编译需要一些特殊的依赖包这些包可能需要手动下载安装# 下载额外依赖包 wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/liboath-2.6.2-1.el7.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/liboath-devel-2.6.2-1.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/redhat-lsb-core-4.1-27.el7.centos.1.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/redhat-lsb-submod-security-4.1-27.el7.centos.1.x86_64.rpm # 安装依赖包 rpm -ivh liboath-2.6.2-1.el7.x86_64.rpm rpm -ivh liboath-devel-2.6.2-1.el7.x86_64.rpm rpm -ivh redhat-lsb-submod-security-4.1-27.el7.centos.1.x86_64.rpm rpm -ivh redhat-lsb-core-4.1-27.el7.centos.1.x86_64.rpm2.2 GCC编译器升级Ceph 15.2.17需要较新版本的GCC编译器Kylin v10默认可能不满足要求# 挂载Kylin安装镜像 mount -o loop Kylin-Server-V10_U1-Release-Build02-20210824-GFB-x86_64.iso /mnt # 安装GCC 8.3.1 cd /mnt/Packages-gcc yum install gmp-devel libmpc-devel mpfr-devel isl -y rpm -ivh *.rpm --force安装完成后验证GCC版本gcc --version3. Ceph源码编译3.1 源码获取与准备从Ceph官方下载指定版本的源码包wget https://download.ceph.com/tarballs/ceph-15.2.17.tar.gz创建RPM构建环境mkdir -p ~/rpmbuild/{BUILD,SOURCES,SPECS,RPMS,BUILDROOT} mv ceph-15.2.17.tar.gz ~/rpmbuild/SOURCES cd ~/rpmbuild/SOURCES tar -xvf ceph-15.2.17.tar.gz3.2 修改spec文件进入源码目录修改ceph.spec文件以适应Kylin环境cd ceph-15.2.17 vim ceph.spec需要修改的关键部分将Source0从.tar.bz2改为.tar.gzSource0: %{?_remote_tarball_prefix}ceph-15.2.17.tar.gz将redhat-rpm-config改为kylin-rpm-configBuildRequires: kylin-rpm-config3.3 调整系统配置修改RPM宏定义以避免构建失败vim /usr/lib/rpm/macros找到以下行并修改%_unpackaged_files_terminate_build 0设置正确的Python版本ln -sf /usr/bin/python3.7 /usr/bin/python4. 编译与安装4.1 执行编译使用rpmbuild命令开始编译rpmbuild -ba --target$(uname -m) ceph.spec注意编译过程可能持续数小时取决于硬件配置。建议在性能较好的机器上执行此操作。4.2 常见编译问题解决问题1CMake Error at cmake/modules/BuildBoost.cmake错误信息显示缺少StdFilesystem::filesystem目标这通常是由于GCC版本不兼容导致。解决方案确认GCC版本是否为8.3.1或更高安装完整的Boost开发包yum install boost-devel -y问题2Python模块缺失如果遇到Python模块缺失错误可以手动安装所需模块pip3 install cython prettytable sphinx4.3 安装编译好的RPM包编译完成后安装生成的RPM包cd ~/rpmbuild/RPMS/x86_64 yum -y remove librados2 librbd1 yum -y install librabbitmq librdkafka resource-agents jq socat xmlstarlet leveldb yum -y install python3-pyyaml python3-pecan python3-werkzeug python3-pyOpenSSL # 安装Ceph相关包 rpm -ivh python3-*.rpm rpm -ivh ceph-mgr-modules-core-*.rpm rpm -ivh cephadm-*.rpm rpm -ivh lib*.rpm rpm -ivh ceph-*.rpm --force5. 验证与测试5.1 基础功能验证安装完成后验证Ceph基本功能# 查看Ceph版本 ceph -v # 创建测试集群 ceph-deploy new test-mon # 启动监控服务 ceph-mon --id test-mon --mkfs --keyring /var/lib/ceph/mon/test-mon/keyring5.2 性能测试使用内置工具进行简单性能测试# 创建测试池 ceph osd pool create test_pool 128 # 执行基准测试 rados bench -p test_pool 10 write --no-cleanup rados bench -p test_pool 10 seq rados bench -p test_pool 10 rand6. 优化与调优6.1 编译参数优化针对特定硬件架构可以调整编译参数以获得更好性能# 修改ceph.spec文件添加优化标志 vim ~/rpmbuild/SOURCES/ceph-15.2.17/ceph.spec在%configure部分添加--with-extra-cflags-O3 -marchnative \ --with-extra-cxxflags-O3 -marchnative \6.2 运行时配置调整根据硬件配置调整Ceph运行时参数# 编辑Ceph配置文件 vim /etc/ceph/ceph.conf推荐优化参数[osd] osd_op_threads 8 filestore_op_threads 8 journal_max_write_bytes 10485760 journal_max_write_entries 100在实际项目中我们发现Kylin v10上编译的Ceph在稳定性方面表现优异但需要特别注意依赖包的版本兼容性。特别是在处理Python环境时保持版本一致性可以避免许多潜在问题。
国产操作系统实战:在Kylin v10上手动编译Ceph 15.2.17的完整教程
国产操作系统实战在Kylin v10上手动编译Ceph 15.2.17的完整教程在信息技术自主可控的大背景下国产操作系统正逐步成为企业级基础设施的重要选择。作为国产操作系统的代表之一Kylin v10凭借其稳定性和安全性已在金融、政务等领域得到广泛应用。而Ceph作为开源的分布式存储系统其高可靠性和可扩展性使其成为构建企业存储平台的理想选择。本文将详细介绍在Kylin v10操作系统上手动编译Ceph 15.2.17的完整过程帮助技术人员掌握在国产化环境下的Ceph部署技能。1. 环境准备与系统配置1.1 Kylin v10基础环境检查在开始编译前首先需要确认系统基础环境是否符合要求# 查看系统版本 cat /etc/kylin-release # 查看内核版本 uname -r # 查看CPU架构 uname -mKylin v10推荐使用以下配置CPU4核及以上内存8GB及以上磁盘空间100GB以上可用空间编译过程会产生大量中间文件1.2 软件源配置Kylin v10的默认软件源可能不包含所有必要的依赖包需要添加官方源和EPEL源# 创建kylin软件源配置文件 vim /etc/yum.repos.d/kylin_x86_64.repo添加以下内容[ks10-adv-cdrom] name Kylin Linux Advanced Server 10 - cdrom baseurl http://archive2.kylinos.cn/rpm/kylin/production/KY10-GFB-amd64/custom/kylin-server/KY10-GFB-amd64/ gpgcheck 0 enabled 11.3 基础依赖安装安装编译所需的基础工具链和开发库yum groupinstall Development Tools -y yum install -y make cmake autoconf automake libtool rpm-build yum install -y python3-devel openssl-devel graphviz gperf2. 特殊依赖处理2.1 额外依赖包安装Ceph编译需要一些特殊的依赖包这些包可能需要手动下载安装# 下载额外依赖包 wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/liboath-2.6.2-1.el7.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/liboath-devel-2.6.2-1.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/redhat-lsb-core-4.1-27.el7.centos.1.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/redhat-lsb-submod-security-4.1-27.el7.centos.1.x86_64.rpm # 安装依赖包 rpm -ivh liboath-2.6.2-1.el7.x86_64.rpm rpm -ivh liboath-devel-2.6.2-1.el7.x86_64.rpm rpm -ivh redhat-lsb-submod-security-4.1-27.el7.centos.1.x86_64.rpm rpm -ivh redhat-lsb-core-4.1-27.el7.centos.1.x86_64.rpm2.2 GCC编译器升级Ceph 15.2.17需要较新版本的GCC编译器Kylin v10默认可能不满足要求# 挂载Kylin安装镜像 mount -o loop Kylin-Server-V10_U1-Release-Build02-20210824-GFB-x86_64.iso /mnt # 安装GCC 8.3.1 cd /mnt/Packages-gcc yum install gmp-devel libmpc-devel mpfr-devel isl -y rpm -ivh *.rpm --force安装完成后验证GCC版本gcc --version3. Ceph源码编译3.1 源码获取与准备从Ceph官方下载指定版本的源码包wget https://download.ceph.com/tarballs/ceph-15.2.17.tar.gz创建RPM构建环境mkdir -p ~/rpmbuild/{BUILD,SOURCES,SPECS,RPMS,BUILDROOT} mv ceph-15.2.17.tar.gz ~/rpmbuild/SOURCES cd ~/rpmbuild/SOURCES tar -xvf ceph-15.2.17.tar.gz3.2 修改spec文件进入源码目录修改ceph.spec文件以适应Kylin环境cd ceph-15.2.17 vim ceph.spec需要修改的关键部分将Source0从.tar.bz2改为.tar.gzSource0: %{?_remote_tarball_prefix}ceph-15.2.17.tar.gz将redhat-rpm-config改为kylin-rpm-configBuildRequires: kylin-rpm-config3.3 调整系统配置修改RPM宏定义以避免构建失败vim /usr/lib/rpm/macros找到以下行并修改%_unpackaged_files_terminate_build 0设置正确的Python版本ln -sf /usr/bin/python3.7 /usr/bin/python4. 编译与安装4.1 执行编译使用rpmbuild命令开始编译rpmbuild -ba --target$(uname -m) ceph.spec注意编译过程可能持续数小时取决于硬件配置。建议在性能较好的机器上执行此操作。4.2 常见编译问题解决问题1CMake Error at cmake/modules/BuildBoost.cmake错误信息显示缺少StdFilesystem::filesystem目标这通常是由于GCC版本不兼容导致。解决方案确认GCC版本是否为8.3.1或更高安装完整的Boost开发包yum install boost-devel -y问题2Python模块缺失如果遇到Python模块缺失错误可以手动安装所需模块pip3 install cython prettytable sphinx4.3 安装编译好的RPM包编译完成后安装生成的RPM包cd ~/rpmbuild/RPMS/x86_64 yum -y remove librados2 librbd1 yum -y install librabbitmq librdkafka resource-agents jq socat xmlstarlet leveldb yum -y install python3-pyyaml python3-pecan python3-werkzeug python3-pyOpenSSL # 安装Ceph相关包 rpm -ivh python3-*.rpm rpm -ivh ceph-mgr-modules-core-*.rpm rpm -ivh cephadm-*.rpm rpm -ivh lib*.rpm rpm -ivh ceph-*.rpm --force5. 验证与测试5.1 基础功能验证安装完成后验证Ceph基本功能# 查看Ceph版本 ceph -v # 创建测试集群 ceph-deploy new test-mon # 启动监控服务 ceph-mon --id test-mon --mkfs --keyring /var/lib/ceph/mon/test-mon/keyring5.2 性能测试使用内置工具进行简单性能测试# 创建测试池 ceph osd pool create test_pool 128 # 执行基准测试 rados bench -p test_pool 10 write --no-cleanup rados bench -p test_pool 10 seq rados bench -p test_pool 10 rand6. 优化与调优6.1 编译参数优化针对特定硬件架构可以调整编译参数以获得更好性能# 修改ceph.spec文件添加优化标志 vim ~/rpmbuild/SOURCES/ceph-15.2.17/ceph.spec在%configure部分添加--with-extra-cflags-O3 -marchnative \ --with-extra-cxxflags-O3 -marchnative \6.2 运行时配置调整根据硬件配置调整Ceph运行时参数# 编辑Ceph配置文件 vim /etc/ceph/ceph.conf推荐优化参数[osd] osd_op_threads 8 filestore_op_threads 8 journal_max_write_bytes 10485760 journal_max_write_entries 100在实际项目中我们发现Kylin v10上编译的Ceph在稳定性方面表现优异但需要特别注意依赖包的版本兼容性。特别是在处理Python环境时保持版本一致性可以避免许多潜在问题。