新闻详情

新闻详情

首页 / 资讯中心 / 详情

Ceph Kraken(v11.x)发布详解:BlueStore 新后端、AsyncMessenger 与 Jewel 升级路径

发布时间:2026/11/12 14:40:42来源:尧图网络
Ceph Kraken(v11.x)发布详解:BlueStore 新后端、AsyncMessenger 与 Jewel 升级路径
存储分布式文件系统对象存储后端高可用【免费下载链接】cephCeph is a distributed object, block, and file storage platform项目地址https://gitcode.com/gh_mirrors/ce/ceph点击查看免费下载本文以 Ceph 官方发布说明 doc/releases/kraken.rst 为主体结合当前仓库源码系统梳理 Kraken 系列v11.0.2 / v11.2.0 / v11.2.1的核心技术变更全新 BlueStore 存储后端、默认启用的 AsyncMessenger、新引入的 ceph-mgr 守护进程、EC 池覆盖写等实验特性并给出从 Jewel 升级到 Kraken 的完整前置条件、操作顺序与新配置项速查表帮助运维与开发人员安全评估、部署和升级该版本。Kraken 是 Ceph 的第 11 个稳定版本系列代号源自北欧传说中形似头足纲生物的传奇海怪。本文覆盖该系列的三个版本作为开发检查点发布的 v11.0.2、作为首个稳定版的 v11.2.0以及作为系列收尾补丁版的 v11.2.1。阅读本文后你将掌握 Kraken 相比 Jewel 的架构级变化、BlueStore 的启用与创建方法、升级前的 CRUSH/标志位检查以及一批影响运维行为的新配置参数。Kraken 系列版本总览Kraken 系列共包含三个公开发布版本各自定位如下版本定位核心内容v11.0.2开发检查点development checkpoint首次引入 ceph-mgr 守护进程BlueStore 大量改进RGW 引入 sync modules、multipart copy-part 与基于 ElasticSearch 的元数据检索技术预览v11.2.0首个稳定版stable稳定磁盘格式的 BlueStoreEC 覆盖写实验支持默认 AsyncMessengerOSD 故障快速检测ceph-mgr 基础架构落地v11.2.1系列补丁版bugfixKraken 系列最后一个版本跨所有组件的大规模缺陷修复Luminous 稳定后 Kraken 即宣告 EOLv11.2.0 稳定版会持续通过缺陷修复与 backport 得到维护直到下一个稳定版 Luminousv12.2.z在 2017 年春季发布。v11.2.1 是 Kraken 的第一个补丁版官方建议所有 v11.2.x 用户升级完整逐条变更记录见 doc/changelog/v11.2.1.txt仓库内保留的完整变更日志。v11.2.1 关键行为变化与安全操作误定向操作misdirected op默认不再返回 ENXIO在早期版本中若客户端把操作发送到了错误的 OSDOSD 会直接回复ENXIO设备不存在理由是“客户端或 OSD 显然存在 bug应该把错误尽可能明显地暴露出来”。但这一行为对上层应用不友好使用 librbd 的虚拟机原本只会收到EIO并转为只读现在则会看到 IO 阻塞/挂起。v11.2.1 起只有显式开启osd_enxio_on_misdirected_op配置项默认关闭时才回复ENXIO。从当前仓库源码可以印证 OSD 对误定向操作的统一处理路径位于 OSDService::handle_misdirected_op该函数先做各类断言与 EC PG 场景下的目标重算EC 场景下 PG 分裂可能导致误判此时直接丢弃、由客户端重发最终通过clog-warn()记录一条“misdirected op”告警日志而非直接返回错误。PrimaryLogPG在 PrimaryLogPG.cc 中识别误定向场景并回调到该处理函数。删除 OSD 前必须先将其从 CRUSH map 移除Jewel 引入的缺陷tracker #19119破坏了如下场景的映射行为一个仍存在于 CRUSH map 中的outOSD 被osd rm直接删除时可能引发“misdirected op”等错误。v11.2.1 修复了该缺陷但修复本身引入了同类风险——因为客户端与 OSD 的行为可能不一致。因此官方要求删除 OSD 时必须严格按以下顺序执行ceph osd crush rm osd.123 ceph osd rm osd.123即先crush rm将其从 CRUSH map 中移除再osd rm删除。快照裁剪snap trimmer的并发控制v11.2.1 显著改善了对快照裁剪任务的控制与节流osd max trimming pgs默认 2限制单个 OSD 上同时处于快照裁剪状态的 PG 数量。当前仓库中该配置项由 OSD.cc 动态接管变更时调用service.snap_reserver.set_max(...)调整快照预留资源支持在线调整而无需重启 OSD。osd snap trim sleep默认 0恢复该选项的安全使用非零时在每次向底层系统派发裁剪操作之间插入指定秒数的延迟。实现位于 OSD::get_osd_snap_trim_sleep并根据磁盘介质类型细分出osd_snap_trim_sleep_hdd、osd_snap_trim_sleep_ssd、osd_snap_trim_sleep_hybrid三个变体。v11.2.0 自 Jewel 以来的重大变更RADOS 层BlueStore 新后端磁盘格式已稳定并通过故障与压力测试但仍标记为实验性官方鼓励在非生产集群和非关键数据集上试用详见下文 BlueStore 专题。EC 池覆盖写实验性RADOS 对纠删码池的实验性覆盖写支持。由于磁盘格式与实现尚未定稿必须通过特殊池选项显式开启一旦开启该集群将被永久禁止升级到未来版本务必在测试集群上评估。默认启用 AsyncMessengerms type async替代传统 SimpleMessenger。最显著的区别是网络连接改用固定大小线程池而不是 SimpleMessenger 的“每 socket 两个线程”。OSD 故障快速检测部分 OSD 故障现在几乎可以立即被感知不再需要等待默认 20 秒的心跳超时heartbeat timeout到期。这避免了“主机仍在、ceph-osd 进程已退出”场景下 IO 长时间阻塞。新 ceph-mgr 守护进程默认与 monitor 共置基础设施已就位当前仓库的守护进程实现见 src/mgr可对接外部监控/管理系统。OSDMap 编码体积缩小OSD 在恢复或再平衡期间会暂停发起新的 scrub详见下文升级注意事项。RGW 层新增用于 ElasticSearch 元数据索引的新 zone 类型sync modules。支持 S3 multipart 对象的 copy-part API。支持对已有 bucket 进行 reshard注意reshard 期间要求该 bucket 的所有 IO尤其是写保持静默。支持对象级数据压缩。Civetweb 升级到 1.8。支持 Swift 静态网站 APIS3 静态网站支持此前已加入。新增 S3 bucket lifecycle API当前仅支持对象过期。LDAP 认证实现支持自定义搜索过滤器。RGW NFS 网关支持 NFSv3并创建了 librgw 的 Python 绑定。RBD 层RBD 镜像可存储在使用新实验性覆盖写支持的 EC RADOS 池中。镜像必须用新的 rbd CLI 选项--data-pool ec pool创建以指定存放数据对象的 EC 池直接在一个 EC 池上创建镜像不会成功因为镜像的底层元数据仅支持副本池rbd create --data-pool ec_pool image_name --size sizerbd-mirror 守护进程现在支持将动态镜像 feature 更新与镜像 metadata 键值对从主镜像复制到非主镜像。镜像快照数量可配置上限限制。rbd Python API 支持异步 IO 操作。CephFS 层libcephfs 函数定义变更以支持正确的 uid/gid 控制库版本号相应提升。standby replay MDS 在执行删除类工作负载时内存占用更低。Scrub 现在可修复 backtrace并将发现的问题填充到damage ls。cephfs-data-scan新增pg_files子命令可识别受损坏或丢失 RADOS PG 影响的文件。修复了“failing to respond to cache pressure”误报告警。BlueStore 专题直接管理裸设备的新存储后端BlueStore 是 Kraken 最受关注的新特性。与依赖 XFS 文件系统把对象存为文件的 FileStore 不同BlueStore 直接管理底层块设备实现了专为 Ceph OSD 工作负载设计的类文件系统磁盘结构。当前仓库中其实现位于 src/os/bluestore核心为BlueStore.cc配套 BlueFS 用于管理 RocksDB 元数据与 WAL。关键特性全量数据校验和写入磁盘的所有数据带校验和所有读取默认进行校验和验证。内联压缩可通过池属性按池启用或通过客户端 hint 按对象启用。高效日志journal与 FileStore 将所有数据写入日志设备不同BlueStore 只记录元数据以及某些场景下的小写入因此日志的体积与吞吐要求大幅降低。日志可与数据共置在同一设备也可放到更小的高性能设备如 SSD/NVMeBlueStore 日志默认仅 512 MB。BlueStore 磁盘格式预期会继续演进但 OSD 会在升级时提供迁移到新格式的支持。注意BlueStore 在 Kraken 中仍标记为“experimental”。官方建议用于概念验证与测试环境或可容忍数据丢失的场景。虽然在测试环境中表现稳定但代码较新、缺陷不可避免社区希望通过 Kraken 部署的反馈在下一个大版本 Luminous 中将其标记为稳定并设为默认。启用 BlueStore 需在 ceph.conf 中加入enable experimental unrecoverable data corrupting features bluestore创建 BlueStore OSD 时向 ceph-disk 或 ceph-deploy 传入--bluestore选项即可。从 Jewel 升级到 Kraken 的完整指南从 11.1.0 候选版升级BlueStore 在 11.1.0 之后发生了磁盘格式变更任何用 11.1.0 创建的 BlueStore OSD 都必须销毁并重建。从 Jewel 10.2.z 升级升级前置条件与顺序如下必须先升级到 Jewel 10.2.z所有集群必须先升级到 Jewel 10.2.z才能升级到 Kraken 11.2.z或之后的 Luminous 12.2.z。必须设置sortbitwise标志升级到 Kraken 前Jewel 集群必须已设置该标志。最新的 Jewel10.2.8在未设置时会发出健康告警因此通常已设置若未设置Kraken OSD 将拒绝启动并在日志中打印错误。升级顺序OSD、Monitor、MDS 可按任意顺序升级RGW 守护进程应最后升级。ceph-mgr 自动创建升级时新的 ceph-mgr 实例会自动与各 monitor 一同创建Jewel→Kraken 与 Jewel→Luminous 均如此Luminous 之后的升级则不一定。若不想让 ceph-mgr 与 ceph-mon 共置可自行创建新的 ceph-mgr 实例并销毁自动创建的实例。升级注意事项与新配置选项速查以下为升级到 Kraken 后需要注意的行为变化与新增配置项均来自原发布说明并可在 src/common/options/global.yaml.in 中核对部分参数定义配置项 / 命令默认值说明osd scrub during recoveryfalseOSD 在恢复进行期间不再启动新的 scrub如需恢复旧行为不让恢复活动影响 scrub 调度设为truemon_dns_srv_nameceph-mon构建 monmap 的 monitor 主机/地址列表可通过 DNS SRV 记录获取本项定义查询 DNS 时使用的服务名osd class load list全部内置类允许 OSD 加载的对象类名列表*表示所有类默认包含全部现有内置类以保持向后兼容osd class default list全部内置类客户端仅凭*、x、class-read、class-write能力即可调用的类名列表不在列表中的类需要具名能力如allow class foorgw rest getusage op compatfalse控制 S3 GetUsage API 是否输出用户统计的描述性 JSON。true时输出stats: { TotalBytes: 516, TotalBytesRounded: 1024, TotalEntries: 1 }false时保持旧式数组[ 516, 1024, 1 ]osd out .../osd in ...—现在会保留 OSD 权重将 OSD 标记 out 再 in 后权重与之前相同此前显式操作会被重置为 1.0只有 mon 自动标记时才保留ceph osd perf—列名由fs_commit_latency(ms)/fs_apply_latency(ms)改为commit_latency(ms)/apply_latency(ms)因这些指标并非 filestore 专属mon_allow_pool_deletefalseMonitor 默认不再允许删除池需显式设为true才允许删除作为防误删的额外保护。当前仓库中该选项定义于 global.yaml.in类型 bool、服务为 monmon keyvaluedb rocksdb—若此前手工指定了该选项需在 mon 数据目录手工添加kv_backend文件以保留设置echo rocksdb /var/lib/ceph/mon/ceph-hostname/kv_backend。新 monitor 默认使用 rocksdb但若该文件不存在既有 monitor 将使用 leveldbmon keyvaluedb现在只影响创建时的后端选择osd crush initial weight-1负值为新 OSD 指定 CRUSH 权重。此前 0默认表示按 OSD 存储容量自动加权现在 0 表示权重为 0负值新默认表示按容量自动加权。若配置文件中显式写了 0需改为负值如 -1以保持原行为osd crush location已废弃不再支持请改用crush location配置项osd_max_omap_entries_per_request131072Kraken 时librados omap get_keys/get_vals 服务端单次响应键数上限osd_max_omap_bytes_per_request4 MBKraken 时omap 单次响应总字节数上限防止粗心用户单次请求过量数据当前仓库默认值已演进见 global.yaml.in恢复优先级计算—已更新升级过程中可能出现不符合直觉的恢复优先级排序新旧 OSD 使用不同优先级区间升级完成后集群将使用一致的值其他需要注意的打包与生态变化debian 开发包lib*-dev不再包含静态库与 libtool 伪库.la 文件共享库.so照常打包。jerasure 与 shec 插件可在运行时检测 SIMD 指令不再需要为不同处理器显式配置。jerasure_generic、jerasure_sse3、jerasure_sse4、jerasure_neon、shec_generic、shec_sse3、shec_sse4、shec_neon均已废弃直接使用这些插件会在 mon 日志中看到告警请改用jerasure或shec。v11.2.1 各组件修复要点v11.2.1 包含跨所有 Ceph 组件的大量缺陷修复按主题整理如下完整逐条清单见 doc/changelog/v11.2.1.txt构建与打包build/opsUbuntu Xenial 上 ceph-base 缺少 psmisc 依赖debian 包缺少 logrotateSELinux 安装时并行 relabelspec 文件引用不存在的 ceph-create-keys systemd 单元导致 ceph-mon 无法经 preset 启用systemd 在 ceph-mon 启动失败后重启过快systemd 调整为先启动 MON 再启动 OSD。ceph-disk新增fix子命令的 Kraken backport不支持非ceph集群名的问题启动时启用目录型 OSDbluestore 下--setgroup组名错误、prepare组名错误分区创建与设备节点创建的竞态list在带 SELinux context 挂载选项时误报挂载错误。CephFS / MDS / client修复 ceph-fuse 快照测试崩溃、与 MDS 断连后不恢复、两客户端访问同一文件死锁、大规模 cap/inode 下 rejoin 时心跳超时、超大 xattr 导致 MDS 崩溃、非本地 quota 变更需 IO 才可见、readdir提速跳过无关 dn、rmfailed命令无输出、文件打开标志内部归一化、handle_client_caps段错误等。librbd / rbd / rbd-mirror / rbd-nbd允许在不打开父镜像的情况下打开镜像resize RPC 消息向后兼容is_exclusive_lock_ownerAPI 应 ping OSDbreak lock 时防止自我 blacklistrbd-mirror 补删快照读错误、漏检镜像重新同步、未修改镜像 failover/failback 导致 split-brain、克隆镜像镜像竞态rbd-nbd 增加信号处理器并校验内核映射EC 池不支持覆盖写时拒绝使用。mon / OSD / bluestore / msgr缓存分层基础池last_force_resend不被尊重大 quorum 下msg/async忙循环force_create_pg可能卡在 creatingosd crush move不生效osd crush set crushmap缺健全性检查客户端节流器可在线调整默认不发送 ENXIO见上文scrub 请求优先级提升、异步 scrub sleep 实现bluestore 的 statfs 不把 DB 分区计入可用空间、Allocator 整数截断、onode 深解码PG 统计发布、pg log split 索引重建等。RGW / multisite多站点大量修复large period 解码失败、data sync命令挂起、元数据同步崩溃、SLO 对象 EPERM、zonegroup 更新回退删除、短 zone id 未清理等Swift API 系列修复对象过期remove-x-delete、根级特性/crossdomain.xml、/info、/healthcheck、x-openstack-request-id 头、versioning 禁用等S3 相关X-Amz-Expires v4 认证、版本列表缺 VersionIdMarker、压缩对象范围下载内容错误、copy-part 后对象大小错误、lifecycle 线程处理已删除 bucket 等。测试与工具ceph-object-corpus 增加 kraken 对象radosgw-admin增加object stat命令到 usagerados/ceph-objectstore-tool等工具修复若干崩溃与返回值问题。v11.0.2 开发检查点要点v11.0.2 是 Kraken 的首个开发检查点标志着ceph-mgr 首次亮相提供额外监控能力及外部监控/管理系统接口的新守护进程当前仓库见 src/mgr也是后续版本中 dashboard、prometheus 等模块的基座。BlueStore 密集迭代大量关于 BlueFS异步 compaction、direct IO、WAL、bitmap/bit 分配器、2Q 缓存 trim、校验和、压缩、onode 内存占用与编码优化的改动对应 src/os/bluestore 下的BlueStore.cc、BlueFS.cc、Allocator.cc等文件。RGW 新能力sync modules、multipart copy-part、经 ElasticSearch 的元数据检索技术预览。该版本同时将 AsyncMessenger 设为默认消息后端并引入 EC 覆盖写的早期实现基础。源码印证路径速览以下仓库位置可帮助读者深入验证本文涉及的关键实现src/os/bluestoreBlueStore/BlueFS 后端实现。src/osd/OSD.cc#L1653-L1706handle_misdirected_op误定向操作处理ENXIO 行为的基础。src/osd/OSD.cc#L3659-L3668osd_snap_trim_sleep系列选项取值逻辑OSD.cc#L10089-L10188 为osd_max_trimming_pgs的在线调整入口。src/common/options/global.yaml.inmon_allow_pool_delete、osd_max_omap_entries_per_request、osd_max_omap_bytes_per_request等配置项的定义与默认值。src/mgrceph-mgr 守护进程源码。doc/changelog/v11.2.1.txtv11.2.1 完整逐条变更日志。结语Kraken 是 Ceph 迈向 Luminous 的关键过渡版本BlueStore 首次以稳定磁盘格式走向用户AsyncMessenger 成为默认消息框架ceph-mgr 架构正式落地EC 覆盖写则开启了纠删码池的新可能。对运维而言本文给出的升级顺序先 Jewel 10.2.z、确保sortbitwise、最后升级 RGW、OSD 删除顺序先crush rm再osd rm以及新配置项速查表是安全完成此次升级的实用清单对开发者而言上述源码路径则为深入理解这些行为变化提供了起点。赞分享存储分布式文件系统对象存储后端高可用【免费下载链接】cephCeph is a distributed object, block, and file storage platform项目地址https://gitcode.com/gh_mirrors/ce/ceph点击查看免费下载相关推荐Joplin Web Clipper 完全指南安装、配置、排障与 API 集成Joplin Web Clipper 完全指南安装、配置、排障与 API 集成 Web Clipper 是 Joplin 官方提供的浏览器扩展用于从浏览器中存储分布式文件系统对象存储后端高可用Drupal 文件上传存储型 XSS 漏洞CVE-2019-6341复现与原理剖析Drupal 文件上传存储型 XSS 漏洞CVE 2019 6341复现与原理剖析 本篇指南以 Vulhub 漏洞环境仓库中的 drupal/CVE 201存储分布式文件系统对象存储后端高可用Task Estimate: [Task Name]Task Estimate: Task Name Generated: Date Task Description Restate the task clear存储分布式文件系统对象存储后端高可用上一篇SunEditor自定义插件开发从零开始构建你的专属功能下一篇终极bpftrace调试指南10个快速定位系统问题的实战技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/11 13:52:51

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/10 19:42:40

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/12 9:50:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/12 9:25:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/11 15:37:39

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/10 17:14:10

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