我被要求将 Ubuntu Server 11.04 升级到更高版本,以便支持去年已达到生命的终点。我不知道他们是如何熬过了将近 12 个月而没有注意到存储库不再完全起作用的,但这不是重点。
我最初的想法是从 12.04 或 12.10 彻底重建,然后在此基础上构建服务,但我被告知服务器的停机时间应保持在最低限度。为此,我正在考虑从 11.04 就地升级到 12.04/12.10。
我明白那个Ubuntu 升级应该“错开”- 即 11.04 > 11.10 > 12.04 > 12.10 - 但我对现场执行此操作非常谨慎。我很乐意分阶段进行,验证所有服务和流程在升级的每个阶段是否启动并执行,但在我看来,这似乎是一个不明智的想法。我可能错了,但我如何保证服务在升级过程中保持稳定?
您的想法和经历是什么?如果您能提供任何建议或指点,我将不胜感激。提前致谢。
答案1
您无法保证服务在升级过程中保持稳定,所以不要尝试。事实上,您能保证大多数服务在升级过程中至少会出现两次不稳定:一次是在服务升级期间,一次是在重新启动以激活新内核期间。我会向你的老板/客户重复几次,你惯于升级期间服务可用性达 100%。
如果您没有可以在几分钟内回滚的备份(例如,如果服务器是虚拟机,并且您有最近的快照),那么无论您选择哪种升级路径,如果出现任何问题,您都需要在恢复期间长时间停机。如果您处于高需求环境中,您需要帮助您的组织了解“我们需要最少的停机时间”和“我们只有一台服务器”是不相容的理念。
话虽如此,我在 Ubuntu 服务器升级方面取得了巨大的成功(我从来没有因为系统崩溃而不得不从备份中恢复 - 我相信其他 Server Fault 成员可以讲述他们的战斗故事),如果您没有大量定制系统提供的软件包的配置,在线升级方法可能相对轻松。确保您有良好的备份(包括本地文件系统上其他位置的 /etc 副本)并运行升级工具到 12.04 LTS(并且按照 SvW 的建议,坚持使用该版本几年)。
完成后,检查*.dpkg*
文件find /etc -type f -iname '*.dpkg*'
并手动比较文件,以确保您没有丢失任何重要的自定义设置。如果新版本没有实质性差异,请务必安装它(即mv blah.conf blah.conf.save; mv blah.conf.dpkg-new blah.conf
),以便下次升级时它将是库存配置并自动升级。