谷歌解決 NVMe 驅動器太多導致 Linux 伺服器重新啟動太慢問題

2022-03-31 09:00:20

谷歌方面正在致力於改進由於太多的 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,希望谷歌提交的這些修補程式能在短時間內設法向前推進,並以主線的方式調整更多的驅動程式來使用它。

更多詳情可。

展開閱讀全文