ZTC
作者ZTC2021-06-23 10:34
售前技术支持, 浪潮商用机器企业云创新中心

如何在PowerVM虚拟化环境中实现更有效的时间同步

字数 2826阅读 6998评论 4赞 4

引言:通常在客户实际生产环境中,通过在操作系统上进行适当地设置 NTP 服务,实现与专用 NTP 服务器进行时间同步。众所周知, K1 Power 在 PowerVM 虚拟化环境中,单台服务器上动辄十几二十个分区,更有些高端服务器上同时运行着上百个分区,如果按照传统方式设置时间同步,需要为每个分区的操作系统进行适当的 NTP 配置,需要大量的配置工作。那么有没有更有效的方法在 PowerVM 环境中实现分区的时间同步呢?

关于 PowerVM Hypervisor 和服务处理器( Service Processor )

每一台 Power 服务器都拥有 1 个硬件时钟 RTC ,当服务器在工厂第一次上电的时候就从 0 开始计时(这里说的 RTC 指的是 real-time clock ,和我们通常说的 UTC 时间是不同的概念)。由于 RTC 都会配置电池,所以即便是在 Power 服务器断电的时候也能正常工作。

我们在初始安装部署 Power 服务器的时候通常建议在通过 ASMI ( Advanced System Management Interface )中配置服务处理器 FSP 的时间,当然也可以通过 HMC 调出 ASMI 页面进行配置。上文提到了 UTC 时间和 RTC 不是一个概念,因此我们通过 ASMI 设置的时间并不会修改服务器的 RTC ,而是将当前时间转换为与 RTC 之间的时间增量并保存在系统中。当一个分区( LPAR )被创建的时候,这个时间增量会被配置到每一个 LPAR 的系统中。因此,所有在这台服务器上创建出的分区( LPAR )的时间会与服务器 FSP 上的时间保持一致。

时间参照分区( TRP )

大家如果熟悉 Power 服务器的安装配置工作,应该知道修改 FSP 的时间的操作必须要在服务器 Power off 的状态才可以执行。 PowerVM 允许通过指定一个时间参考分区来自动调整整个服务器和 FSP 的时间。我们可以通过 HMC 在创建 LPAR 的时候或修改 LPAR 的属性时指定某一个 LPAR 作为 TRP 分区,如下图所示:

在旧版本的 HMC 上(如 V7 版本)的设置方法如下:

这里要注意的是,承担 TRP 角色的分区将会负责维护所在服务器上 FSP 和 Hypervisor 的时间,因此这类分区是不能通过 LPM 操作迁移到其他服务器上的。因此,在 PowerVM 虚拟化环境中,我们通常选择 VIOS 作为 TRP 分区。

一旦在服务器上配置了 TRP 分区,只要在此分区上对时间进行了修改, PowerVM Hypervisor 都会自动同步修改时间,同时 PowerVM Hypervisor 也会将此修改推送给 FSP ,并对 FSP 上的时间进行更新。 PowerVM 允许指定多个分区作为 TRP 分区,但同一时间只有运行时间最长的那个 TRP 分区会承担时间同步的任务;当这个 TRP 分区因为维护等原因处于非运行状态时( inactive ),另一个 TRP 分区会顶替其承担时间同步任务。

管理分区( LPAR )和 HMC 的时间

当我们通过 HMC 创建完一个分区并激活后,与 PowerVM Hypervisor 相同的时间会被自动地设置到这个操作系统中,并根据操作系统上设置的时区显示对应的时间和日期。当然,最有效的做法是在操作系统中正确地配置 NTP 服务,之后系统将自动与 NTP 服务器进行时间同步。同样地, HMC 上也建议配置 NTP ,以实现自动地时间同步。

我们在上文中介绍了如何更有效地同步 Power 服务器上 FSP, Power Hypervisor, 分区和 HMC 的时间。我们建议在 VIOS 、所有 LPAR 以及 HMC 中通过配置 NTP 服务实现时间同步 ; VIOS 开启 TRP 功能,以实现与 PowerVM Hypervisor 及 FSP 的时间同步,通过上述方式保证系统整体的时间同步。接下来我们通过几个简单的实验来做个验证:

实验环境:

  1. 一台 Power8 服务器 (FW840.40), 一台 HMC(V8R8.4.0 SP2), 服务器实现通过 ASMI 将时间调慢一个小时(服务器时间比真实时间晚一个小时)
  2. 服务器上安装了两 VIOS ( 2.2.3.52 )和若干 AIX client 分区, VIOS 分区和 AIX Client 分区均关闭 TRP 选项,并处于非激活状态,
  3. 一台 NTP 服务器(初始环境未配置 NTP Client );

测试 1 :所有分区未指定为 TRP 分区

  1. 启动测试服务器;
  2. 激活服务器上的两个 VIOS 系统;

测试结果: VIOS 上的时间与 FSP 的时间一致,比真实时间慢一个小时(符合预期)

测试 2 :启用 TRP 分区功能

  1. 设置第一个 VIOS ( VIOS1 )的系统时间,设置为比真实时间慢 10 分钟
  2. 设置第二个 VIOS ( VIOS2 )的系统时间,设置为比真实时间慢 5 分钟
  3. 在 VIOS1 当前运行的 profile 中启用 TRP (动态设置且立即生效)

测试结果: VIOS1 上的时间与 FSP 时间一致,比真实时间慢 10 分钟(符合预期**)

  1. 在 VIOS2 当前运行的 profile 中启用 TRP

测试结果: VIOS 上的时间与 FSP 时间一致,比真实时间慢 10 分钟。与上个测试结果相同,并为发生变化,(符合预期)

  1. 关闭 VIOS1 的 TRP 功能(动态设置且立即生效)

测试结果: FSP 时间与 VIOS2 上的时间一致,比真实时间慢 5 分钟(符合预期)

测试 3 :启用 NTP 服务同步时间

  1. 重新启动 VIOS1 ,配置为 TRP 分区,并在系统中配置 NTP 服务,与 NTP 服务器完成同步时间

测试结果: VIOS1 的时间与当前时间一致,但 FSP 时间比真实慢 5 分钟(符合预期)

解释:此时 VIOS2 是最长运行时间的 TRP

  1. 在 VIOS2 中配置 NTP 服务,与 NTP 服务器完成同步时间

测试结果: VIOS2 与 FSP 时间均与当前时间一致(符合预期)

配置建议与最佳实践:

  1. Power 服务器将选择最长运行时间的 TRP 分区与 Power Hypervisor 进行时间同步;
  2. 选择合适的分区启用 TPR 功能(注意可动态启用用和关闭 TRP 设置允,且立即生效);
  3. 一台 Power 服务器上允许配置多个 TRP 分区,当前生效的 TRP 分区如果因为维护等原因处于非运行状态时( inactive ),另一个 TRP 分区会顶替其承担时间同步任务;
  4. 在 PowerVM 环境中,建议将两个 VIOS 分区都设置为 TRP 分区,并在 VIOS 上配置 NTP 服务;同样也建议在 HMC 上配置 NTP 时钟同步

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论4 条评论

Jack.maJack.ma测试工程师, 上海慧镕电子工程股份有限公司
2021-12-17 17:28
有用
Jack.maJack.ma测试工程师, 上海慧镕电子工程股份有限公司
2021-12-17 17:28
有用
myfullermyfuller系统工程师, rongke
2021-06-24 09:58
有用,谢谢!
匿名用户
2021-06-23 10:36
有用,谢谢!
Ctrl+Enter 发表