From b3d77a41a0860fc2943cc567d8e6aed839ef21ce Mon Sep 17 00:00:00 2001 From: TomNewChao <353712216@qq.com> Date: Wed, 29 Mar 2023 09:50:50 +0800 Subject: [PATCH] move ceph wiki to sds_doc --- README.en.md | 36 - README.md | 40 +- ...32\350\256\256\347\272\252\350\246\201.md" | 678 +++++++++++++ ...32\350\256\256\347\272\252\350\246\201.md" | 123 +++ ...0-\347\275\227\346\227\245\346\226\260.md" | 35 + ...47\273\255\345\274\272@chenxuqiang2022.md" | 328 +++++++ ...\261\240\344\277\241\346\263\275(XSKY).md" | 5 + ...75\345\257\206\344\275\277\350\203\275.md" | 9 + ...77\350\203\275\346\214\207\345\215\227.md" | 911 ++++++++++++++++++ ...30\350\256\260\345\275\225\345\215\225.md" | 60 ++ ...43\345\206\263\346\226\271\346\241\210.md" | 56 ++ ...74\350\257\264\346\230\216\344\271\246.md" | 42 + ...\351\207\217\347\234\213\346\212\244qa.md" | 57 ++ ...\346\235\276(\345\215\216\344\270\272).md" | 309 ++++++ ...26\350\257\221\346\214\207\345\257\274.md" | 77 ++ ...26\350\257\221\346\214\207\345\257\274.md" | 200 ++++ ...26\350\257\221\346\214\207\345\257\274.md" | 189 ++++ ...26\350\257\221\346\214\207\345\257\274.md" | 112 +++ ...74\350\257\264\346\230\216\344\271\246.md" | 234 +++++ ...74\350\257\264\346\230\216\344\271\246.md" | 229 +++++ ...ig\347\273\204\347\256\200\344\273\213.md" | 23 + ...413\346\234\237(2022-11-01~2022-11-30).md" | 155 +++ ...414\346\234\237(2022-12-01_2022-12-31).md" | 123 +++ ...25415\346\234\237(2023-1-01_2023-1-31).md" | 138 +++ ...\274\2102022-8-1~2022-9-30\357\274\211.md" | 123 +++ ...45\345\221\212\345\210\227\350\241\250.md" | 60 ++ 26 files changed, 4286 insertions(+), 66 deletions(-) delete mode 100644 README.en.md create mode 100644 "ceph/0 - \344\276\213\344\274\232\347\272\252\350\246\201/2022\345\217\214\345\221\250\344\276\213\344\274\232\344\274\232\350\256\256\347\272\252\350\246\201.md" create mode 100644 "ceph/0 - \344\276\213\344\274\232\347\272\252\350\246\201/2023\345\217\214\345\221\250\344\276\213\344\274\232\344\274\232\350\256\256\347\272\252\350\246\201.md" create mode 100644 "ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/AArch64\345\271\263\345\217\260\344\270\21264K\345\206\205\346\240\270\351\241\265\347\233\270\345\205\263\351\227\256\351\242\230-\347\275\227\346\227\245\346\226\260.md" create mode 100644 "ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/Ceph\347\274\226\350\257\221\351\200\237\345\272\246\346\217\220\345\215\207\346\200\273\347\273\223 \351\231\210\347\273\255\345\274\272@chenxuqiang2022.md" create mode 100644 "ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/osd\344\270\255\347\232\204rocksdb\350\260\203\344\274\230\346\214\207\345\215\227 \346\261\240\344\277\241\346\263\275(XSKY).md" create mode 100644 "ceph/2 - \347\241\254\344\273\266\345\212\240\351\200\237/ceph\345\233\275\345\257\206\344\275\277\350\203\275.md" create mode 100644 "ceph/2 - \347\241\254\344\273\266\345\212\240\351\200\237/\351\262\262\351\271\217\347\241\254\344\273\266\345\212\240\351\200\237\345\231\250ceph\344\275\277\350\203\275\346\214\207\345\215\227.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/PR\346\217\220\344\272\244\345\274\202\345\270\270\351\227\256\351\242\230\350\256\260\345\275\225\345\215\225.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\345\244\232\347\211\210\346\234\254\345\225\206\344\270\232\347\273\264\344\277\235\350\247\243\345\206\263\346\226\271\346\241\210.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\346\261\211\345\214\226\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\350\264\250\351\207\217\347\234\213\346\212\244qa.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler DAOS\345\207\272\345\214\205\346\214\207\345\257\274\346\226\207\346\241\243 \345\206\257\346\230\245\346\235\276(\345\215\216\344\270\272).md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph14.2.8\347\274\226\350\257\221\346\214\207\345\257\274.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph15.2.15\347\274\226\350\257\221\346\214\207\345\257\274.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph15.2.5\347\274\226\350\257\221\346\214\207\345\257\274.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph16.2.7\347\274\226\350\257\221\346\214\207\345\257\274.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-22.03-LTS-SP1\347\274\226\350\257\221\345\256\211\350\243\205ceph14.2.15\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" create mode 100644 "ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-22.03-LTS-SP1\347\274\226\350\257\221\345\256\211\350\243\205ceph15.2.15\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" create mode 100644 "ceph/Ceph sig\347\273\204\347\256\200\344\273\213.md" create mode 100644 "ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25413\346\234\237(2022-11-01~2022-11-30).md" create mode 100644 "ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25414\346\234\237(2022-12-01_2022-12-31).md" create mode 100644 "ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25415\346\234\237(2023-1-01_2023-1-31).md" create mode 100644 "ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\357\274\2102022-8-1~2022-9-30\357\274\211.md" create mode 100644 "ceph/\346\212\200\346\234\257\346\212\245\345\221\212\345\210\227\350\241\250.md" diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 566955b..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# sds_doc - -#### Description -sds_doc is used to manage the technical documentation of the SDS sig - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md index 6932862..e94ae61 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,17 @@ # sds_doc -#### 介绍 -sds_doc is used to manage the technical documentation of the SDS sig +#### Description +The sds_doc is used to manage the technical documentation of the SDS sig.You are welcome to join us.Your contribution will be appreciated. -#### 软件架构 -软件架构说明 +#### Structure +~~~bash +|__ceph --Houses the doc and scripts of Ceph. +|__lustre --Houses the doc and scripts of Lustre. +|__....... --Houses the doc and scripts of Others. +~~~ -#### 安装教程 +#### Contact -1. xxxx -2. xxxx -3. xxxx +You can contact us in mailinglist at sds@openeuler.org or ceph@openeuler.org. -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git "a/ceph/0 - \344\276\213\344\274\232\347\272\252\350\246\201/2022\345\217\214\345\221\250\344\276\213\344\274\232\344\274\232\350\256\256\347\272\252\350\246\201.md" "b/ceph/0 - \344\276\213\344\274\232\347\272\252\350\246\201/2022\345\217\214\345\221\250\344\276\213\344\274\232\344\274\232\350\256\256\347\272\252\350\246\201.md" new file mode 100644 index 0000000..13974df --- /dev/null +++ "b/ceph/0 - \344\276\213\344\274\232\347\272\252\350\246\201/2022\345\217\214\345\221\250\344\276\213\344\274\232\344\274\232\350\256\256\347\272\252\350\246\201.md" @@ -0,0 +1,678 @@ +### 2022年12月13日 sig-SDS 双周例会纪要 +与会者(gitee id): +XSKY-池信泽(chixinze), 麒麟-孙立刚, 统信-杨晓亮, 微众银行-杨耿丹, 联想-傅治宇,sean rebn, 华, 华为-张峰, 华为-王增亮(wangzengliang), 华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 使用cephadm实现集群多节点部署功能(开发中) + - 解决一些稳定性问题,后端引擎已经可以正常执行 + - 评估crimson的multi-core的性能,有所提升 +- ceph NOF方案卸载客户端开销 + - 分享卸载方案 + - 尝试多种部署方式:单进程部署、多进程部署、共享Rados cluster部署 + - 完成功能和性能验证,整体性能效果达到预期 +2. 社区issue清理 +- 待处理的低分CVE:CVE-2022-3931、CVE-2022-3854 +- 合入PR:fix CVE-2022-3650(待同步到其余分支) +- 合入PR:ceph 集群运行问题-提示PY_SSIZE_T_CLEAN 问题(已修复,关闭) +3. 梳理需支持的ceph版本在openEuler上面做验证(孙立刚) +- 需要在openEuler20.03上做验证支持的ceph版本有:12.2.8/14.2.8/15.2.5/15.2.15/16.2.7(完成在openEuler的验证和发布编译指导) +4. 发布openEuler实习任务 +- 对主流开源存储软件ceph开展压缩、加密的性能优化以降低CPU开销(可借助鲲鹏硬件加速器) +- 在openEuler 22.03-LTS-SP1使能ceph14.2.15/ceph15.2.15的编译出包和部署 +- 整理并发布ceph应用基础白皮书(ceph部署、性能验证、常见问题FAQ) + +### 2022年11月29日 sig-SDS 双周例会纪要 + +与会者(gitee id): +XSKY-池信泽(chixinze), Linaro-xinliang.liu, Linaro-Kevin Zhao, 麒麟-孙立刚, 统信-杨晓亮, 微众银行-杨耿丹, 华为-张峰, 华为-罗日新(rosinL), 华为-王增亮(wangzengliang), 华为-游理通, 华为-刘秦飞(liuqinfei) +会议纲要 + +1. 社区需求进展(all) + +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 使用cephadm实现集群多节点部署功能(开发中) + - 解决一些稳定性问题,后端引擎已经可以正常执行 + - 评估crimson的multi-core的性能,有所提升 +- ceph NOF方案卸载客户端开销 + - 分享卸载方案 + - 尝试多种部署方式:单进程部署、多进程部署、共享Rados cluster部署 + - 完成功能和性能验证,整体性能效果达到预期 +2. 社区issue清理 +- 待处理的低分CVE:CVE-2022-3650、CVE-2022-3931、CVE-2022-3854 +- ceph 集群运行问题-提示PY_SSIZE_T_CLEAN 问题(已提交修复PR) +- 容器化ceph运行问题(初步定位为容器问题) +- ceph-14.2.15 rpm包构建需要限制snappy-devel包的版本<1.1.9(已修复,关闭) +- ceph-14.2.15 rpm包构建失败,报错error: pasting "LibRGW_" and "(" does not give a valid preprocessing token(非发布版本,关闭) +- OpenEuler支持多版本Ceph以及相关软件依赖包(已出编译指导,待将RPM包引入openEuler源) +- ceph build problem in openEuler:22.03:LTS(因内存不足导致构建失败,已修复,关闭) +3. 梳理需支持的ceph版本在openEuler上面做验证(孙立刚) + - 经梳理,需要在openEuler20.03上做验证支持的ceph版本有:12.2.8/14.2.8/15.2.5/15.2.15/16.2.7(出编译指导) + - 孙立刚牵头验证:15.2.5/15.2.15(已在麒麟验证) + - 王增亮牵头验证:14.2.8/16.2.7(已经在openEuler20.03SP3验证,已发布编译指导) + - 在openEuler20.03上发布14.2.8RPM包(游理通) +4. Lustre openEuler版本发布(xinliang.liu) +- Lustre openEuler22.03版本已适配,上传上游社区中,task ticket: https://linaro.atlassian.net/browse/STOR-159 +- 版本临时放置:https://uk.linaro.cloud/repo/devel/lustre/v2.15/oe2203/ +- 期望在openEuler仓库出版本,流程,, 构建,基本安装测试CI, rpm发布到repo.openeuler.org需要卡openEuler发布时间点,如SP1等 +5. 发布《鲲鹏硬件加速器ceph使能指南》https://gitee.com/src-openeuler/ceph/wikis/%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/%E9%B2%B2%E9%B9%8F%E7%A1%AC%E4%BB%B6%E5%8A%A0%E9%80%9F%E5%99%A8ceph%E4%BD%BF%E8%83%BD%E6%8C%87%E5%8D%97 +6. 跟踪openEuler 22.03LTS podman升级到3.3.4 (王增亮) +- 与cloudnative沟通,已经将22.03-LTS-NEXT分支升级到3.3.4版本,22.03-LTS和22.03-LTS-SP1已不支持升级,待后续升级22.03-LTS-SP2分支 + + +### 2022年11月15日 sig-SDS 双周例会纪要 + +与会者(gitee id): +XSKY-池信泽(chixinze), XSKY-邹卓辉(zhuohui), 麒麟-孙立刚, 麒麟-滕磊, 微众银行-杨耿丹, 软通-王东兴, hgzhaod, 华为-张峰, 华为-罗日新(rosinL), 华为-王增亮(wangzengliang), 华为-刘秦飞(liuqinfei) +会议纲要 + +1. 社区需求进展(all) + +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 使用cephadm实现集群多节点部署功能 + - 解决一些稳定性问题,后端引擎已经可以正常执行 + - 目前在解决一些功能性异常问题 +- ceph NOF方案卸载客户端开销 + - 分享卸载方案 + - 尝试多种部署方式:单进程部署、多进程部署、共享Rados cluster部署 + - 完成功能和性能验证,整体性能效果达到预期 +2. 社区issue清理 +- 添加sw架构 + - 已经合入 +- [sync] PR-103: 修复fmt-devel版本号、pkgconfig(libudev)、多线程编译等3个遗留问题 + - 受限于容器内存,决定修改并发数从20到16,如此可以提升构建成功率 +- CVE-2022-0670 + - 回合上游社区的修复patch,同意合入 +- 22.03-LTS分支已经落后于master多个PR + - 同意从master直接同步到22.03LTS分支,保留每个PR的信息 +3. 梳理需支持的ceph版本在openEuler上面做验证(孙立刚) + - 经梳理,需要在openEuler20.03上做验证支持的ceph版本有:12.2.8/14.2.8/15.2.5/15.2.15/16.2.7(出编译指导) + - 孙立刚牵头验证:15.2.5/15.2.15(已在麒麟验证) + - 王增亮牵头验证:14.2.8/16.2.7(已经在openEuler20.03SP3验证,待发布编译指导) + - 在openEuler20.03上发布14.2.8RPM包(游理通) + **遗留问题** +1. 跟踪openEuler 22.03LTS podman升级到3.3.4 (王增亮) + +### 2022年11月2日 sig-SDS 双周例会纪要 + +与会者(gitee id): +统信-杨晓亮, 麒麟-孙立刚, 麒麟-滕磊, 麒麟-徐赫, 华为-张峰, 华为-罗日新(rosinL), 华为-孙榕棋, 华为-王增亮(wangzengliang), 华为-刘秦飞(liuqinfei) +会议纲要 + +1. 社区需求进展(all) + +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 使用cephadm实现集群多节点部署功能 + - 解决一些稳定性问题,后端引擎已经可以正常执行 + - 目前在解决一些功能性异常问题 +- ceph NOF方案卸载客户端开销 + - 分享卸载方案 + - 尝试多种部署方式:单进程部署、多进程部署、共享Rados cluster部署 + - 完成功能和性能验证,整体性能效果达到预期 +2. 社区issue清理 +- 添加sw架构 + - 待完善在申威架构下的验证结果 +- [sync] PR-103: 修复fmt-devel版本号、pkgconfig(libudev)、多线程编译等3个遗留问题 + - 在arm下面构建失败,报内存不足导致了OOM,需要提升内存配置或者降低并发数 +3. sig-SDS meetup会议预告 +- 时间:2022年11月11日2:00 PM +- 地点:线上直播,具体链接请查看openEuler官网 +- 议题:涵盖分布式存储组件的Arm使能和性能优化:ceph元数据缓存策略、bcache加速ceph、ceph性能调优方法、mayastor & spdk、存储性能优化六板斧 +4. 梳理需支持的ceph版本在openEuler上面做验证(孙立刚) +- 经梳理,需要在openEuler20.03上做验证支持的ceph版本有:12.2.8/14.2.8/15.2.5/15.2.15/16.2.7 + - 孙立刚牵头验证:15.2.5/15.2.15 + - 王增亮牵头验证:14.2.8/16.2.7 + **遗留问题** +1. 跟踪openEuler 22.03LTS podman升级到3.3.4 (王增亮) + +### 2022年10月18日 sig-SDS 双周例会纪要 + +与会者(gitee id): +张道龙, 魏强, yz, lsx, 华为-张峰, 华为-罗日新(rosinL), 华为-杨建明, 华为-刘秦飞(liuqinfei) +会议纲要 + +1. 社区需求进展(all) + +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 解决一些稳定性问题,已经提PR到上游社区,后端引擎已经可以正常执行 + - 使用cephadm实现集群多节点部署功能 + - 目前在解决OSD异常down的问题 +- ceph NOF方案卸载客户端开销 + - 分享卸载方案,待后续推动解决开销优化、性能瓶颈等问题 + - 通过调整librbd线程数和绑核,单个rbd性能提升较多,但是扩展性不佳 + - 尝试多种部署方式:单进程部署、多进程部署、共享Rados cluster部署 +2. 社区issue清理 +- 申请添加ceph-iscsi和tcmu-runner包(张道龙) + - 使用场景:视频监控块存储、裸机挂载、替换IP-SAN存储 + - 优点:相比内核模块krbd,librbd的可维护性更强,灵活性高 + - 结论:同意在sig-SDS引入ceph-iscsi,建议将通用存储组件tcmu-runner引入sig-storage +3. 云原生存储mayastor介绍(杨健明) + + **遗留问题** +1. 梳理必要需支持的ceph版本,在openEuler上面做验证(滕磊) +2. 制定分级支持ceph版本(全量验证、基本验证、未验证)的里程碑(刘秦飞) +3. 跟踪openEuler 22.03LTS podman升级到3.3.4 (王增亮) + +### 2022年9月27日 sig-SDS 双周例会纪要 + +与会者(gitee id): +SKY-池信泽(chixinze), 统信-杨晓亮(yangxiaoliang), 麒麟-滕磊, 麒麟-杨昭, 陆华成, 华为-张峰, 华为-陈续强, 华为-罗日新(rosinL), 华为-戴志威(DaiZhiwei), 华为-王增亮(wangzengliang), 华为-孙榕棋, 华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 解决了一些稳定性问题,已经提PR到上游社区,后端引擎已经可以正常执行 + - 开发patch实现集群多节点部署功能 +- ceph NOF方案卸载客户端开销 + - 分享卸载方案,待后续推动解决开销优化、性能瓶颈等问题 + - 通过调整librbd线程数和绑核,单个rbd性能提升较多,但是扩展性不佳 + - 正在优化librbd的函数热点和falsesharing问题 +2. 社区issue清理 +- openEuler22.03编译ceph16.2.7失败 + - 待进一步分析如何通过提patch将修复固化下来 +- ceph-deploy 适配openEuler 22.03 LTS + - 已经合入主线,待推动合入openEuler22.03 +- ceph容器化部署的支持 + - 使用麒麟提供的包,已经可以支持容器化部署 + - openEuler待升级podman以支持部署 + - podman升级3.3.4已经合入master,待合入22.03-LTS +3. ceph rgw压缩加密特性增强(戴志威) +- UADK文档正在整理中,如果有需求可以向作者索取 +4. ceph编译效率优化(陈续强) +- 优化内容将在博客中分享(代码优化待投入) + + **遗留问题** +1. 梳理必要需支持的ceph版本,在openEuler上面做验证(滕磊) + - 正在梳理需求版本,待兼顾社区需求确定需要支持的版本; +2. 制定分级支持ceph版本(全量验证、基本验证、未验证)的里程碑(刘秦飞) + - 待输入项; +3. 跟踪openEuler 22.03LTS podman升级到3.3.4 (王增亮) + +### 2022年9月13日 sig-SDS 双周例会纪要 + +与会者(gitee id): +统信-杨晓亮(yangxiaoliang), 麒麟-滕磊, 华为-张峰, 华为-罗日新(rosinL), 华为-王增亮(wangzengliang),华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 解决了一些稳定性问题,已经提PR到上游社区,后端引擎已经可以正常执行 + - 正在处理集群部署的问题 +- ceph NOF方案卸载客户端开销 + - 分享卸载方案,待后续推动解决开销优化、性能瓶颈等问题 + - 通过调整librbd线程数和绑核,单个rbd性能提升较多,但是扩展性不佳 +2. 社区issue清理 +- CVE-2022-2132 + - 该CVE影响的是ceph依赖的第三方组件dpdk,由于其暂未编入版本,对版本无影响,可以关闭 +- openEuler22.03编译ceph16.2.7失败 + - 待进一步分析如何通过提patch将修复固化下来 +- ceph-deploy 适配openEuler 22.03 LTS + - 已经合入主线,待推动合入openEuler22.03 +- ceph容器化部署的支持 + - 使用麒麟提供的包,已经可以支持容器化部署 + - openEuler待升级podman以支持部署 + - podman升级3.3.4已经合入master,待合入22.03-LTS + + **遗留问题** +1. 梳理必要需支持的ceph版本,在openEuler上面做验证(滕磊) + - 正在梳理需求版本,待兼顾社区需求确定需要支持的版本; +2. 制定分级支持ceph版本(全量验证、基本验证、未验证)的里程碑(刘秦飞) + - 待输入项; +3. 跟踪openEuler 22.03LTS podman升级到3.3.4 (王增亮) + +### 标题2022年8月30日 sig-SDS 双周例会纪要 +与会者(gitee id): +统信-杨晓亮(yangxiaoliang), 联想-傅治宇(fantastic2085), (Tom_zc), (gameoverboss), 华为-罗日新(rosinL), 华为-冯春松(FengChunsong), 华为-王增亮(wangzengliang),华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 解决了一些稳定性问题,已经提PR到上游社区,后端引擎已经可以正常执行 + - 正在处理集群部署的问题 +2. 社区issue清理 +- openeuler20升级ceph12到ceph15及更高版本 + - 待麒麟整理需求后一起讨论 +- Ceph15.2.9修改系统时间为前一天后IO挂起 + - 非openEuler出现的问题,待进一步沟通 +- ceph.spec中各分支普遍存在EPOCH号不一致 + - 不特意提PR统一EPOCH,后续合入PR时注意保持一致,请maintainer关注 +- Upgrade to latest release [ceph: 16.2.7 -> 17.2.0]【关闭】 + - 16.2.7版本相对较稳定,暂不升级到最新版本 +- ceph容器化部署的支持 + - 使用麒麟提供的包,已经可以支持容器化部署 + - openEuler待升级podman以支持部署 + - podman升级3.3.4已经合入master,待合入22.03-LTS +- Bcache方案,在arm机器重启后,bcache配置信息丢失(对比x86的正常) + - openEuler已经做过该方案验证,待反馈进一步的问题信息 + - 请参考https://support.huaweicloud.com/usermanual-kunpengsdss/kunpengbcacheeuler_06_0002.html +3. DAOS 安装部署介绍(冯春松) +4. ceph NOF方案卸载客户端开销(刘秦飞) +- 待后续推动解决开销优化、性能瓶颈等问题 +5. 提供openEuler支持ceph多版本商业维保的解决方案 +- 将对多版本需求提供技术支持,具体可联系杨晓亮 + **遗留问题** +1. 梳理必要需支持的ceph版本,在openEuler上面做验证(滕磊) +2. 制定分级支持ceph版本(全量验证、基本验证、未验证)的里程碑(刘秦飞) +3. 跟踪openEuler 22.03LTS podman升级到3.3.4 (王增亮) + +### 2022年8月9日 sig-SDS 双周例会纪要 +与会者(gitee id): +XSKY-池信泽, 统信-杨晓亮(yangxiaoliang),超聚变-董贤信, 联想-傅治宇, 华为-张峰, 华为-罗日新(rosinL), 华为-冯春松(FengChunsong), 华为-王增亮(wangzengliang),华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 解决了一些稳定性问题,已经提PR到上游社区,后端引擎已经可以正常执行 +2. 社区issue清理 +- CVE-2020-10736(已关闭) +- 关于selinux报日志,分析为非问题(已关闭) +- ceph容器化部署的支持 + - 使用麒麟提供的包,已经可以支持容器化部署 + - openEuler待升级podman以支持部署 + - podman升级3.3.4已经合入master,待合入22.03-LTS + + **遗留问题** +1. 梳理必要需支持的ceph版本,在openEuler上面做验证(滕磊) + 待梳理; +2. 制定分级支持ceph版本(全量验证、基本验证、未验证)的里程碑(刘秦飞) + 待输入项; +3. 提供openEuler支持ceph多版本商业维保的解决方案(杨晓亮) + 待出具体解决方案; + +### 2022年7月26日 sig-SDS 双周例会纪要 +与会者(gitee id): +XSKY-池信泽, 统信-杨晓亮(yangxiaoliang), 麒麟-滕磊, 超聚变-董贤信, 联想-傅治宇, 陆华成, 华为-张峰, 华为-罗日新(rosinL), 华为-冯春松(FengChunsong), 华为-王增亮(wangzengliang),华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- 在Ceph上面使能鲲鹏加速器进行压缩和加密的特性(戴志威): + - 已合入 +- 优化Ceph性能的特性(冯春松): + - 讲解3个性能优化特性:numa自动亲和、TCP的零拷贝、OSD线程均衡 + - 已合入 +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 在解决一些稳定性问题,遇到3个问题已经提PR到上游社区 +2. 社区issue清理 +- CVE-2020-10736(已分析,可关闭) +- ceph容器化部署的支持(openEuler待升级podman以支持部署) +- 使用麒麟提供的包,已经可以支持容器化部署 +3. sig-Ceph更名为sig-SDS,拟定引入的分布式组件 + 待引入分布式组件并制定里程碑 +- 待引入openeuler-sds + - 1、gluster fS + - 2、DAOS + - 3、Beegfs + - 4、lustre + - 5、curve + - 6、mayastor + - 7、minio + - 8、nfs-ganasha +- 待引入的组件: + - Pmdk + - MPI-io + - Iouring + - Openssl + - Xxhash + - Isal +- 已经引入,需要纳入技术讨论范围 + - SPDK + - Tcmalloc +4. DAOS ARM64调测之旅(冯春松) + +遗留问题 +1. 梳理必要需支持的ceph版本,在openEuler上面做验证(滕磊) + 待梳理; +2. 制定分级支持ceph版本(全量验证、基本验证、未验证)的里程碑(刘秦飞) + 待输入项; +3. 将rocksdb在ceph中的使用整理成针对不同业务场景的调优指南(池信泽) + 待整理; +4. 提供openEuler支持ceph多版本商业维保的解决方案(杨晓亮) + 待出具体解决方案; + +### 2022年7月12日 sig-SDS 双周例会 +与会者(gitee id): +XSKY-池信泽, 统信-杨晓亮(yangxiaoliang), 超聚变-董贤信, 联想-傅治宇, 麒麟-滕磊, 麒麟-杨昭, 麒麟-徐赫,Piliops-LEO, Piliops-Dennis Huang, 陆华成, 华为-张峰,华为-罗日新(rosinL),华为-刘志强(liuzhiqiang26),华为-王增亮(wangzengliang),华为-刘秦飞(liuqinfei) + **会议纲要** +1.社区需求进展(all) +- 在Ceph上面使能鲲鹏加速器进行压缩和加密的特性(戴志威): + - 已经提交,待合入 +- 优化Ceph性能的特性(冯春松): + - 讲解3个性能优化特性:numa自动亲和、TCP的零拷贝、OSD线程均衡 + - 已经提交,待合入 +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 正在解决一些稳定性问题,遇到功能性能问题已经提PR到上游社区 +2. 提名罗日新为maintainer(负责ceph_dev的合入) +- 特性分支需由开发者提PR,由maintainer检视合入 +3. 社区issue清理 +- ceph容器化部署的支持(已拟定计划) +- osd占用内存过多,导致内存溢出,如何限制?(已修复,关闭) +- ceph上OSD(s) have broken BlueStore compression, unable to load:snappy异常(已修复,关闭) +- ceph执行整机迁移邻居节点出现oom(已修复,关闭) +- 在Bcache上启动osd报unable to read osd superblock错误(待跟踪kernel) +- 推动ceph原生社区对openEuler的支持(待推动) +- ceph.spec中各分支普遍存在EPOCH号不一致(待解决) +4. rocksdb在ceph中的使用(池信泽) +- 待整理成技术方案,针对不同业务场景的调优指南; +5. Ceph场景中Pliops XDP的应用方向及Rocksdb对比(黄忠华) +- 元数据的支持:对ceph做侵入性修改,取代rocksdb; +- 待评估在openEuler中建立特性分支适配ceph并验证性能; +6. Ceph多版本的支持(刘志强) +- 1,如何满足“现在很多用户都是切换了openeuler系统,但是ceph还是使用centos的”需求 + - 1)方案1:针对openeuler LTS编译发布不同的ceph版本 + - 2)方案2:针对社区centos ceph各个版本,在openeuler LTS上验证并提供对应的依赖包。如果存在由于glibc版本不一致而导致兼容性问题,是否有方案? + - 3)方案1和方案2混合使用。 + - 4)方案4:推动ceph原生发布openeuler lts上多个ceph版本,类似ceph官网发布的centos ceph多个版本(https://download.ceph.com/)。 +- 2,openEuler如何支持ceph多版本的需求 + - 1,在OS上面支持ceph的全量版本,推荐使用openEuler自带版本 + - 分级支持版本(全量验证、基本验证、未验证),支撑里程碑(刘秦飞) + - 2,按照计划表对ceph的RPM包在openEuler的安装部署做一些基础验证,并给出指南(重编、替换依赖包。。) + - 梳理必要需要支持的版本,在openEuler上面做验证(滕磊) + - 3,持续推动ceph原生社区对openEuler的支持(罗日新) + - 基金赞助 + - 提供构建资源验证、验证报告、供原生社区使用 + - 4,提供商业维保的解决方案(XSKY) +- 3,openEuler构建ceph容器镜像、提供镜像源,待与容器sig组沟通并评估必要性 +- 4,支持cephadm的部署 + - 4.1 制作容器镜像 + - https://github.com/ceph/ceph-container + - 4.2 openEuler 22.03 提供的podman版本只有1.0.10,要升级podman(验证4.0.2/3.4.4版本可以支持拉取官方镜像源16.2.7部署,sig-cloudnative已有PR待合入) + - https://gitee.com/src-openeuler/podman/issues/I5EQR0?from=project-issue +- 5,麒麟OS上支持ceph16.2.7的安装部署(傅治宇、滕磊) + - 1,使用cephadm,用ceph官方镜像源,安装部署ceph + - 2,Kylin OS, 已经支撑cephadm(Kylin提供的包)的安装,且可以安装部署ceph + - 3,在麒麟上使用docker 安装部署ceph遇到了异常,解决方案: + - 在麒麟上基于ceph源码编译出RPM包、出容器镜像 + - 在openEuler20.03上面构建出16.2.7版本的包,开展验证 + - 走正式发布流程 + - 使用原生的二进制,ceph依赖高版本的glibc、python,相关的依赖包是否都需要重新编译 + - 需拉glibc\python的专家确认可行方案 + - 麒麟基于openEuler22.03出新的OS版本 +- 6,推动计划(7月26日前完成) + - 1,确认最终方案(7月13日,傅治宇发起问题需求) + - glibc maintainer + - python maintainer + - 2,适配和重编(麒麟-滕磊,确认正式的接口人) + - 20.03需要关注对python3的支持 + - 3,测试验证,倾向于容器化的部署验证(傅治宇开展场景测试验证、刘秦飞提供ceph CI验证支持) + + **遗留问题** +- 1. 提名罗日新为maintainer(刘秦飞) +- 2. 制定分级支持ceph版本(全量验证、基本验证、未验证)的里程碑(刘秦飞) +- 3. 将rocksdb在ceph中的使用整理成针对不同业务场景的调优指南(池信泽) +- 4. 提供openEuler支持ceph多版本商业维保的解决方案(池信泽) +- 5. 梳理必要需支持的ceph版本,在openEuler上面做验证(滕磊) +- 6. 支持在麒麟OS容器化部署ceph16.2.7(傅治宇) + +### 2022年6月28日 sig-Ceph 双周例会 +与会者(gitee id): +统信-杨晓亮(yangxiaoliang), 超聚变-董贤信, 华为-冯春松(FengChunsong),华为-张峰,华为-王增亮(wangzengliang),华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- 在Ceph上面使能鲲鹏加速器进行压缩和加密的特性(戴志威): + - 已经提交,待合入 +- 优化Ceph性能的特性(冯春松): + - 讲解3个性能优化特性:numa自动亲和、TCP的零拷贝、OSD线程均衡 + - 待验证功能实现 +- crimson特性评估和使能(韩峰哲/罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 验证发现存在一些稳定性问题,待解决 +2. 社区issue进展(罗日新) +- snappy1.1.9版本遇到问题(https://gitee.com/src-openeuler/ceph/issues/I5D4PW?from=project-issue) + - 已经回合社区patch修复(王增亮) +3. BeeGFS 在Arm64的版本使能(刘秦飞) + +### 2022年6月14日 sig-Ceph 双周例会 +与会者(gitee id): +麒麟-滕磊, 麒麟-孙立刚, 统信-杨晓亮, 统信-苟浩, 华为-冯春松(FengChunsong),华为-张峰,华为-罗日新(rosinL),华为-王增亮(wangzengliang),陆华成,wl,华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- 在Ceph上面使能鲲鹏加速器进行压缩和加密的特性(戴志威): + - 合入代码遇到一些工程问题待解决 +- 优化Ceph性能的特性(冯春松): + - 讲解3个性能优化特性:numa自动亲和、TCP的零拷贝、OSD线程均衡 +- crimson特性评估和使能(韩峰哲/罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 +2. 社区issue进展(罗日新) +- CVE-2021-20288(已关闭): + - 修复PR经过检视已经合入 +- ceph OSD内存溢出问题 + - 当前该问题已经通过调整kernel pagesize为4k解决 + - 对于后续问题的处理,期望保留现场环境以分析解决根本问题 + +**遗留问题** +1. 待调研openEuler对于维护多ceph版本源的方法 @董贤信 @liuqinfei + +### 2022年5月24日 sig-Ceph 双周例会 + +与会者(gitee id): +冯春松(FengChunsong),韩峰哲(HanFengzhe),罗日新 (rosinL),王增亮(wangzengliang),杨晓亮,池信泽(chixinze),陆华成,刘秦飞(liuqinfei) +**会议纲要** +1. 社区需求进展(all) +- 在Ceph上面使能鲲鹏加速器进行压缩和加密的特性(戴志威): + - 已经创建分支,计划在本周合入部分代码 +- 优化Ceph性能的特性(冯春松): + - 计划在本周合入 +- crimson特性评估和使能(韩峰哲): + - 当前在x86环境上跑crimson遇到一些阻塞问题 + - 单线程时延,crimson与经典bluestore相比,时延降低30%+ +2. 社区issue进展(罗日新) +- CVE-2021-20288: + - 已经适配patch提PR,目前qa用例测试通过,待检视合入 +- 升级master版本为ceph16.2.7(done): + - 已经合入 + - https://gitee.com/src-openeuler/ceph/issues/I5873J可关闭 +- ceph OSD内存溢出问题 + - 需注意pagesize配置是否生效 + + **遗留问题** +1. CVE-2021-20288 @rosinL +2. 待调研openEuler对于维护多ceph版本源的方法 @董贤信 @liuqinfei + + +### 2022年5月10日 sig-Ceph 双周例会 + +与会者(gitee id): +戴志威(Zhiwe-Dai),冯春松(FengChunsong),韩峰哲(HanFengzhe),吴启庆(wuqiqing_try),罗日新 (rosinL),王增亮(wangzengliang),董贤信,杨晓亮,孙立刚(sunligang), 滕磊, 池信泽, Dennis Huang, Leo Li, PRASAD VENKATACHAR, Sudhanshu Jain, Tony Afshary, Watson, 刘秦飞(liuqinfei) +**会议纲要** +1. 社区需求进展(all) +- 在Ceph上面使能鲲鹏加速器进行压缩和加密的特性(戴志威):已经创建分支,计划在本周合入部分代码 +- 优化Ceph性能的特性(冯春松):计划在5月中旬合入 +- crimson特性评估和使能(韩峰哲):当前在x86环境上跑crimson遇到一些阻塞问题 +- 其余需求待推动 +2. 社区issue进展(罗日新) +- CVE-2021-20288: 已经适配patch提PR,由于修改内容较多,待跑完qa用例后检视合入(待完成) +- 升级master版本为ceph16.2.7:已经提PR,其中有2个依赖包缺失,对方正在解 (阻塞中) +- osd占用内存过多,导致内存溢出,如何限制:分析有修改kernel pagesize、修改tcmalloc、使用合入修复patch的openEuler gperftools三种方法,具体待整理成说明文档 +- 适配原生社区的cephadm部署工具:openEuler暂未提供给组件制作镜像的途径,待按照需求 +3. Pliops在企业级存储的应用(Leo Li) +- 介绍了Pliops的工作原理以及在企业级存储的应用案例,待探索在openEuler ceph的使能方式 + + **遗留问题** +1,遗留问题CVE-2021-20288 @rosinL +2,待调研openEuler对于维护多ceph版本源的方法 @董贤信 @liuqinfei + +### 2022年4月26日 sig-Ceph 双周例会 + +与会者(gitee id): +戴志威(Zhiwe-Dai),张峰(zhangfeng),冯春松(FengChunsong),韩峰哲(HanFengzhe),吴启庆(wuqiqing_try),罗日新 (rosinL),王增亮(wangzengliang),董贤信,杨晓亮,孙立刚(sunligang),徐赫, 汪宇, 滕磊, 刘秦飞(liuqinfei) +**会议纲要** +1. 社区需求进展(all) +- 在Ceph上面使能鲲鹏加速器进行压缩和加密的特性(戴志威):计划在5月1日前合入部分代码 +- 优化Ceph性能的特性(冯春松):计划在5月1日前合入 +- crimson特性评估和使能(韩峰哲):当前在arm使能过程中遇到一些问题 +- 其余需求待推动 +2. ceph社区洞察报告(罗日新) +- 主要包括ceph原生社区的版本发布、重点PR、重点会议要点等内容 [传送门](https://www.openeuler.org/zh/interaction/blog-list/) +3. 社区issue进展(罗日新) +- CVE-2019-3821: 查看对12.2.8版本无影响,会议结论可关闭 +- CVE-2020-1716: 目前ceph-ansible只有21.09分支受影响,但是其已经过了维护生命周期,会议结论可关闭 +- CVE-2021-20288: 经过分析,需要回合patch以修复该CVE(待完成) +- 需要创建ceph-deploy openEuler-22.03-LTS分支以提供yum源安装: 已经提PR,待合入 +- 升级master版本为ceph16.2.7:已经提PR,其中有2个依赖包缺失,对方正在解,阻塞中 +- osd占用内存过多,导致内存溢出,如何限制:由于问题难以复现,待复现后再基于内存占用进一步分析 +- 在Bcache上启动osd报unable to read osd superblock错误(待完成) + +4. 多版本策略讨论 +- 此处讨论的是:在同一OS发行版本上对于ceph版本有不同于发行版中ceph版本的需求 +- 由于涉及到较多的依赖完善、兼容性测试,可以根据需求迫切性决定是否适配多版本,并充分利用社区优势,一次投入,多方受益 +5. 适配原生社区的cephadm部署工具 +- 未适配的主要问题:需要openEuler社区生成和维护镜像源 +- 原则保持与原生社区一致,在openEuler使能cephadm(待跟进) + + **遗留问题** +1,遗留问题CVE-2021-20288 @rosinL +2,需要创建ceph-deploy openEuler-22.03-LTS分支以提供yum源安装 @liuqinfei +3,待调研openEuler社区对于制作和维护镜像的方法 @sunligang @liuqinfei +4,待调研openEuler对于维护多ceph版本源的方法 @董贤信 @liuqinfei + + + +### 2022年4月14日 sig-Ceph openEuler Developer Day 2022 + +与会者(gitee id): +戴志威(Zhiwe-Dai),张峰(zhangfeng),冯春松(FengChunsong),韩峰哲(HanFengzhe),吴启庆(wuqiqing_try),罗日新 (rosinL),陈续强,王增亮(wangzengliang),黄骏 (huangjun),麻宇鑫,王肖萌,刘志强 (liuzhiqiang26),张海亮,Erik Yuan,蔡连春,chensiyu,张启栋,董贤信,杨建亭,杨晓亮,纪涛,赵家敏,金晓萱,杨龙康(Markeryang),刘秦飞(liuqinfei) + + **会议纲要** +1. openEuler-22.09创新版本规划 +- 在Ceph上面使能鲲鹏加速器进行压缩和加密的特性(戴志威) + 支持鲲鹏加速器进行压缩; + 支持鲲鹏加速器进行加密; + 开发计划:上半年开源到ceph_dev仓库,争取合入22.09版本 +- 优化Ceph性能的特性(冯春松) + 线程分区 + osd op线程根据队列长度动态调配线程池 + tcp收包零拷贝 + message线程负载均衡等系列补丁 + 开发计划:建议合入22.09分支,待有多个特性的整体收益分析评估后,在考虑合入22.03LTS +- ceph国密使能 + 软件层面使能国密 + 将国密开销卸载到UADK + 开发计划:视后续调研和使能情况定 +- crimson特性评估和使能 + 开发计划:视后续使能情况定 +- ceph集群关机、开机的自动化实现 + 该功能属于特定场景的自动化功能,建议由相关人员自行实现 +- RGW 不支持压缩和加密共存,期望实现支持 + 具体需求待明确 + 开发计划:视后续调研和使能情况定 + +2. ceph-sig相关问题讨论 +- 集群安装部署工具 + ceph-deploy:已经在openEuler引入更新的ceph-deploy2.1.0版本,后续继续维护 + ceph-admin:依赖镜像,openEuler暂不支持,待后续投入支持 + ceph-ansible:支持按照配置表对ceph集群的自动化安装部署 +- ceph集群状态监控工具 + ceph集成的ceph-mgr-dashboard +- ceph版本控制的策略以满足各厂商的多样化需求 + 参照Redhat的策略 + 中国移动已经提出过版本需求 +- openEuler的ceph与Redhat版本的区别 + 原则上与原生社区保持一致,共同构建openEuler社区生态 + 对于在原生社区合入周期较长的特性,充分了解其价值后建议合入openEuler版本,并充分利用openEuler工程能力保障版本质量 + 使能众生态产品关注的特性,提升openEuler版本的使用体验 +3. sig-Ceph可持续发展讨论 +- 当前ceph-sig2个仓库的定位 + - src仓库:https://gitee.com/src-openeuler/ceph + tar包+patch的版本仓库,用于持续维护openEuler的版本包质量,主要涉及版本选型、特性筛选合入、版本质量看护 + - 源码仓库:https://gitee.com/openeuler/ceph_dev + 源码类型的特性开发仓库,适用于具体特性的持续开发、检视,并在开源社区呈现,各开发者可以提PR创建自己的特性分支,待特性开发稳定后,可以提patch合入版本仓库的分支 +- ceph版本质量看护 + - 当前已经移植了ceph qa用例到openEuler + - 确定了看护规则并搭建了版本质量看板:http://119.3.219.112:23002/ +- ceph-sig微信讨论群(请扫码加入,如遇困难可以反馈liuqinfei5@hisilicon.com) + + **遗留问题** +1,ceph版本控制的策略以满足各厂商的多样化需求 + +![输入图片说明](https://images.gitee.com/uploads/images/2022/0414/143656_902c9785_1665388.png "mmqrcode1649906605510.png") + + +### 2022年3月29日 + + **会议纲要** +1,鲲鹏加速器在ceph压缩的使能进展(戴志威) +- 初步摸底使用UADK后可以大幅降低CPU开销; +- 将通用服务器的压缩性能进一步提升; +- 压缩率:UADK采用的是通用算法,具体待采用标准压缩数据集进行测试给出数据 + + **遗留问题** +1,升版本后fmt-devel、pkgconfig(libudev)、多线程编译等3个遗留问题 @liuqinfei +2,遗留问题CVE-2021-20288、CVE-2019-3821 @chixinzhe +3,需要创建ceph-deploy openEuler-22.03-LTS分支以提供yum源安装 @liuqinfei +4,待发送鲲鹏UADK对于标准数据集的压缩率 @daizhiwei + + +### 2022年3月14日 + + **会议纲要** +1,确定ceph-sig两个主要的仓库:版本质量相关、大的项目计划展示在src仓库的wiki;特性开发的讨论放在源码仓库的issue和PR(修改README.md文档) + - src仓库:https://gitee.com/src-openeuler/ceph + - 源码仓库:https://gitee.com/openeuler/ceph_dev +2,讨论主要的特性需求和开发计划 + 围绕加速器开展一些特性开发 + - 将zlib/zitd卸载到加速器 + - 加密、哈希计算卸载到加速器 + 指导文档需求: + - 在源码仓的README.md中整理ceph相关的文档; + - 全链路的延迟统计指引文档; +3,双周例会时间调整为周二上午 9:15-10:00 + + **遗留问题** +1,完成qa用例测试,发出16.2.7版本ceph的测试质量报告; @wangzengliang +2,升版本后fmt-devel、pkgconfig(libudev)、多线程编译等3个遗留问题 @liuqinfei +3,遗留问题CVE-2021-20288、CVE-2019-3821 @chixinzhe +4,需要创建ceph-deploy openEuler-22.03-LTS分支以提供yum源安装 @liuqinfei + + +### 2022年2月28日 + + **会议纲要** +1,ceph openEuler-22.03-LTS 版本质量看护 + isa-l修复PR的工程构建存在问题,还未合入openEuler-22.03-LTS + qa用例问题清理进展,大部分已经完成,rbd模块存在少部分问题 + 遗留issue分派 + +2,ceph应用项目背景介绍(麻宇鑫) +- 1、在openEuler系统中是否存在ceph-deploy软件源? +- 答:python工具,可以直接pip安装。pip当前版本较低,需要源码安装。---》openeuler 22.03 LTS分支引入一个ceph-deploy版本。(liuqinfei提个issue初始化ceph-deploy版本)。 +- 2、如果没有能否借用centos系统的软件源? +- 答:建议先使用源码安装,后续ceph-deploy初始化完成后直接使用; +- 3、openEuler系统是否需要epel软件源 +- 答:openeuler需要用openeuler对应的源,用epel软件源无法保证安装和正常使用。 +- 4、如果客户只是间断性使用,ceph存储集群服务的开启、关闭 +- 答:ceph服务端开启和关闭功能是具备的,一键式开启和关闭需要用户自己处理。 + + + **遗留问题** +1,完成qa用例测试,发出16.2.7版本ceph的测试质量报告、【2203-LTS-arm/x86】ceph相关包安装到2203 LTS_os_round1源后,安装成功,但出现大量告警; + @wangzengliang +2,跟进isa-l修复PR的工程构建存在问题、升版本后fmt-devel、pkgconfig(libudev)、多线程编译等3个遗留问题 @liuqinfei +3,遗留问题CVE-2019-10222、CVE-2021-20288、CVE-2020-1700、CVE-2019-3821 @chixinzhe +4,需要创建ceph-deploy openEuler-22.03-LTS分支以提供yum源安装 @liuqinfei + + +### 2022年2月14日 + + **会议纲要** +1, ceph openEuler-22.03-LTS升级到16.2.7版本 + 1.1,@liuqinfei引入fmt、luarocks、python3-remoto、python3-kubernetes + 1.2,@luorixin合入isa-l修复的patch( 42个commit ),@wangzengliang跑qa中的isa-l模块的用例验证通过 +2,版本质量看护: + 2.1 当前qa框架已经搭建完成,需要在330前跑完筛选用例@wangzengliang。由于CI机器网络问题,无法直接由gitee上通过命令触发测试,目前采用手动触发。 + 2.2 20.03-LTS SP分支上合入代码不同步的问题,如果有新patch合入,需要关注并同步到其他分支,保持代码质量,同时利于/sync自动生成PR +3,关于ceph的技术项目开发 + 3.1 建议新建持续的特性分支,在分支上面完成特性功能开发后再同步主线 + 3.2 技术项目、纪要将在https://gitee.com/src-openeuler/ceph.wiki.git中持续跟踪 + 3.3 ceph加密使能@Zhiwei-Dai + + **遗留问题** +1,创建特性开发分支(非保护分支,不参与版本构建) @liuqinfei +2,将qa用例筛选规则整理后放到仓库wiki @wangzengliang +3,完善ceph加密使能的开发计划呈现在wiki中 @Zhiwei-Dai + diff --git "a/ceph/0 - \344\276\213\344\274\232\347\272\252\350\246\201/2023\345\217\214\345\221\250\344\276\213\344\274\232\344\274\232\350\256\256\347\272\252\350\246\201.md" "b/ceph/0 - \344\276\213\344\274\232\347\272\252\350\246\201/2023\345\217\214\345\221\250\344\276\213\344\274\232\344\274\232\350\256\256\347\272\252\350\246\201.md" new file mode 100644 index 0000000..364e8ee --- /dev/null +++ "b/ceph/0 - \344\276\213\344\274\232\347\272\252\350\246\201/2023\345\217\214\345\221\250\344\276\213\344\274\232\344\274\232\350\256\256\347\272\252\350\246\201.md" @@ -0,0 +1,123 @@ +### 2023年3月21日 sig-SDS 双周例会纪要 +与会者(gitee id): +XSKY-池信泽(chixinze), 麒麟-孙立刚, 麒麟-江新宇, 麒麟-滕磊, 统信-杨晓亮(yangxiaoliang), Linaro-Kevin Zhao,乐清知行-林永乐,上交-张天阳,华为-张峰,华为-王玺源, 华为-朱超, 华为-王增亮(wangzengliang), 华为-孙榕棋,华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展 +- crimson特性评估和使能(罗日新) + - 解决内存占用的问题 +- 推动ceph原生社区对openEuler的原生支持(王玺源) + - 梳理了ceph原生社区运作流程,待向tracker提feature + - https://etherpad.openeuler.org/p/ceph-support-openeuler + - 在user dev monthly meeting介绍了openEuler,建议参加developer meeting进行介绍(Kevin) +- ceph dashboard汉化支持 (朱超) + - 单独出RPM包本地已经实现 + - 门禁合入待适配工程npm源 + - 阻塞在nodejs包,已提交PR,待合入 +- 引入分布式存储组件lustre进展(刘新良) + - ZFS组件已经完成仓库初始化 +- 引入分布式存储组件LizardFS进展(林永乐) + - 新版dashboard已支持python3版本的支持 + - 验证了X86出包,Arm编译发现有问题待解 + +2. sig-SDS 5月meetup会议,议题征集中(池信泽) +- 时间:2023年5月19日下午 +- 地点:北京 + +### 2023年3月7日 sig-SDS 双周例会纪要 +与会者(gitee id): +XSKY-池信泽(chixinze), 麒麟-江新宇, 统信-杨晓亮(yangxiaoliang), 微众-杨耿丹,Linaro-刘新良,华为-罗日新(luorixin), 华为-朱超, 华为-王增亮(wangzengliang), sean10,华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展 +- crimson特性评估和使能(罗日新): + - 解决内存占用的问题 +- 推动ceph原生社区发布openEuler版本的rpm包(王玺源) + - 梳理了ceph原生社区运作流程,待向tracker提feature +- ceph dashboard汉化支持 (朱超) + - 单独出RPM包本地已经实现 + - 门禁合入待适配工程npm源 +- 引入分布式存储组件lustre进展(刘新良) + - ZFS组件已经完成仓库初始化 + +2.ceph生态思考(朱超) +- 决定创建一个源码仓库用于维护sig的文档 + +3、另一种分布式存储系统 LizardFS简介 (林永乐) +- LizardFS项目具备使用区块链防数据篡改等新特性,项目使用和配置对用户较友好; +- 计划将其适配和引入openEuler发布版本包 + +### 2023年2月21日 sig-SDS 双周例会纪要 +与会者(gitee id): +XSKY-池信泽(chixinze), 麒麟-滕磊, 麒麟-江新宇, 统信-杨晓亮(yangxiaoliang), 网易-吴宏松,电信数智-李治鹏, 中南空管-肖健, 华为-张峰, 华为-王玺源, 华为-罗日新(luorixin), 华为-冯春松(fengchunsong), 华为-朱超, 华为-孙榕棋, 华为-王增亮(wangzengliang), 华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展 +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 使用cephadm实现集群多节点部署功能(已开发,待合入) + - 评估crimson的multi-core的性能,有所提升 + - 使能seastore +2. 社区issue清理(all) +- 待处理的低分CVE:CVE-2022-3854(已合入,待关闭) +- cephadm卸载过程中有异常打印信息(已回合) +- 修复最新主线缺少python命令的bug(已合入) +3. ceph dashboard介绍(冯春松) +- 使用了哪些采集器:MGR、每个节点采集CPU等信息、IPMI采集CPU功耗信息 +- 是否有对象桶的数据监测:工具已经支持,待配置使能 +- 待发布归档到sig wiki空间 +4. ceph dashboard汉化支持 (朱超) +- 在ceph编译出包中新增一个语言包用于支持语言的自由选择 +5. 在openEuler 22.03-LTS-SP1使能ceph14.2.15/ceph15.2.15的编译出包和部署(朱超) +- 待发布归档到sig wiki空间 +6. 推动ceph原生社区发布openEuler版本的rpm包(王玺源) +- 目标是Ceph原生支持openEuler的编译,且发布openEuler的rpm包(定位是版本内容最新) +- 加入双周跟踪事项 + + +### 2023年2月7日 sig-SDS 双周例会纪要 +与会者(gitee id): +麒麟-杨昭, 统信-杨晓亮(yangxiaoliang), 微众银行-杨耿丹,网易-吴宏松,华为-张峰,华为-朱超, 华为-王增亮(wangzengliang), 华,魏强,江新宇, 华为-刘秦飞(liuqinfei) + **会议纲要** +1. 社区需求进展(all) +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 使用cephadm实现集群多节点部署功能(已开发,待合入) + - 评估crimson的multi-core的性能,有所提升 +2. 社区issue清理 +- 待处理的低分CVE:CVE-2022-3931(待关闭)、CVE-2022-3854(待刷新版本号) +- ceph build problem in openEuler:Mainline(缺少python命令,已关闭) +- cephadm卸载过程中有异常打印信息(已有上游patch,待回合) +- ceph相关包因缺少依赖selinux-policy-base导致无法安装(因被依赖包未放入update导致,已关闭) +- ceph-selinux卸载过程中有异常打印信息(延后处理) +3. 引入分布式存储组件lustre进展(刘新良) +- 在lustre上游社区增加对openEuler的支持(推动中) +- e2fsprogs 多版本支持 https://gitee.com/src-openeuler/e2fsprogs/issues/I67I0B +- kmod rpm包安装依赖问题 https://gitee.com/src-openeuler/openEuler-rpm-config/issues/I6D2HE +- 在openEuler构建lustre rpm包 +4. ceph dashboard汉化版本开发(杨晓亮) +- 在业务中对汉化有较强的特性需求 +- 启动需求特性的开发,优先合入ceph上游社区 +5. 在openEuler 22.03-LTS-SP1使能ceph14.2.15/ceph15.2.15的编译出包和部署(朱超) +- 完成对ceph15.2.15的适配,待提PR + +### 2023年1月10日 sig-SDS 双周例会纪要 +与会者(gitee id): +统信-杨晓亮, 微众银行-杨耿丹, 李治鹏, 华为-张峰, 华为-王增亮(wangzengliang), 华为-罗日新(rosinL) + **会议纲要** +1. 社区需求进展(all) +- crimson特性评估和使能(罗日新): + - 验证rbd的随机读写,通过vstart启动,做crimson与classic OSD的性能对比 + - 使用cephadm实现集群多节点部署功能(开发中) + - 解决一些稳定性问题,后端引擎已经可以正常执行 + - 评估crimson的multi-core的性能,有所提升 +2. 社区issue清理 +- CVE-2022-3931为误报,可以关闭 +- 待处理的低分CVE:CVE-2022-3854 +- 合入PR:使用vendoerid替换operneuler +- 合入PR:修复mgr服务启动过程中,加载模块k8sevent失败 +3. 梳理需支持的ceph版本在openEuler上面做验证(孙立刚) +- 需要在openEuler20.03上做验证支持的ceph版本有:12.2.8/14.2.8/15.2.5/15.2.15/16.2.7(完成在openEuler的验证和发布编译指导) +4. 发布openEuler实习任务,需要要申请者完成实习申请 +- 对主流开源存储软件ceph开展压缩、加密的性能优化以降低CPU开销(可借助鲲鹏硬件加速器) +- 在openEuler 22.03-LTS-SP1使能ceph14.2.15/ceph15.2.15的编译出包和部署 +- 整理并发布ceph应用基础白皮书(ceph部署、性能验证、常见问题FAQ) +5. 发布[openEuler SDS社区动态期刊_第14期(2022-12-01_2022-12-31)](#https://gitee.com/src-openeuler/ceph/wikis/openEuler%20SDS%E7%A4%BE%E5%8C%BA%E6%B4%9E%E5%AF%9F/openEuler%20SDS%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81%E6%9C%9F%E5%88%8A_%E7%AC%AC14%E6%9C%9F(2022-12-01_2022-12-31)) +6. 发布[AArch64平台上64K内核页相关问题](#https://gitee.com/src-openeuler/ceph/wikis/%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/AArch64%E5%B9%B3%E5%8F%B0%E4%B8%8A64K%E5%86%85%E6%A0%B8%E9%A1%B5%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98-%E7%BD%97%E6%97%A5%E6%96%B0),总结了AArch64平台上使用64K内核页相关问题。 \ No newline at end of file diff --git "a/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/AArch64\345\271\263\345\217\260\344\270\21264K\345\206\205\346\240\270\351\241\265\347\233\270\345\205\263\351\227\256\351\242\230-\347\275\227\346\227\245\346\226\260.md" "b/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/AArch64\345\271\263\345\217\260\344\270\21264K\345\206\205\346\240\270\351\241\265\347\233\270\345\205\263\351\227\256\351\242\230-\347\275\227\346\227\245\346\226\260.md" new file mode 100644 index 0000000..e2c90f5 --- /dev/null +++ "b/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/AArch64\345\271\263\345\217\260\344\270\21264K\345\206\205\346\240\270\351\241\265\347\233\270\345\205\263\351\227\256\351\242\230-\347\275\227\346\227\245\346\226\260.md" @@ -0,0 +1,35 @@ +# AArch64平台上64K内核页相关问题 + +## 64K内核页引入 +在第一个REHL/Centos使能AArch64平台的版本(7.x)(印象中不保证正确),就默认设置内核页大小为64K,具体原因估计是想获得更好的性能。使用64K内核页,能够较大地减少应用程序需要占用的页表条目数,在相同硬件页表条目数的情况下,能够提升tlb的命中率,提升程序的性能。更大的内核页,带来了更大粒度的内存分配,可能带来了大量的内存浪费,需要权衡。 + +应用程序基于性能考虑,有时需要申请完整的内核页大小的内存;网络收发包过程中需要完整的内核页;Linux PageCache需要完整的内核页;Linux存储设备中元数据管理需要完整的内核页等等。在需要完整的内核页的地方都可能会出现一些问题,由此可能带来轻则内存浪费,严重时出现内存泄漏,可能引发程序/内核的crash,更致命的存在引发数据的丢失风险。这些问题都需要特别的考虑。 + +由于X86平台上Linux 4K内核页的大规模使用,有些应用程序在设计之初就只考虑了页大小为4K的情况;有些则可能考虑了其他的页大小的情况,但是存在考虑不周并缺乏实际验证的情况。在将这些软件移植到AArch64平台64K内核页下时,就容易出现一些兼容性问题。下面列举之前实际碰到的一些问题,供参考。 + +## 内存浪费/内存泄露 +应用程序一般使用glibc或者其他库(如tcmalloc)对内存进行管理。这些内存管理程序一般对小块内存分配采取化零为整的方式,以内核页大小为单位从内核申请释放内存,然后内部切分成不同的粒度进行管理,以获取较高的性能和内存利用率。 + +以gperftools中的tcmalloc为例(google在github上两个内存管理项目TCMalloc和gperftools,区别[参见](https://google.github.io/tcmalloc/gperftools.html),下文中tcmalloc表示gperftools中的tcmalloc),tcmalloc提供了一个可以配置自身页大小的选项TPS(为了叙述方便下面以KP表示内核页,KPS表示内核页大小,TP表示tcmalloc中的页,TPS表示tcmalloc中配置的页大小),TPS默认为8K,可选配置为4K,8K,16K,32K,64K,128K,256K,一般配置为KPS的整数倍。在tcmalloc中以TPS为单位从内核申请释放内存,理论上讲,更大的TPS能够减少从内核申请内存的开销,有着更好的性能;更大的TPS被切分给更多生命周期不一样的对象,被释放的概率就会越小,带来更大的内存浪费。 +### Ceph中tcmalloc内存无法释放 +由于tcmalloc出色的性能,良好的管理接口,开源分布式存储软件Ceph中,使用tcmalloc作为内存管理库,一般发行版默认TPS为8K,当KPS为64K时,存在着无法将内存归还给操作系统的问题,内存一直在tcmalloc的freelist中,导致内存一直增长,具体原因是tcmalloc对64K内核页欠考虑,内存释放逻辑有些问题,tcmalloc释放内存给操作系统是以KPS为单位进行的,并且在扫描freelist过程中碰到第一个无法释放的内核页时,就不再对freelist中其他的内存页进行扫描,释放过程就此结束。1个KP包含了8个TP,KP被释放的条件8个TP都是可释放的,8个TP同时满足释放条件概率会比较小,就会发生内存无法释放的问题。修复方案为可以为重新配置TPS为KPS的整数倍或者修改内存释放逻辑,参见[PR1](https://github.com/gperftools/gperftools/pull/1201) +[PR2](https://github.com/gperftools/gperftools/pull/1269),当前gperftools社区考虑到稳定性和当前维护情况,此问题并没有合入解决。需要自行修改。 + +### Ceph中页对齐带来的内存浪费 +在Ceph中对数据和元数据都进行的内存缓存,缓存有着一定的大小,超出时会进行部分释放,为了追求性能,有些元数据的分配上采用了页对齐的方式申请了内存,但实际上只使用了部分的大小,而预留的部分就浪费了。这些元数据都被放在元数据缓存中,浪费的内存会导致实际缓存的数据减少,影响性能;特别地,如果配置不合理导致浪费空间过大,就会频繁启动内存释放进程,干扰io执行,严重影响性能。参见[PR](https://github.com/ceph/ceph/pull/38701)。 + +## Superblock数据问题 +一般地,存储设备都需要对其superblock写入数据,来存储文件系统元数据等信息,superblock的大小一般为4K,存放在一个KP上,KPS为4K时,superlock数据刚好在KP的0偏移位置,当KPS为64K时,superblock在KP上的偏移位置就不太确定了,此时写入就需要特别的处理;superblock的buffer/direct的写入方式也可能会导致superblock写入不正确,出现superblock数据丢失的问题。 +### Bcache superblock写入错误,重启机器后bcache分区无法挂载 +在linux内核中使用 __bread将特定的块映射到一个KP中,在KPS为4K时,superblock默认放在偏移为0的位置。当KPS为64K时,superblock就可能 +位于页上的非0的偏移的位置,写入superblock的时候,如果还是按0位置写就会出现问题。具体参见[链接1](https://lkml.indiana.edu/hypermail/linux/kernel/1912.0/05134.html) [链接2]( https://listman.redhat.com/archives/dm-devel/2016-July/027545.html)。 +该问题在linux 5.6版本上得以修复。 + +### Ceph上OSD的superblock的写入丢失,导致初始化失败 +Ceph中每个OSD对自己管理的存储设备会在设备的起始位置写入4K(设备标签)+4K(superblock)的元数据,它两物理上不一定连续,但都在头64K范围。当KPS为64K时,需要写入的8K的元数据刚好在一个KP上,在写入过程,4K设备标签元数据是采用buffer write的方式写入,4Ksuperblock元数据采用direct write的方式写入。当出现先direct write 写入4K superblock,随后buffer write 写入4K设备标签数据时,buffer write的数据会先写到PageCache,随后由内核flush到设备中,flush的时候时以完整的页写入的,就会导致direct write的4Ksuperblock数据被覆盖,导致superblock丢失,初始化失败。参见[PR](https://github.com/ceph/ceph/pull/48092)。 + +## BufferIO导致磁盘上写放大,可能影响SSD寿命 +一般地,Linux上对文件或者设备默认都时采用BufferIO的形式,通过PageCache对设备上的数据进行缓存,以达到提高性能的目的。通过BufferIO的方式写数据到设备,需要先写到PageCache中,随后由内核flush到设备。当KPS为64K时,如果每次都只改写页中少量字节,但是flush都会刷入64K的数据,相比KPS为4K时,会对设备带来额外的写入操作,对SSD设备的寿命带来不利的影响,开启BufferIO时可能需要一并考虑此问题。 + +## 总结 +采用64K内核页能够带来一定程度的性能提升,但是也对现有的软件的兼容性有一定的影响,在获得性能红利的同时,需要仔细考虑并解决相关问题。 diff --git "a/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/Ceph\347\274\226\350\257\221\351\200\237\345\272\246\346\217\220\345\215\207\346\200\273\347\273\223 \351\231\210\347\273\255\345\274\272@chenxuqiang2022.md" "b/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/Ceph\347\274\226\350\257\221\351\200\237\345\272\246\346\217\220\345\215\207\346\200\273\347\273\223 \351\231\210\347\273\255\345\274\272@chenxuqiang2022.md" new file mode 100644 index 0000000..25d73c3 --- /dev/null +++ "b/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/Ceph\347\274\226\350\257\221\351\200\237\345\272\246\346\217\220\345\215\207\346\200\273\347\273\223 \351\231\210\347\273\255\345\274\272@chenxuqiang2022.md" @@ -0,0 +1,328 @@ +## Ceph编译出包速度提升方法 + +### 问题说明 + +#### 问题现状 + +Ceph编译出包速度慢,以Ceph14.2.10为例,在一台96核的机器上,整个编译出包的时间超过30min,其中编译连接耗时超过13min,rpm出包耗时超过20min;过长的编译时间导致难以忍受的开发验证; + +#### 问题分析 + +- Ceph源码量大,文件依赖复杂; +- 编译时间长,除开网络下载速度,使用32线程编译全量编译一次需要15min左右的时间。由于头文件依赖负载,导致某些文件修改会触发大量的编译操作,增量编译时间也较长; + - 以上两条原因主要是由C++本身的语言特性决定的,这些特性包括: + - 独立编译,头文件独立解析,头文件嵌套深,尤其是Boost库的头文件; + - 头文件中含有大量的模板函数等编译时期多态,展开开销大; +- 编译过程中的编译选项优化,如-O2的编译优化 ; +- 网络软件包下载耗时时间长; +- 软件包链接速度慢,主要是跨编译单元的优化,都需要连接器完成,同时它又是单进程处理; +- rpm出包过程中,extract debugInfo时间长,压缩时间长,尤其是部分包,压缩时间超过10min; + +### 第三方库编译 + +* 使用do_cmake.sh时,Boost/rocks_db库的编译默认是单线程的,我们这个通过增加: + + ```sh + $ do_cmake.sh -DBOOST_J = 64 + ``` + + 增加编译的线程数量; + +### 并发修改 + +* 如果是在rpmbuild构建中,则需要配置`$CEPH_SMP_NCPUS`选项,他由两个位置决定: + + 1. rpmmacros: + + ```sh + 2 %_topdir /home/chenxuqiang/myramdisk/rpmbuild + 3 + 4 %_smp_mflags %( \ + 5 [ -z "$RPM_BUILD_NCPUS" ] \\\ + 6 && RPM_BUILD_NCPUS="`/usr/bin/nproc 2>/dev/null || \\\ + 7 /usr/bin/getconf _NPROCESSORS_ONLN`"; \\\ + 8 if [ "$RPM_BUILD_NCPUS" -gt 16 ]; then \\\ + 9 echo "-j16"; \\\ + 10 elif [ "$RPM_BUILD_NCPUS" -gt 3 ]; then \\\ + 11 echo "-j$RPM_BUILD_NCPUS"; \\\ + 12 else \\\ + 13 echo "-j3"; \\\ + 14 fi ) + ``` + + 可以看到他会根据CPU的数量来设置,如果大于16个,则采用-j16,但是由于服务器的CPU数量较多,我们可以增加更多的判断: + + ```sh + 8 elif [ "$RPM_BUILD_NCPUS" -gt 3 ]; then \\\ + 9 echo "-j$RPM_BUILD_NCPUS"; \\\ + 10 else \\\ + 11 echo "-j3"; \\\ + 12 fi ) + ``` + + 2. ceph.spec: + + ```sh + 1141 echo "Available memory:" + 1142 free -h + 1143 echo "System limits:" + 1144 ulimit -a + 1145 if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then + 1146 mem_per_process=2500 + 1147 max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") + 1148 max_jobs="$(($max_mem / $mem_per_process))" + 1149 test "$CEPH_SMP_NCPUS" -gt "$max_jobs" && CEPH_SMP_NCPUS="$max_jobs" && echo "Warning: Reducing build parallelism to - j$max_jobs because of memory limits" + 1150 test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits" + 1151 fi + ``` + + 可以看到上面的内存也有限制:最大的线程数量 = free_memory / 2.5G,即每个线程预留2.5G内存。通过内存限制了并发数量,可以通过修改2500来增加并发,但是不能太小,否则出现内存不足OOM的问题导致编译失败。 + +### 去除不必要的编译模块 + + * Dashboard等不需要的模块可以不参与编译,通过修改CMakeList.txt完成 + +### rpmbuild加速 - 解决压缩时间长的问题 + +* 修改rpmbuild的压缩算法等级和并发度: + + - 修改`/usr/lib/rpm/redhat/macros`中的 + + ``` + - 181 %binary_payload w2.xzdio + + 181 %binary_payload w2T12.xzdio + ``` + + - 修改之后,查看是否生效: + + ``` + $ rpmbuild --showrc | grep "binary_payload" + -14: _binary_payload w2T12.xzdio + ``` + + - 之后重新rpmbuild,重新出包,测试发现原来耗时比较长的WROTE流程,当前只需要4min左右就可以完成,rpmbuild的CPU使用率达到了1200%;性能提升比较明显; + +### Ccache - 解决头文件依赖的问题 + +#### [Ccache](https://ccache.dev/)编译加速 + +- 使能: + + 下载ccache-4.6.1源码包:[ccache-4.6.1.tar.gz](https://github.com/ccache/ccache/releases/download/v4.6.1/ccache-4.6.1.tar.gz), 解压之后 + + ```sh + $ mkdir build && cd build && cmake .. + ``` + + ``` + $ make -j32 && make install + ``` + + 安装完成之后,则Ceph源码的CMake文件会自动找到该组件,并开启该功能; + + 如果要手动关闭和开启,则可以再do_cmake.sh时使用: + + ``` + $ ./do_cmake.sh -DWITH_CCACHE={ON/OFF} + ``` + + 如果要在rpmbuild的时候开启: + + ```sh + $ vim ceph.spec + 找到${CMAKE} ..所在行,增加-DWITH_CCACHE=ON: + ``` + + ```diff + 1162 CMAKE=cmake + 1163 %endif + 1164 ${CMAKE} .. \ + + 1165 -DWITH_CCACHE=ON \ + ``` + +- Ccache的一些使用方法 + + - 修改缓存目录: + + ```sh + $ export CCACHE_DIR=/SSD/ccache + ``` + + 要修改默认的缓存目录: + + ```sh + $ vim /home/${user}/.ccache/ccache.conf + ccache_dir = /ssd/ccache #通过将缓存目录设置在快速设备,可以提高性能; + ``` + + - 设置缓存大小: + + ```sh + $ vim /home/${user}/.ccache/ccache.conf + max_size = 5.0G # 避免缓存淘汰,设置稍微大一点 + ``` + + - 显示统计数据: + + ```sh + $ ccache -s # 可以检视hit和miss,查看性能变化 + ``` + + - 清理缓存: + + ```sh + $ ccache -C + ``` + + - 显示所有配置 + + ```sh + $ ccache -p + ``` + +- Ccache中的一些和性能相关的配置: + + +### distcc分布式编译 - 解决并发编译速度不够的问题 + +#### [distcc](https://www.distcc.org/)分布式编译加速 + +- 编译安装:需要liberary.a --> 其源码在GCC源码中,编译出来,拷贝到/usr/lib64目录下面; + +- 编译 + + ```sh + $ ./configure && make -j32 && make install + ``` + + 编译出来之后,需要调用: + + ```sh + $ update-distcc-symlinks + ``` + + 生成gcc,cc,g++等编译器的distcc版本,即命名伪装,会在/usr/lib/distcc下面生成多个编译器的软连接,他们都是distcc的伪装: + + ```sh + $ ll -h /usr/lib/distcc + root root 22 May 18 14:59 aarch64-linux-gnu-g++ -> ../../local/bin/distcc + root root 22 May 18 14:59 aarch64-linux-gnu-gcc -> ../../local/bin/distcc + root root 22 May 18 14:59 c++ -> ../../local/bin/distcc + root root 22 May 18 14:59 c89 -> ../../local/bin/distcc + root root 22 May 18 14:59 c99 -> ../../local/bin/distcc + root root 22 May 18 14:59 cc -> ../../local/bin/distcc + root root 22 May 18 14:59 g++ -> ../../local/bin/distcc + root root 22 May 18 14:59 gcc -> ../../local/bin/distcc + ``` + +- 运行 + + 1. 首先在不同的hosts上启动distccd服务端: + + ```sh + $ distccd --daemon --user nobody --allow 172.17.0.0/24 --listen 172.17.0.2 --log-stderr --log-level=debug --no-detach --jobs 12 + ``` + + 可以设置监听IP,端口,日志位置,日志级别,运行模式,并发数量;更多options查看[distccd(1)](https://linux.die.net/man/1/distccd) + + 2. 服务端启动之后,则可以配置客户端distcc的环境变量: + + ```sh + $ export DISTCC_HOSTS="server1,cpp,lzo server2,cpp,lzo server3,cpp,lzo" // 服务端Host列表 + $ export DISTCC_VERBOSE=1 // verbose + $ export DISTCC_LOG="/var/log/distcc.log" // 日志位置 + ``` + + 当然也可以卸载~/.bashrc中,保证每个终端自动生效;更多配置查看[distcc(1)](https://linux.die.net/man/1/distcc) + + 3. 如果使用CMake编译,则需要替换`${CMAKE_C_COMPILER}`和`${CMAKE_CXX_COMPILER}`两个变量为distcc伪装的`cc`和`c++`,如ceph编译中: + + ```sh + $ ./do_cmake.sh -DCMAKE_C_COMPILER=/usr/lib/distcc/cc -DCMAKE_CXX_COMPILER=/usr/lib/distcc/c++ + ``` + + 如果是Makefile,则: + + ```sh + $ make -jxxx CC="distcc, gcc" CXX="distcc, g++" + ``` + + 4. 然后进入build目录,之后有两种模式可以选择: + + base模式 + + ```sh + $ make -jxxx // 其中xxx可以超过本机节点的CPU核数 + ``` + + 这种模式网络交互小,但是没有include分析,因此只会提升编译的并发度。 + + [pump](https://linux.die.net/man/1/pump)模式: + + ```sh + $ pump make -jxxxx // 配置DISTCC_HOSTS时需要配置,cpp,lzo + ``` + + 该模式会将头文件一起推送到远程节点,进行分析编译。效果可能更好。 + +### 使用tmpFS加速 - 解决磁盘读写瓶颈的问题 + +#### 挂载tmpfs + +1. 挂载一个tmpfs,这里大小指定为80G,由于整个编译过程中会产生50G的临时数据 + ccache的缓存空间,我们设置为80G + + ```sh + $ sudo mount -t tmpfs -o size=80G myramdisk /home/chenxuqiang/myramdisk + ``` + + ```sh + $ df -h + myramdisk 80G 42G 39G 53% /home/chenxuqiang/myramdisk + ``` + +2. 在tmpfs下面创建对应的rpmbuild路径: + + ```sh + $ mkdir ${tmpfs-dir}/rpmbuild/{BUILD, RPMS, SRPMS, SOURCES, SPECS} + ``` + +3. 设置ccache的CCACHE_DIR: + + ```sh + $ vim /home/${user}/.ccache/ccache.conf + cache_dir = ${tmpfs-dir}/ccache + ``` + +4. 拷贝ceph.spec & source.tar + + ```sh + $ cp ceph.spec ${tmpfs-dir}/rpmbuild/SPECS + $ cp ceph.tar.gz ${tmpfs-dir}/rpmbuld/SOURCES + ``` + +5. 修改rpmbuild的macros: + + ```sh + $ vim ~/.rpmmacros + %_topdir ${tmpfs-dir}/rpmbuild + ``` + +6. 开始构建 + + ```sh + $ rpmbuild -bb ${tmpfs-dir}/rpmbuild/SPECS/ceph.spec + ``` + +### 源码修改 - 使用新的C++特性减少多态开销(长期工作) + +* 减少boost库的使用; +* 使用C++20 的Modules减少共同头文件传递的开销; +* 头文件依赖顺序修改; +* 前置类型声明代替头文件include; + +### 效果 + +通过上述手段,编译出包时间,可以从30min以上降到10min以内。 + + + diff --git "a/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/osd\344\270\255\347\232\204rocksdb\350\260\203\344\274\230\346\214\207\345\215\227 \346\261\240\344\277\241\346\263\275(XSKY).md" "b/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/osd\344\270\255\347\232\204rocksdb\350\260\203\344\274\230\346\214\207\345\215\227 \346\261\240\344\277\241\346\263\275(XSKY).md" new file mode 100644 index 0000000..153704d --- /dev/null +++ "b/ceph/1 - \346\200\247\350\203\275\344\274\230\345\214\226/osd\344\270\255\347\232\204rocksdb\350\260\203\344\274\230\346\214\207\345\215\227 \346\261\240\344\277\241\346\263\275(XSKY).md" @@ -0,0 +1,5 @@ +rocksdb的ceph目前的主流元数据kv持久化引擎,对于OSD的性能非常关键,rocksdb内部有很多参数可以调整,下面解释一些重点参数的含义: +1. rocksdb_cache_size, rocksdb内存缓存大小,如果机器内存够大,且db规模小,强烈建议设置大些 +2. rocksdb_cache_index_and_filter_blocks, rocksdb中sst的index和filter占用的内存使用是否是复用rocksdb_cache_size的限制,如果机器内存足够,强烈建议分裂 +3. rocksdb_cache_index_and_filter_blocks_with_high_priority,把sst的index和filter放在缓存的高优先级位置,避免别淘汰 +4. rocksdb_pin_l0_filter_and_index_blocks_in_cache,如果内存缓存有限,是否只cache L0的index和filter \ No newline at end of file diff --git "a/ceph/2 - \347\241\254\344\273\266\345\212\240\351\200\237/ceph\345\233\275\345\257\206\344\275\277\350\203\275.md" "b/ceph/2 - \347\241\254\344\273\266\345\212\240\351\200\237/ceph\345\233\275\345\257\206\344\275\277\350\203\275.md" new file mode 100644 index 0000000..33f6d1b --- /dev/null +++ "b/ceph/2 - \347\241\254\344\273\266\345\212\240\351\200\237/ceph\345\233\275\345\257\206\344\275\277\350\203\275.md" @@ -0,0 +1,9 @@ +版本分支:ceph_dev + +##ceph数据安全特性 +- ceph uadk crypto插件,支持rgw对象网关数据加解密算法AES-256-CBC开销卸载 +- 国密算法支持。支持rgw对象网关数据加密采用SM4-CBC算法,后期也将SM4-CBC算法开销卸载至鲲鹏硬件加速器。 + +##ceph数据压缩特性 +- ceph zlib isa-l在aarch64平台上的优化 +- 支持ceph uadk zlib卸载至鲲鹏硬件加速器 \ No newline at end of file diff --git "a/ceph/2 - \347\241\254\344\273\266\345\212\240\351\200\237/\351\262\262\351\271\217\347\241\254\344\273\266\345\212\240\351\200\237\345\231\250ceph\344\275\277\350\203\275\346\214\207\345\215\227.md" "b/ceph/2 - \347\241\254\344\273\266\345\212\240\351\200\237/\351\262\262\351\271\217\347\241\254\344\273\266\345\212\240\351\200\237\345\231\250ceph\344\275\277\350\203\275\346\214\207\345\215\227.md" new file mode 100644 index 0000000..86809af --- /dev/null +++ "b/ceph/2 - \347\241\254\344\273\266\345\212\240\351\200\237/\351\262\262\351\271\217\347\241\254\344\273\266\345\212\240\351\200\237\345\231\250ceph\344\275\277\350\203\275\346\214\207\345\215\227.md" @@ -0,0 +1,911 @@ +# 鲲鹏硬件加速器Ceph使能指南 + +## 鲲鹏加速器介绍 + +鲲鹏加速引擎是基于鲲鹏920处理器提供的硬件加速解决方案,包含了数据加解密、哈希摘要以及数据压缩的加速能力,分别用于加速SSL/TLS,数据加密以及数据压缩场景,可以有效降低CPU开销,提升处理带宽和效率。加速引擎对应用层屏蔽了其内部硬件实现细节,用户通过openssl,zlib标准接口即可快速实现业务迁移。 + +- isa-l + + isa-l全称Intelligent Storage Acceleration Library,是Intel开源的存储加速库,提供RAID,纠删码,冗余循环检查,密码散列和压缩的指令加速优化。在Ceph的应用中,isa-l主要通过指令优化实现zlib压缩过程的加速,但对解压过程暂无加速效果。 + +- uadk/uadk_engine + + uadk即User Space Accelerator Development kit,是一套通用用户态加速器开发包,为用户提供一套针对加解密、压缩等算法的统一编程接口。uadk2.0基于SMMU和SVA共享虚拟内存地址技术,用户可以安全高效地利用鲲鹏加速器的硬件能力。 + + uadk_engine是基于uadk2.0的openssl加速引擎,提供高性能哈希、对称加解密、非对称加解密算法支持,兼容>=openssl1.1.1a,=openssl1.1.1a,Support Smmu选择enable,重启生效。启动后,查询SMMU接口返回值为129,证明使能成功 + + ```shell + cat /sys/class/uacce/hisi*/flags + ``` + + ------ + + 下载并安装uadk + + ```shell + git clone https://github.com/Linaro/uadk.git -b v2.3.36 + cd uadk + ./cleanup.sh + ./autogen.sh + ./conf.sh + make -j + make install + ``` + + - uadk_engine安装 + + 下载并安装uadk_engine + + ```shell + git clone https://github.com/Linaro/uadk_engine.git -b v1.0.1 + cd uadk_engine-1.0.1 + autoreconf -i + ./configure --libdir=/usr/local/lib/engines-1.1/ --enable-kae + make -j + make install + ``` + + ./configure生成编译文件时指定--enable-kae,可同时支持v1.0和v2.0两种模式 + + 将uadk_engine的安装目录加入ld.so.conf + + ```shell + vim /etc/ld.so.conf + /usr/local/lib/ + /usr/local/lib/engines-1.1/ + ``` + + 生效 + + ```shell + ldconfig + ``` + + 查看uadk_engine支持的算法列表,若成功返回,则说明uadk_engine可以被openssl正常加载 + + ```shell + openssl engine uadk_engine -c -t + ``` + + - KAE安装 + + - 须知 + + 启用KAE须确保BIOS的SMMU选项配置为disable。 + + 设置方法:进入BIOS后,在MISC Config->Support Smmu选择enable,重启生效。启动后,查询SMMU接口返回值不为129,证明SMMU关闭 + + ```shell + cat /sys/class/uacce/hisi*/flags + ``` + + 下载并安装KAE + + - 方法一 + + 直接使用uadk_engine的KAE模式(v1.0),engine id为“uadk_engine” + + - 方法二 + + 下载KAE编译安装,engine id为“kae” + + ```shell + git clone https://github.com/kunpengcompute/KAE.git -b v1.3.11 + cd KAE + chmod +x configure + ./configure + make clean + make -j + make install + ``` + + - KAEzip安装 + + 下载KAEzip + + ```shell + git clone https://github.com/kunpengcompute/KAEzip.git -b v1.3.11 + ``` + + 在KAEzip-1.3.11/open_source目录下下载并解压与主机zlib版本相同的zlib源码包 + + ```shell + cd KAEzip-1.3.11/open_source + wget https://www.zlib.net/fossils/zlib-1.2.11.tar.gz --no-check-certificate + tar -zvxf zlib-1.2.11.tar.gz + ``` + + 回退至KAEzip-1.3.11源码目录,编译安装KAEzip + + ``` + sh setup.sh install + ``` + + 生成的加速库安装路径为/usr/local/kaezip/lib/libkaezip.so.1.3.11,新编译的zlib算法库路径的安装为/usr/local/kaezip/lib/libz.so.1.2.11 + + - 须知 + + 编译KAEzip时如遇到uacce.h头文件无法找到的报错,解决方法: + + ```shell + vim /usr/include/warpdriver/wd.h + #include "include/uacce.h" + ``` + + + +## Ceph编译 + +当前Ceph基于openEuler社区Ceph-16.2.7版本,在此基础上新增如下特性(patch),详情可参与openEuler-SDS sig咨询: + +支持aarch64 isa-l压缩优化 + +支持zlib-uadk加速器加速插件 + +优化部分热点函数开销过高的问题 + +- rpm包构建 + + 安装rpm-build工具 + + ```shell + yum install rpm-build rpmdevtools -y + ``` + + 生成rpmbuild目录,默认在/root目录下 + + ``` + rpmdev-setuptree + ``` + + 下载Ceph源码 + + ```shell + git clone https://gitee.com/src-openeuler/ceph.git -b openEuler-22.03-LTS-20220331 + ``` + + 将源码patch文件及ceph-16.2.7.tar.gz拷贝至rpmbuild下的SOURCES目录下 + + ```shell + cp ceph/ceph-16.2.7.tar.gz ceph/*.patch /root/rpmbuild/SOURCES + ``` + + 将新增特性对应的patch文件也拷贝至rpmbuild下的SOURCES目录下 + + 将更新的ceph.spec文件拷贝至rpmbuild下的SPEC目录下 + + 构建ceph rpm包 + + ```shell + cd /root/rpmbuild/SPEC + rpmbuild -ba ceph.spec + ``` + + 最终生成的rpm包位于/root/rpmbuild/RPMS目录下 + +- 本地源配置 + + 安装createrepo工具 + + ```shell + yum install createrepo -y + ``` + + rpm源文件准备 + + ```shell + mkdir -p /home/cephrepo + cp /root/rpmbuild/RPMS /home/cephrepo + createrepo -p /home/cephrepo + ``` + + 创建ceph.repo源文件 + + ```shell + vim /etc/yum.repos.d/ceph.repo + [ceph] + name = ceph + baseurl = file:///home/cephrepo + enable = 1 + gpgcheck = 0 + priority = 1 + ``` + + repo源生效 + + ```shell + yum clean all + yum makecache + yum list |grep ceph + ``` + + + +## Ceph安装 + +Ceph集群的详尽部署流程可以参考鲲鹏社区操作指南: + +《Ceph块存储部署指南》 + +https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephblock_04_0001.html + +《Ceph对象存储部署指南》 + +https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephobject_04_0001.html + +- Ceph环境准备 + + - 关闭防火墙 + + ```shell + systemctl stop firewalld + systemctl disable firewalld + ``` + + - 配置主机名 + + ```shell + hostnamectl --static set-hostname node1 + vim /etc/hosts + node1 + ``` + + - chrony时间同步 + + 安装chrony,包括两个程序:chronyd和chronyc + + chronyd:后台运行的守护进程,负责时间同步 + + chronyc:用户命令行工具,负责用户多样化配置与状态监控 + + ```shell + yum install chrony -y + ``` + + 修改配置文件,将node1作为时间同步源,node1修改: + + ```shell + vim /etc/chrony.conf + server iburst + allow + local stratum 10 + ``` + + 客户端节点修改 + + ```shell + vim /etc/chrony.conf + server iburst + ``` + + 启动服务 + + ```shell + systemctl restart chronyd + chronyc sources + ``` + + - 配置免密登录 + + 配置服务端节点node1对所有节点免密 + + ```shell + ssh-keygen -t rsa + ssh-copy-id client1 + ``` + + - 说明 + + ssh-keygen -t rsa命令后,使用默认值,按enter确认即可 + + - 关闭selinux + + 所有节点均执行。 + + 临时关闭,重启后失效 + + ```shell + setenforce 0 + ``` + + 永久关闭,重启后生效 + + ```shell + vim /etc/selinux/config + SELINUX=disable + ``` + +- Ceph安装与部署 + + - 安装Ceph + + ```shell + yum install ceph ceph-deploy -y + ``` + + - 部署mon + + ```shell + cd /etc/ceph + ceph-deploy new node1 + ``` + + 修改/etc/ceph目录下的ceph.conf文件,增加如下内容: + + ``` + vim /etc/ceph/ceph.conf + [mon] + mon_allow_pool_delete = true + ``` + + 初始化mon并分发keyring + + ```shell + ceph-deploy mon create-initial + ceph-deploy --overwrite-conf admin node2 node3 + ``` + + 查看集群状态 + + ```shell + ceph -s + ``` + + - 部署mgr + + ```shell + ceph-deploy mgr create node1 + ceph -s + ``` + + - 部署osd + + ```shell + ceph-deploy disk zap node1 /dev/sdb + ceph-deploy osd create node1 --data /dev/sdb + ``` + + + +## Bluestore压缩使能 + +以ceph块存储场景说明Bluestore压缩使能。修改ceph.conf,配置启用Bluestore压缩,目前压缩算法支持zlib/snappy/lz4/zstd等。isa-l与鲲鹏硬件加速器支持zlib算法加速。如果需要启用加速器,或在加速器使能与否进行切换时,需将压缩算法配置为zlib,同时设置compressor_zlib_winsize(默认-15,只有deflate算法,数据格式不包含gzip/zlib协议头)为9-15之间的值。 + +```shell +vim ceph.conf +[osd] +bluestore_compression_algorithm = zlib +compressor_zlib_winsize = 15 +``` + +重启OSD守护进程 + +``` +systemctl restart ceph-osd.target +``` + +- 块存储部署 + + 创建pool,并使能存储池支持的应用类型 + + ```shell + ceph osd pool create rbdpool 256 256 + ceph osd pool application enable rbdpool rbd + ``` + + 创建image,以80G的image1说明 + + ```shell + rbd create image1 --size 81920 --pool rbdpool --image-format 2 --image-feature layering + rbd ls --pool rbdpool + ``` + +- 启用isa-l + + isa-l压缩已经实现Ceph的直接支持,同时,isa-l aarch64的压缩优化也已经合入社区。 + + 修改ceph.conf使能 + + ```shell + vim /etc/ceph/ceph.conf + [osd] + compressor_zlib_isal = true + ``` + + 重启osd生效 + + ```shell + systemctl restart ceph-osd.target + ``` + +- 启用uadk + + 前置条件: + + smmu = enable,uadk完成安装,压缩相关模块驱动已加载且uacce_mode指定为1 + + 修改ceph.conf使能 + + ```shell + vim /etc/ceph/ceph.conf + [osd] + uadk_compressor_enabled = true + ``` + + osd进程使用ceph用户没有加速器设备的访问权限,[Service]项下的ExecStart命令,修改为root用户启动 + + ```shell + vim /usr/lib/systemd/system/ceph-osd@1.service + [Service] + ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser root --setgroup root + ``` + + service文件修改生效,并重启osd守护进程 + + ```shell + systemctl daemon-reload + systemctl restart ceph-osd.target + ``` + +- 启用KAEzip + + 前置条件: + + smmu = disable,KAEzip已安装,压缩相关模块驱动已加载且uacce_mode指定为2 + + 修改系统默认zlib的软链接,将其软链至KAEzip编译生成的zlib库,重启osd进程 + + ```shell + rm /usr/lib64/libz.so + rm /usr/lib64/libz.so.1 + ln -s /usr/local/kaezip/lib/libz.so.1.2.11 /usr/lib64/libz.so + ln -s /usr/local/kaezip/lib/libz.so.1.2.11 /usr/lib64/libz.so.1 + ``` + + osd进程使用ceph用户没有加速器设备的访问权限,[service]项下的ExecStart命令,修改为root用户启动 + + ```shell + vim /usr/lib/systemd/system/ceph-osd@1.service + [service] + ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser root --setgroup root + ``` + + service文件修改生效,并重启osd守护进程 + + ```shell + systemctl daemon-reload + systemctl restart ceph-osd.target + ``` + + + +## 对象存储压缩使能 + +- 对象存储部署 + + - 部署RGW实例。以在node1节点创建一个RGW实例,前端端口7481,实例名bucket1为例说明。 + + 修改ceph.conf + + ```shell + vim /etc/ceph/ceph.conf + [client.rgw.bucket1] + rgw_frontends = beast port=7481 + ``` + + 同步配置文件 + + ```shell + ceph-deploy --overwrite-conf admin node2 node3 + ``` + + 安装RGW组件 + + ```shell + yum install ceph-radosgw -y + ``` + + 创建RGW实例以及集群状态检查 + + ```shell + ceph-deploy rgw create node1:bucket1 + ceph -s + ``` + + 取消代理配置,访问bucket1实例前端 + + ```shell + unset http_proxy + unset https_proxy + curl :7481 + ``` + + - 创建压缩存储池 + + 创建data pool,index pool,和non-ec pool + + ```shell + ceph osd pool create default.rgw.buckets.data-compress 1024 1024 + ceph osd pool create default.rgw.buckets,index-compress 256 256 + ceph osd pool create default.rgw.buckets.non-ec-compress 64 64 + ceph osd pool application enable default.rgw.buckets.data-compress rgw + ceph osd pool application enable default.rgw.buckets.index-compress rgw + ceph osd pool application enable default.rgw.buckets.non-ec-compress rgw + ``` + + - 使能RGW压缩 + + 新增用于压缩使能的放置策略 + + ```shell + radosgw-admin zonegroup placement add --rgw-zonegroup=default --placement-id=compress-placement + ``` + + 配置compress-placement信息,压缩算法选用zlib + + ```shell + radosgw-admin zone placement add --rgw-zonegroup=default --placement-id=compress-placement --data_pool=default.rgw.buckets.data-compress --index_pool=default.rgw.buckets,index-compress --data_extra_pool=default.rgw.buckets.non-ec-compress --compression=zlib + ``` + + 新建用户 + + ```shell + radosgw-admin user create --uid="admin" --display-name="admin" --access_key=test --secret_key=test + ``` + + 导出“admin”用户元数据,修改json文件中defaul_placement内容为“compress-placement” + + ``` + radosgw-admin metadata get user:admin > user.json + vim user.json + ``` + + 将修改后的用户元数据导入 + + ```shell + radosgw-admin metadata put user:admin < user.json + ``` + + 重启RGW进程,使修改生效 + + ```shell + systemctl restart ceph-radosgw.target + ``` + +- 启用isa-l + + isa-l压缩已经实现Ceph的直接支持,同时,isa-l aarch64的压缩优化也已经合入社区。 + + 修改ceph.conf使能 + + ```shell + vim /etc/ceph/ceph.conf + [osd] + compressor_zlib_isal = true + ``` + + 重启osd生效 + + ```shell + systemctl restart ceph-osd.target + ``` + +- 启用uadk + + 前置条件: + + smmu = enable,uadk已安装,压缩相关模块驱动已加载且uacce_mode指定为1 + + 修改ceph.conf配置,在rgw实例配置下加入: + + ```shell + vim /etc/ceph/ceph.conf + [client.rgw.bucket1] + uadk_compressor_enabled = true + compressor_zlib_winsize = 15 + ``` + + RGW进程使用ceph用户没有加速器设备的访问权限,[Service]项下的ExecStart命令,修改为root用户启动。同时PrivateDevices值修改为no。 + + ```shell + vim /usr/lib/systemd/system/ceph-radosgw@rgw.bucket1.service + [Service] + ExecStart=/usr/bin/radosgw -f --cluster ${CLUSTER} --name client.%i --setuser root --setgroup root + PrivateDevices=no + ``` + + service文件修改生效,并重启osd守护进程 + + ```shell + systemctl daemon-reload + systemctl restart ceph-radosgw.target + ``` + + - 说明 + + 如需使用uadk_engine加速对象存储场景的MD5,SHA256开销,参考对象存储加密使能章节uadk_engine的启动流程。 + +- 启用KAEzip + + 前置条件: + + smmu = disable,KAEzip已安装,压缩相关模块驱动已加载且uacce_mode指定为2 + + 修改系统默认zlib的软链接,将其软链至KAEzip编译生成的zlib库,重启RGW进程 + + ```shell + rm /usr/lib64/libz.so + rm /usr/lib64/libz.so.1 + ln -s /usr/local/kaezip/lib/libz.so.1.2.11 /usr/lib64/libz.so + ln -s /usr/local/kaezip/lib/libz.so.1.2.11 /usr/lib64/libz.so.1 + ``` + + RGW进程使用ceph用户没有加速器设备的访问权限,[Service]项下的ExecStart命令,修改为root用户启动 + + ```shell + vim /usr/lib/systemd/system/ceph-radosgw@rgw.bucket1.service + [Service] + ExecStart=/usr/bin/radosgw -f --cluster ${CLUSTER} --name client.%i --setuser root --setgroup root + PrivateDevices=no + ``` + + service文件修改生效,并重启RGW守护进程 + + ```shell + systemctl daemon-reload + systemctl restart ceph-radosgw.target + ``` + + - 说明 + + 如需使用KAE加速对象存储压缩场景的MD5开销,参考对象存储加密使能章节的KAE启用流程。 + +## 对象存储加密使能 + +- 对象存储部署 + + - 部署RGW实例。以在node1节点创建一个RGW实例,前端端口7481,实例名bucket1为例说明。 + + 修改ceph.conf + + ```shell + vim /etc/ceph/ceph.conf + [client.rgw.bucket1] + rgw_frontends = beast port=7481 + ``` + + 同步配置文件 + + ```shell + ceph-deploy --overwrite-conf admin node2 node3 + ``` + + 安装RGW组件 + + ```shell + yum install ceph-radosgw -y + ``` + + 创建RGW实例以及集群状态检查 + + ```shell + ceph-deploy rgw create node1:bucket1 + ceph -s + ``` + + 取消代理配置,访问bucket1实例前端 + + ```shell + unset http_proxy + unset https_proxy + curl :7481 + ``` + + - 创建压缩存储池 + + 创建data pool,index pool + + ```shell + ceph osd pool create default.rgw.buckets.data-compress 1024 1024 + ceph osd pool create default.rgw.buckets,index-compress 256 256 + ceph osd pool application enable default.rgw.buckets.data-compress rgw + ceph osd pool application enable default.rgw.buckets.index-compress rgw + ``` + + - 创建RGW用户 + + ```shell + radosgw-admin user create --uid="admin" --display-name="admin" --access_key=test --secret_key=test + ``` + +- 启用uadk_engine + + uadk_engine启用后,可用鲲鹏加速器加速卸载对象存储场景的MD5、SHA256、AES、SM4等算法开销 + + 前置条件: + + smmu=enable,uadk与uadk_engine已安装,加密相关模块驱动已加载且uacce_mode指定为1 + + 修改ceph.conf,启用uadk_engine + + ```shell + vim /etc/ceph/ceph.conf + [global] + openssl_engine_opts = "engine_id=uadk_engine,dynamic_path=/usr/local/lib/engines-1.1/uadk_engine.so,default_algorithms=ALL,init=1" + ``` + + RGW进程使用ceph用户没有加速器设备的访问权限,[Service]项下的ExecStart命令,修改为root用户启动 + + ```shell + vim /usr/lib/systemd/system/ceph-radosgw@rgw.bucket1.service + [Service] + ExecStart=/usr/bin/radosgw -f --cluster ${CLUSTER} --name client.%i --setuser root --setgroup root + PrivateDevices=no + ``` + + service文件修改生效,并重启RGW守护进程 + + ```shell + systemctl daemon-reload + systemctl restart ceph-radosgw.target + ``` + +- 启用KAE + + - KAE启用后,可用鲲鹏加速器加速卸载对象存储场景的MD5、AES、SM4等算法开销,暂不支持SHA256算法加速 + + 前置条件: + + smmu=disable,uadk与KAE已安装,加密相关模块驱动已加载且uacce_mode指定为2 + + 修改ceph.conf,启用uadk_engine + + ```shell + vim /etc/ceph/ceph.conf + [global] + openssl_engine_opts = "engine_id=kae,dynamic_path=/usr/local/lib/engines-1.1/kae.so,default_algorithms=ALL,init=1" + ``` + + RGW进程使用ceph用户没有加速器设备的访问权限,[Service]项下的ExecStart命令,修改为root用户启动 + + ```shell + vim /usr/lib/systemd/system/ceph-radosgw@rgw.bucket1.service + [Service] + ExecStart=/usr/bin/radosgw -f --cluster ${CLUSTER} --name client.%i --setuser root --setgroup root + PrivateDevices=no + ``` + + service文件修改生效,并重启RGW守护进程 + + ```shell + systemctl daemon-reload + systemctl restart ceph-radosgw.target + ``` \ No newline at end of file diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/PR\346\217\220\344\272\244\345\274\202\345\270\270\351\227\256\351\242\230\350\256\260\345\275\225\345\215\225.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/PR\346\217\220\344\272\244\345\274\202\345\270\270\351\227\256\351\242\230\350\256\260\345\275\225\345\215\225.md" new file mode 100644 index 0000000..172fa26 --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/PR\346\217\220\344\272\244\345\274\202\345\270\270\351\227\256\351\242\230\350\256\260\345\275\225\345\215\225.md" @@ -0,0 +1,60 @@ +# PR提交异常问题记录单 +@ceph_yang yangxiaoliang贡献 + +1. 对于ceph上游社区已知问题,需要提供原生patch信息及链接,方便maintainer检视。 + + ​ 通过git format-patch -1 {commit_id}命令可直接导出社区或自己本地已经commit的patch,其中commit_id为你提供的pr中解决问题的commit或自己fork仓库后向自己仓库的commit。 + + (1) 本地仓库commit后patch制作。 + ![输入图片说明](https://images.gitee.com/uploads/images/2022/0725/111602_15c77831_1665388.png "image-20220719095749487.png") + 查看patch信息 + + (2)社区patch导出并查看patch信息 + + ![输入图片说明](https://images.gitee.com/uploads/images/2022/0725/111702_93c5a8bf_1665388.png "image-20220719103024797.png") + + ​ 社区patch导出后需对比与欧拉社区源码代码行数,例如:使用上游社区源码制作patch后,显示行数修改为第1163行,但欧拉社区版本的代码为第1144行。 + + ![输入图片说明](https://images.gitee.com/uploads/images/2022/0725/111736_0749e44d_1665388.png "image-20220720140941338.png") + + ![输入图片说明](https://images.gitee.com/uploads/images/2022/0725/111803_5f11da35_1665388.png "image-20220720141143748.png") + +2. ceph.spec文件修改 + + ​ 修改ceph.spec文件时,需要注意关键信息,如果版本有更新,版本号也需要及时更新。 + + ![img](https://images.gitee.com/uploads/images/2022/0715/164258_52d534df_1665388.png) + +3. 同时需要提交多个PR,需要重新创建分支,否则修改内容会同步当前正在审核的PR中。 + +4. 签署CLA时需要注意,签署CLA邮件需和gitee账户绑定邮箱一致。 + +5. 合并多次提交为一次 + + **git commit --amend方法:** + + (1)修改文件 + + (2)git add . + + (3)git commit --amend 修改提交message + + (4)git push origin master --force + + **git rebase -i {commit_id}方法,可以删除多余的commit提交:** + + (1)查找需要合并的commit id,执行git log + + ![输入图片说明](https://images.gitee.com/uploads/images/2022/0725/111904_9053160b_1665388.png "image-20220720153943379.png") + + (1)执行git rebase -i {commit_id}命令,如:git rebase -i 0942506e03855dd478d4ec3220906a2c7ff62c33 + + (2)修改对应信息 + + ![输入图片说明](https://images.gitee.com/uploads/images/2022/0725/111934_90605a63_1665388.png "image-20220720154141406.png") + + (3)git push origin master --force需要注意,不加--force可能无法删除 + + + + diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\345\244\232\347\211\210\346\234\254\345\225\206\344\270\232\347\273\264\344\277\235\350\247\243\345\206\263\346\226\271\346\241\210.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\345\244\232\347\211\210\346\234\254\345\225\206\344\270\232\347\273\264\344\277\235\350\247\243\345\206\263\346\226\271\346\241\210.md" new file mode 100644 index 0000000..5f6880c --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\345\244\232\347\211\210\346\234\254\345\225\206\344\270\232\347\273\264\344\277\235\350\247\243\345\206\263\346\226\271\346\241\210.md" @@ -0,0 +1,56 @@ + **有需求可以在src-openEuler/ceph中提issue,联系杨晓亮(gitee id: yangxiaoliang)做技术支持。** + +# ceph多版本维保商业解决方案 + +# 1. 引言 + +## 1.1. **编写目的** + +​ 向ceph商业用户提供ceph使用过程中出现异常问题的商业维护解决方案,包括使用过程中问题发现、提出、解决、回归等。 + +## 1.2. **范围** + +​ 本文档用于指导运维人员对ceph商业用户使用问题的维护处理。 + +# 2. 商业维保解决方案分类 + +​ 用户使用ceph过程中出现的问题,用户可通过电话或邮件的形式,联系售后运维人员。运维人员根据用户反馈问题的紧急程度、严重性等因素,提供对应的运维支持。依据用户反馈的问题情况,向用户提供工单系统和文档支持两种解决方案。 + +## 2.1. 工单系统 + +​ 针对用户在ceph使用过程中出现的问题,运维人员需对用户反应问题的级别进行初步判断,对于运维人员无法现场处理或无法提供对应处理方案的情况,可提交工单,由审核人员审核后,交由技术或研发人员提供支持,协助解决用户问题。 + +​ 工单提交及处理流程如下图: + +​ ![PR提交异常问题记录单/PR提交异常问题记录单/gongdan.jpg 0 → 100644](https://toscode.gitee.com/ceph_yang/ceph/raw/738c9f5c764786e53c953702d6d93697a1e75a4c/PR提交异常问题记录单/PR提交异常问题记录单/gongdan.jpg) + +​ 工单提单: + +​ 1.项目上产生的问题或需求”项描述清晰明了,可附带问题相关现象和异常数据的图片。 + +​ 2.问题相关现象图片、小视频、日志等,以附件形式提交。 + +​ 3.信息填完确认无误后,工单进入流程。 + +​ 中台人员审核: +​ 1.技术支持确认提单信息。 +​ 2.中台接口人审核“申请基本信息”,重点关注所属项目和申请用途中描述的项目信息是否一致,以及其它申请信息的完整性。若不符合要求,则说明原因,驳回申请。若符合要求,则同意申请。 +​ 3.版本负责人审核“仓库信息”和“部署信息”,避免出现仓库版本与实际环境不适配和不兼容的问题。审核通过,则提交中台接口人安排出库,不匹配则说明原因,退回给中台接口人。 +​ 4.维护项目组,离线仓库出库,由维护线的系统研发工程师配合完成离线仓库同步工作,填写交付信息交付仓库。 +​ 5.提单人在收到离线仓库包和相关文件后,确认是否能部署。能部署,则线上确认,流程结束;不能部署,驳回流程到“流程6-离线仓库出库”,由维护项目组重新出库。 + +​ 中台分析: + +​ 根据已提交工单反应的问题类型,确认问题为测试问题,适配问题或版本合入问题等不同的问题类型,将工单转交至对应的负责人进行处理。 + +​ 工单问题解决: + +​ 解决工单问题的方式可以依据用户需求,选择提交补丁包、升级ceph版本等方式。对于确认为版本bug的用户问题,在回归工单后,及时在新版本中解决、合入。对于用户误操作导致的异常问题,需及时更新操作指导文档。 + +## 2.2. 文档支持 + +​ 用户反馈的问题为已知问题,且已有对应的操作指导文档,运维人员可向用户提供对应的文档支持,用以解决用户问题。 + +​ 用户反馈的问题,运维人员有处理方案,但无现成文档,需与用户沟通后,提供文档,以及电话、邮件等形式的维保方式,解决用户问题,并及时更新常见问题指导文档。 + + \ No newline at end of file diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\346\261\211\345\214\226\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\346\261\211\345\214\226\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" new file mode 100644 index 0000000..a1e8566 --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\346\261\211\345\214\226\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" @@ -0,0 +1,42 @@ +# ceph汉化指导说明书 + +## 一、声明 + +~~~bash +编写日期:2023年02月08日 +编写人员:朱超(tom_toworld@163.com) +修订版本:V1.0 +~~~ + +## 二、ceph汉化流程 + +### 1.构建ubuntu-2204环境 + +### 2.安装必要软件 + +~~~bash +apt install wget npm ng-common +~~~ + +### 3.下载源码并编译 + +~~~bash +wget https://download.ceph.com/tarballs/ceph-15.2.15.tar.gz +tar -zxvf ceph-15.2.15.tar.gz +cd ceph-15.2.15/src/pybind/mgr/dashboard/frontend +npm installl --force +npm run build:zh-CN +tar -zcvf dist.tar.gz dist +~~~ + +### 4.安装 + +1.将dist.tar.gz拷贝到部署mgr的节点 + +2.解压dist.tar.gz, 将里面的内容拷贝到/usr/share/ceph/mgr/dashboard/frontend/dist/, 并重启ceph-mgr服务。 + +![位置截图](https://gitee.com/Tom_zc/my_doc/raw/master/ceph汉化/assets/1675831729432.png) + +3.登录到ceph的dashboard界面 + +![dashboard截图](https://gitee.com/Tom_zc/my_doc/raw/master/ceph汉化/assets/1675831833885.png) \ No newline at end of file diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\350\264\250\351\207\217\347\234\213\346\212\244qa.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\350\264\250\351\207\217\347\234\213\346\212\244qa.md" new file mode 100644 index 0000000..2a3d8bb --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/ceph\350\264\250\351\207\217\347\234\213\346\212\244qa.md" @@ -0,0 +1,57 @@ +# ceph/qa套件介绍 + Ceph 有两种类型的测试:make check测试和集成测试。当测试需要多台机器、root 访问权限或持续时间较长(例如,模拟真实的 Ceph 工作负载)时,则认为是集成测试。集成测试被组织成“套件”,这些套件在ceph/qa 子目录中定义并使用 teuthology-suite命令运行。 +# ceph-qa用例介绍 +| 模块 | 介绍 | 描述 | 用例个数 | 预计测试用例 | 排除条件 | +| -- | -- | -- | -- | -- | -- | +| big | 集群测试5/21/51节点测试 | 基本的object读写snapg功能测试 | 27 | 0 | 大规模条件不满足 | +| buildpackages | ceph 版本检查 | 共计51中当前支持的OS 版本检查 | 102 | 0 | 没必要跑 | +| ceph-ansible | ceph-ansible工程部署ceph环境测试 | 使用ceph-ansible部署环境测试(ubuntu、centos) | 36 | 0 | 目前不支持openEuler(需要适配) | +| ceph-deploy | ceph-deploy工程部署ceph环境测试 | 使用ceph-ansible部署环境测试(ubuntu、centos)(py2/py3) | 32 | 0 | 目前不支持openEuler | +| cephmetrics | 部署cephmetrics并运行集成测试 | 部署cephmetrics并运行集成测试(dashboard) | 32 | 0 | 非主要功能,暂不测试 | +| crimson-rados | ceph crimson rados测试 | 部署crimson-rados并运行集成测试 () | 8 | 0 | 开发中,暂不测试 | +| dummy | ceph部署测试 | 部署mon mds mgr osd client | 1 | 1 | 基本功能,以下用例会包含 | +| experimental | ceph experimental测试 | 实验特性测试 | 1 | 0 | | +| fs | 文件系统功能测试 | 文件系统相关功能、接口测试 | 5037 | 50 | 1、排除valgrind及upgrade用例 | +| hadoop | 相关测试 | | 3 | 0 | 1、依赖mvn源网络不可达 | +| krbd | kernel rbd测试 | | 220 | 20 | | +| marginal | | | 60 | 0 | 边缘用例,暂不测试 | +| mixed-clients | kclient测试 | | 12 | 2 | 排除blogbench测试用例 | +| netsplit | 网络断开重连测试 | | 1 | 1 | 指定ubuntu用例(待适配) | +| orch | cephadm 和rook测试 | | 17633 | 0 | cephadm依赖docker,rook指定ubuntu(待适配) | +| perf-basic | 基本性能测试(fio ,cosbench,radosbench) | | 4 | 4 | | +| powercycle | 重启测试 | | 278 | 15 | 1、排除掉部分依赖ipmitool命令操作 | +| rados | rados基本功能测试 | rados相关功能、借口测试 | 1473815 | 80 | 1、排除valgrind及upgrade用例(可以进一步精简用例,随机跑一些用例) | +| rbd | rbd基本功能测试 | 块存储相关功能、借口测试 | 10751 | 120 | 1、排除qemu相关用例(虚拟机里起虚拟机) | +| rgw | rgw基本功能测试 | 对象相关功能、借口测试 | 116 | 30 | 1、依赖mvn源网络不可达 | +| samba | cifs文件系统测试 | | 108 | 0 | 1、环境不支持 | +| smoke | 总体冒烟测试 | | 24 | 23 | 1、排除blogbench用例 | +| stress | 压力测试 | | 38 | 0 | 1、虚拟机环境不支持 | +| teuthology | | | 26 | 0 | | +| tgt | iscsi测试 | | 26 | 1 | | +| upgrade | 升级测试 | | 175 | 0 | | +| 总计 | | | 1508566 | 348 | | +| | | | | | | +| | | | | | | +| | | | | PR: | 跑smoke + 具体模块 | +| | | | | 版本: | 跑全量(用例为筛选后的随机选出用例数量) | +# 用例排除规则 +1、排除部分过时的测试工具(例如blogbench) +2、排除其它OS相关的用例(例如ubuntu) +3、排除其它非主要功能用例(例如 dashboard) +4、排除其它条件不满足用例(例如Ipmitool) +# 用例挑选规则 +1、smoke模块用例全部执行 +2、在排除后剩下的用例中使用随机挑选一定数量的用例 +3、有pr合入时执行smoke用例,以及一定数量的pr相关模块的用例 + +# [openEuler-22.03LTS qa用例结果](https://gitee.com/src-openeuler/ceph/issues/I4ZSWW) +http://119.3.219.112:23002/ +![输入图片说明](https://images.gitee.com/uploads/images/2022/0328/090058_53029e48_8819970.png "在这里输入图片标题") +http://119.3.219.112:23002/teuthworker-2022-03-23_11:59:24-netsplit-master-distro-basic-euler/ +http://119.3.219.112:23002/teuthworker-2022-03-23_11:59:17-perf-basic-master-distro-basic-euler/ +http://119.3.219.112:23002/teuthworker-2022-03-23_11:58:48-krbd-master-distro-basic-euler/ +http://119.3.219.112:23002/teuthworker-2022-03-23_11:58:33-rgw-master-distro-basic-euler/ +http://119.3.219.112:23002/teuthworker-2022-03-23_11:46:10-rados-master-distro-basic-euler/ +http://119.3.219.112:23002/teuthworker-2022-03-23_11:44:53-fs-master-distro-basic-euler/ +http://119.3.219.112:23002/teuthworker-2022-03-23_11:41:46-rbd-master-distro-basic-euler/ +http://119.3.219.112:23002/teuthworker-2022-03-23_11:41:14-smoke-master-distro-basic-euler/ \ No newline at end of file diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler DAOS\345\207\272\345\214\205\346\214\207\345\257\274\346\226\207\346\241\243 \345\206\257\346\230\245\346\235\276(\345\215\216\344\270\272).md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler DAOS\345\207\272\345\214\205\346\214\207\345\257\274\346\226\207\346\241\243 \345\206\257\346\230\245\346\235\276(\345\215\216\344\270\272).md" new file mode 100644 index 0000000..e7b73df --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler DAOS\345\207\272\345\214\205\346\214\207\345\257\274\346\226\207\346\241\243 \345\206\257\346\230\245\346\235\276(\345\215\216\344\270\272).md" @@ -0,0 +1,309 @@ +## DAOS介绍 + +### 简要介绍 + +分布式异步对象存储 (DAOS) 是一个开源的对象存储系统,专为大规模分布式非易失性内存 (NVM, Non-Volatile Memory) 设计,利用了SCM(Storage-Class Memory) 和 NVMe(Non-Volatile Memory express) 固态盘等的下一代 NVM 技术。 + +DAOS 是一种横向扩展的对象存储,可以为高性能计算应用提供高带宽、低延迟和高 IOPS 的存储容器,并支持结合仿真、数据分析和机器学习的下一代以数据为中心的工作流程。 + +与主要针对旋转介质设计的传统存储堆栈不同,DAOS 针对全新 NVM 技术进行了重新构建,可在用户空间中端对端地运行,并能完全绕开操作系统,是一套轻量级的系统。 + +DAOS 提供了一种为访问高细粒度数据提供原生支持的 I/O 模型,而不是传统的基于高延迟和块存储设计的 I/O 模型,从而释放下一代存储技术的性能。 + +与传统的缓冲区不同,DAOS 是一个独立的高性能容错存储层,它不依赖其它层来管理元数据并提供数据恢复能力。DAOS 服务器将其元数据保存在持久内存中,而将批量数据直接保存在 NVMe 固态盘中。 + +### DAOS系统架构 + +![343197a9c41a2446c89cd5394fdcbf5e](C:\Users\Administrator\Pictures\343197a9c41a2446c89cd5394fdcbf5e.png) + +​ DAOS架构与传统存储系统的对比 + +与主要针对旋转介质设计的传统存储堆栈不同,DAOS 针对全新 NVM 技术进行了重新构建。此外,DAOS 还是一套轻量级的系统,可在用户空间中端对端地运行,并能完全绕开操作系统。DAOS 没有延续针对高延迟、块存储的 I/O 模型,而是选择了为访问高细粒度数据提供原生支持的 I/O 模型,以此释放下一代存储技术的性能。 + + 现有的分布式存储系统使用高延迟的点对点通信,而 DAOS 使用能够绕过操作系统的低延迟、高消息速率用户空间通信。当下,大多数存储系统都是针对块 I/O 设计的,所有 I/O 操作都通过块接口在 Linux* 内核中进行。为了优化对于块设备的访问,业界已经付出了例如合并、缓冲和聚合等方面的许多努力。但是,所有这些优化都无法适用于英特尔着力发展的下一代存储设备,因为使用这些优化可能会产生不必要的开销。而 DAOS 专为优化对英特尔傲腾持久内存和 NVM Express (NVMe) 固态盘 (SSD) 的访问而设计,它规避了这些不必要的开销。 + +DAOS 服务器将其元数据保存在持久内存中,而将批量数据直接保存在 NVMe 固态盘中。此外,少量 I/O 操作在聚合之前就会被吸收到持久内存中,然后再迁移到大容量闪存。DAOS 使用持久内存开发套件 (PMDK) 提供对于持久内存的事务访问,并使用存储性能开发套件 (SPDK) 为 NVMe 设备提供用户空间 I/O1,2。这种架构的数据访问速度比现有存储系统快好几个数量级(从毫秒 [ms] 级加快到微秒 [μs] 级)。 + +## DAOS编译 + +### 环境准备 + +建议软件版本: + +| 软件 | 版本 | +| ---- | -------------- | +| DAOS | commit 008flba | + +操作系统要求: + +| 项目 | 版本 | +| --------- | ---------------------------- | +| openEuler | openEuler 22.03 | +| Kernel | 5.10.0-60.18.0.50.oe.aarch64 | + +说明: + +本文档适用于DAOS主线版本,其他版本的移植步骤可参考本文档。移植前请确保环境纯净,不要使用其他DAOS版本的系统环境。 + +### DAOS编译 + +1. 安装scons编译工具: + + yum install scons -y + +2. 解决编译依赖问题,执行DAOS自带的依赖安装脚本: + + cd daos/utils/scripts + + sh -x install-el8.sh + + 屏蔽不能直接安装的依赖,直接把先能安装的依赖安装 + + pip3 install patchelf + + yum install rdma-core-devel.aarch64 + +3. 解决缺少daos-raft-devel依赖问题,解决方法daos-raft-devel编译出包安装: + + yum install rpmdevtools + + rpmdev-setuptree + + 修改~/.rpmmacros文件的rpmbuild路径 + + rpmdev-setuptree + + git clone https://github.com/daos-stack/raft.git + + cd raft;cp raft.spec /home/rpmbuild/SPECS + + mv raft raft-0.9.1 + + tar -jcvf raft-0.9.1.tar.gz raft-0.9.1 + + mv raft-0.9.1.tar.gz /home/rpmbuild/SOURCES + + 修改raft.spec的压缩文件名与压缩包名字一致后,直接编译出包: + + rpmbuild -bb /home/rpmbuild/SPECS/raft.spec + + 在生成rpm包目录下直接安装:rpm -ivh raft*.rpm + + 编译DAOS源码: + + scons -j32 --build-deps=yes + + 说明: + + 在该编译环境中gcc版本是gcc version 10.3.1(GCC),在编译过程中未出现编译问题。 + + 如果遇到gcc版本问题,手动在site_scons/compiler_setup.py文件的DESIRED_FLAGS后面加:"-Wno-format-overflow",重新编译没有问题。 + + ## 相关依赖编译出包 + + ### 编译出包准备 + + 1. 安装出包工具: + + yum install rpmdevtools -y + + rpmdev-setuptree + + 2. 打包: + + 在daos源码下执行: + + scons -c + + 把utils/rpms目录下的daos.spec与bz-1955184_find-requires拷贝到rpmbuild/SPECS路径下 + + 把daos源码打包成.tar.gz格式: + + tar -jcvf daos-2.3.100.tar.gz daos-2.3.100 + + cp daos-2.3.100.tar.gz /home/rpmbuild/SOURCES + + 3. 修改daos.spec文件压缩包的文件名与压缩包对应 + + 4. 查看编译出包需要安装的依赖 + + rpmbuild -bb /home/rpmbuild/SPECS/daos.spec + + 说明: + + 接下来是根据提示所缺少依赖进行编译出包,根据自己的环境选择必要的编译出包,如果已经安装可以忽略,不再需要自己手动编译出包,下面是一些编译出包流程可以作为参考。 + + ### libfabric编译出包 + + daos源码里面有libfabric源码,路径是daos-2.3.100/build/external/release/ofi。里面有自带的libfabric.spec文件,用它自带libfabric.spec文件,不然会有版本问题; + + 修改libfabric.spec文件的压缩包名,安装依赖,configure配置: + + ![捕获](C:\Users\Administrator\Pictures\捕获.PNG) + + yum install libnl3-devel + + yum install fdupes + + rpmbuild --nodebuginfo -bb /home/rpmbuild/SPECS/libfabric.spec + + ### argobots编译出包 + + git clone https://github.com/daos-stack/argobots.git + + 这里我们只用到里面的spec文件,源码我们用的是daos-2.3.100/build/external/release/argobots将源码改名后压缩打包: + + rpmbuild -bb /home/rpmbuild/SPECSargobots.spec + + ### UCX编译出包 + + 这里直接使用DAOS源码里面的ucx源码与ucx.spec文件进行编译出包 + + 修改ucx.spec文件中的压缩文件名与压缩包名对应,进行编译出包 + + rpmbuild -bb /home/rpmbuild/SPECES/ucx.spec + + ### isa-l编译出包 + + DAOS源码里面有isa-l源码,可以直接使用;没有isal.spec文件,这里直接github上下载: + + git clone https://github.com/daos-stack/isa-l.git + + 修改isa-l.spec文件中压缩文件名与该压缩包名字对应,进行编译出包 + + rpmbuild -bb /home/rpmbuild/SPECS/isa-l.spec + + ### isa-l_crypto编译出包 + + wget https://package.daos.io/v2.0/CentOS8/source/isa-l_crypto-2.23.0-1.el8.src.rpm + + rpm -ivh isa-l_crypto-2.23.0-1.el8.src.rpm + + 将daos源码里的isa-l_crypto源码打包,并拷贝到编译路径 + + 修改isal_crypto.spec文件中isal-crypto版本以及压缩包名字,与现有压缩包对应,编译出包: + + rpmbuild -bb /home/rpmbuild/SPECS/isa-l_crypto.spec + + ### dpdk编译出包 + + DAOS源码里面有dpdk源码,可以直接使用;没有dpdk.spec文件,这里是直接github上下载: + + git clone https://github.com/daos-stack/dpdk.git + + 安装依赖: + + yum install libpcap-devel + + yum install python3-sphinx.noarch + + yum install doxygen + + 在dpdk.spec文件屏蔽不需要的patch,DAOS源码里面的dpdk不需要patch + + rpmbuild -bb /home/rpmbuild/SPECS/dpdk.spec + + 说明: + + 如果制作rpm包的过程中,出现报错Installed (but unpackaged) file(s)found + + 解决方式: + + 1. 修改/usr/rpm/macros文件中下面的行:%__check_files /usr/lib/rpm/check-files %{buildroot} #注释掉 + 2. 修改/usr/lib/rpm/macros文件中以下的行:%__unpackaged_files_terminate_build 1 #把1改为0只警告 + + ### spdk编译出包 + + DAOS源码里面有自带的spdk源码与spdk.spec文件,直接用它自带的进行编译出包: + + cp -r daos-2.3.100/build/external/release/spdk ./ + + cp spdk/rpmbuild/spdk.spec /home/rpmbuild/SPECS + + mv spdk spdk-22.01.1 + + tar -jcvf spdk-22.01.1.tar.gz spdk-22.01.1 + + mv spdk-22.01.1.tar.gz /home/rpmbuild/SOURCES + + 修改spec文件中版本,以及configure配置、spdk安装路径: + + ![捕获1](C:\Users\Administrator\Pictures\捕获1.PNG) + + 修改spdk.spec文件,打开共享库选项: + + ![捕获4](C:\Users\Administrator\Pictures\捕获4.PNG) + + rpmbuild -bb /home/rpmbuild/SPECS/spdk.spec + + ### pmdk编译出包 + + DAOS源码里面有pmdk源码,可以直接使用,没有pmdk.spec文件,这里直接github上下载: + + git clone https://github.com/daos-stack/pmdk.git + + 修改pmdk.spec文件中压缩包名、补丁 + + 屏蔽pmdk.spec文件的如下内容,或者在后面补充aarch64 + + ![捕获5](C:\Users\Administrator\Pictures\捕获5.PNG) + + yum install daxctl1-devel + + yum install ndctl-devel + + yum install pandoc + + 如果pandoc无法直接安装,可以下载rpm包直接安装: + + wget https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/aarch64/os/Packages/p/pandoc-2.14.0.3-18.fc37.aarch64.rpm + + wget https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/aarch64/os/Packages/p/pandoc-common-2.14.0.3-18.fc37.aarch64.rpm + + 修改pmdk.spec文件中出包的版本号,参考daos.spec中daos-server依赖: + + ![捕获6](C:\Users\Administrator\Pictures\捕获6.PNG) + + 直接编译出包可能会遇到check失败问题,可以先屏蔽check: + + rpmbuild --nocheck -bb /home/rpmbuild/SPECS/pmdk.spec + + ### mercury编译出包 + + DAOS源码里面有mercury源码,可以直接使用;没有mercury.spec文件,这里是直接github上下载: + + git clone https://github.com/daos-stack/mercury.gt + + 这里mercury源码直接用daos-2.3.100/build/external/release/ofi,mercury.spec文件用github上下载的 + + 安装依赖前面已经出包的libfabric与ucx;安装完后直接编译出包: + + rpmbuild -bb /home/rpmbuild/SPECS/mercury.spec + + ## DAOS编译出包 + + ### 安装DAOS编译出包依赖 + + 1. 将以上编译出包的相关依赖以本地yum源方式安装 + + 2. 查看需要安装的相关依赖: + + rpmbuild -bb /home/rpmbuild/SPECS/daos.spec + + 其中daos-raft-devel是已经编译出包安装的raft-devel;libjson-c-devel是已经安装的json-c-devel;openmpi3-devel是已经安装的openmpi-devel;isal_crypto是已经安装的libisa-l_crypto;libabt-devel与libpsm2-devel并不会影响后续的daos出包,与系统相关,都可以先屏蔽。 + + 3. 安装相关依赖: + + yum install argobots argobots-devel + + yum install spdk-devel libpmem2-devel libpmempool-devel libpmem2 libpmempool + + 4. 屏蔽daos.spec文件中daos-server中,ipmctl与spdk-tools依赖,以及屏蔽libdpar_mpi.so + + ![捕获7](C:\Users\Administrator\Pictures\捕获7.PNG) + + ![捕获8](C:\Users\Administrator\Pictures\捕获8.PNG) + + 5. 编译出包: + + rpmbuild -bb /home/rpmbuild/SPECS/daos.spec diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph14.2.8\347\274\226\350\257\221\346\214\207\345\257\274.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph14.2.8\347\274\226\350\257\221\346\214\207\345\257\274.md" new file mode 100644 index 0000000..c0c7d3d --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph14.2.8\347\274\226\350\257\221\346\214\207\345\257\274.md" @@ -0,0 +1,77 @@ +# openEuler20.03-LTS-SP3 ceph14.2.8编译出包指导 +## 环境信息 +OS版本:openEuler20.03-LTS-SP3 +ceph版本:v14.2.8 +GCC版本:7.3.0 +kernel: 4.19.90-2112.8.0.0131.oe1.aarch64 +## 编译出包 +### 下载ceph源码包 +wget http://download.ceph.com/tarballs/ceph-14.2.8.tar.gz +### 解压源码 +tar -zxvf ceph-14.2.8.tar.gz +cd ceph-14.2.8 +### 修改ceph.spec,使其兼容openEuler +sed -i "s@%if 0%{?rhel} || 0%{?fedora}@%if 0%{?rhel} || 0%{?fedora} || 0%{?openEuler}@g" ceph.spec +sed -i "s@%if 0%{?fedora} || 0%{?rhel}@%if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler}@g" ceph.spec +sed -i "s@redhat-lsb-core@openeuler-lsb@g" ceph.spec +sed -i "s@redhat-rpm-config@openEuler-rpm-config@g" ceph.spec +### 安装依赖包 +yum-builddep ceph.spec +### 编译出包 +yum install -y rpmdevtools +rpmdev-setuptree +cp ../ceph-14.2.8.tar.gz /root/rpmbuild/SOURCES +rpmbuild -bb ceph.spec +## 安装ceph +### 将编译好的rpm包作为本地软件源 +mkdir -p /home/rpm/ceph +cp -r /root/rpmbuild/RPMS/* /home/rpm/ceph/ +yum install -y createrepo +cd /home/rpm/ceph/ & createrepo . +### 配置repo文件 +vim /etc/yum.repos.d/local.repo +[local-ceph] +name=local-ceph +baseurl=file:///home/rpm/ceph/ +gpgcheck=0 +清理yum 缓存 +yum clean all & yum makecache +### 安装ceph软件 +yum install -y ceph +执行ceph -v 查看是否安装成功 +## 部署ceph集群 +### 安装ceph-deploy +pip install ceph-deploy +修改ceph-deploy代码,使其兼容openEuler +vim /usr/lib/python2.7/site-packages/ceph_deploy/hosts/__init__.py +添加如下行(行号为100) +92 distributions = { +93 'debian': debian, +94 'ubuntu': debian, +95 'centos': centos, +96 'scientific': centos, +97 'oracle': centos, +98 'redhat': centos, +99 'fedora': fedora, +100 'openeuler': fedora, +101 'suse': suse, +102 'virtuozzo': centos, +103 'arch': arch +104 } +### 部署ceph +参考https://docs.ceph.com/projects/ceph-deploy/en/latest 文档进行部署 +## 可能出现的问题 +### 编译过程依赖未安装完全 +#### Could NOT find verbs (missing: VERBS_LIBRARIES VERBS_INCLUDE_DIR) +解决办法: +yum install rdma-core-devel +类似问题根据提示安装对用的软件包即可 +#### java安装失败 +解决办法: +重新执行yum install -y java即可 +#### ceph -s 出现 no module named werzeug.serving +解决办法 +pip install werkzeug +#### ceph -v 出现 no module named prettytable +解决办法 +pip install prettytable diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph15.2.15\347\274\226\350\257\221\346\214\207\345\257\274.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph15.2.15\347\274\226\350\257\221\346\214\207\345\257\274.md" new file mode 100644 index 0000000..afe680a --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph15.2.15\347\274\226\350\257\221\346\214\207\345\257\274.md" @@ -0,0 +1,200 @@ + +ceph-15.2.15 编译指导 + +编写日期:2022年11月30日 + +编写人员:徐赫(xuhe@kylinos.cn) + +修订版本:V1.0 +v1.0 创建文档 2022.11.30 + + +1环境信息 +1.1软件环境 +系统版本:openEuler-20.03-LTS-SP3 +ceph版本:15.2.15 +GCC版本:7.3.0 +内核版本:4.19.90-2112.8.0.0131.oe1.aarch64 +Python版本:3.7.9 + +1.2硬件环境 +设备类型 CPU 内存 硬盘 网络 角色 +虚拟机 Kunpeng-920 16G 50G+10G 172.17.7.100 MON,MGR,OSD + +1.3源码文件 +ceph源码包:https://download.ceph.com/tarballs/ceph-15.2.15.tar.gz +spec文件:(见附录) + +2配置yum源 +2.1上传镜像 +将openEuler-20.03-LTS-SP3-everything-aarch64-dvd.iso镜像上传至/root/目录下 + +2.2创建目录 + mkdir -p /root/mnt/ + +2.3挂载镜像 + mount -o loop /root/openEuler-20.03-LTS-SP3-everything-aarch64-dvd.iso /root/mnt/ + +2.4配置yum源 +修改/etc/yum.repos.d/openEuler.repo新增内容如下: +[local] +name = local +baseurl = file:///mnt +enabled = 1 +gpgcheck = 0 +gpgkey = http://repo.openeuler.org/openEuler-20.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler + +3软件包构建 +3.1编译依赖 +checkpolicy-3.1-1.oe1.aarch64 +CUnit-devel-2.1.3-22.oe1.aarch64 +expat-devel-2.2.9-3.oe1.aarch64 +gperftools-devel-2.8-1.oe1.aarch64 +keyutils-libs-devel-1.6.3-1.oe1.aarch64 +libbabeltrace-devel-1.5.8-1.oe1.aarch64 +liboath-2.6.5-1.oe1.aarch64 +liboath-devel-2.6.5-1.oe1.aarch64 +librabbitmq-devel-0.9.0-4.oe1.aarch64 +librdkafka-devel-0.11.4-3.oe1.aarch64 +lttng-ust-devel-2.10.1-8.oe1.aarch64 +lz4-devel-1.9.2-3.oe1.aarch64 +nss-devel-3.54.0-7.oe1.aarch64 +openeuler-lsb-5.0-1.oe1.aarch64 +openldap-devel-2.4.50-6.oe1.aarch64 +openssl-devel-1.1.1f-13.oe1.aarch64 +python3-Cython-0.29.14-3.oe1.aarch64 +python3-devel-3.7.9-18.oe1.aarch64 +python3-prettytable-0.7.2-18.oe1.noarch +python3-sphinx-1.8.4-2.oe1.noarch +rdma-core-devel-35.0-2.oe1.aarch64 +selinux-policy-devel-3.14.2-76.oe1.noarch +systemd-devel-243-49.oe1.aarch64 + +3.2部署源文件 +文件 存放目录 +ceph-15.2.15.tar.gz /root/rpmbuild/SOURCES/ +ceph.spec /root/rpmbuild/SPECS/ + +3.3构建 + rpmbuild -ba ceph.spec +![输入图片说明](https://foruda.gitee.com/images/1672729540692437425/9508af84_1665388.png "屏幕截图") + +3.4完成 +输出软件包 输出目录 +ceph-15.2.15-0.aarch64.rpm +ceph-base-15.2.15-0.aarch64.rpm +ceph-common-15.2.15-0.aarch64.rpm +ceph-debuginfo-15.2.15-0.aarch64.rpm +ceph-debugsource-15.2.15-0.aarch64.rpm +ceph-fuse-15.2.15-0.aarch64.rpm +ceph-immutable-object-cache-15.2.15-0.aarch64.rpm +ceph-mds-15.2.15-0.aarch64.rpm +ceph-mgr-15.2.15-0.aarch64.rpm +ceph-mon-15.2.15-0.aarch64.rpm +ceph-osd-15.2.15-0.aarch64.rpm +ceph-radosgw-15.2.15-0.aarch64.rpm +ceph-resource-agents-15.2.15-0.aarch64.rpm +ceph-selinux-15.2.15-0.aarch64.rpm +ceph-test-15.2.15-0.aarch64.rpm +libcephfs2-15.2.15-0.aarch64.rpm +libcephfs-devel-15.2.15-0.aarch64.rpm +librados2-15.2.15-0.aarch64.rpm +librados-devel-15.2.15-0.aarch64.rpm +libradospp-devel-15.2.15-0.aarch64.rpm +libradosstriper1-15.2.15-0.aarch64.rpm +libradosstriper-devel-15.2.15-0.aarch64.rpm +librbd1-15.2.15-0.aarch64.rpm +librbd-devel-15.2.15-0.aarch64.rpm +librgw2-15.2.15-0.aarch64.rpm +librgw-devel-15.2.15-0.aarch64.rpm +python3-ceph-argparse-15.2.15-0.aarch64.rpm +python3-ceph-common-15.2.15-0.aarch64.rpm +python3-cephfs-15.2.15-0.aarch64.rpm +python3-rados-15.2.15-0.aarch64.rpm +python3-rbd-15.2.15-0.aarch64.rpm +python3-rgw-15.2.15-0.aarch64.rpm +rados-objclass-devel-15.2.15-0.aarch64.rpm +rbd-fuse-15.2.15-0.aarch64.rpm +rbd-mirror-15.2.15-0.aarch64.rpm +rbd-nbd-15.2.15-0.aarch64.rpm /root/rpmbuild/RPMS/aarch64/ +cephadm-15.2.15-0.noarch.rpm +ceph-grafana-dashboards-15.2.15-0.noarch.rpm +ceph-mgr-cephadm-15.2.15-0.noarch.rpm +ceph-mgr-dashboard-15.2.15-0.noarch.rpm +ceph-mgr-diskprediction-cloud-15.2.15-0.noarch.rpm +ceph-mgr-diskprediction-local-15.2.15-0.noarch.rpm +ceph-mgr-k8sevents-15.2.15-0.noarch.rpm +ceph-mgr-modules-core-15.2.15-0.noarch.rpm +ceph-mgr-rook-15.2.15-0.noarch.rpm +ceph-prometheus-alerts-15.2.15-0.noarch.rpm /root/rpmbuild/RPMS/noarch/ +ceph-15.2.15-0.src.rpm /root/rpmbuild/SRPMS/ + +4安装适配 +4.1关闭防火墙 + systemctl stop firewalld.service + systemctl disable firewalld.service + sed -i 's/SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config + +4.2设置主机名称 + hostnamectl --static set-hostname euler-ceph0 + +4.3修改host文件 +172.17.7.100 euler-ceph0 + +4.4设置免密登录 + ssh-keygen -t rsa + ssh-copy-id root@euler-ceph0 + +4.5制作ceph安装源 +1)创建目录 + mkdir -p /root/ceph-repo/ + +2)复制安装包 + cp -f /root/rpmbuild/RPMS/aarch64/* /root/ceph-repo/ + cp -f /root/rpmbuild/RPMS/noarch/* /root/ceph-repo/ + +3)创建源 + createrepo /root/ceph-repo/ + +4)修改/etc/yum.repos.d/openEuler.repo文件,新增内容如下: +[ceph] +name = Ceph-repo +baseurl = /root/ceph-repo/ +enabled = 1 +gpgcheck = 0 + +4.6安装软件包 + yum install -y ceph ceph-base ceph-mds ceph-mgr ceph-mon ceph-osd ceph-radosgw ceph-common ceph-mgr-modules-core ceph-selinux libcephfs2 libradosstriper1 librgw2 python3-ceph-argparse python3-ceph-common python3-cephfs python3-rados python3-rbd python3-rgw +![输入图片说明](https://foruda.gitee.com/images/1672729550437878174/e36ebc82_1665388.png "屏幕截图") + +4.7部署 +5ceph安装验证 +5.1切换目录 + cd /etc/ceph/ + +5.2创建集群 + ceph-deploy new euler-ceph0 +![输入图片说明](https://foruda.gitee.com/images/1672729562456836934/42158615_1665388.png "屏幕截图") + +5.3修改配置文件/etc/ceph/ceph.conf,新增内容如下: +public_network = 10.1.163.0/24 +cluster_network = 10.1.163.0/24 + +[mon] +mon_allow_pool_delete = true + +5.4初始化监视器,部署MON节点 + ceph-deploy mon create-initial + +5.5初始化管理器,部署MGR节点 + ceph-deploy mgr create euler-ceph0 + +5.6创建OSD节点 + ceph-deploy osd create euler-ceph0 --data /dev/vdb + +5.7查看结果 + ceph -s +至此ceph适配已成功 + +6附件 +由于附件较大无法上传gitee,有需要请联系liu_qinfei@163.com发送。 diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph15.2.5\347\274\226\350\257\221\346\214\207\345\257\274.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph15.2.5\347\274\226\350\257\221\346\214\207\345\257\274.md" new file mode 100644 index 0000000..e00391b --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph15.2.5\347\274\226\350\257\221\346\214\207\345\257\274.md" @@ -0,0 +1,189 @@ + +### ceph-15.2.5 编译指导 + + +编写日期:2022年12月2日 + +编写人员:李璐(lilu@kylinos.cn) + + +修订版本:V1.0 +v1.0 创建文档 2022.11.30 + +1.环境信息 +1.1软件环境 +os版本:openEuler 20.03-LTS-SP3 +ceph版本:15.2.5 +GCC版本:7.3.0 +Kernel:4.19.90-2112.8.0.0131.oe1.aarch64 +Python版本:3.7.9 + +1.2硬件环境 +设备类型 CPU 内存 硬盘 网卡 角色 +虚拟机 Kunpeng-920 32G 30G+80G 172.177.135 MON,MGR,OSD + +1.3源码文件 +ceph源码包:https://download.ceph.com/rpm-15.2.5/el8/SRPMS/ceph-15.2.5-0.el8.src.rpm +spec文件:(见附录) + +2.配置yum源 +22.1上传镜像 +将openEuler-20.03-LTS-SP3-everything-aarch64-dvd.iso镜像上传至/root/目录下 + +2.2创建目录 + mkdir -p /root/mnt/ + +2.3挂载镜像 + mount -o loop /root/openEuler-20.03-LTS-SP3-everything-aarch64-dvd.iso /root/mnt/ + +2.4配置repo文件 + vim /etc/yum.repos.d/openEuler.repo +修改文件如下 +[local] +name = local +baseurl = file:///mnt +enabled = 1 +gpgcheck = 0 +gpgkey = http://repo.openeuler.org/openEuler-20.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler + +3.软件包编译 +1233.1下载ceph源码包 + wget https://download.ceph.com/rpm-15.2.5/el8/SRPMS/ceph-15.2.5-0.el8.src.rpm + +3.2解压 + rpm -ivh ceph-15.2.5-0.el8.src.rpm + +3.3修改ceph.spec文件 +将附件中ceph.spec放入/root/rpmbuild/SPECS/路径下 + +3.4修改/usr/lib/rpm/macros.d/macros.python +将 ”%__python /usr/bin/python” 修改为” %__python /usr/bin/python3”,如下图所示: +![输入图片说明](https://foruda.gitee.com/images/1672729096281514554/fd7e4870_1665388.png "屏幕截图") +需使用python3编译,如果使用python2编译会出现语法错误 + +3.5安装编译依赖 + yum install cmake CUnit-devel boost-random expat-devel fuse-devel gcc-c++ gperf gperftools-devel java-devel junit keyutils-libs-devel leveldb-devel libaio-devel lttng-ust-devel libbabeltrace-devel libcap-ng-devel libcurl-devel libibverbs-devel liblockfile libnl3-devel librabbitmq-devel librdkafka-devel librdmacm-devel lttng-ust-devel mailx ncurses-devel nss-devel openeuler-lsb openldap-devel openssl-devel python3-Cython python3-prettytable python3-sphinx snappy-devel snappy-devel valgrind-devel xfsprogs-devel xmlstarlet procmail libesmtp lz4-devel yasm + +3.6 安装其他依赖 + wget https://repo.openeuler.org/openEuler-20.03-LTS-SP3/EPOL/main/aarch64/Packages/liboath-devel-2.6.5-1.oe1.aarch64.rpm + wget https://repo.openeuler.org/openEuler-20.03-LTS-SP3/EPOL/main/aarch64/Packages/liboath-2.6.5-1.oe1.aarch64.rpm + rpm –ivh liboath-devel-2.6.5-1.oe1.aarch64.rpm + rpm –ivh liboath-2.6.5-1.oe1.aarch64.rpm + +3.7升级libstdc++(rpm包见附件) + rpm –ivh libstdc.* +![输入图片说明](https://foruda.gitee.com/images/1672729121936873389/89f31dcb_1665388.png "屏幕截图") +创建软连接 + find / -name "libstdc++fs.a" + ln -s /usr/lib/gcc/aarch64-redhat-linux/9/libstdc++fs.a /lib64/libstdc++fs.a +注:若不进行软连接,编译的时候会报如下错误: +![输入图片说明](https://foruda.gitee.com/images/1672729130521866325/4010ba9d_1665388.png "屏幕截图") +3.8开始编译 + rpmbuild –ba /root/rpmbuild/SPECS/ceph.spec + +3.9编译完成 +切换到rpmbuild/RPMS/,查看生成的rpm包 +输出软件包 输出目录 +ceph-15.2.5-0.aarch64.rpm librados-devel-15.2.5-0.aarch64.rpm +cephadm-15.2.5-0.aarch64.rpm libradospp-devel-15.2.5-0.aarch64.rpm +ceph-base-15.2.5-0.aarch64.rpm libradosstriper1-15.2.5-0.aarch64.rpm +ceph-common-15.2.5-0.aarch64.rpm libradosstriper-devel-15.2.5-0.aarch64.rpm +ceph-debuginfo-15.2.5-0.aarch64.rpm librbd1-15.2.5-0.aarch64.rpm +ceph-debugsource-15.2.5-0.aarch64.rpm librbd-devel-15.2.5-0.aarch64.rpm +ceph-fuse-15.2.5-0.aarch64.rpm librgw2-15.2.5-0.aarch64.rpm +ceph-immutable-object-cache-15.2.5-0.aarch64.rpm librgw-devel-15.2.5-0.aarch64.rpm +ceph-mds-15.2.5-0.aarch64.rpm python3-ceph-argparse-15.2.5-0.aarch64.rpm +ceph-mgr-15.2.5-0.aarch64.rpm python3-ceph-common-15.2.5-0.aarch64.rpm +ceph-mon-15.2.5-0.aarch64.rpm python3-cephfs-15.2.5-0.aarch64.rpm +ceph-osd-15.2.5-0.aarch64.rpm python3-rados-15.2.5-0.aarch64.rpm +ceph-radosgw-15.2.5-0.aarch64.rpm python3-rbd-15.2.5-0.aarch64.rpm +ceph-resource-agents-15.2.5-0.aarch64.rpm python3-rgw-15.2.5-0.aarch64.rpm +ceph-selinux-15.2.5-0.aarch64.rpm rados-objclass-devel-15.2.5-0.aarch64.rpm +ceph-test-15.2.5-0.aarch64.rpm rbd-fuse-15.2.5-0.aarch64.rpm +libcephfs2-15.2.5-0.aarch64.rpm rbd-mirror-15.2.5-0.aarch64.rpm +libcephfs-devel-15.2.5-0.aarch64.rpm rbd-nbd-15.2.5-0.aarch64.rpm +librados2-15.2.5-0.aarch64.rpm /root/rpmbuild/RPMS/aarch64/ +ceph-grafana-dashboards-15.2.5-0.noarch.rpm ceph-mgr-k8sevents-15.2.5-0.noarch.rpm +ceph-mgr-cephadm-15.2.5-0.noarch.rpm ceph-mgr-modules-core-15.2.5-0.noarch.rpm +ceph-mgr-dashboard-15.2.5-0.noarch.rpm ceph-mgr-rook-15.2.5-0.noarch.rpm +ceph-mgr-diskprediction-cloud-15.2.5-0.noarch.rpm ceph-prometheus-alerts-15.2.5-0.noarch.rpm +ceph-mgr-diskprediction-local-15.2.5-0.noarch.rpm /root/rpmbuild/RPMS/noarch/ +ceph-15.2.5-0.src.rpm /root/rpmbuild/SRPMS/ + +4安装适配 +4.1关闭防火墙 + systemctl stop firewalld.service + systemctl disable firewalld.service + sed -i 's/SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config + +4.2设置主机名称 + hostnamectl --static set-hostname euler-ceph0 + +4.3修改host文件 + vim /etc/hosts +172.17.7.135 euler-ceph0 + +4.4设置免密登录 + ssh-keygen -t rsa + ssh-copy-id root@euler-ceph0 + +4.5制作ceph安装源 +1)创建目录 + mkdir -p /root/ceph-repo/ + +2)复制安装包 + cp -f /root/rpmbuild/RPMS/aarch64/* /root/ceph15.2.5-repo/ + cp -f /root/rpmbuild/RPMS/noarch/* /root/ceph15.2.5-repo/ + +3)创建源 + createrepo /root/ceph15.2.5-repo/ + +4)修改/etc/yum.repos.d/openEuler.repo文件,新增内容如下: +[ceph] +name = Ceph-repo +baseurl = /root/ceph15.2.5-repo/ +enabled = 1 +gpgcheck = 0 + +4.6安装软件包 + yum install -y ceph ceph-base ceph-mds ceph-mgr ceph-mon ceph-osd ceph-radosgw ceph-common ceph-mgr-modules-core ceph-selinux libcephfs2 libradosstriper1 librgw2 python3-ceph-argparse python3-ceph-common python3-cephfs python3-rados python3-rbd python3-rgw +![输入图片说明](https://foruda.gitee.com/images/1672729154855169111/344820ad_1665388.png "屏幕截图") + +4.7部署 +5ceph安装验证 +5.1切换目录 + cd /etc/ceph/ + +5.2创建集群 + ceph-deploy new euler-ceph0 +![输入图片说明](https://foruda.gitee.com/images/1672729173848074539/7299026c_1665388.png "屏幕截图") + +5.3修改配置文件/etc/ceph/ceph.conf,新增内容如下: +public_network = 10.1.163.0/24 +cluster_network = 10.1.163.0/24 + +[mon] +mon_allow_pool_delete = true + +5.4初始化监视器,部署MON节点 + ceph-deploy mon create-initial +![输入图片说明](https://foruda.gitee.com/images/1672729175638971772/188b0e8f_1665388.png "屏幕截图") + +5.5初始化管理器,部署MGR节点 + ceph-deploy mgr create euler-ceph0 +![输入图片说明](https://foruda.gitee.com/images/1672729183786996854/0806a7d1_1665388.png "屏幕截图") + +5.6创建OSD节点 + ceph-deploy osd create euler-ceph0 --data /dev/vdb +![输入图片说明](https://foruda.gitee.com/images/1672729192924658620/6587443a_1665388.png "屏幕截图") + +5.7查看结果 + ceph -s +![输入图片说明](https://foruda.gitee.com/images/1672729202655387767/a7bafa52_1665388.png "屏幕截图") +至此ceph适配已成功 + +6附件 +由于附件较大无法上传gitee,有需要请联系liu_qinfei@163.com发送。 + + + diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph16.2.7\347\274\226\350\257\221\346\214\207\345\257\274.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph16.2.7\347\274\226\350\257\221\346\214\207\345\257\274.md" new file mode 100644 index 0000000..1193123 --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-20.03-LTS-SP3\344\270\212ceph16.2.7\347\274\226\350\257\221\346\214\207\345\257\274.md" @@ -0,0 +1,112 @@ +# openEuler20.03-LTS-SP3 ceph16.2.7编译出包指导 +## 环境信息 +OS版本:openEuler20.03-LTS-SP3 +ceph版本:v16.2.7 +GCC版本:10.3.1 +kernel: 4.19.90-2112.8.0.0131.oe1.aarch64 +## 编译出包 +### 编译GCC相关软件包 +#### 下载源码及补丁 +git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/gcc.git +#### 安装相关依赖 +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 +......................... +ERROR: 0020: file '/usr/lib64/liblsan-so.0.0.0' contain an rpath referencing ".." of an absolute path [/usr/lib/../lib64] +........................ +解决办法: vim ~/.rpmmacros 注释掉以下两行 + #[ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \ + #case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \ +### 编译luarocks软件包 +git clone -b openEuler-20.03-LTS-SP3 https://gitee.com/wangzengliang1/luarocks.git +#### 安装相关依赖 +cd luarocks +yum-builddep luarocks.spec +#### 复制源码到相关目录 +cp * /root/rpmbuild/SOURCES +#### 编译出包 +rpmbuild -bb luarocks.spec +### 将编译好的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 +[local-gcc] +name=local-gcc +baseurl=file:///home/rpm/gcc/ +gpgcheck=0 +清理yum 缓存 +yum clean all & yum makecache +### 编译ceph +####下载ceph源码 +git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/ceph.git +#### 复制源码到相关目录 +cp * /root/rpmbuild/SOURCES +#### 安装依赖包 +yum-builddep ceph.spec +#### 编译出包 +rpmbuild -bb ceph.spec +## 安装ceph +### 将编译好的rpm包作为本地软件源 +mkdir -p /home/rpm/ceph +cp -r /root/rpmbuild/RPMS/* /home/rpm/ceph/ +yum install -y createrepo +cd /home/rpm/ceph/ & createrepo . +### 配置repo文件 +vim /etc/yum.repos.d/local-ceph.repo +[local-ceph] +name=local-ceph +baseurl=file:///home/rpm/ceph/ +gpgcheck=0 +清理yum 缓存 +yum clean all & yum makecache +### 安装ceph软件 +yum install -y ceph +执行ceph -v 查看是否安装成功 +## 部署ceph集群 +### 安装ceph-deploy +pip install ceph-deploy +修改ceph-deploy代码,使其兼容openEuler +vim /usr/lib/python2.7/site-packages/ceph_deploy/hosts/__init__.py +添加如下行(行号为100) +92 distributions = { +93 'debian': debian, +94 'ubuntu': debian, +95 'centos': centos, +96 'scientific': centos, +97 'oracle': centos, +98 'redhat': centos, +99 'fedora': fedora, +100 'openeuler': fedora, +101 'suse': suse, +102 'virtuozzo': centos, +103 'arch': arch +104 } +### 部署ceph +参考https://docs.ceph.com/projects/ceph-deploy/en/latest 文档进行部署 +## 可能出现的问题 +### 编译过程中python错误 +解决办法: +修改python命令指向 +rm -rf /usr/bin/python +ln -s /usr/bin/python3 /usr/bin/python +### 编译过程失败 error: Istalled (but unpackaged) file(s) found: + /usr/share/ceph/mgr/__pycache__/mgr.module.cpython-37.opt-1.pyc + ......................... +解决办法: vim /usr/lib/rpm/macros +注释掉%__check_files /usr/lib/rpm/check-files %{buildroot} 这一行 +### 编译过程依赖未安装完全 +#### Could NOT find verbs (missing: VERBS_LIBRARIES VERBS_INCLUDE_DIR) +解决办法: +yum install rdma-core-devel +类似问题根据提示安装对用的软件包即可 diff --git "a/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-22.03-LTS-SP1\347\274\226\350\257\221\345\256\211\350\243\205ceph14.2.15\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-22.03-LTS-SP1\347\274\226\350\257\221\345\256\211\350\243\205ceph14.2.15\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" new file mode 100644 index 0000000..54ada44 --- /dev/null +++ "b/ceph/3 - \345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\347\273\204\344\273\266\344\275\277\350\203\275/openEuler-22.03-LTS-SP1\347\274\226\350\257\221\345\256\211\350\243\205ceph14.2.15\346\214\207\345\257\274\350\257\264\346\230\216\344\271\246.md" @@ -0,0 +1,234 @@ +# openEuler-22.03-LTS-SP1编译安装ceph-14.2.15 + +## 1.声明 + +~~~bash +编写日期:2023年02月17日 +编写人员:朱超(tom_toworld@163.com) +修订版本:V1.0 +~~~ + +## 2.编译 + +### 1.环境信息 + +#### 1.软件环境 + +~~~bash +系统版本:openEuler-22.03-LTS-SP1 +ceph版本:V14.2.15 +GCC版本:10.3.1 +内核版本:5.10.0-136.15.0.91.oe2203sp1 +Python版本:Python 2.7(手动编译安装) +~~~ + +#### 2.硬件环境 + +~~~bash +设备类型 CPU 内存 硬盘 网络 角色 +虚拟机 x86_64 16G 100G+3*8G 192.168.57.16 MON,MGR,OSD +~~~ + +#### 3.注意事项 + +1.编译环境和部署环境相同 + +2.建议系统盘扩容到100G, 防止编译过程中空间不足造成中断。 + +### 2.编译出包 + +#### 1.虚拟机搭建 + +1.搭建虚拟机环境 + +搭建虚拟机openEuler-22.03-lts-sp1参考以下链接: + +~~~bash +https://docs.openeuler.org/zh/docs/22.03_LTS_SP1/docs/Installation/%E5%AE%89%E8%A3%85%E6%8C%87%E5%AF%BC.html +~~~ + +2.安装python2.7 + +~~~bash +1.预安装环境 +yum update +yum install gcc zlib zlib-devel openssl openssl-devel make git wget rpmdevtools rpm-build +rpmdev-setuptree +git clone https://gitee.com/src-openeuler/python2.git +cd python2 +cp . /root/rpmbuild/SOURCES/ +cp ceph.spec /root/rpmbuild/SPECS/ +cd /root/rpmbuild/SPECS/ +yum-builddep python2.spec +QA_RPATHS=0x0001 rpmbuild -ba python2.spec + +2.安装 +mkdir python2_rpm +cp /root/rpmbuild/RPMS/x86_64/* /root/python2_rpm/ +cp /root/rpmbuild/RPMS/noarch/* /root/python2_rpm/ +rpm -ivh /root/python2_rpm/*.rpm --nodeps +下载setuptool +wget https://pypi.python.org/packages/41/5f/6da80400340fd48ba4ae1c673be4dc3821ac06cd9821ea60f9c7d32a009f/setuptools-38.4.0.zip#md5=3426bbf31662b4067dc79edc0fa21a2e +下载pip +wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9 + +3.补充 + 1.安装setuptools + cd setuptools的解压目录 + python setup.py install + + 2.安装pip + cd pip的解压目录 + python setup.py install + + 3.pip设置镜像源 + pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ + pip config set install.trusted-host mirrors.aliyun.com +~~~ + +#### 3.下载源码包和修改配置 + +1.下载源码包并解压 + +~~~bash +# cd /root/ +# wget https://download.ceph.com/tarballs/ceph-14.2.15.tar.gz +# tar -zxvf /root/ceph-14.2.15.tar.gz +# mv /root/ceph-14.2.15.tar.gz /root/rpmbuild/SOURCES/ceph-14.2.15.tar.bz2 +# cp /root/ceph-14.2.15/ceph.spec /root/rpmbuild/SPECS/ +~~~ + +#### 4.编译源码包 + ++ 安装编译依赖 + + ~~~bash + pip install sphinx cpython pyOpenSSL prettytable pecan + + yum install cmake cryptsetup fuse-devel gcc-c++ gperf leveldb-devel libaio-devel libblkid-devel libcap-ng-devel libcurl-devel libnl3-devel liboath-devel libtool libudev-devel libxml2-devel ncurses-devel snappy-devel valgrind-devel xfsprogs-devel xmlstarlet yasm rdma-core-devel lz4-devel openldap-devel nss-devel bison npm re2-devel socat yaml-cpp-devel libbabeltrace-devel lttng-ust-devel librabbitmq-devel CUnit-devel checkpolicy gperftools-devel librdkafka-devel openeuler-lsb selinux-policy-devel + ~~~ + ++ 编译 + + ~~~bash + cd /root/rpmbuild/SPECS/ + yum-builddep ceph.spec + rpmbuild -ba ceph.spec + ~~~ + +#### 5.编译问题解决 + +~~~bash +1.报错ceph-15.2.15.tar.bz2 not exist. +解决方法: +vim /root/ceph.spec +117 +source0的后缀改为ceph-15.2.15.tar.gz + +2.报错Found Cython3: 0.29 +CMake Error at cmake/modules/FindCython.cmake:13 (message): +Could not find cython: /usr/bin/python2.7: No module named cython +手动安装cpython +wget https://files.pythonhosted.org/packages/dc/f6/e8e302f9942cbebede88b1a0c33d0be3a738c3ac37abae87254d58ffc51c/Cython-0.29.33.tar.gz +pip install Cython-0.29.33.tar.gz + +3.报错信息: +Traceback (most recent call last): + File "/usr/local/bin/sphinx-build", line 5, in + from sphinx.cmd.build import main +ModuleNotFoundError: No module named 'sphinx' +make[2]: *** [doc/man/CMakeFiles/manpages.dir/build.make:148: doc/man/ceph-syn.8] Error 1 +make[1]: *** [CMakeFiles/Makefile2:19261: doc/man/CMakeFiles/manpages.dir/all] Error 2 + +vim /usr/local/bin/sphinx-build +/usr/bin/python3改为/usr/bin/python2 + +4.报错/boost/thread/pthread/thread_data.hpp:60:5: error: missing binary operator before token "(". +解决方法: +vim /root/rpmbuild/BUILD/ceph-15.2.15/src/boost/boost/thread/pthread/thread_data.hpp +60 +删除代码 +# if PTREAD_STACK_MIN > 0 +# if (size 0 +# if (size 近期社区重要补丁汇总: [传送门](https://github.com/ceph/ceph/pulse) + +#### 近期Ceph社区版本重要合入PR说明 + +- BlueStore: + - 解决Bluestore的`bluestore_prefer_deferred_size`的bug,当IO请求小于`bluestore_prefer_deferred_size`时将启用延迟写入技术,反之使用立即写入磁盘设备:[#48490](https://github.com/ceph/ceph/pull/48490) +- crimson: + - crimson osd: 增加Pool EIO flag:[#49029](https://github.com/ceph/ceph/pull/49029) + - 修复各种和fmt相关的bug:[#49011](https://github.com/ceph/ceph/pull/49011) + - 重新实现了`crimson::do_for_each`函数,避免当`seastar::need_preempt == true`时导致的栈溢出问题:[#48932](https://github.com/ceph/ceph/pull/48932) + - seastore: 通过在replaly期间添加deallocation-Map,过滤掉过期的增量数据: [#48773](https://github.com/ceph/ceph/pull/48773) + - 修复了alienstore线程的cpu_set格式问题,支持了列表格式, 如"1-3,5-6,7-9":[#48716](https://github.com/ceph/ceph/pull/48716) + - 修复file_stat中无法正确获取块设备大小的bug:[#48693](https://github.com/ceph/ceph/pull/48693) + - 简化clone操作:[#48527](https://github.com/ceph/ceph/pull/48527) +- mon: + - 修复GCC13下编译告警:[#48661](https://github.com/ceph/ceph/pull/48661) +- msg: + - 为Windows客户端增加了一个基于poll()函数的事件驱动程序,解决基于select()函数的驱动程序遇到的文件描述符限制问题:[#46525](https://github.com/ceph/ceph/pull/46525) +- RBD + - rbd/mgr: 修复在Pool删除时,避免向任务队列中插入任务的bug: [#49036]() + - librbd/cache: 修复pwl clean和bytes_dirty cache状态不一致的问题: [#48542](https://github.com/ceph/ceph/pull/48542) +- RGW + - notification: 修复多段上传过程中bug:[#48877](https://github.com/ceph/ceph/pull/48877),[#48875](https://github.com/ceph/ceph/pull/48875) +## 近期Ceph Developer动态 + +#### 会议汇总 + +社区核心开发者会议如下(由于与美国东部时间有13个小时的时差,以事后查阅社区录像为主)。[传送门](https://www.youtube.com/channel/UCno-Fry25FJ7B4RycCxOtfw) + +| 序号 | 会议名称 | 说明 | 频率 | +| ---- | ----------------------------------- | ----------------------- | ---- | +| 1 | Crimson SeaStore OSD Weekly Meeting | 下一代版本seastore开发 | 周 | +| 2 | Ceph Orchestration Meeting | Ceph管理模块(Mgr)开发 | 周 | +| 3 | Ceph DocUBetter Meeting | 文档优化 | 双周 | +| 4 | Ceph Performance Meeting | Ceph性能优化 | 双周 | +| 5 | Ceph Developer Monthly | Ceph开发者月度例会 | 月 | +| 6 | Ceph Testing Meeting | 版本验证及发布例会 | 月 | +| 7 | Ceph Science User Group Meeting | Ceph用于科学计算领域 | 月 | + +#### 会议小结 + +- Ceph Performance Meeting + - 2022-12-1 + - 使用 dm-crypt (cryptsetup) 的`no_read_workqueue` 和 `no_write_workqueue`选项提高性能,在AMD EPYC7320 16 Core performance CPU模式下,fio的4K写[性能对比](https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/D5URLVPVGX52O6WYV474T6IVTHGHCASB/): + * 禁用`no_read/write_workqueue`时:IOPS=34.8K; + * 启用`no_read/write_workequeue`时:IOPS=55.7K,提升了60%以上; + - Pacific的磁盘写存在写放大,延迟高; + - 100亿个小文件的MDS性能讨论; + - 对硬RAID的性能调优实践:包括read/write cache和stripe_size; + - 2022-11-17 + - 对BlueStore中的共享Blob进行了讨论,共享Blob在快照场景下有较好的性能表现,但是还有一些问题:如磁盘空间写放大,和CPU使用率高的问题。目前还在进一步的定位和讨论中; + - 继续讨论了BlueStore上面的范围删除问题,对于范围删除可能带来的各种问题,会议依然持有很多的怀疑状态,应该还会继续讨论下去; + +- Crimson SeaStore OSD Weekly Meeting + - Crimson计划在Reef版本推出tech preview版本; + - 当前以稳定性优先,开发MultiCore、snap,scrub等关键功能,性能优化需要在功能稳定后投入; + - 随着intel optane pemem项目撤销,Crimson后续也不会再考虑pmem设备; + - OSD MultiCore:一个OSD使用一个设备,可以有效的管理设备故障;而将盘划分为多个分区,对应多个OSD的方式在盘故障的模式下,难以管理。 +--- +【如关注分布式存储技术请加小编好友微信“liu_qinfei”,拉你进sig-SDS技术交流群】 + +> 上一期:[openEuler SDS社区动态(2022-10-1~2022-10-31)](https://zhuanlan.zhihu.com/p/581332698) + diff --git "a/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25414\346\234\237(2022-12-01_2022-12-31).md" "b/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25414\346\234\237(2022-12-01_2022-12-31).md" new file mode 100644 index 0000000..c71bc13 --- /dev/null +++ "b/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25414\346\234\237(2022-12-01_2022-12-31).md" @@ -0,0 +1,123 @@ +# openEuler SDS社区动态(2022-12-1~2022-12-31) + +本期主编:张峰/刘秦飞 + +## 本期关键信息 + +- openEuler社区SDS动态 +- SPDK 2022 PRC线上会议 +- 近期社区合入PR概要 +- 近期Ceph Developer动态 + +## openEuler社区SDS动态 + +#### openEuler-SDS-SIG +- 完成在openEuler20.03上支持ceph的多版本编译出包:12.2.8/14.2.8/15.2.5/15.2.15/16.2.7(发布在openEuler的编译出包指导) +- 发布2个openEuler实习任务(已有学生承接): + - 对主流开源存储软件ceph开展压缩、加密的性能优化以降低CPU开销(可借助鲲鹏硬件加速器) + - 在openEuler 22.03-LTS-SP1使能ceph14.2.15/ceph15.2.15的编译出包和部署 + +## SPDK 2022 PRC线上会议 (2022年12月21日-2022年12月22日) +SPDK 2022中国虚拟论坛是一个在线论坛,SPDK专业人员和所有正在研究或在产品中使用SPDK的工程师,将聚集在一起讨论SPDK的最新功能特性。 + +还有更多议题详情见[Ceph 2022 PRC](https://web.cvent.com/event/c612045a-1a92-4f13-946d-526e120cc991/summary?i=K6VzhcIrTkqqwHIK2J0nLg),会议材料待主办方发布。 + +具体议题如下: +* **SPDK项目现状** + * SPDK社区在今年继续扩展项目的功能,同时持续提高性能和高效处理的能力。在这个分享中,Jim会主要分享下在过去一年中的大的功能,以及在明年计划的一些特性。 +* **最佳SPDK实践:阿里云存储五年演进的经验分享** + * 在过去的五年里,阿里云块存储团队在基于SPDK的存储栈从内核空间向用户空间的演进中做出了巨大的突破。通过SPDK,我们使存储栈更加高效、灵活和更具CPU亲和性。本主题将分享过去五年我们从构建基于SPDK的存储系统中所积累的经验。 +* **SPDK基于VFIO-USER的新虚拟化方案介绍** + * 大家对SPDK的VHOST-USER虚拟化方案都比较熟悉了,针对虚机场景,在去年SPDK增加了NVMe接口的支持,该方案基于新的VFIO-USER协议实现,基于该协议可实现任意PCI设备的支持。今年,SPDK基于VFIO-USER增加了VIRTIO-BLK和VIRTIO-SCSI设备的支持。这里首先我们会详细介绍VIRTIO PCI抽象层的实现以及基于该层之上对VIRTIO-BLK和VIRTIO-SCSI的模拟;因为VFIO-USER和VHOST-USER有很多类似的地方,接下来我们也会提供两者间的性能数据对比,线程模型以及实现细节的差别;最后我们会分享下接下来的开发计划和社区开发进展等。 +* **VDUSE架设用户态存储服务到容器的桥梁** + * VDUSE (vDPA用户态设备) 是Linux中的一种技术,建立在vDPA内核子系统上,以提供框架在用户空间中实现软件模拟的vDPA设备。它提供了将用户空间服务连接到裸金属容器的理想方案。本次演讲将介绍VDUSE在字节跳动内的创新使用,来为容器构建最佳的存储基础设施。并且基于VDUSE最近在Linux内核中的增强,SPDK如何采用VDUSE来突破过去的制约,提供最佳的存储服务给容器。 +* **SPDK在浪潮超融合分布式存储(SmartONE)的应用实践** + * 随着NVMe存储介质的普及,DPU/IPU智能网卡和NVMe-oF存储协议的快速成熟,浪潮超融合分布式存储(SmartONE)应对这些新型的应用场景时,在原有架构上无法发挥其全部能力。而SPDK以其灵活的集成方式和用户态高性能的NVMe实现、网络模型抽象,为SmartONE提供了相关解决方案。本材料主要以SmartONE分布式存储实现为案例分享如何使用SPDK在原有分布式存储方案基础上做异步化框架改造、TCP和RDMA网络适配及NVMe-oF功能实现等。 +* **SPDK NVMe over TCP通过DSA进行硬件CRC32C计算加速的应用** + * 随着新平台新硬件加速特性(比如DSA),介绍在SPDK NVMe over TCP模块中,来加速通过CRC32C进行数据保护的应用。 +* **SPDK高性能存储开发套件中可追溯的多功能模糊测试最佳实践** + * 在本次演示中,我们想展示我们的存储性能开发工具包 (SPDK) 验证团队在非常有限资源的情况下,如何完全改变了使用 LLVM libfuzzer进行模糊测试的持续集成的管理和执行方式,并且对项目进度没有影响。 通过这种可追溯的多功能模糊测试最佳实践以及模糊测试与 LLVM libfuzzer 的持续集成,我们平衡了 SPDK 产品的质量和效率。 这种最佳实践很容易部署到我们当前的持续集成系统中。 +* **Ceph RBD浅析及性能调优** + * Ceph是一种非常流行的分布式开源存储系统。Librbd是Ceph为块存储提供的库。它实现了RBD接口。上层应用程序(如fio和SPDK)可以通过调用librbd和librados的接口来操作Ceph集群,包括创建和删除池/图像、读取/写入数据等。本次分享将详细介绍RBD的IO栈和线程模型,然后分析性能瓶颈,简析常见的优化方案。 +* **SPDK RBD bdev的应用以及性能调优** + * Ceph作为一个开源很久的分布式文件系统,至今依然被广泛使用。SPDK提供了RBD bdev模块,借助librbd和librados实现了对Ceph RBD的支持。 +本次分享将聚焦在SPDK RBD bdev模块的应用场景,然后结合相关测试工具,简析常见的性能优化问题。 +* **基于Ceph NVMeoF Gateway的性能学习** + * 这个项目主要探索了Ceph NVMeoF Gateway的性能,寻找multi-core/multi-volume情况下的性能瓶颈,并理解Ceph contexts对性能的影响。当把我们的Gatways方法和其他非Gateway方式进行比较时,我们的目标是只损失5~10%的性能。 +* **阿里云本地盘实例软硬一体架构演进与实践** + * 随着存储介质从SATA HDD 到 NAND SSD 再到 PMem 的不断演进,底层存储设备的 IO 性能得到了大幅提升。另一方面随着数据规模的爆发式增长,云上用户对存储服务的性能、稳定和可靠性提出了越来越高的要求。阿里云块存储团队面向云场景,通过存储软硬件的协同设计和优化,不断提升云存储的服务体验。阿里云最新发布的新一代弹性本地盘实例采用了创新的CIPU架构,提供多租户、高IOPS、高带宽、低时延能力,满足云应用场景。 +* **通过Intel MEV IPU 加速存储应用** + * Intel目前可以向客户提供基于ASIC的MEV IPU产品,其可以对主机提供NVMe、virtio的PF/VF用以访问IPU本地下挂的存储资源或者通过100G(或更高速率)网络连接的远端的存储资源,屏蔽后端的实现差异和适配的需求,卸载相关的适配逻辑,从而加速存储应用业务。基于此可以更好的实现软件定义的存储特性。 本处主要介绍Intel MEV IPU的基本参数、特性及其主要使用场景。 +* **利用IPU卸载容器镜像的相关操作** + * 本议题介绍如何把IPU和云原生有机的结合起来。 +* **SPDK结合IPU针对存储卸载的加速以及其他应用** + * 主要介绍SPDK软件与IPU结合在存储卸载与加速方面的应用。 +* **CSAL/WSR项目进展分享** + * 主要介绍CSAL构架演进和存储介质支持计划以及存储性能数据包括阿里云D3C实例的应用性能,英特尔P5810/P5820/ZNS的最新数据 + + +## 近期Ceph社区合入PR概要 + +### 1. 概览 +- 本月ceph社区新增449个PR, 新合入406个PR。 +- 本月合入PR最多的厂商是redhat, 共计合入327个。 +- 本月提交commit最多的开发者是Zac Dover, 共计提交62个commits。 +#### 补丁数量统计 + +| 补丁新增 | 补丁合入 | 补丁关闭 | 补丁更新 | +| --------- | -------- | -------- | -------- | +| **449** | **406** | **136** | **935** | +#### 活跃开发者提交commit排行 +1. Zac Dover +2. Kefu Chai +3. Casey Bodley +4. Ilya Dryomov +5. colemitchell +RedHat作为主要贡献者,依然在各个模块均有较多投入, 国内厂商inspur(浪潮)主要投入rgw的bug修复; + +> 近期社区重要补丁汇总: [传送门](https://github.com/ceph/ceph/pulse) + +#### 近期Ceph社区版本重要合入PR说明 + +- OSD: + - 新增修改pg的主osd的工具 :[#49178](https://github.com/ceph/ceph/pull/49178) + - ceph perf dump中新增slow ops请求数量统计 :[#47596](https://github.com/ceph/ceph/pull/47596) + - 随机化osd bench过程写入的数据,让osd bench测试更加准确 :[#48138](https://github.com/ceph/ceph/pull/48138) +- crimson: + - dump each shard seastar metrics :[#49325](https://github.com/ceph/ceph/pull/49325) + - 修复denc device_spec_t, device_type_t and segment_type_t:[#49496](https://github.com/ceph/ceph/pull/49496) + - correct the behavior of reserving space:[#48691](https://github.com/ceph/ceph/pull/48691) +- mds: + - 在拆分或合并目录时,增加判断快照项统计,避免mds崩溃:[#48907](https://github.com/ceph/ceph/pull/48907) +- RGW: + - 新增一个inline_data zone放置规则选项,可以控制对象的第一个chunk是否放在head_object中,可以权衡读写操作与删除操作之间的性能:[#48711](https://github.com/ceph/ceph/pull/48711) + - 遍历顺序删除调整为并发删除,提升删除性能:[#48679](https://github.com/ceph/ceph/pull/48679) +- bluestore + - 完善 cache_onode 、cache_buffer内存池统计方法: [#40066]() + +## 近期Ceph Developer动态 + +#### 会议汇总 + +社区核心开发者会议如下(由于与美国东部时间有13个小时的时差,以事后查阅社区录像为主)。[传送门](https://www.youtube.com/channel/UCno-Fry25FJ7B4RycCxOtfw) + +| 序号 | 会议名称 | 说明 | 频率 | +| ---- | ----------------------------------- | ----------------------- | ---- | +| 1 | Crimson SeaStore OSD Weekly Meeting | 下一代版本seastore开发 | 周 | +| 2 | Ceph Orchestration Meeting | Ceph管理模块(Mgr)开发 | 周 | +| 3 | Ceph DocUBetter Meeting | 文档优化 | 双周 | +| 4 | Ceph Performance Meeting | Ceph性能优化 | 双周 | +| 5 | Ceph Developer Monthly | Ceph开发者月度例会 | 月 | +| 6 | Ceph Testing Meeting | 版本验证及发布例会 | 月 | +| 7 | Ceph Science User Group Meeting | Ceph用于科学计算领域 | 月 | + +#### 会议小结 + +- Crimson SeaStore OSD Weekly Meeting + - 当前正在实现messager、seastore的multicore功能; + - 360计划在seastore中增加data cache功能,社区想明确收益场景和提升比例,相关数据需进一步补充,继续保持关注。 + +--- +【如关注分布式存储技术请加小编好友微信“liu_qinfei”,拉你进sig-SDS技术交流群】 + +> 上一期:[openEuler SDS社区动态(2022-11-1~2022-11-30)](https://zhuanlan.zhihu.com/p/589162784) diff --git "a/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25415\346\234\237(2023-1-01_2023-1-31).md" "b/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25415\346\234\237(2023-1-01_2023-1-31).md" new file mode 100644 index 0000000..ffa02f8 --- /dev/null +++ "b/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\346\234\237\345\210\212_\347\254\25415\346\234\237(2023-1-01_2023-1-31).md" @@ -0,0 +1,138 @@ +# openEuler SDS社区动态(2023-1-1~2023-1-31) + +本期主编:刘秦飞 + +## 本期主要内容 +- 发布Ceph v16.2.11 +- 近期社区合入PR概要 +- 近期Ceph Developer动态 +- openEuler社区SDS动态 +- SDS业界动态 + +## ceph社区动态 +### Ceph v16.2.11 Pacific released + +[v16.2.11](https://ceph.io/en/news/blog/2023/v16-2-11-pacific-released/)是Pacific的第8个回合版本。 +如下主要更新如下: +- Cephfs:不建议使用**AT_NO_ATTR_SYNC**宏,请使用标准的**AT_STATX_DONT_SYNC**宏。**AT_NO_ATTR_SYNC**宏将被删除。 +- PGLog转储裁剪的控制变量由版本替换为大小。这修复了PG拆分操作后在线(在OSD中)修剪卡住时发生的PGLog膨胀问题。此外,针对OSD因转储PGLog膨胀而无法引导的情况,新增了一个离线工具ceph-objectstore-tool。如果发生了该异常,在OSD日志中,将显示“You can be hit by THE DUPS BUG”警告。[相关跟踪Issue](https://tracker.ceph.com/issues/53729) +- RBD:rbd设备unmap命令新增了 --namespace选项。Nautilus 14.2.0中的RBD中添加了对命名空间的支持;虽然可以使用image-spec语法映射和取消映射命名空间中的image,但其他命令缺少相应选项。 + +### 近期Ceph社区合入PR概要 +### 1. 概览 +- 本月ceph社区新增347个PR, 新合入235个PR。 +- 本月合入PR最多的厂商是redhat, 共计合入184个。 +- 本月提交commit最多的开发者是Adam King, 共计提交32个commits。 +#### 补丁数量统计 + +| 补丁新增 | 补丁合入 | 补丁关闭 | 补丁更新 | +| --------- | -------- | -------- | -------- | +| **347** | **235** | **93** | **790** | +#### 活跃开发者提交commit排行 +1. Adam King +2. Casey Bodley +3. Zac Dover +4. Adam C. Emerson +5. John Mulligan + +RedHat作为主要贡献者,在各个模块均有较多投入, 本期活跃的模块依次是rgw、mgr、rados、cephadm; + +> 近期社区重要补丁汇总: [传送门](https://github.com/ceph/ceph/pulse) + +#### 近期Ceph社区版本重要合入PR说明 +- crimson/osd + - cyanstore支持多核[#48575](https://github.com/ceph/ceph/pull/48575) + - 支持快照回滚[#48756](https://github.com/ceph/ceph/pull/48756) + - 在覆盖写时切分对象数据块,以解决写放大问题[#45519](https://github.com/ceph/ceph/pull/45519) +- mgr + - 增加了一个展示集群使用率的卡片, 内容参数包括(Used capacity, IOPS ,Latency, Client Throughput, Recovery Throught)[#48173](https://github.com/ceph/ceph/pull/48173) +- bluestore + - 使能BlueFS分配4K,修复BlueFS分配空间失败[#48854](https://github.com/ceph/ceph/pull/48854) +- rgw + - 除顶层接口外,将datalog相关接口改为协程支持[#49741](https://github.com/ceph/ceph/pull/49741) + - 建桶操作协程支持[#49769](https://github.com/ceph/ceph/pull/49769) + - 初次提交:Arrow Flight前端支持[#48729](https://github.com/ceph/ceph/pull/48729) + - redhat9 openssl3.x fips启用后,不支持md5,ceph解决此环境下的段错误问题,强制使能md5[#49533](https://github.com/ceph/ceph/pull/49533) +- cephadm + - 将完全依赖解析yaml改为仅从中拉取host等关键信息,减少过程出错[#48496](https://github.com/ceph/ceph/pull/48496) + + +### 近期Ceph Developer动态 + +#### 会议汇总 + +社区核心开发者会议如下(由于与美国东部时间有13个小时的时差,以事后查阅社区录像为主)。[传送门](https://www.youtube.com/channel/UCno-Fry25FJ7B4RycCxOtfw) + +| 序号 | 会议名称 | 说明 | 频率 | +| ---- | ----------------------------------- | ----------------------- | ---- | +| 1 | Crimson SeaStore OSD Weekly Meeting | 下一代版本seastore开发 | 周 | +| 2 | Ceph Orchestration Meeting | Ceph管理模块(Mgr)开发 | 周 | +| 3 | Ceph DocUBetter Meeting | 文档优化 | 双周 | +| 4 | Ceph Performance Meeting | Ceph性能优化 | 双周 | +| 5 | Ceph Developer Monthly | Ceph开发者月度例会 | 月 | +| 6 | Ceph Testing Meeting | 版本验证及发布例会 | 月 | +| 7 | Ceph Science User Group Meeting | Ceph用于科学计算领域 | 月 | + + +#### 会议小结 + +- performance weekly meeting schedule + - 讨论ceph的新研究方向:使用深度强化学习方法自动调优分布式文件系统的静态参数 + - bluestore在删除PG阶段执行_collection_list()的操作时延非常高,往往导致OSD超时掉线。该 [#49617](https://github.com/ceph/ceph/pull/49617)PR提出删除这里的检查,因为PG::do_delete_work会执行检查确认在删除前数据库中没有数据对象。 + - 关于Pacific版本的一些问题 + - 相比于Nautilus严重的写放大问题[tracker](https://tracker.ceph.com/issues/58530) + - 在激活messenger throttle后出现了严重的写停顿问题[tracker](https://tracker.ceph.com/issues/58528) + - 讨论RocksDB性能调优和实验 + - 一些新的选项可以显著提升性能 + - bluestore_volume_selection_reserved_factor可以提升快设备的空间使用率 + +- rbd over NVMeOF + - 考虑使用多阶段容器文件来创建容器以简化容器化部署 + - 后续通过github上的[project](https://github.com/orgs/ceph/projects/1)来管控项目 + - NOF的discovery服务仍在需求对齐阶段 + - 为spdk中的ceph集群配置核掩码用来设置非spdk的核 + +## openEuler社区SDS动态 + +- 引入分布式存储组件lustre + - 在lustre上游社区增加对openEuler的支持(推动中) + - [e2fsprogs 多版本支持](https://gitee.com/src-openeuler/e2fsprogs/issues/I67I0B) + - [kmod rpm包安装依赖问题](https://gitee.com/src-openeuler/openEuler-rpm-config/issues/I6D2HE) +- 新增特性开发需求:ceph dashboard汉化版本开发 +- openEuler22.03LTS版本合入对loongarch架构的支持[PR158](https://gitee.com/src-openeuler/ceph/pulls/158) + - 1、解决rgw/rgw_string.h在使用系统的boost编译时因缺少头文件导致的编译失败问题 + - 2、解决在loongarch下编译ceph因找不到atomic库而导致的失败问题 +- 处理版本异常[ceph相关包因缺少依赖selinux-policy-base导致无法安装](https://gitee.com/src-openeuler/ceph/issues/I68646?from=project-issue) + +## SDS业界动态 +### [Ceph Days NYC](https://ceph.io/en/community/events/2023/ceph-days-nyc/) +Event details: +120 Park Ave, New York, NY 10165 +Event Date: 2023-02-21 + +### [Ceph Days Southern California](https://ceph.io/en/community/events/2023/ceph-days-socal/) +Event details: +300 E Green St Pasadena, CA 91101 +Co-located with SCALE, Pasadena Convention Center +#### Important Dates +CFP Opens: 2022-01-09 +CFP Closes: 2023-02-02 +Speakers receive confirmation of acceptance: 2023-02-08 +Schedule Announcement: 2023-02-10 +Event Date: 2023-03-09 + +### [Cephalocon 2023](https://ceph.io/en/community/events/2023/cephalocon-amsterdam/) +Event details: +Piet Heinkade 179 1019 HC Amsterdam, Netherlands +#### Important Dates +CFP Closes: Sunday, February 12 at 11:59 pm PST +CFP Notifications: Wednesday, February 22 +Schedule Announcement: Monday, February 27 +Presentation Slides Due: Wednesday, April 12 +Event Dates: Monday, April 17 – Tuesday, April 18 (Developer Summit Sunday, April 16) + +--- +【如关注分布式存储技术请加小编好友微信“liu_qinfei”,拉你进sig-SDS技术交流群】 + +> 上一期:[openEuler SDS社区动态(2022-12-1~2022-12-31)](https://zhuanlan.zhihu.com/p/596413994) + diff --git "a/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\357\274\2102022-8-1~2022-9-30\357\274\211.md" "b/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\357\274\2102022-8-1~2022-9-30\357\274\211.md" new file mode 100644 index 0000000..274eaa5 --- /dev/null +++ "b/ceph/openEuler SDS\347\244\276\345\214\272\346\264\236\345\257\237/openEuler SDS\347\244\276\345\214\272\345\212\250\346\200\201\357\274\2102022-8-1~2022-9-30\357\274\211.md" @@ -0,0 +1,123 @@ +--- +title:Ceph社区动态 (2022-8-1~2022-9-30) +date:2022-9-29 +tags: +-Ceph +-动态 +-Octopus +-OpenEuler +sig:sig-SDS +archives:2022-09 +author:@Zhiwei-Dai +summary:Ceph社区动态 +--- + +# openEuler SDS社区动态(2022-8-1~2022-9-30) + +## 原生ceph社区动态 + +### Ceph v15.2.17 Octopus released + +[v15.2.17](https://ceph.io/en/news/blog/2022/v15-2-17-octopus-released/)是Octopus的第17个版本。 +如下主要更新如下: + +- 修改SnapMapper key的格式,以修复ceph版本升级之后快照无法删除的bug。 +- 命令'rbd perf image iostat'和'rbd perf image iotop'将默认统计所有RBD pool的image。此前只统计rbd_default_pool。 +- 修复了CVE-2022-0607问题。 + +### 近期社区合入pr + +近期pr主要以bug修复为主,摘选了主要特性修改如下所示: + +- SeaStore + * 优化SeaStore分区存储(ZNS)支持[#47518](https://github.com/ceph/ceph/pull/47518) + * 使用direct IO避免在aarch64 64K pagesize下出现superblock超级块被覆盖写[#48092](https://github.com/ceph/ceph/pull/48092) + +- rgw + * 优化特殊对象组织结构下bucket list操作耗时长的问题[#46930](https://github/com/ceph/ceph/pull/46930) + * rgw/lua: 支持使用lua脚本完成put,get数据访问[#47719](https::/github.com/ceph/ceph/pull/47719) + * Zipper项目进展,支持将DAOS作为rgw存储后端[#47709](https::/github.com/ceph/ceph/pull/47709) +![输入图片说明](https://foruda.gitee.com/images/1665295236387601748/d3ccea73_1665388.png "image-20220929111830592.png") + +- osd + - 使用fmlib中sprintf替换原有的snprintf,优化SnapMapper::get_prefix性能[#47408](https://github.com/ceph/ceph/pull/47408) +- cmake + - 新增WITH_BOOST_VALGRIND选项[#47441](https::/github.com/ceph/ceph/pull/47441) +- ceph.spec + - 由于aarch64平台下不支持pmdk,关闭相关选项[#47544](https::/github.com/ceph/ceph/pull/47544) + - 当前主线(quincy)要求gcc版本大于等于11[#47429](https::/github.com/ceph/ceph/pull/47429)[#47548](https::/github.com/ceph/ceph/pull/47548) +- cephadm + - cephadm中新增为rgw服务设置多个虚拟ip地址功能[#47513](https::/github.com/ceph/ceph/pull/47513) + +- 重删 + * ceph_dedup_tool增加SampleDedup功能,根据采样对象间的采样去重结果对base pool中的对象进行去重[#45369](https://github.com/ceph/ceph/pull/45369) +- mgr + * 利用exporter对性能计数器重构,将其从MGR中剥离,避免不断增长的性能计数器开销对MGR带来负担[#45213](https://github.com/ceph/ceph/pull/46213) + +### 近期Ceph Developer动态 + +Ceph社区各个模块会定期举行会议,讨论和对齐开发进展,会后有视频上传至[youtube](https://www.youtube.com/channel/UCno-Fry25FJ7B4RycCxOtfw/videos),主要会议信息如下: + +| 会议名称 | 说明 | 频率 | +| ----------------------------------- | ---------------------------- | ------ | +| Crimson SeaStore OSD Weekly Meeting | Crimson & Seastore开发周例会 | 周 | +| Ceph Orchestration Meeting | Ceph管理模块(Mgr)开发 | 周 | +| Ceph DocUBetter Meeting | 文档优化 | 双周 | +| Ceph Performance Meeting | Ceph性能优化 | 双周 | +| Ceph Developer Monthly | Ceph开发者月度例会 | 月 | +| Ceph Testing Meeting | 版本验证及发布例会 | 月 | +| Ceph Science User Group Meeting | Ceph科学计算领域会议 | 不定期 | +| Ceph Leadership Team Meeting | Ceph领导团队例会 | 周 | +| Ceph Tech talks | Ceph社区技术相关主题讨论 | 月 | + +#### Performance Meeting + +- RocksDB优化 + - 针对每个column famliy做参数设置 + - tombstone清理优化,在rocksdb compaction时会产生大量的tombstone,在rocksb内部跟踪tombstone产生 + 可能比在ceph中实现更好。还在调研中,具体优化待确定。 +- WITH_BOOST_VALGRIND选项可能对性能影响,当前设置成关闭,有需要可以开启。 +- 快照与rbd_mirror的CPU占用率问题分析。 + +## openEuler ceph社区动态 + +openEuler ceph社区动态 + +- openEuler 22.09创新分支版本即将发布 + +- 补丁,issue进展 + - [[#118]](https://gitee.com/src-openeuler/ceph/pulls/118) ceph-volume: 修复ceph-volume lvm list命令获取lvm列表时对get_pvs函数的重复调用,优化响应 + - [[#117]](https://gitee.com/src-openeuler/ceph/pulls/117) 修改ceph-volume模块,lvm api函数未定义的问题 + +- [ceph_dev] 特性进展 + + - [[#44762]](https://github.com/ceph/ceph/pull/44762/) zlib压缩isa-l aarch64优化已合入原生社区主线 + + - [[#46188]](https://github.com/ceph/ceph/pull/46188/) rgw压缩和加密叠加特性开发 + + - [WIP] rgw SM4加密特性开发 + +- 主题分享 + - ceph rgw压缩加密特性增强(@Zhiwei-Dai) + - ceph编译效率优化(@chenxuqiang2022) + - DAOS 安装部署介绍(@fengchunsong) + - ceph NOF方案卸载客户端开销(@liuqinfei) + + +## SDS业界动态 + +- Lustre + + Lustre管理员和开发人员研讨会([LAD22](https://www.eofs.eu/events/lad22))将于2022年9月27日至28日在巴黎及线上召开。 +![输入图片说明](https://foruda.gitee.com/images/1665295093515958937/d3f02710_1665388.png "lad22-logo-v2.2.png") + + +- DAOS + + DAOS社区将在[IXPUG](https://www.ixpug.org/ixpug-2022)上演讲“存储和内存层次结构的演变及其DAOS在其中的作用” 。 +![输入图片说明](https://foruda.gitee.com/images/1665295164288124395/532f10fb_1665388.png "image-20220926144446599.png") + + + +## 【如关注分布式存储技术请用微信扫描二维码加小编好友,拉你进sig-SDS技术交流群】 +![输入图片说明](https://foruda.gitee.com/images/1665295182287652639/02d94dc0_1665388.jpeg "liuqinfei.jpg") \ No newline at end of file diff --git "a/ceph/\346\212\200\346\234\257\346\212\245\345\221\212\345\210\227\350\241\250.md" "b/ceph/\346\212\200\346\234\257\346\212\245\345\221\212\345\210\227\350\241\250.md" new file mode 100644 index 0000000..b721ed5 --- /dev/null +++ "b/ceph/\346\212\200\346\234\257\346\212\245\345\221\212\345\210\227\350\241\250.md" @@ -0,0 +1,60 @@ +### 迭代中特性 + + +1)crimson特性评估和使能 -- 罗日新 +2)推动ceph原生社区发布openEuler版本-- 王玺源 +3)ceph dashboard汉化支持 -- 朱超 +4)引入分布式存储组件lustre -- 刘新良 + + +### 已归档特性 + + **1,性能优化** + +1)《Ceph编译出包速度提升方法》 -- 陈续强 +2)《Ceph Rgw DataProcessor Reinforcement》 -- 戴志威 +3)《ceph NOF方案卸载客户端开销》-- 刘秦飞 +4)《osd中的rocksdb调优指南》-- 池信泽 +5) AArch64平台上64K内核页相关问题-- 罗日新 +6)《消息线程间负载均衡优化》-- 冯春松 + + **2,硬件加速** +1)《Pliops在企业级存储的应用》-- Leo Li +2)《Ceph场景中Pliops XDP的应用方向及Rocksdb对比》 -- 黄忠华 +3)《鲲鹏硬件加速器Ceph使能指南》 -- 戴志威 +4)《uadk压缩插件,支持块与对象压缩处理加速》 -- 戴志威 + + **3,分布式存储组件使能** +1)《BeeGFS 在Arm64的版本使能》 -- 刘秦飞 +2)《openEuler DAOS出包指导》 -- 冯春松 +3) 《Lustre arm64初探》 -- 冯春松 +4) 《DAOS 安装部署介绍》-- 冯春松 +5) 《DAOS ARM64调测之旅》-- 冯春松 +6) 《openEuler-20.03-LTS-SP3上ceph14.2.8编译指导》 -- 王增亮 +7) 《openEuler20.03-LTS-SP3 ceph16.2.7编译出包指导》 -- 王增亮 +8) 《openEuler-20.03-LTS-SP3上ceph15.2.5编译指导》 -- 李璐 +9) 《openEuler-20.03-LTS-SP3上ceph15.2.15编译指导》 -- 徐赫 +10)《openEuler-22.03-LTS-SP1编译安装ceph15.2.15指导说明书》 -- 朱超 +11)《openEuler-22.03-LTS-SP1编译安装ceph14.2.15指导说明书》 -- 朱超 +12)《ceph dashboard汉化指导说明》 -- 朱超 +13)《ceph多版本商业维保解决方案》 -- 杨晓亮 +14)《ceph质量看护qa》 -- 王增亮 +15)《ceph的国密使能》 -- 戴志威 + + **4,参考技术链接** +1)[openEuler 22.03 ARM架构 PAGE_SIZE 选择 4k or 64K](https://gitee.com/openeuler/kernel/issues/I4HDHZ?from=project-issue) + + **5,SDS社区动态报告** +[openEuler SDS社区动态(2023-1-1~2023-1-31)](https://gitee.com/src-openeuler/ceph/wikis/openEuler%20SDS%E7%A4%BE%E5%8C%BA%E6%B4%9E%E5%AF%9F/openEuler%20SDS%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81%E6%9C%9F%E5%88%8A_%E7%AC%AC15%E6%9C%9F(2023-1-01_2023-1-31)) +[openEuler SDS社区动态期刊_第14期(2022-12-01_2022-12-31)](https://gitee.com/src-openeuler/ceph/wikis/openEuler%20SDS%E7%A4%BE%E5%8C%BA%E6%B4%9E%E5%AF%9F/openEuler%20SDS%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81%E6%9C%9F%E5%88%8A_%E7%AC%AC14%E6%9C%9F(2022-12-01_2022-12-31)) +[openEuler SDS社区动态期刊_第13期(2022-11-01~2022-11-30)](https://gitee.com/src-openeuler/ceph/wikis/%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/openEuler%20SDS%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81%E6%9C%9F%E5%88%8A_%E7%AC%AC13%E6%9C%9F(2022-11-01~2022-11-30)) +[openEuler SDS社区动态(2022-10-1~2022-10-31)](https://zhuanlan.zhihu.com/p/581332698) +[openEuler SDS社区动态(2022-8-1~2022-9-30)](https://gitee.com/src-openeuler/ceph/wikis/%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/openEuler%20SDS%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81%EF%BC%882022-8-1~2022-9-30%EF%BC%89) +[Ceph社区动态(2022-7-1~2022-7-30)](https://zhuanlan.zhihu.com/p/556299747) +[Ceph社区动态(2022-6-1~2022-6-30)](https://www.openeuler.org/zh/blog/rosinL/2022-7-16-Ceph%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81(2022-6-1~2022-6-30).html) +[Ceph社区动态(2022-4-16~2022-5-31)](https://www.openeuler.org/zh/blog/rosinL/2022-6-27-Ceph%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81(2022-4-16~2022-5-31).html) +[Ceph社区动态(2022-3-15~2022-4-15)](http://https://www.openeuler.org/zh/blog/rosinL/2022-4-26-Ceph%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81(2022-3-15~2022-4-15).html) +[Ceph社区动态(2022-2-17~2022-3-13)](https://www.openeuler.org/zh/blog/rosinL/2022-3-31-Ceph%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81(2022-2-17~2022-3-13).html) +[Ceph社区动态(2021-1-17~2022-2-16)](https://www.openeuler.org/zh/blog/rosinL/2022-2-23-Ceph%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81(2021-1-17~2022-2-16).html) +[Ceph社区动态(2021-12-13~2022-1-16)](https://www.openeuler.org/zh/blog/rosinL/2022-1-30-Ceph%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81(2021-12-13~2022-1-16).html) +[Ceph社区动态(2021-11-29~2021-12-12)](https://www.openeuler.org/zh/blog/rosinL/2021-12-25-Ceph%E7%A4%BE%E5%8C%BA%E5%8A%A8%E6%80%81(2021-11-29~2021-12-12).html) \ No newline at end of file -- Gitee