openEuler SDS SIG如何编译和部署Ceph 16.2.7完整教程【免费下载链接】sds_docsds_doc is used to manage the technical documentation of the SDS sig项目地址: https://gitcode.com/openeuler/sds_doc前往项目官网免费下载https://ar.openeuler.org/ar/想要在openEuler系统上构建高性能的分布式存储系统吗本指南将为您提供在openEuler SDS SIG中编译和部署Ceph 16.2.7的完整教程。Ceph是一个开源的分布式存储系统提供对象、块和文件存储功能而openEuler SDS SIG存储与数据服务特别兴趣小组专注于存储技术的开发与优化。 环境准备与系统要求在开始编译Ceph 16.2.7之前您需要确保系统环境满足以下要求操作系统版本openEuler 20.03-LTS-SP3 或 openEuler 22.03-LTS-SP1Ceph版本v16.2.7GCC版本10.3.1内核版本4.19.90-2112.8.0.0131.oe1.aarch64硬件要求每个节点至少2U4G内存至少配置3张网卡管理网、业务网、存储前端网、存储后端网系统盘500G 额外存储盘网络拓扑示例图典型的Ceph集群网络拓扑结构 编译环境搭建步骤1. 编译GCC相关软件包首先需要编译GCC软件包确保编译环境的一致性# 下载源码及补丁 git clone -b openEuler-22.03-LTS https://gitcode.com/openeuler/sds_doc # 安装相关依赖 cd gcc yum-builddep gcc.spec # 安装rpmbuild包复制源码到相关目录 yum install -y rpmdevtools rpmdev-setuptree cp * /root/rpmbuild/SOURCES # 编译出包 rpmbuild -bb gcc.spec常见问题解决如果遇到cpio: obj-aarch64-linux-gnu/gcc/cfns.gperf: Cannot stat: No such file or directory错误可以编辑~/.rpmmacros文件注释掉相关检查行。2. 编译luarocks软件包Ceph依赖LuaRocks进行模块管理git clone -b openEuler-20.03-LTS-SP3 https://gitcode.com/openeuler/sds_doc cd luarocks yum-builddep luarocks.spec cp * /root/rpmbuild/SOURCES rpmbuild -bb luarocks.spec3. 创建本地软件源将编译好的RPM包配置为本地软件源mkdir -p /home/rpm/gcc cp -r /root/rpmbuild/RPMS/* /home/rpm/gcc/ yum install -y createrepo cd /home/rpm/gcc/ createrepo . # 配置repo文件 vim /etc/yum.repos.d/local.repo添加以下内容到repo文件[local-gcc] namelocal-gcc baseurlfile:///home/rpm/gcc/ gpgcheck0清理yum缓存yum clean all yum makecache Ceph 16.2.7编译指南1. 下载Ceph源码git clone -b openEuler-22.03-LTS https://gitcode.com/openeuler/sds_doc cp * /root/rpmbuild/SOURCES2. 安装编译依赖yum-builddep ceph.spec3. 编译Ceph RPM包rpmbuild -bb ceph.spec图Ceph编译过程示意图4. 常见编译问题解决Python环境问题# 修改python命令指向 rm -rf /usr/bin/python ln -s /usr/bin/python3 /usr/bin/python依赖包缺失# 根据错误提示安装对应软件包 yum install rdma-core-devel文件打包错误 编辑/usr/lib/rpm/macros文件注释掉%__check_files /usr/lib/rpm/check-files %{buildroot}这一行。️ Ceph集群部署配置1. 基础环境准备设置主机名# 在三个节点分别执行 hostnamectl set-hostname node20 exec /bin/bash hostnamectl set-hostname node21 exec /bin/bash hostnamectl set-hostname node22 exec /bin/bash配置IP解析所有节点vim /etc/hosts 10.0.10.20 node20 10.0.10.21 node21 10.0.10.22 node22配置SSH免密登录ssh-keygen -t rsa -P ssh-copy-id node20 ssh-copy-id node21 ssh-copy-id node222. 系统优化配置防火墙配置# 打开Ceph端口 firewall-cmd --zonepublic --add-port6789/tcp --permanent firewall-cmd --zonepublic --add-port6800-7300/tcp --permanent firewall-cmd --reload # 或者直接关闭防火墙 systemctl stop firewalld systemctl disable firewalld禁用SELinuxsetenforce 0 # 永久修改 vim /etc/selinux/config # 将SELINUXenforcing改为SELINUXdisabled内核参数优化# 设置文件描述符 echo ulimit -SHn 102400 /etc/rc.local cat /etc/security/limits.conf EOF * soft nofile 65535 * hard nofile 65535 EOF # 内核参数优化 cat /etc/sysctl.conf EOF kernel.pid_max 4194303 vm.swappiness 0 EOF sysctl -p图Ceph集群架构示意图 Ceph集群部署实战1. 部署Ceph Monitor生成集群UUIDuuidgen # 输出示例b3a56e00-c60b-4b2d-8bba-a240dc1d280b创建Ceph配置文件mkdir /etc/ceph vim /etc/ceph/ceph.conf配置文件内容参考[global] fsid b3a56e00-c60b-4b2d-8bba-a240dc1d280b mon_initial_members node20, node21, node22 mon_host 10.0.10.20:6789, 10.0.10.21:6789, 10.0.10.22:6789 public_network 10.0.10.0/24 cluster_network 10.0.4.0/24 auth_cluster_required cephx auth_service_required cephx auth_client_required cephx初始化Monitor# 创建认证密钥 ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon allow * ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon allow * --cap osd allow * --cap mds allow * --cap mgr allow * # 创建monitor map monmaptool --create --add node20 10.0.10.20 --add node21 10.0.10.21 --add node22 10.0.10.22 --fsid b3a56e00-c60b-4b2d-8bba-a240dc1d280b /tmp/monmap2. 部署Ceph Manager# 创建目录 sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-node20 # 创建密钥 ceph auth get-or-create mgr.node20 mon allow profile mgr osd allow * mds allow * /var/lib/ceph/mgr/ceph-node20/keyring # 启动服务 systemctl enable ceph-mgrnode20 systemctl start ceph-mgrnode203. 部署Ceph OSD# 在node20上创建OSD sudo ceph-volume lvm create --data /dev/sdb # 在node21上创建OSD sudo ceph-volume lvm create --data /dev/sdc # 在node22上创建OSD sudo ceph-volume lvm create --data /dev/sdd图Ceph OSD部署成功界面 Ceph集群管理与监控1. 安装Dashboardyum install ceph-mgr-dashboard ceph mgr module enable dashboard ceph dashboard create-self-signed-cert echo your_password passwd ceph dashboard set-login-credentials admin -i passwd2. 创建设备组与存储池创建设备组ceph osd crush add-bucket dg1 devicegroup ceph osd tree创建机架ceph osd crush add-bucket rack1 rack ceph osd crush link rack1 devicegroupdg1创建存储池# 创建CRUSH规则 ceph osd crush rule create-replicated p1_rule dg1 rack # 创建副本存储池 ceph osd pool create p1 64 64 replicated p1_rule ceph osd pool set p1 size 3 ceph osd pool set p1 min_size 1图Ceph存储池管理界面3. 集群状态检查# 检查集群健康状态 ceph -s # 查看OSD树 ceph osd tree # 查看存储池列表 ceph osd pool ls # 查看监控器状态 ceph mon stat️ 故障排除与优化常见问题解决时钟同步问题ceph tell mon.* injectargs --mon_clock_drift_allowed1认证问题ceph config set mon auth_allow_insecure_global_id_reclaim false存储池删除问题ceph --admin-daemon /var/run/ceph/ceph-mon.node20.asok config set mon_allow_pool_delete true性能优化建议I/O调度器优化SSD使用noop调度器SATA/SAS使用deadline调度器预读优化echo 8192 /sys/block/sda/queue/read_ahead_kb网络优化分离公共网络和集群网络使用高性能网卡 监控与维护1. 集群监控指标集群容量使用率OSD状态与性能PG分布与状态网络延迟与带宽客户端连接状态2. 日常维护任务定期检查集群健康状态监控存储池使用情况备份集群配置更新Ceph版本扩容存储容量图Ceph集群监控仪表板 总结与最佳实践通过本教程您已经学会了在openEuler SDS SIG环境中编译和部署Ceph 16.2.7的完整流程。关键要点包括环境准备确保系统版本、硬件和网络配置符合要求编译流程按顺序编译GCC、LuaRocks和Ceph软件包集群部署正确配置Monitor、Manager和OSD节点存储管理合理设计CRUSH规则和存储池监控维护建立完善的监控和维护流程最佳实践建议在生产环境前进行充分测试定期备份集群配置监控关键性能指标遵循openEuler SDS SIG的更新建议通过openEuler SDS SIG的技术支持您可以构建稳定、高性能的Ceph分布式存储系统满足企业级存储需求。记得参考ceph/3 - 分布式存储组件使能/openEuler-20.03-LTS-SP3上ceph16.2.7编译指导.md和ceph/3 - 分布式存储组件使能/openEuler-22.03-LTS-SP1部署ceph16指导说明书.md获取更详细的技术细节。现在您已经掌握了在openEuler上部署Ceph集群的核心技能开始构建您的高性能分布式存储系统吧【免费下载链接】sds_docsds_doc is used to manage the technical documentation of the SDS sig项目地址: https://gitcode.com/openeuler/sds_doc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考