云原生存储高可用容器编排【免费下载链接】longhornCloud-Native distributed storage built on and for Kubernetes项目地址https://gitcode.com/gh_mirrors/lo/longhorn点击查看免费下载导读Longhorn 允许每个节点挂载多块磁盘但在默认调度策略下同一卷的两个副本即使落在同一节点上也可能被调度到同一块磁盘从而失去磁盘层面的冗余。本文基于 Longhorn 官方 enhancement 文档enhancements/20230718-disk-anti-affinity.md系统讲解 Disk Anti-Affinity 磁盘级反亲和特性的设计动机、全局设置与卷级字段的完整配置方法、调度器实现原理、升级兼容策略与测试计划帮助你在单节点或小规模多节点集群上把副本真正打散到不同磁盘实现类似 RAID 1 的磁盘级镜像保护。背景为什么需要磁盘级反亲和Longhorn 原生支持一个节点挂载多块磁盘multiple disks per node。在没有磁盘级反亲和特性之前调度器对同一卷的两个副本没有任何机制保证它们被放置到不同磁盘——即使调度时明明有更优的选择也可能把两个副本塞进同一块磁盘。这意味着一块磁盘故障时同节点的另一块磁盘上可能找不到健康副本单节点集群上磁盘故障可能直接导致卷崩溃。从功能定位上看虽然不能做到严格等价但磁盘级反亲和可以类比为 Longhorn 的 RAID 1——在同一节点内跨多块磁盘做镜像是节点级、区域级反亲和之外的第三层数据保护维度相关设计背景见 enhancement 文档的 Summary 与 Motivation 章节。已有的两级软反亲和节点级与区域级在引入磁盘级反亲和之前Longhorn 已经具备两级调度约束它们与磁盘级反亲和共同构成节点 → 区域 → 磁盘的三级副本分散体系级别设置项默认值作用节点级Replica Node Level Soft Anti-Affinity对应卷字段spec.replicaSoftAntiAffinity关闭Disabled关闭时阻止副本调度到已存在同一卷健康副本的节点可在卷级覆盖全局默认值区域级Replica Zone Level Soft Anti-Affinity对应卷字段spec.replicaSoftZoneAntiAffinity开启Enabled关闭时阻止副本调度到已存在同一卷健康副本的区域可在卷级覆盖全局默认值磁盘级新增Replica Disk Level Soft Anti-Affinity对应卷字段spec.replicaDiskSoftAntiAffinity开启true见下文动机哪些集群真正受益特性本身面向明确的使用场景并非所有集群都能从中获益大型多节点集群副本数通常远小于可用节点数调度器天然会把副本分散到不同节点从而也分散到不同磁盘此特性收益有限单节点集群与小规模多节点集群副本数超过可用节点数时收益显著更高的数据持久性单块磁盘故障后仍有健康副本存在于未故障的磁盘上更高的数据可用性节点上某块磁盘不可用时只要节点本身健康至少还有一个副本保持健康。在单节点集群上这可以直接避免卷崩溃在小规模多节点集群上可以防止后续因丢失另一个节点而引发的卷崩溃。设计目标Goals在任何情况下副本调度器都尽力保证同一卷的两个副本不被调度到同一磁盘可选地当卷级或全局配置要求严格时调度器拒绝把副本调度到已存在同一卷副本的磁盘。配置方式全局设置与卷级字段1. 全局设置Replica Disk Level Soft Anti-Affinity新增一个全局调度设置默认值为true。官方文档给出的定义如下Golang 伪代码形式SettingDefinitionReplicaDiskSoftAntiAffinity SettingDefinition{ DisplayName: Replica Disk Level Soft Anti-Affinity, Description: Allow scheduling on disks with existing healthy replicas of the same volume, Category: SettingCategoryScheduling, Type: SettingTypeBool, Required: true, ReadOnly: false, Default: true, }默认取true的原因把副本调度到不同磁盘通常更可取但若在磁盘不足时直接拒绝调度会破坏既有行为因此默认采用尽力分散、不拒绝调度的软约束语义。该设置属于SettingCategoryScheduling调度类别、布尔类型、必填、可修改默认值为true。在 Helm Chart 中对应defaultSettings.replicaDiskSoftAntiAffinity值chart/values.yaml渲染为 Longhorn 全局设置replica-disk-soft-anti-affinity见 chart/templates/default-setting.yaml相关说明同样收录在 chart/README.md 中。2. 卷级字段spec.replicaDiskSoftAntiAffinity在 Volume CRD 中新增spec.replicaDiskSoftAntiAffinity字段默认值为ignored。与既有的spec.replicaSoftAntiAffinity、spec.replicaSoftZoneAntiAffinity语义一致当字段设置为enabled或disabled时覆盖全局设置设置为ignored时跟随全局。官方文档给出的字段 schema 定义replicaDiskSoftAntiAffinity: description: Replica disk soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same disk. enum: - ignored - enabled - disabled type: string该字段在仓库中的 CRD 定义与此一致取值枚举为ignored/enabled/disabled类型为字符串见 chart/templates/crds.yaml 与 deploy/longhorn.yaml。注意enabled的语义是允许副本调度到同一磁盘即此时调度器不做磁盘分散约束对应全局设置的软语义为尽力分散但允许同盘。3. 完整配置示例方式一通过 Helm values 设置全局默认值# values.yamlHelm 安装时指定 defaultSettings: replicaDiskSoftAntiAffinity: true # 默认即 true设为 false 则严格拒绝同盘调度Rancher 集成场景下该值同样暴露在 Chart 的交互式配置界面defaultSettings.replicaDiskSoftAntiAffinity见 chart/questions.yaml。方式二通过 Volume 对象设置卷级覆盖apiVersion: longhorn.io/v1beta1 kind: Volume metadata: name: demo-volume spec: numberOfReplicas: 3 replicaSoftAntiAffinity: true # 允许同一节点多副本否则单节点集群无法调度 replicaDiskSoftAntiAffinity: enabled # 允许副本落在同一磁盘软约束尽力分散 # 若希望磁盘不足时调度显式失败请将卷级或全局设置为 disabled关键取值对照表配置位置取值调度行为全局设置true默认尽力将副本分散到不同磁盘磁盘不足时允许同盘不拒绝调度全局设置false拒绝把副本调度到已有同一卷健康副本的磁盘磁盘不足时调度显式失败卷字段ignored默认跟随全局设置卷字段enabled覆盖全局允许同盘调度尽力分散卷字段disabled覆盖全局拒绝同盘调度磁盘不足时调度失败调度器实现原理官方 enhancement 文档对实现做了明确描述。改造前的副本调度流程根据节点状态以及ReplicaSoftAntiAffinity节点级、ReplicaZoneSoftAntiAffinity区域级设置确定副本可被调度到的节点集合汇总这些节点上所有可调度磁盘形成磁盘列表选择剩余可用空间最大的磁盘完成调度。改造后的流程在步骤 2 与步骤 3 之间插入磁盘级过滤根据节点状态以及节点级、区域级反亲和设置确定可调度节点集合汇总所有可调度磁盘过滤磁盘列表优先保留已有匹配副本数量最少的磁盘当配置为严格模式disabled时仅保留没有任何匹配副本的磁盘在过滤后的磁盘列表中选择剩余可用空间最大的磁盘完成调度。也就是说磁盘可用空间不再是唯一的选盘依据先按磁盘上的副本密度收敛候选集再在候选集中按空间选盘。ReplicaDiskSoftAntiAffinityfalse或卷级disabled时步骤 3 的过滤结果可能为空集此时调度即失败这正是用户故事 2 / 3 所期望的失败要明显可见。用户故事特性解决的实际诉求官方文档通过三个递进的用户故事刻画了特性价值全部围绕单节点 多块 SSD这一核心场景故事 1尽力而为创建任意新卷时希望副本分布到不同磁盘以便承受n - 1块磁盘故障当可用磁盘数少于期望副本数时希望 Longhorn 尽力而为不失败、能调则调。故事 2显式失败同样的场景下当可用磁盘数不足时希望调度明显地失败——用户必须知道卷没有被充分保护以便及时干预。故事 3高优卷显式失败对某个特定的高优先级卷希望强制副本分散磁盘不足时同样要求调度显式失败确保高优先级卷一定处于受保护状态。故事 1 与故事 2/3 的差异正对应全局默认true尽力而为与false/卷级disabled严格拒绝两种语义故事 3 则体现了卷级字段spec.replicaDiskSoftAntiAffinity覆盖全局设置的存在意义。升级策略与兼容性官方文档明确了向后兼容策略全局设置Replica Disk Level Soft Anti-Affinity默认true保持既有行为不变软约束不会让原本能调度的副本突然调度失败仅当设置为false后后续需要调度的新副本才遵循新行为严格拒绝同盘。卷字段spec.replicaDiskSoftAntiAffinity默认ignored同样不影响存量行为仅当在卷上显式设置enabled后该卷后续需要调度的新副本才遵循新行为。两条策略共同保证升级本身不改变任何既有卷的调度结果行为变化只在管理员显式修改配置后才对新调度动作生效。测试计划官方文档建议至少实现两个新测试用例分散性验证在包含多块可用磁盘节点的集群中创建spec.replicaSoftAntiAffinity true、spec.replicaDiskSoftAntiAffinity true、numberOfReplicas等于集群磁盘总数 的卷确认每个副本调度到不同磁盘。测试时可能需要微调附加因素——例如确保存在一块磁盘其空闲空间大到在旧调度逻辑下会把两个副本都分配给它从而验证新逻辑先按副本密度过滤、再按空间选盘确实生效。严格拒绝验证在同样的集群中创建spec.replicaSoftAntiAffinity true、spec.replicaDiskSoftAntiAffinity false、numberOfReplicas比集群磁盘总数多 1 的卷确认有一个副本调度失败。而旧行为下多个副本会调度到同一磁盘且不产生任何错误。运维与观测从仓库中的升级响应器配置可以确认该特性已纳入集群遥测范围升级响应器服务会采集longhornSettingReplicaDiskSoftAntiAffinity全局设置使用情况与longhornVolumeReplicaDiskSoftAntiAffinityTrueCount卷级显式开启的卷数量等指标见 deploy/upgrade_responder_server/chart-values.yaml 与 deploy/upgrade_responder_server/chart-values.yaml便于官方了解该功能的实际采用情况。实践建议单节点集群使用磁盘级反亲和时务必同时确认节点级spec.replicaSoftAntiAffinity已允许同节点多副本否则调度器根本不会把多个副本放到同一节点磁盘级分散无从谈起需要磁盘不足即失败的明确信号时将全局设置设为false或对高优先级卷在卷级显式设置disabled关注副本调度失败事件与卷的调度状态配合 chart/README.md 中的默认设置说明核对配置生效情况。总结Disk Anti-Affinity 为 Longhorn 补上了节点级 → 区域级 → 磁盘级三级副本分散体系中的最后一环。通过全局设置replica-disk-soft-anti-affinity默认true与卷字段spec.replicaDiskSoftAntiAffinity默认ignored可覆盖全局的组合单节点与小规模多节点集群可以在磁盘层面获得接近 RAID 1 的镜像冗余默认尽力把副本打散到不同磁盘磁盘不足时保持既有调度行为显式关闭时则宁可调度失败也要让数据保护缺口清晰可见。官方文档与仓库中的 CRD、Helm 模板及升级响应器遥测配置共同印证了该特性的完整落地形态是提升单节点集群数据安全性的开箱即用能力。赞分享云原生存储高可用容器编排【免费下载链接】longhornCloud-Native distributed storage built on and for Kubernetes项目地址https://gitcode.com/gh_mirrors/lo/longhorn点击查看免费下载相关推荐Kubernetes Scheduler 性能基准测试与剖析完整指南Kubernetes Scheduler 性能基准测试与剖析完整指南 Kubernetes 调度器kube scheduler的性能直接影响集群在大规模节点云原生存储高可用容器编排Karmada 工作负载亲和 / 反亲和调度Workload Affinity / Anti-Affinity完整指南Karmada 工作负载亲和 / 反亲和调度Workload Affinity / Anti Affinity完整指南 导读 Karmada 的 Propa云原生多集群集群管理微服务CloudNativePG 节点亲和性规则优化 PostgreSQL 副本分布CloudNativePG 节点亲和性规则优化 PostgreSQL 副本分布 为什么副本分布是云原生数据库的生命线 当生产环境中单个 Kubernetes云原生数据库高可用灾备容器编排上一篇BabylonJS Spector.js 项目构建与本地开发指南下一篇告别像素模糊Wand阈值操作实战指南含12种算法对比创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Mobile Next Mobile MCP性能优化技巧:截图压缩、工具调用与资源管理 Mobile Next Mobile MCP性能优化技巧:截图压缩、工具调用与资源管理 【免费下载链接】mobile-mcp Model Context Protocol Server for Mobile Automation and Scraping (iOS, Android, Emulators, Simulators and Real Devices) 项目地址: https://gitcode.com/Gi… · 2026/9/27 7:42:05
鹤庆县公路建设网站搭建全解析:设计避坑与多少钱的真实成本 鹤庆县公路建设网站搭建全解析:设计避坑与多少钱的真实成本 别再被那些套壳模板网站坑了,打开全是默认色块和错位的按钮,看着就掉价,客户第一眼就划走,这根本不够用。很多刚入行的新人问我,做一个像样的鹤庆县公路建设网站到底多少钱,其实价格差异极大… · 2026/9/27 7:42:05
Text2SQL 运营自助取数平台实战:基于主动学习的用户反馈纠偏闭环 Text2SQL 运营自助取数平台实战:基于主动学习的用户反馈纠偏闭环在企业级 Text2SQL 自助取数平台的长期运营中,无论数据工程师在战前准备了多么详尽的数据字典与 Schema 描述,真实业务中的**“自然语言语义歧义(Semantic Ambiguit… · 2026/9/27 8:22:27
Design Token 样式匹配性能审计:CSSOM 内存与样式重计算优化 Design Token 样式匹配性能审计:CSSOM 内存与样式重计算优化在大型企业级前端设计系统中,随着设计规范越来越精细化,Design Token 的数量正在呈指数级膨胀:
很多团队将全局色彩、字阶、间距、圆角、阴影以及多套品牌主题的所有变量… · 2026/9/27 8:22:27
生产级 NLP 实时模型降级网关:基于复杂度路由的多级模型分流实战 生产级 NLP 实时模型降级网关:基于复杂度路由的多级模型分流实战在大模型(LLM)全面接入企业级海量业务(如日均千万级请求的搜索问答、全天候智能客服、代码辅助)时,算法团队面临着极其尖锐的**“推理算力成… · 2026/9/27 8:22:27
小程序软件制作网站怎么选?别被拖进开发黑洞 小程序软件制作网站怎么选?别被拖进开发黑洞 改个需求建站公司拖一周,这种痛苦谁懂?很多老板找服务商做小程序或配套官网,前期谈得欢,后期改个按钮颜色、调个字段逻辑,对方一句“技术栈不兼容”或“排期满了”,直接晾你五天。这时候你才意识到,当初没… · 2026/9/27 8:22:20
自动化端到端压测流水线:用 Docker Compose 编排多节点探针集群极限压测 自动化端到端压测流水线:用 Docker Compose 编排多节点探针集群极限压测在分布式探针网络开发中,单靠本地单元测试或单进程模拟,无法真实还原数十个探针节点跨局域网高频并发推送、中心 gRPC 汇聚服务排队、ClickHouse 批量持久化、以及网络丢… · 2026/9/27 8:22:20
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01