• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

CAS+故障HA失败,手动HA可以迁移

2天前提问
  • 0关注
  • 0收藏,83浏览
粉丝:0人 关注:0人

问题描述:

CVK内存故障,导致上面的虚拟机自动故障HA迁移,迁移失败,提示“没有可用的主机或主机状态异常。CPU和内存不足的主机......”但是我手动迁移到它提示CPU和内存的主机的时候 是迁移成功的。同时现网CVK配置了内存预留,通过看日志可以看到,可用-虚拟机<预留。虚机内存131072, 预留154499,当时可用:272586,272586 - 131072 = 141514 < 154499所以不可以迁移,那么我后续手动迁移两台128G的内存为什么可以迁移过去

3 个回答
粉丝:195人 关注:0人

您好,应该是内存释放了

故障HA计算差12G可以迁移,五分钟内内存可以释放12G吗

zhiliao_JqhNpl 发表时间:2天前 更多>>

故障HA计算差12G可以迁移,五分钟内内存可以释放12G吗

zhiliao_JqhNpl 发表时间:2天前
粉丝:17人 关注:0人

核心原因分析

1. 自动HA迁移的严格检查逻辑

自动HA迁移时,CAS系统会进行最保守的资源检查
  • 计算可用内存主机可用内存 - 虚拟机内存需求
  • 对比内存预留:要求计算结果 ≥ 虚拟机内存预留值
您的案例计算:
主机可用内存:272586 MB 虚拟机内存需求:131072 MB 计算结果:272586 - 131072 = 141514 MB 虚拟机内存预留:154499 MB 检查结果:141514 < 154499 ❌ 失败

2. 手动迁移的灵活处理逻辑

手动迁移时,管理员有更高权限,系统会:
  • 可能绕过预留检查,或使用更宽松的计算方式
  • 允许管理员强制迁移,即使资源检查不完全通过
  • 考虑实时内存使用量而非仅预留值

为什么手动迁移两台128G虚拟机可以成功?

情况一:分批迁移时资源动态变化

sequenceDiagram participant A as 自动HA participant M as 手动迁移 participant H as 目标主机 Note over A,H: 自动HA检查时刻 A->>H: 检查可用内存(272586MB) H-->>A: 可用-虚拟机(141514MB) < 预留(154499MB) A->>A: ❌ 拒绝迁移 Note over M,H: 手动迁移时刻 M->>H: 检查可用内存(可能已变化) H-->>M: 可用内存足够 M->>H: 迁移第一台虚拟机 H->>H: 虚拟机启动后实际占用可能小于预留 H-->>M: 剩余可用内存仍然足够 M->>H: ✅ 成功迁移第二台

情况二:内存使用与预留的差异

虚拟机配置的内存预留 ≠ 实际内存使用
  • 预留值(154499MB):保证给虚拟机的最低物理内存
  • 实际使用(可能远小于131072MB):虚拟机内操作系统和应用的实时内存占用
手动迁移时系统可能考虑
  • 虚拟机启动后实际占用内存可能只有30-50GB
  • 迁移过程中可以压缩内存页或使用内存气球技术
  • 过度预留的实际情况

解决方案

方案一:调整内存预留策略(推荐)

# 在CAS管理平台调整虚拟机内存预留 # 1. 将内存预留设置为实际需要值(而非过度预留) # 2. 或设置为与虚拟机内存相等的值 # 例如:131072MB虚拟机 → 预留设为131072MB或更低

方案二:优化HA迁移策略

  1. 修改CAS集群的HA策略
    • 降低内存安全系数
    • 允许使用内存超分(Overcommit)
    • 设置迁移优先级策略
  2. 调整主机内存管理
    # 在CVK主机上优化内存配置 # 1. 减少不必要的内存预留 # 2. 清理内存缓存 sync && echo 3 > /proc/sys/vm/drop_caches # 3. 调整透明大页配置 echo never > /sys/kernel/mm/transparent_hugepage/enabled

方案三:配置智能内存过载

# 在CAS集群设置中启用内存过载 # 允许一定程度的内存超分,提高资源利用率 # 设置过载比例为 120%-150%

方案四:监控与预警优化

  1. 设置合理的内存阈值
    • HA触发阈值:80%-85%
    • 迁移检查阈值:适当放宽
  2. 配置内存回收机制
    • 启用内存气球驱动(virtio-balloon)
    • 设置内存压缩
    • 配置交换空间(如必须)

