背景:由于 raid 控制器不兼容问题,我被迫将服务器从 Ubuntu 8.04 LTS 远程升级到 10.04 LTS。
服务器的互联网连接比较稳定,很少断线。尽管如此,我还是担心在升级过程中 SSH 连接会丢失,导致服务器处于无法访问的状态。我还担心升级后服务器无法启动,以防我无法知道问题出在哪里。
行动计划:我正在寻找的建议最小化失去服务器的风险,我意识到我做的事情非常危险。这是我目前的行动计划:
1)备份所有重要的内容,包括本地和外部。
2) 暂时禁用使用 fsck 的启动时磁盘检查。(如果磁盘检查需要很长时间才能完成,我将不知道发生了什么)。这可以通过 fstab 通过将最后一个参数从 1 更改为 0 来完成:
UUID=5b1ff964-7608-44fd-a38d-7e43ad6b4c11 / ext3 relatime,errors=remount-ro 0 0
3)使用屏幕启动所有升级过程,以便在我失去连接时可以恢复升级。例如:
sudo screen apt-get upgrade
问题:
- 我提出的行动计划看起来合理吗?
- 禁用启动时磁盘检查是不是一个坏主意?
- 还可以做什么来降低丢失服务器的风险?
更新:几乎所有的答案都建议我设置 DRAC/IPMI,我现在已经这样做了。这感觉真的是一个伟大的成就,肯定会使风险大大降低,因为我可以通过 KVM/控制台重定向跟踪整个电源循环。为了便于将来参考,以下是我所做的:
1) 安装 ipmitool 来为 IPMI v2.0 设置 IP 地址、网关等:
sudo ipmitool lan set 1 ipaddr 192.168.1.99
sudo ipmitool lan set 1 defgw ipaddr 192.168.1.1
2)安装free-ipmi,将网卡选择模式改为共享(我只有一个网卡连接到网络):
sudo ipmi-oem dell set-nic-selection shared
3) 使用 DRAC 的 https 接口https://192.168.1.99启动控制台重定向查看器。这使我能够跟踪整个启动顺序以及配置 BIOS、RAID 控制器等。太棒了。
更新 2。完成。一切都很顺利,不到 30 分钟就完成了工作。我最终没有关闭磁盘检查,因为重定向控制台让我可以随时中断它,但我让它运行到最后。
谢谢你们,你们的智慧非常宝贵!
答案1
如果硬件没有损坏,那么使用串行控制台就没有什么不能做的,所以这是可行的方法:
- 获取对串行控制台的远程访问权限(如果系统具有 >=IPMI-2.0,则通过 LAN 进行 IPMI 串行访问,或者使用空调制解调器串行电缆连接到将运行 minicom 的另一个系统)
- 配置 grub 和 linux 以使用串行控制台
- 如果可能的话,将系统 BIOS 接口重定向到串行(许多服务器系统都可以做到这一点)
- 重新启动系统并检查您是否可以使用(bios)、grub、查看 dmesg、查看 init 脚本以及通过串行控制台登录
- 运行升级
- 祈祷吧
此外,如果可能的话,将新系统安装在另一个磁盘或分区上,这样您就可以在删除旧系统之前测试新系统。我通常对双磁盘系统执行此操作:我从镜像中取出一个磁盘,用空闲磁盘创建一个新的(降级)镜像,安装在那里,如果一切正常,我会销毁旧镜像并将“旧”磁盘热添加到新镜像并让它重建。
编辑:据我所知,我读到它是一台 Dell R710,应该有 IPMI2。在系统上本地运行 ipmitool 对其进行配置,然后在另一个系统上使用 ipmitool sol enable 测试串行局域网功能。砰!您有串行控制台。Dell 还能够在串行控制台上重定向 BIOS(IPMI 将在串行局域网上重定向)。无论如何,如果出现任何问题,您都应该这样做才能访问系统。我使用带有 bios、grub、系统串行控制台的零调制解调器电缆管理几台旧的 Dell PE1425,并以同样的方式管理几台 Dell R300,但使用 IPMI 串行局域网代替实际的串行电缆。
答案2
就我个人而言,根据这台服务器对你(你的企业等)的重要性,我会使用类似的系统,尝试重现环境,然后直接在房间内(或你物理上可以访问的地方)通过 SSH 对其进行升级,以便测试你的程序。如果你可以在不丢失配置/连接的情况下进行升级,那么你很有可能能够升级远程服务器。
这不会 100% 准确,但只要您可以使测试系统尽可能与远程服务器紧密配置,它至少可以消除由软件升级、软件配置、更改等引起的错误。
编辑:另一个解决方案是先创建第二台服务器作为故障转移服务器。这样,如果服务器死机,您仍然有客户/用户的备份,直到主服务器恢复运行。这应该可以缓解您在将一台服务器放在这么远的地方时遇到的一些烦恼。同样,在许多情况下,这可能有点过头了,但这取决于这台业务服务器对您的公司有多重要,以及停机时间将产生的影响,以及您愿意花多少钱来确保它在完全故障的情况下可用。
答案3
我认为带外管理(我最熟悉 HP 的 iLO)甚至 IP KVM 是您最好的选择。
正如 Bart 提到的,如果您拥有资源(即:备用的类似盒子或其他集群成员),那么测试是无价的。
最后(或者说实际上是第一次)备份。经过测试的备份。您可以引以为豪的备份……