谷歌解决 NVMe 驱动器太多导致 Linux 服务器重启太慢问题
谷歌方面正在致力于改进由于太多的谷歌 NVMe 驱动器 ,而导致的解决 Linux 服务器重新启动时间太长问题。缘于在于该公司的驱动器太器重启太一些多驱动器服务器可能需要超过一分钟的时间才能让 Linux 内核执行其 shutdown 任务,而谷歌的多导这项改进工作也可能使其他用户受益 。
我们的服务一些机器配置了许多 NVMe 设备 ,亿华云并且已针对严格的慢问 shutdown 时间要求进行了验证。每个 NVMe 设备插入系统 ,谷歌通常需要大约 4.5 秒来 shutdown 。解决一个具有 16 个此类 NVMe 设备的驱动器太器重启太系统将需要大约 80 秒来 shutdown 并重新启动。
目前在总线级定义的多导 shutdown API 被定义为同步的。因此 ,香港云服务器服务系统中的慢问设备越多 ,shutdown 所需时间就越长。谷歌这个 shutdown 时间极大地拖慢了机器的解决重启时间 。

谷歌工程师在提交的驱动器太器重启太补丁集中提出了一个总线级别的异步 shutdown 接口,修改了核心驱动程序、设备 shutdown routine 以利用新接口;同时保持与现有同步实现的建站模板向后兼容性 ,并利用新接口让所有基于 PCI-E 的设备在必要时使用异步接口语义 。PCI-E 级别的实现也以向后兼容的方式工作,以允许现有设备实现与当前的同步语义一起工作。
借助异步 shutdown 接口并调整 NVMe 驱动程序以使用它 ,其重启以及最终的服务器租用服务器 down time 可以轻松减少一分钟 。
这个拟议的异步 shutdown 接口在目前的形式下只有约 100 行新代码 ,且谷歌只展示了 NVMe 设备利用这个异步 shutdown 接口的一个示例实现 。科技网站 Phoronix 指出 ,随着现代高性能 Linux 服务器继续添加更多的 NVMe 驱动器和其他 PCIe 设备 ,Linux 内核的源码库同步 shutdown 接口可能意味着额外的 downtime,希望谷歌提交的这些补丁能在短时间内设法向前推进,并以主线的方式调整更多的驱动程序来使用它。
更多详情可查看邮件列表。
本文转自OSCHINA
本文标题:谷歌解决 NVMe 驱动器太多导致 Linux 服务器重启太慢问题
本文地址 :https://www.oschina.net/news/189047/google-linux-nvme