具体操作步骤

步骤1:检查当前内存配置

# 登录CVK主机,查看内存使用 free -h cat /proc/meminfo | grep -E "(MemTotal|MemAvailable|MemFree)" # 查看虚拟机实际内存使用 virsh dommemstat <虚拟机ID>

步骤2:调整虚拟机内存预留

在CAS Web管理界面:
  1. 选择目标虚拟机 → 编辑配置
  2. 内存设置 → 将"内存预留"改为"不预留"或降低预留值
  3. 保存并重启虚拟机

步骤3:修改集群HA策略

# 通过CAS命令行或API修改集群策略 # 设置内存过载比率 casadm -C cluster -m set_overcommit_ratio --memory=1.3 # 调整HA迁移条件 casadm -C ha -m set_policy --memory_check=relaxed

步骤4:验证迁移能力

# 模拟HA触发,测试迁移 # 1. 手动触发虚拟机HA casvm -C <虚拟机ID> -m ha --trigger # 2. 观察迁移日志 tail -f /var/log/cas/ha.log

预防措施

1. 内存规划最佳实践

  • 预留策略:生产环境预留80%,测试环境预留50%
  • 监控预警:设置两级告警(70%警告,85%严重)
  • 容量规划:保持至少20%的冗余内存

2. 自动化优化脚本

#!/bin/bash # 自动优化内存预留 for vm in $(casvm -C list | awk '{print $1}'); do # 获取虚拟机实际内存使用 actual_mem=$(virsh dommemstat $vm | grep actual | awk '{print $2}') # 设置预留为实际使用的120% reserve_mem=$(echo "$actual_mem * 1.2 / 1" | bc) # 更新预留配置 casvm -C $vm -m set --memory-reservation=${reserve_mem}MB done

3. 定期维护

  1. 每周:检查内存碎片和利用率
  2. 每月:重新评估内存预留策略
  3. 每季度:执行HA演练,验证迁移能力

总结

您遇到的问题核心是:
  1. 自动HA使用保守算法可用内存 - 虚拟机内存 < 内存预留
  2. 手动迁移更灵活:考虑实际使用量,允许超分
  3. 内存预留设置过高:154499MB > 131072MB(虚拟机内存)
建议操作顺序
  1. 立即:降低虚拟机内存预留至等于或略低于虚拟机内存
  2. 短期:调整集群HA策略,允许适度内存超分
  3. 长期:建立容量监控体系,避免过度预留
通过合理配置内存预留和HA策略,您可以确保自动HA在故障时顺利迁移,同时充分利用物理内存资源。

粉丝:142人 关注:10人

CAS 平台自动 HA 迁移失败但手动迁移成功的原因:
 核心原因:HA 迁移的严格资源预留校验机制

1. HA 自动迁移的校验规则更严格
HA 迁移强制要求满足:目标主机可用内存 待迁虚拟机内存 ≥ 集群配置的内存预留值
计算示例:
272586 MB (可用) 131072 MB (虚机内存) = 141514 MB
141514 MB < 154499 MB (预留值) → 触发校验失败
2. 手动迁移采用宽松校验逻辑
手动迁移仅校验基础资源:
目标主机可用内存 ≥ 虚拟机内存 + 动态阈值(通常<预留值)
计算示例:
272586 MB (可用)  131072 MB (虚机内存) → 满足最低要求,迁移成功
 根本矛盾点

预留值配置过高
当前预留值(154499 MB)超出了实际可用资源余量(141514 MB),导致 HA 拒绝迁移。而手动操作跳过该限制,仅验证物理资源是否足够承载虚拟机。
 解决方案

1. 降低集群内存预留率
CAS 管理平台调整集群 HA 设置,降低内存预留百分比(如从 20% 降至 10%),使 预留值 ≤ 实际可用内存 虚拟机需求。
2. 扩容目标主机内存
CVK 主机增加物理内存,确保 可用内存 最大虚拟机内存  预留值。
3. 优化虚拟机分布
将部分虚拟机迁移至其他主机,释放目标主机的内存余量,使其满足 HA 校验条件。
 关键提示:手动迁移成功仅说明目标主机具备运行虚机的物理资源,但高预留值会导致 HA 在故障时仍无法自动切换。建议优先调整预留配置以保障高可用机制的可靠性。若需操作指导,可联系新华三技术支持(400-810-0504)。

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明