diff --git a/docs/records/2024-10-01.md b/docs/records/2024-10-01.md new file mode 100644 index 00000000..d684bffe --- /dev/null +++ b/docs/records/2024-10-01.md @@ -0,0 +1,35 @@ +# 2024 年 10 月 1 日工作总结 + +今日凌晨执行了全部机器的重启和清退操作。 + +## 删除 libcups2 + +由于未知原因,一部分主机被安装了 libcups2,由于显然我们不需要打印机支持,并且考虑到近日的 CUPS 相关漏洞,该包已经处理删除。 + +## 网卡名称变化 + +在重启 pv1-8 时发现重启后 `bond1` 显示为 NO-CARRIER,无法正常连接到存储服务器。检查网络配置后发现物理网卡的名称发生了变化,原先诸如 `ens1f1` 变为了 `ens1f1np1`,因此导致 `/etc/network/interfaces` 中指定的 `bond1` 对应的物理口找不到,从而出错。在修改 `interfaces` 之后 `systemctl restart networking` 即可。 + +我们目前认为网卡名称的变化可能与内核升级有关,同时其他(不同型号的)机器重启后网卡名称没有发生改变,原因暂时不明,仍然有待调查。如果未来再发生变化,会考虑通过设置 udev 规则的方式来固定网卡名称。 + +## kexec 配置 + +为了帮助未来升级后能够更快重启机器,我们尝试在 pv1 上配置了 kexec 启动内核。在安装 `kexec-tools` 包后,运行 `dpkg-reconfigure kexec-tools`,然后执行一次正常重启后即可(这一步是必须的,否则 kexec 重启无法使用)。 + +配置完成后,使用 `systemctl reboot` 就是自动使用 kexec 进行重启,跳过 POST 和 grub。 + +## 清退操作 + +上一次执行清退操作在 2023 年 3 月份。由于之后我们公开了 KVM 功能,因此清退的代码做了一些修改以适配 KVM。清退分为三个部分: + +1. 由 `list_cleanup_users` 生成需要删除的用户名和其容器情况,然后手动由此产生用户名列表; +2. 由 `cleanup_users` 执行删除用户和级联删除其容器/虚拟机的操作; +3. 由 `vm_integrity_check` 检查本地数据库与 Proxmox 记录中的不一致性,并且删除本地数据库不存在,但是在远程仍然存在的容器/虚拟机。 + +在进行第三步操作时,由于本地列举机器的代码遗漏了修改,仍然按照原先的逻辑只列举了所有的 LXC 容器,导致所有的 KVM 虚拟机都没有加入到本地列表中,因此之后不慎导致所有学生 KVM 机器被删除。代码问题目前已经修复,但是由于我们的策略是学生机器不做备份(也没有足够的空间这么做),因此已经被删除的 KVM 虚拟机无法找回。受到影响的机器如下: + +```python +{8585, 8591, 9239, 9371, 9120, 7329, 8870, 9263, 9269, 9272, 8906, 8787, 9173, 9433, 9574, 9576, 9337, 8828, 9213} +``` + +在未来需要以更加谨慎的态度处理敏感操作(例如删除虚拟机等)。 diff --git a/mkdocs.yml b/mkdocs.yml index 70b32139..53a9a5ec 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -129,6 +129,7 @@ nav: - 踩坑记录: traps.md - 更新历史: changelog.md - 工作总结: + - 2024 年 10 月 1 日: records/2024-10-01.md - 2023 年 12 月 13 日: records/2023-12-13.md - 2023 年 11 月 18 日: records/2023-11-18.md - 2023 年 10 月 1 日: records/2023-10-01.md