我最近注意到我的一台服务器正在运行相当老版本的 Xen:
$ dpkg-query -l | grep xen
ii libc6-xen 2.11.3-4 Embedded GNU C Library: Shared libraries [Xen version]
ii libxenstore3.0 4.0.1-5.10 Xenstore communications library for Xen
ii linux-image-2.6.32-5-xen-686 2.6.32-48squeeze1 Linux 2.6.32 for modern PCs, Xen dom0 support
ii xen-hypervisor-4.0-amd64 4.0.1-5.10 The Xen Hypervisor on AMD64
ii xen-linux-system-2.6-xen-686 2.6.32+29 Xen system with Linux 2.6 for modern PCs (meta-package)
ii xen-linux-system-2.6.32-5-xen-686 2.6.32-48squeeze1 Xen system with Linux 2.6.32 on modern PCs (meta-package)
ii xen-tools 4.2-1 Tools to manage Xen virtual servers
ii xen-utils-4.0 4.0.1-5.10 XEN administrative tools
ii xen-utils-common 4.0.0-1 XEN administrative tools - common files
ii xenstore-utils 4.0.1-5.10 Xenstore utilities for Xen
Dom0 也相当老了:
$ uname -a
Linux Dom0 2.6.32-5-xen-686 #1 SMP Mon Feb 25 05:55:06 UTC 2013 i686 GNU/Linux
我对这样的生产服务器不是很熟悉,在做以下事情之前我宁愿三思而后行:
$ apt-get update
$ apt-get upgrade
升级之前我需要检查什么,升级期间是否需要关闭并重新启动所有虚拟机?
答案1
在这种情况下,最小风险和停机时间可能有些主观,也可能受到可用资源的限制。
这 '理想的' 无停机时间更新和对虚拟机数据风险最小的方法将涉及多台服务器,至少 3 台,可能更多,具体取决于负载和存储要求:
- 虚拟机的后端存储,理想情况下不在虚拟机管理程序上,虚拟机映像和快照可以存储在这里,以及可能被多个虚拟机访问的数据。
- 两个虚拟机管理程序系统
- 根据虚拟机管理程序的总数、IO 要求和所需存储,虚拟机管理程序和存储服务器之间的专用高速网络可以提高性能
一旦系统到位,迁移实时虚拟机. 一旦从 server0 到 server1 的迁移完成,并且验证了 server1 上的所有内容均正常运行,则可以停止并升级 server0 上的相关服务。
如果您有资源来设置这种基础架构,那么以这种方式运行虚拟机管理程序/VM 池将有很多优势。拥有一个在虚拟机管理程序之间迁移 VM 的经过测试和记录的流程将允许您安排虚拟机管理程序的定期维护和停机时间。计划的升级和维护使您能够随时了解可能影响安全性和性能的更新。
拥有最少的基础设施设置以允许在虚拟机管理程序之间临时迁移服务,可以在需要将关键安全补丁应用于生产系统时减少对客户的影响和可见性。
在可以接受一些停机时间的情况下,基础设施理想的' 更新场景,我一般都成功地使用这个过程,虽然偶尔会出现不可预见的问题;根据过去的经验,保持热备援如果可能的话,对于关键系统和基础设施来说,这始终是一个好主意。我在 openSUSE 和 CentOS 上使用 KVM 和 Xen 使用了这组步骤的一些变体:
- 确保虚拟机的所有备份和快照都是最新的
- 以最优雅的方式关闭正在运行的虚拟机
- 升级/修补虚拟机管理程序
- 重新启动虚拟机管理程序,严格来说这不是必需的,但根据执行的升级,这可能是确保所有更改生效的最简单方法。
- 在等待虚拟机管理程序重新启动时在服务器机房中踱步
- 重启虚拟机
- 测试一切是否正常
答案2
我只能从我使用 Citrix XenServer(免费版)的经验中看出这一点。升级真的是小菜一碟。从 Citrix 下载 .iso,将其刻录/写入 CD/USB 驱动器,从中启动并选择升级。它只会编辑安装的现有分区/文件,而不会触及您的存储库(您的虚拟机的虚拟磁盘所在的位置)。重新启动后,一切都和以前一样,甚至自动启动的机器也恢复在线。
但据我了解,您既没有使用 Citrix 版本,也没有打算这样做。根据我使用 KVM-QEMU 的经验,更新虚拟化环境应该不会遇到任何问题(上次重大升级甚至无需重启即可完成)。在所有情况下(如果可能的话),我建议关闭或暂停虚拟机,这样升级至少会更快。如果您可以忍受一点停机时间的话。
顺便说一句:Aptitude 总是会询问您是否要安装更多软件包或是否存在任何冲突。或者,您可以使用 --show-upgraded 运行它,然后它只会显示它要升级的内容。