NVMe SSD, как оказалось, тормозят перезагрузку серверов Google

 

Даже самые надёжные серверы иногда должны перезагружаться, хотя бы при замене выходящих из строя компонентов или обновлении прошивок. Также не секрет, что наличие в системе сложных контроллеров и карт расширения может замедлять время загрузки, добавляя паузы на инициализацию таких плат. Но недавно Google столкнулась с уникальным случаем: Linux-серверы, оснащённые слишком большим числом NVMe-накопителей, стали перезагружаться слишком медленно.

Дело в том, что в текущем виде API ядра Linux выполняют процесс выключения и перезагрузки системы в синхронном режиме. При этом каждый NVMe-накопитель завершает свой процесс выключения примерно за 4,5 с, и пока он не завершится, система не перейдет к выключению следующего накопителя. Но популярность NVMe растёт, и наличие в сервере десятка-двух таких SSD — уже не редкость. Следовательно, только процесс завершения работы ОС может удлиняться на минуту и более, что неприемлемо с точки зрения минимизации времени простоя серверов.

 Фото: Google

Фото: Google

Google предлагает для ядра Linux переход на асинхронную модель процесса выключения системы, и уже разработала свой патч, сохраняющий, впрочем, совместимость со старой синхронной моделью. В текущем варианте он переводит все устройства на шине PCIe на использование асинхронной модели вызовов и вносит соответствующие изменения в драйвер NVMe. В этом случае команды на выключение отправляются последовательно сразу для всех дисков, после чего ожидается их завершение.

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER. | Можете написать лучше? Мы всегда рады новым авторам.

Источник:

Постоянный URL: https://servernews.ru/1063320
Система Orphus