快速恢复
本文介绍正常运行的ONES环境突然出现业务故障时,通过如下方案尝试快速恢复业务。
1. 突然无法使用ONES
1.1 服务器无法ssh登录
恢复方法: 如果是云主机或虚拟机,通过控制台直接重启服务器;如果是物理机,直接摁电源键来重启。服务器重启后,参考ONES单机环境优雅关机再操作一下。
存在风险: 可能出现MySQL数据异常的故障;如果MySQL无法启动,参考MySQL user文件损坏修复或联系ONES处理。
1.2 服务器可以ssh登录,top查看资源消耗过大
恢复方法:可能是某个操作或者某个bug导致资源消耗过大;可重启相关应用来临时恢复,下述命令执行完成过后,告知客户在前台页面停用、再启用相关插件。
kubectl get pod -n ones |grep -iE 'api|wiz|platform|plugin' | awk '{print $1}' |xargs kubectl delete pod -n ones
2. ONES使用越来越卡
恢复思路: 如果客户反馈的是最近一段时间越来越卡、尤其是高峰期,那么一般是服务器的资源配置已不满足日益增长的数据量了,需要增加资源或减少消耗等。可选操作如下:
2.1 环境检测
(1) 参考修复指南第4节检测磁盘IO是否满足要求,比如物理磁盘可能在使用一段时间后劣化。
(2) 参考修复指南第16/17/18节检查系统配置是否符合要求。
(3) 对照环境要求核对资源配置(CPU/内存/磁盘分布)是否符合要求。
2.2 增加系统资源
(1)增加CPU、内存;
(2)增加单独的高性能磁盘用来做索引盘,挂载路径为/data/ones/ones-local-storage/tidb
(3)增加单独的备份盘或备份机,减少数据盘的IO消耗。
2.3 减少ONES消耗
停止监控、日志等非业务必须的应用。
ones-ai-k8s.sh
make delete-ones-logging RETAIN_DATA=false
make delete-monitoring-system RETAIN_DATA=false
make delete-prometheus RETAIN_DATA=false
make delete-fluent-bit RETAIN_DATA=false
make delete-ones-alert RETAIN_DATA=false
make delete-ones-telemetry RETAIN_DATA=false
make delete-ones-op RETAIN_DATA=false
# 如果当前版本不支持某些操作,可能报错,忽略即可
2.4 减少系统消耗
top、iotop等命令查看是否有系统级应用占用资源过多,比如kswapd进程,比如各类防病毒软件(进程名称参考环境要求第3.6节),可考虑临时关闭。
2.5 优化配置
2.5.1 页面操作较慢
如果服务器的资 源在32C+64G以上,可把project-api的数量扩展到多实例;
ones-ai-k8s.sh
vi config/private.yaml
projectAPIReplicas: "2"
#添加上述配置后,保存并执行下述命令下发
make setup-ones
2.5.2 批量操作执行较慢
如果服务器的内存超过24G,可把MySQL的innodb缓存调大,联系ONES工程师操作。
2.5.3 预览附件服务降级为下载
如果服务器的资源在32C+64G以上,可把s3-proxy、文件转码服务的数量扩展到多实例;
其中, 6.43.13以上版本和6.93.6以上版本,可参考如下操作:
ones-ai-k8s.sh
vi config/private.yaml
# 单机版扩容文件转换服务实例数
# kubectl get node 查看节点名称,以节点 k3s-node-01为例
workerNodes: "k3s-node-01,k3s-node-01,k3s-node-01"
s3proxyReplicas: "2"
fileTransformReplicas: "3"
onesLibreofficeProxyReplicas: "3"
onesUnoconvProxyReplicas: "3"
# 集群版扩容文件转换服务实例数
fileTransformReplicas: "3"
onesLibreofficeProxyReplicas: "3"
onesUnoconvProxyReplicas: "3"
#添加上述配置后,保存并执行下述命令下发
make setup-ones
2.5.4 数据表格时好时坏
如果服务器的内存超过24G,则可参考调整插件运行资源调整数据表格这个插件的默认内存Limit。
2.6 重装K3S
参考升级注意事项第1.6节,满足其一即可重装K3s。
2.7 更换设备
如果服务器(特别是物理机或本地虚拟机)已长时间在线运行,或者操作系统为Centos7.9/Ubuntu18等老旧、过保的版本,可考虑将ONES服务迁移到新的设备、替换Ubuntu22等更稳定的操作系统。