如何以最小的风险和宕机升级Xen?

我最近注意到,我的一台服务器运行在一个非常老的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 

在升级之前需要检查什么,在升级过程中是否需要closures并重新启动所有虚拟机?

我只能从我使用Citrix XenServer(免费版)的经验中得知。 有升级真的是小孩子玩的。 从Citrix下载.iso,刻录/写入CD / USB驱动器,从中启动并select升级。 它只会编辑您的安装的现有分区/文件,不会触及您的虚拟机的虚拟磁盘所在的存储库。 重新启动后,一切都像以前一样,即使自动启动机器恢复在线状态。

但据我所知,您既不使用Citrix版也不打算这样做。 根据我对KVM-QEMU的经验,在更新虚拟化环境时不应该有任何问题(上次主要升级甚至无需重新启动)。 在所有情况下(如果可能的话),我build议closures或挂起虚拟机,升级至less应该像这样快。 如果你能忍受一点点宕机。

顺便说一句:Aptitude总是问你是否要安装更多的软件包,或者是否有任何冲突。 或者你可以用–show-upgraded运行它,它只显示它想要升级的东西。

在这种情况下,最小的风险和停机时间可能有点主观,也可能受到可用资源的限制。

无需停机并且对VM数据的风险最小化的“ 理想 ”方式将涉及多个服务器,至less有3个,可能更多,取决于负载和存储要求:

  • 虚拟机的后端存储,理想情况下不在虚拟机pipe理程序中,虚拟机映像和快照可以存储在这里,以及可能被多个虚拟机访问的数据。
  • 两个pipe理程序系统
  • 根据pipe理程序的总数,IO要求,在pipe理程序和存储服务器之间需要存储专用的高速networking可以提高性能

一旦系统就绪, 迁移活动虚拟机相对简单。 一旦从server0迁移到server1,并且validation服务器1上的所有内容都正确运行,则可以停止并升级server0上的相关服务。

如果您有足够的资源来设置这种基础架构,则以这种方式运行虚拟机pipe理程序/虚拟机池可能会有很多优势。 在虚拟机pipe理程序之间有一个经过testing和logging的虚拟机迁移过程,可以让您安排虚拟机pipe理程序的定期维护和停机。 计划的升级和维护允许您保持可能影响安全性和性能的更新。

只需最less的基础架构即可在虚拟机pipe理程序之间实现临时服务迁移,也可以在需要将关键安全补丁应用于生产系统时降低对客户的影响和可见性。

在某些停机时间可以接受的情况下,以及“ 理想 ”更新scheme的基础设施,我通常使用这个过程取得了成功,尽pipe可能会偶尔出现无法预料的问题。 根据以往的经验,如果可能的话,为关键的系统和基础设施保留热备份总是一个好主意。 我已经在openSUSE和CentOS上使用了KVM和Xen这一套步骤的一些变化:

  1. 确保来自VM的所有备份和快照都是最新的
  2. 关机以最优雅的方式运行虚拟机
  3. 升级/修补虚拟机pipe理程序
  4. 重新启动虚拟机pipe理程序,不是严格意义上的必要,尽pipe取决于所执行的升级,这可能是确保所有更改生效的最简单方法。
  5. 在等待虚拟机pipe理程序重新启动的时候,在服务器机房的步调
  6. 重新启动虚拟机
  7. testing,看看是否一切正常