| 简介 | |
| 优点 | |
| 要求 | |
| 限制 | |
| 滚动升级的工作方式 | |
| 滚动升级演练 | |
| 已知问题 | |
| 疑难解答 | |
| 结论 |
Microsoft Windows Server 2003 Enterprise Edition 和 Datacenter Edition 操作系统的功能之一就是可以在其服务器群集上执行操作系统的滚动升级。滚动升级是一个升级群集节点的过程,一次升级一个节点,使用这种方式升级可保证群集所提供的服务和资源在整个升级过程中始终可用。使用这种方式可使与升级系统相关的停机时间缩减至很短,只需要几分钟,也就是将资源从一个节点移至另一个节点所需的时间,而使用一般的升级方法升级 Windows 服务器通常都需要几个小时。
管理员可以执行从 Windows 2000 Advance Server 到 Windows Server 2003 Enterprise Edition,或从 Windows 2000 Datacenter Sever 到 Windows Server 2003 Datacenter Edition 的滚动升级。不支持从 Windows NT version 4.0 Enterprise Edition 到 Windows Server 2003 Enterprise Edition 的直接滚动升级。这表明,如果您想从 Windows NT version 4.0 升级到 Server 2003,可以有两种选择:
| • | 您可以先执行从 Windows 2000 Advanced Server 到 Windows Server 2003 Enterprise Edition 的滚动升级,以维护群集的可用性 |
| • | 您可以执行从 Windows NT 4.0 到 Windows Server 2003 Enterprise Edition 的非滚动直接升级,但这种方法不能保持群集的可用性 |
混合版本群集 (由运行不同版本操作系统的节点组成的群集) 可提供与同种操作系统群集同一级别的可用性。支持滚动升级的资源可在混合模式群集的节点间移动,还可以进行故障转移和故障恢复。
如果系统硬件和软件支持滚动升级的话,也可对其应用相同的升级过程。不过,本文着重讨论操作系统的滚动升级。如果您对应用程序的滚动升级感兴趣,可以查看应用程序文档以确定应用程序是否支持滚动升级。
本文假设读者具备群集管理的基础知识,且熟悉 Windows 2000 和 Windows Server 2003 中的 Microsoft Server Cluster。有关这些组件的更多信息,请参考 Windows Server 2003 Advanced Server 联机帮助。
运行旧版操作系统、应用程序或硬件的节点被称为下级节点。
运行新版操作系统、应用程序或硬件的节点被称为上级节点。
由运行不同版本操作系统、应用程序或硬件的节点组成的群集被称为混合版本群集。
滚动升级具有许多优点,对于任何要求高度可用性的关键任务系统来说,可将滚动升级作为备用升级方案考虑。
假设有这样两个例子:Jack 和 Jill。Jack 在基于 Windows Server 2003 的独立服务器上运行关键任务数据库应用程序。他定期应用 Windows Server 2003 操作系统服务包 (每季度一次),每年升级一次应用程序,同时每年还要执行一次硬件维护升级。从过去的经验来看,他认为安装服务包所需的平均时间为 60 分钟。而应用程序升级一般要用 4 个小时。硬件升级所花费的时间可能从 30 分钟到 4 个时不等。他还得出,每年在故障和升级上所花费的时间是计划停机时间的四倍。该系统平均每年的停机时间总共为:
4 x 60 + 240 + 240 + 240 = 16 小时,相当于 99.8% 的时间为正常运行时间。
Jill 在一个双节点群集上运行关键电子邮件应用程序。她应用的规则与 Jack 相同,不同的是,她不采用每次升级全部节点的方法,而是执行滚动升级。她估计,将此应用程序从一个节点移至另一个节点平均要用 5 分钟;因此,每次与升级相关的停机时间只有 5 分钟。因此该系统平均每年的停机时间总共为:
4 x 5 + 5 + 5 = 30 分钟,相当于 99.99% 的时间为正常运行时间。
从中可以看出,滚动升级的优点体现在以下几个方面:
| • | 最小化停机时间。滚动升级可以最小化与软/硬件升级相关的停机时间。 |
| • | 最小化风险。滚动升级可以将升级失败时导致的服务损失风险降至最低。当一个节点升级失败时,其他节点仍可以提供服务,这样,系统管理员不牺牲任何附加的停机时间便可修复和替换失败的节点。 |
| • | 增强灵活性。滚动升级导致的停机时间很短,几乎可以忽略,这表明系统管理员可以在工作日期间执行滚动升级,而不必在深夜或周末执行升级。 |
| • | 要在群集节点上将操作系统滚动升级至 Windows Server 2003,您运行的必须是 Windows 2000 Advanced Server (包括所有服务包,例如 SP1、SP2 等等) 或 Datacenter Server。Windows Server 2003 操作系统不支持从更早的 Windows 操作系统 (例如 Windows NT 4.0) 执行滚动升级。 |
| • | 可以执行从 Windows 2000 Advanced Server 到 Windows Server 2003 Enterprise Edition 的滚动升级。 |
| • | 可以执行从 Windows 2000 Datacenter Server 到 Windows Server 2003 Datacenter Edition 的滚动升级。 |
| • | 首先执行从 Windows NT 4.0 到 Windows 2000 Advanced Server 的滚动升级,然后再滚动升级至 Windows Server 2003 Enterprise Edition |
| • | 直接从 Windows NT 4.0 非滚动升级至 Windows Server 2003 Enterprise Edition,但这种方式不能维护群集的可用性 |
| • | 滚动升级可以用于升级 Windows NT 4.0 Server、将 Enterprise Edition 从 SP4 升至 SP5、从 SP5 升至 SP6 等等。还可以用于将所有 SP3 之后的 Enterprise Edition 服务包升级至 Windows 2000 Advanced Server。 |
| • | 不支持从 Windows NT 4.0 到 Windows 2000 Datacenter Server 的升级。Windows 2000 Datacenter Server 只能以干净的安装方式安装。 |
| • | 不支持从任意版本的 Windows Server 2003 (64 位) Enterprise Edition LE 发行版到 Windows Server 2003 (64 位) Enterprise Edition 的滚动升级。您将必须执行全新安装或将系统升级至 Windows Server 2003 (64 位) Enterprise Edition。这表明着群集在升级/安装过程中将不可用。 |
虽然滚动升级的破坏性比常规升级的破坏性要小,但是您要记住,由于应用程序需要在节点间移动,因此,还是会在服务中造成比较小的破坏。当应用程序从一个节点移至另一个节点时,必须停止该应用程序。应用程序停止后,群集服务会将应用程序使用的所有资源 (如磁盘、IP 地址或网络名称等) 移至另一个节点,并在移至的节点重新启动应用程序。在这个过程中,客户端和服务器应用程序之间的所有会话都会取消;数据库事务和文件处理也将中止。当应用程序在第二个节点上重新启动后,客户端应用程序可以重试,最终将重新连接并恢复。虽然造成的影响十分微小,但也不应该忽视。
当升级双节点群集中的一个节点时,群集的可用性会受到限制。当一个节点升级时,第二节点的任何失败都会导致群集的失败。
在双节点群集滚动升级期间,所有资源组都会移至一个节点。对于资源分布在全部节点间的群集,这就意味着在其他节点升级的过程中,托管所有资源的节点必须能够最大的承载力运行。这可能会影响到应用程序的响应时间。
在对节点数大于两个的 Windows 2000 Datacenter Server 群集执行滚动升级时,用户可以采用不同的方法将资源从一个升级节点移至其他节点。根据配置和节点的承载能力,您可能希望将资源移动到一个能够处理来自升级节点的额外负载的节点。您还可以将升级节点上的资源分布到多个不同节点,以降低对性能的影响。在执行滚动升级前,先要标出在每个节点的升级过程中应将哪些资源移动到哪个(哪些)节点。
请注意:Windows Server 2003 Datacenter Edition 只能从 OEM 处获得。请联系您的 OEM 供应商以获得 Windows Server 2003 Datacenter Edition。
预先对群集的滚动升级进行规划是至关重要的。如果您决定在将剩余的下级节点升级至 Windows Server 2003 之前先运行几天混合版本的群集,则必须进行另外的规划。请先列出在群集上运行的服务和应用程序。明确哪些服务和应用程序在从 Windows 2000 操作系统转移至 Windows Server 2003 的过程中可以得到恢复,反之亦然。如果您必须在运行不同操作系统的节点间恢复或移动资源,这些信息将会很有帮助。请查看应用程序文档以获得混合版本群集的支持要求。
群集服务能够保证始终有一个上级节点与一个由下级节点组成的群集相连。还可以保证将资源恢复到下级节点,或从下级节点恢复资源。但是,群集服务并不能保证应用程序也同样支持操作系统的滚动升级。下面的表 1 总结了受群集服务支持、对群集敏感的资源的行为。
表 1 滚动升级支持/不支持的资源。
| 资源 | 注释 | ||||||||||||
文件共享 | 在滚动升级过程中受支持。 | ||||||||||||
IP 地址 | 在滚动升级过程中受支持。 | ||||||||||||
网络名称 | 在滚动升级过程中受支持。 | ||||||||||||
物理磁盘 | 在滚动升级过程中受支持。 | ||||||||||||
WINS | WINS 在滚动升级过程中不受支持。在滚动升级 WINS 资源的过程中,必须遵循以下步骤说明。
请注意:
| ||||||||||||
DHCP | DHCP 在滚动升级过程中不受支持。在滚动升级 DHCP 的过程中,必须遵循以下步骤说明。
请注意:
| ||||||||||||
分布式事务协调器 (DTC) | 在滚动升级过程中受支持。不过,要知道当执行混合模式 (混合版本) 群集操作时,您不能创建或删除 MSDTC 资源。相反,您应当在开始升级任何节点之前创建 MSDRC 资源,或是等到所有节点的升级都完成之后再创建。 | ||||||||||||
Internet 信息服务 | 请参见“将 Windows 2000 Internet 信息滚动升级至 Windows Server 2003”部分 | ||||||||||||
NNTP 服务 | Windows Server 2003 Enterprise Edition 不支持NNTP 服务实例,因此,您必须在升级之前移除所有的 NNTP 服务实例资源。 | ||||||||||||
SMTP 服务 | SMTP 服务在 Windows Server 2003 Enterprise Edition 中不受支持,因此,您必须在升级之前移除所有 SMTP 服务资源 | ||||||||||||
Time 服务 | Time 服务在 Windows Server 2003 Enterprise Edition 中受不支持,因此,您必须在升级之前移除所有的 Time 服务资源。 | ||||||||||||
本地仲裁 | 在滚动升级过程中受支持 | ||||||||||||
消息队列 | Primary Enterprise Services、Primary Site Services 以及 Backup Site Services 在滚动升级过程中不受支持。在滚动升级过程中支持其他的“消息队列服务”配置。
| ||||||||||||
打印后台处理程序 | 在滚动升级过程中支持的“打印后台处理程序”资源只有行式打印机远程 (LPR) 端口上的那些资源。有关更多信息,请参见 Windows Server 2003 Enterprise Edition CD 或 Windows Server 2003 Enterprise Edition 资源套件中的“打印”文档。 | ||||||||||||
其他资源类型 | 请参见随应用程序或资源提供的产品文档。 |
执行滚动升级之前,请先识别群集中不支持滚动升级的资源。这可以帮助您确定应采用哪种升级过程。
Windows Server 2003 为您提供了升级 IIS 的脚本。您可以选择使用脚本升级或手动升级。在 Windows Server 2003 操作系统中,群集中的 IIS 使用通用脚本资源进行管理。
下面介绍了两种对装有 IIS 的群集进行升级的方法。
A. 对于包含 IIS 的群集,使用提供的脚本从 Windows 2000 升级
1. | 如果要升级的群集上还没有“分布式事务协调器”(DTC) 资源,请在此群集上创建一个 DTC 资源。 | ||||||
2. | 将所有节点 (包含 IIS 实例资源的节点除外) 从 Windows 2000 升级或滚动升级 (根据需要进行选择) 至 Windows Server 2003 Enterprise Edition。 | ||||||
3. | 在升级后的节点上,从命令行导航至 %systemroot%\system32\inetsrv 目录并运行 iis_switch群集名称 [组名称]
请注意:脚本会使组 (其中包含新创建的“通用脚本”资源) 联机。不过,如果在运行脚本时,组中的所有资源或部分资源仍处于脱机状态,则升级后的资源联机过程将会失败。 脚本将不会升级群集组中的 IIS 资源。 一旦脚本执行完毕,请使用 IIS 启动升级后节点上的网站。在这个阶段,IIS 只能托管在 Server 2003 节点上,因为它使用的“通用脚本”在 Windows 2000 服务器群集中不存在。现在升级最终节点。 |
B. 对于包含 IIS 的群集,从 Windows 2000 手动升级
1. | 如果要升级的群集上还没有“分布式事务协调器”(DTC) 资源,请在此群集上创建一个 DTC 资源。 |
2. | 将所有节点 (包含 IIS 实例资源的节点除外) 从 Windows 2000 升级或滚动升级 (根据需要进行选择) 至 Windows Server 2003 Enterprise Edition。记录下 IIS 实例资源的相关资源后,将 IIS 实例资源脱机。您应当记录下那些依赖 IIS 的资源以及 IIS 自身所依赖的资源。 |
3. | 删除所有这些 IIS 实例资源的相关资源后,删除 IIS 资源。 |
4. | 将组移至 Windows Server 2003 Enterprise Edition 节点,并创建“通用脚本”资源。 请注意:根据步骤 #3 中的记录,重新创建“通用脚本”资源的相关资源 (即已删除的 IIS 资源的相关资源)。您应当使这些以前依赖于 IIS 资源的所有资源改为依赖“通用脚本”资源。还应当使“通用脚本”依赖以前 IIS 所依赖的所有资源。确保升级后的资源是“IIS 通用脚本资源”的所有者。 |
5. | 使包含新“通用脚本”资源的组联机。 |
6. | 使用 IIS,启动升级后节点上的网站。 |
7. | 升级最终节点。 |
如前所述,群集服务并不能保证应用程序也同样支持滚动升级。不过,应用程序在某些情况下却可以支持滚动升级,那就是应用程序从未进行过以下操作时:
| • | 在群集磁盘上存储程序文件。 |
| • | 更改资源 DLL 名称或位置。 |
| • | 删除系统注册表或群集配置数据库中的注册表键。 |
| • | 更改应用程序磁盘上的数据结构。 |
执行过上述任意一种操作的应用程序都不支持滚动升级。
在一个通用的群集方案中,每个节点均运行 Windows 2000 Advance Server,且都安装有下列软件:
| • | Microsoft Server Cluster。 |
| • | File Server -- 组 3 和组 4 |
| • | SQL Database -- 组 1 和组 2 |
此时,群集配置如图 1 所示,每个节点都处理客户端请求。
暂停节点 1,如下面的图 2 所示。将节点 1 中的所有资源组移至节点 2。由于节点 1 已暂停,因此用户不能在此节点创建新组,也不能将新组移至此节点。此时,节点 2 处理所有的群集资源组。节点 1 处于闲置状态,可以进行升级。
此时,您可以开始安装服务包,或将节点升级至 Windows Server 2003 Enterprise Edition (见下面的图 3)。节点 1 升级完毕后,您可以执行测试以检验操作系统的功能是否完备。
群集服务可维护每个节点的操作系统版本、群集服务自身,以及群集的整体版本。它使用这些版本号来确定运行不同操作系统版本的节点是否可以加入到群集中。
上级节点 1 重新加入群集。群集服务可以保证上级节点能够理解下级节点协议,且可以加入下级群集。
在升级节点 2 之前,要确保群集正常运行。可以进行一个简单的测试:
1. | 选择一个非关键资源组,将其移至节点 1。如果这一步成功,则证明群集服务工作正常。 |
2. | 将此资源组移回节点 2。这一步可证明节点 1 没有篡改此资源组中资源,而且,如果节点 1 失败的话,它们还可以在节点 2 中得以恢复。 |
暂停节点 2,如下面的图 4 所示。将节点 2 中的所有资源组移至节点 1。由于节点 2 已暂停,因此其他用户不能在此节点创建新组,也不能将新组移至此节点。此时,节点 1 处理所有的群集资源组。节点 2 处于闲置状态,可以进行升级。
此时,您可以开始安装服务包,或将节点升级至 Windows Server 2003 Enterprise Edition (见下面的图 5)。节点 2 升级完毕后,您可以执行测试以检验操作系统的功能是否完备。此时,上级节点 2 应当可以成功与上级节点 1 建立连接。
节点 2 重新加入到群集中,重新将资源组分发回群集配置中的两个节点,如下面的图 6 所示。
本演练将演示从 Windows 2000 Advanced Server 群集到 Windows Server 2003 Enterprise Edition 的滚动升级过程。有关滚动升级的最新信息,请参见 Windows Server 2003 Enterprise Edition CD 上的联机帮助和版本声明。
1. | 准备一个包含所有资源的列表。 | ||||||
2. | 识别不支持滚动升级的资源。 如果资源中包括不支持滚动升级的资源,那么您可以有三种选择:
| ||||||
3. | 要启动“群集管理程序”(参见下面的图 7),单击开始,指向程序,指向管理工具,并单击群集管理程序。 所有节点和资源组均处于联机“启动”状态。 | ||||||
4. | 单击第一个节点 (在我们的示例中为 I4DELL1N1)。 | ||||||
5. | 单击文件菜单,并单击暂停节点。I4DELL1N1 的状态更改为暂停 (见下面的图 8)。 | ||||||
6. | 在左侧窗格中,单击 I4DELL1N1 旁边的 + 号将其展开。双击活动组。当前托管在 I4DELL1N1 上的所有组均显示在右侧窗格中 (见下面的图 9)。 | ||||||
7. | 单击右侧窗格中的磁盘组 1。单击文件菜单,并单击移动组。对列出的每个组重复此步骤。 在每个组中的服务移至其他节点的过程中,服务会中断,并会重新启动。所有组移动完毕后,I4DELL1N2 将管理所有组并处理所有的客户端请求。I4DELL1N1 闲置 (见下面的图 10)。 现在您需要检查安装在群集中的所有资源。 | ||||||
8. | 在左侧窗格中单击资源类型 (见下面的图 11)。 | ||||||
9. | 确定不支持滚动升级的资源类型,并将不支持的所有资源脱机。(见上面的表 1。) | ||||||
10. | 确保应用了最新的服务包后,使用 Windows Server 2003 Enterprise Edition 安装程序升级 I4DELL1N1。 请注意:为了确保 Windows Server 2003 安装程序不将临时文件放在群集磁盘上,请使用安装选项 /tempdrive:X。(更多信息,请参见本文的已知问题部分。) 安装程序检测 I4DELL1N1 上的“群集服务器”,并自动安装 Windows Server 2003 Enterprise Edition 群集服务。在升级过程最后,I4DELL1N1 自动将群集重新连接在一起,但仍处于暂停状态,不能处理任何与群集有关的工作。 现在,您将需要在 I4DELL1N1 执行验证测试,以确保其功能正常。 | ||||||
11. | 在 I4DELL1N1 上启动“群集管理程序”。您可以看到两个节点:I4DELL1N1 处于暂停状态而 I4DELL1N1 处于启动状态。 | ||||||
12. | 单击 I4DELL1N1,然后单击 恢复节点。 | ||||||
13. | 在第二个节点 (I4DELL1N2) 上重复步骤 4、5、6、7、8、10、11 和 12。 | ||||||
14. | 如果有必要,可以对任何不支持滚动升级的应用程序进行升级。 | ||||||
15. | 在节点间移动组,对群集进行测试。任何节点上的所有资源都应处于联机状态。 |
升级程序 (Winnt32.exe) 会选择可用空间最大的磁盘来存储所有临时文件。在群集中,这有可能是群集磁盘。使用 /tempdrive:X 选项可确保升级程序使用适当的驱动器 (即非群集磁盘) 存储临时文件。
“打印后台处理程序”资源支持滚动升级,但只支持 LPR 端口和标准 TCP/IP 端口类型。基于 Windows 2000 的服务器群集不支持其他的端口类型。
在运行混合版本群集时,请不要试图修改打印后台处理程序或打印机配置。
在运行混合版本群集时,建议您不要更改群集配置,同时系统也不支持此操作。尤其不应当试图创建仅可在 Windows Server 2003 上级节点中使用的新资源类型。
按上面的步骤 2 执行操作。
在执行滚动升级时,有几种原因可能导致资源联机失败,或导致资源在联机后转移至上级节点时失败。
1. | 资源不支持滚动升级。 将资源移回下级节点,并使其脱机。待到所有节点均升级之后,现将其联机 |
2. | 资源与 Windows Server 2003 不兼容。 |
3. | 应用程序所依赖的另一资源联机失败。 确保没有其他资源因上述原因 1 或原因 2 而联机失败。 |
节点升级失败时,您可以执行下列选项:
1. | 修复节点。 |
2. | 从备份文件还原节点。 |
3. | 执行干净的节点安装。在这种情况下,您必须先将节点从群集中去除,待安装完成后,再将其与群集连接。此过程可能会影响到群集上运行的其他应用程序。您可能需要重新安装这些应用程序。请参见 Windows Server 2003 Enterprise Edition 或 Datacenter Edition 联机帮助中的“安装服务器群集”部分。 |
本文档提供的信息可帮助您准备执行群集的滚动升级。滚动升级可节省时间和金钱,可使您放心地执行操作,即便出现了问题,仍有可以正常工作的服务器,还可提高客户对群集所提供服务的满意度。