运维文档¶
运维文档导航¶
运维文档结构按照运维工作的不同方面进行划分。参与运维工作的同学可以选择自己感兴趣的部分进行学习,也可以根据任务需要进行查阅。目前运维工作的重心在系统软件运维。
- 内容:
- Linux 系统运维:
- 解决 Linux 系统相关的问题,比如内核、驱动等
- 构建、测试 Linux 系统
- K8S 平台、服务运维
- 裸金属集群运维
- 配置、部署和维护裸金属节点
- HPC 软件栈管理、测试
- Linux 系统运维:
- 内容:新一代运维致力于构建可观测性体系,它能够让团队评估、监测和改进分布式 IT 系统的性能。相比传统的监测方法,它要有效得多。
- 相关任务:配置和维护监控、日志、告警等系统。
- 内容:
- 硬件设备的相关知识和经验,进入机房或进行硬件操作时请参考该部分文档。
- 集群中硬件设备的文档收集。
- 相关任务:每月会有一两次更换设备的需求,线下比赛时搭建集群。
- 内容:
- 以太网:企业级交换机和路由器的配置方法,VLAN、DHCP Snooping 等常见网络技术。
- 高性能网络:InfiniBand 网络原理,RDMA 等技术。
- 相关任务:
- 监控网络情况,排查网络故障。
- 线下比赛时根据需求组建网络。
- 对高性能网络进行排障和调优。
运维团队历史¶
超算队运维体系从 2024 年开始逐步建立。
| 年份 | 主力队员 | 工作概述 | | 2024 年 | @bowling @star | 完成基础设施改造,包括硬件(机房、电源、网络)、软件(系统架构、集群管理、软件栈)等的重构 | | 2025 年 | @star @yihao | 进一步完善运维体系,包括建立更多的监控、日志、自动化等系统,提高运维效率和稳定性 | | 2026 年 | @yihao @ckyasb @peter @shouss | 开始建设 K8S、Ceph 等分布式系统,积累更多现代运维技术,搭建更大的服务平台 |
运维工作概述¶
Quote
下面是工业界对运维工作的介绍:
运维的基础工作通常是针对现有系统及项目的,例如服务器、各类云产品,正在运行的项目、监控、账号权限管控,项目上线等等,是宽泛而繁琐的,少有建设性的内容。
当我们接手一套新的系统,就有必要将它本身及周边进行完善。在大公司里有较为全面的运维体系,有桌面运维、网络运维、安全运维、研发运维、数据库运维以及系统运维或应用运维等专业团队,而更多的公司运维可能只有 1-2 个。以上的岗位工作都需要完成。
在接触新环境时,面对的是上任留下的坑,这比开发接手代码要更加严峻。交接的资料其实不应该只是账号密码、工作流程,工作注意事项,更重要的是操作维护文档,因为系统很少有简单的环境,即便有,也会存在一些微妙的项目逻辑关系,稍有不慎,就有可能酿成线上问题。现在大多都是微服务的结构,增加了系统维护的复杂性。
例如接手后领导要你部署使用 docker 部署一个 java 服务 , 从正式环境复制一个到测试环境,结果启动后出问题了,可能是启动参数与目前环境不匹配,可能是连接权限未放开,可能是启动后连接的是生产的数据库,如果程序启动后清空或者修改了一些历史数据,令人细思极恐。
这种问题很常见,就我目前就遇到不少,好多配置信息写的很模糊,项目与项目之间耦合度非常高,没准就牵扯到哪个系统了,牵一发而动全身,是关也不敢关,改也不敢改,作为一名运维工程师,我们居然会不敢动一个项目!所以要打造一个铁桶出来,这是一个创造性的过程,也是我们深入项目的过程。只有更深入的了解项目,才能更好的去维护项目。
对于超算队来说,运维工作的任务和面对的情况也差不多,不过没有这么严峻。毕竟我们从事的是研究不是生产,不需要保障极高的可用性。在我们自有的小集群上,我们可以灵活地进行运维工作,进行各种各样的探索和创新,不需要遵循严格的运维程序。
但是,我们也需要建立一套自动化运维体系,以便于更好地管理集群,提高运维效率,最终让运维人员从繁琐的重复性工作中解放出来,更多地投入到创新性工作中。
超算队运维的任务
- 熟练掌握 Linux 系统运维和 HPC 集群管理知识。
- 在线上线下比赛时帮助解决综合性问题。
- 维护自有集群,为比赛和训练提供稳定好用的环境。
- 维护托管在集群的服务器。
- 为队内成员日常使用集群提供支持。
如何做一个好的运维?
- 基础:
- 对自己当前的环境和任何东西都应该非常清楚;
- 要有监控,切实有用的可以发现问题的监控;
- 任何东西都要有备份,可以用于快速恢复,也要做恢复演练;
- 进阶
- 针对系统做优化处理;
- 针对工作流程做优化处理;