IBM 服务器需要很长时间才能通过 UEFI 启动到操作系统

IBM 服务器需要很长时间才能通过 UEFI 启动到操作系统

我有一对 IBM System x3620 服务器。这些服务器在最终达到操作系统接管的程度时运行良好,但它会占用它们永远要通过新奇的 UEFI 启动系统……大约需要五分钟;也许更长。我没有计时,但这是那种你一边喝咖啡一边等待,回来时它仍在运行的情况。

通常,我关闭它们的唯一时间是每月维护周期(通常只是 Windows 更新)。这是内置维护时间,因此额外的 5 分钟不计入我们的 SLA,也没什么大不了的。但是,如果我可能出现中断,我肯定希望将这 5 分钟拿回来。我能做些什么来告诉他们继续启动?我已经禁用了所有我能找到的额外启动选项。

答案1

所有 IBM uEFI 机器都采用年龄进行启动,因为在完成 uEFI 初始化和模块启动之后,旧式 BIOS 仿真开始启动,并且 PCI-E 选项 ROM 开始执行等等。这在所有 IBM uEFI 机器上都是“正常的”——无论是刀片服务器还是标准机架服务器。

您可以禁用旧式 BIOS 启动、选项 ROM、优化启动顺序并通常将该机器保持为 IBM 提供的最新固件级别。

答案2

我同意 System X uEFI 遗留实现非常缓慢,我甚至可能避免将它们作为平台出售给我的客户。

测量 IBM 启动旧式 USB 密钥启动直到我收到操作系统提示的时间长得离谱。我使用的是 SmartOS(illumos/opensolaris 的衍生产品,一旦启动,它的运行和行为就与 Solaris 11 非常相似),它的行为类似于幼稚 Linux,例如,它会加载 275MB 的“压缩” blob(整个操作系统),然后在内存中启动操作系统。 这确实展示了 IBM 的 uEFI 实现传统启动的问题

  BEG:下午 1:27:05(启动 SmartOS USB 2.0 USB 密钥)
  结束时间:下午 1:33:38(运行 SmartOS - 我们读取了 275MB)
  ---
  耗时:6:33(六分三十三秒 - 相当慢 - 仅 0.75MB/秒)

这几乎就像 UEFI 实现使用像 512 字节读取这样的微小块大小,而不是在读取期间使用较大的缓冲区。一旦我进入操作系统,我就可以对我启动的 USB 密钥的性能进行基准测试,恕我直言,如果 IBM UEFI 代码只读取 8192 块大小或更好的 32768 块大小,则启动速度会非常快。

因此,一旦进入 SmartOS 操作系统,我就会看到 USB 密钥的以下性能特征,范围从 512 字节到 131072 字节。看起来 8192 块大小(在启动的操作系统中为 12.3 MB/秒)或更好的 32768 块大小(在启动的操作系统中为 20.2 MB/秒)都是不错的选择。看起来 512 块大小(在启动的操作系统中为 0.64 MB/秒)与我在长时间启动时体验到的结果非常接近。

时间 dd if=/dev/dsk/c1t0d0p0 of=/dev/null bs=512 count=524288
    524288+0 条记录
    524288+0 条记录
    实际 31 分 19.499 秒
    => 在 Solaris 11 等 SmartOS 上为 00.64MB/秒(这是 IBM bios 启动速度)

时间 dd if=/dev/dsk/c1t0d0p0 of=/dev/null bs=1024 count=262144
    262144+0 条记录
    262144+0 条记录
    实际 1分39.989秒
    => 02.56MB/秒。类似 Solaris 11 的智能操作系统

时间 dd if=/dev/dsk/c1t0d0p0 of=/dev/null bs=2048 count=131072
    131072+0 条记录
    131072+0 条记录
    实际 0m50.215s
    => 05.09MB/秒。类似 Solaris 11 的智能操作系统

时间 dd if=/dev/dsk/c1t0d0p0 of=/dev/null bs=4096 count=65536
    65536+0 条记录
    65536+0 条记录
    实际 0m33.056s
    => 07.74MB/秒。类似 Solaris 11 的智能操作系统

时间 dd if=/dev/dsk/c1t0d0p0 of=/dev/null bs=8192 count=32768
    32768+0 条记录
    32768+0 条记录
    实际 0m20.757s
    => 12.33MB/秒。类似 Solaris 11 的智能操作系统

时间 dd if=/dev/dsk/c1t0d0p0 of=/dev/null bs=32768 count=8192
    8192+0 条记录
    8192+0 条记录
    实际 0分12.785秒
    => 在 Solaris 11 等 SmartOS 上为 20.02MB/秒(如预期的那样,在 Win7 机器上看到)

时间 dd if=/dev/dsk/c1t0d0p0 of=/dev/null bs=131072 count=2048
    2048+0 条记录
    2048+0 条记录
    实际 0分11.532秒
    => 22.19MB/秒。类似 Solaris 11 的智能操作系统

我使用的是新款 IBM x3550 M3,配备 UEFI(BIOS)版本 1.13(12GB RAM,一个 2.266GHz Xenon 处理器)

    固件类型 版本字符串 发布日期
    IMM YUOOC7E 09/30/2011
    UEFI D6E154A 2011 年 9 月 23 日
    DSA DSYT89P 2011 年 10 月 28 日

我必须说,我对 IBM UEFI 实现中传统 BIOS 模式下 USB 启动的“速度”非常失望。

275MB 图像的思考Supermicro XSCA9F 或 Oracle-Sun X4275 分别只需 32 或 33 秒即可启动 275 MB 的 USB 密钥映像,而 IBM x3550 M3 启动同一映像则需要 363 秒以上(慢 11 倍)

这种性能完全不可接受,而且整个 System X 系列都存在这个问题。我联系过 IBM,他们只是说尝试 uEFI 引导加载(这就像告诉我学习 UEFI 规范、学习 GRUB2 并编写自己的自定义引导加载程序,是的,这是可行的,但我没有多余的 2-3 周来处理这些东西)。是的,使用“纯”uEFI 引导应该可以快速运行,但我无法证明这一点,但是我不能使用“标准发行版”,而且正如我所说,我将被迫编写自己的 uEFI 引导加载程序。

我根据 IBM 问题/票号 # A02PGGK 报告了此问题“传统启动缓慢”,我甚至尝试直接联系 uEFI 开发人员(我认为是 Michael Brinkman),但 IBM 似乎并不关心承认此问题以及受影响的大量人员和公司。

我也在以下帖子中发布了类似的分析http://communities.intel.com/thread/3909?wapkw=uEFI2009 年 9 月也讨论了“启动缓慢”的问题。这也是我一直遇到的问题

启动时间太慢。使用 EFI 时启动 VMware ESX 大约需要 20 分钟,而使用普通 BIOS 则只需不到 2 分钟

我遇到的也是同样的 10 倍或 11 倍的减速,希望有一天 IBM 能够解决这个问题。

乔恩·斯特拉巴拉

相关内容