|
|
1c85297af1
|
docs: 部署手册更新为 foms_app 纯伞化后的流程(clone foms_app + build + start.sh + URL 布局)
|
2026-08-27 11:12:46 +08:00 |
|
|
|
dedb7bfc57
|
refactor: foms 改为纯业务模块,应用层迁至纯伞仓 foms_app
foms 只保留业务逻辑:
· foms/ 包(init.py + failover.py 切换编排器)
· models/(5 张表)、json/(CRUD 定义)、wwwroot/api/(端点)
· scripts/(foms-agent 及部署脚本)
· docs/deploy-operations.md
应用层迁出至 foms_app 纯伞仓:
· app/(入口)、build.sh、start/stop.sh、conf/、init/data.yaml
· scripts/init_rbac.py / load_path.py(重写为新 URL 布局)
· wwwroot/index.ui(重写,指向各模块前缀路径)
同时修复 foms/__init__.py:移除对拆分时已删除函数的导出。
|
2026-08-27 11:07:37 +08:00 |
|
|
|
fa257f36b1
|
feat(failover): 补全主备切换闭环 — 六步状态机 + 逆向回滚 + 健康判定器
依据现有实现补全「自动识别故障 → 人工确认切换 → 切回」运维核心闭环。
触发模式 1A+2B+3A:VIP 浮动 + 半自动 + 切前隔离原主(防脑裂)。
【表结构】
clusters 加 vip/failover_mode;node_commands 加 command_type
新增 switchover_steps(切换步骤级审计)
【Agent 六动作(脚本化、幂等、结构化返回)】
fence(停MySQL+摘VIP)/unfence(恢复)/promote_master(STOP+RESET SLAVE)
revert_promote(降回从库)/flip_sync(反转同步)/verify(可写+VIP校验)
【切换编排器 foms/failover.py】
六步状态机:precheck→fence→promote→flip_sync→verify→converge
失败 → 已完成步骤逆向回滚 → switchover_logs=failed
回滚也失败 → rollback_failed + 最高级告警冒泡人工
防脑裂不变量:fence 先于 promote,fence 失败硬中止绝不 promote
【健康判定器】
后台循环(默认5s)扫 active 集群,心跳超时/复制异常判定
防抖:连续 failover_threshold 次命中才判故障(防瞬时抖动误判)
半自动:只告警(写 switchover_logs + hostwatch_events)不切,等人确认
【切回 + 回滚语义】
trigger_switchback 反向六步;回滚用 unfence/revert_promote/反转/换回
【部署文档】
docs/deploy-operations.md:架构/三机部署/keepalived/Agent 环境变量/
日常运维/失败语义/防脑裂/已知限制
验证:语法全过;编排器↔Agent 六命令类型对齐;六步顺序正确;
防脑裂不变量成立(fence idx=1 < promote idx=2);注册链完整。
|
2026-08-26 18:33:42 +08:00 |
|
|
|
e1be45e940
|
refactor: FOMS 单体拆分为核心 + 三独立模块
按产线规范将 FOMS 单体拆分为 4 部分:
【foms 核心(保留在本仓库)】主备切换本身
表:clusters、nodes、switchover_logs、node_commands(新增)
功能:集群/节点 CRUD、Agent 心跳、故障切换/切回、仪表盘、远程命令
远程命令改用专用 node_commands 表(原借用 node_logs 的 MVP 方案,顺手修 P1 隐患)
仪表盘跨模块只读聚合(同库松耦合 SQL)
【dbbackup 模块(独立仓库)】数据库全量备份 + 日志同步(binlog复制)管理
表 dbbackup_replications(原 sync_databases)/jobs(备份任务)/records(备份记录)
新建备份执行/记录/清理逻辑
【filesync 模块(独立仓库)】运行文件同步(rsync)
表 filesync_directories(原 sync_directories)
【hostwatch 模块(独立仓库)】日志监控+日志分析+主机指标
表 hostwatch_logs(原 node_logs)/metrics(原 node_metrics)/rules/events
新建日志归类、规则匹配告警、聚合分析逻辑
设计(松耦合方案 A):
· 拆出模块表加模块名前缀,cluster_id/node_id 仅存字符串不建外键
· 拆出模块不 import foms 核心代码,可独立部署测试
· 单 Agent 多端点:心跳→foms、指标日志→hostwatch、复制→dbbackup、rsync→filesync
· 模块 wwwroot 软链到主 wwwroot/<模块名>(URL 前缀隔离)
Agent 端点拆分:report_health 拆为 report_db_health/report_dir_health,
metrics 上报改 /hostwatch/api/,_api_post/_api_get 支持完整路径。
|
2026-08-26 15:29:45 +08:00 |
|
|
|
9516324a63
|
chore: 移除ktv脚本(移至sage仓库)
|
2026-07-06 08:13:40 +08:00 |
|
|
|
4c5327103f
|
feat: KTV产线网关部署SQL+nginx配置(11端点200OK)
|
2026-07-06 07:59:15 +08:00 |
|
|
|
f56eba19d9
|
fix: remove redundant face-recognize llm_api_map
|
2026-07-05 13:59:43 +08:00 |
|
|
|
9a6769e61b
|
fix: 28个uapi全部映射llm (media-server拆分+补全)
|
2026-07-05 13:58:49 +08:00 |
|
|
|
fa2be8e9d1
|
fix: uapi response 全部带 usage 计费字段,pricing_data 匹配 usage
|
2026-07-05 10:45:50 +08:00 |
|
|
|
d7f232d46f
|
feat: KTV产线服务Sage注册SQL (uapi+llmage+pricing 11服务)
|
2026-07-05 10:36:12 +08:00 |
|
|
|
1c4943bc42
|
feat: node metrics + log collection + remote command execution (C→A/B O&M)
|
2026-07-04 12:41:13 +08:00 |
|
|
|
bdd2ce49ff
|
feat: systemd service for agent daemon + one-click deploy script
|
2026-07-04 12:35:11 +08:00 |
|
|
|
4b7343c87e
|
feat: RBAC initialization — org types, roles, users, permissions
|
2026-07-04 11:24:57 +08:00 |
|
|
|
9f3a1731bc
|
fix: remove redundant imports from dspy files
|
2026-07-04 11:05:51 +08:00 |
|
|
|
ff7f03e7ff
|
feat: FOMS v1.0 - Failover Management System (MySQL主从复制+文件同步+故障切换)
|
2026-07-04 11:04:22 +08:00 |
|