Параметры QEMU далее в статье относятся к настройкам администратора гипервизора. Их нельзя применить изнутри VPS EDIS Global. На арендованном VPS начните с проверок в гостевой системе ниже и обратитесь в поддержку, если результаты указывают на отсутствие виртуального устройства RNG.
Проверьте причину, прежде чем что-либо менять
Медленное подключение по SSH не обязательно связано с энтропией. Различайте задержку при загрузке или создании ключей хоста и задержку при обычном входе. В Debian/Ubuntu проверьте:Как хост может предоставить устройство энтропии
Проблема: OpenSSH задерживает запуск системы
Гостевые виртуальные машины (ВМ) могут испытывать задержки при запуске служб, напримерOpenSSHd, из-за недостаточной энтропии. Особенно это заметно при загрузке, когда службы блокируются в ожидании энтропии от /dev/[u]random или getrandom() в новых версиях Linux. Нехватка энтропии может увеличить время загрузки до одной минуты.
Обзор решения
Энтропию можно передавать гостевым ВМ непосредственно с хоста, используя возможность QEMU предоставлять гостевой системе источник энтропии, например/dev/urandom. Это обеспечивает постоянное поступление энтропии без перегрузки хоста.
Что такое энтропия?
В вычислительных системах энтропия — это случайность, которую операционная система собирает для криптографических и других операций, требующих случайных данных. Источниками могут быть аппаратные события: движения мыши, ввод с клавиатуры или системные прерывания. Энтропия необходима для безопасности и непредсказуемости криптографических ключей, защищённой связи и генерации случайных чисел. В виртуальных средах физические события ввода ограничены, поэтому доступной энтропии может не хватать, что задерживает зависящие от неё операции. Дополнительные источники энтропии, например VirtIO RNG, позволяют гостевым ВМ преодолеть эти ограничения и обеспечить стабильную работу служб, которым нужны случайные данные.Настройка
- Использование VirtIO RNG (генератора случайных чисел)
VirtIO позволяет эффективно передавать энтропию гостевой ВМ. Для его включения выполните следующие действия.
Измените командную строку QEMU
Добавьте следующие параметры к командной строке QEMU вашей ВМ:
/dev/urandom) на хосте.
virtio-rng-pci: передаёт источник энтропии гостевой системе через интерфейс VirtIO.
max-bytes и period: ограничивают скорость передачи, чтобы поставщик энтропии не потреблял слишком много ресурсов CPU.
Описание источников RNG и виртуальных устройств есть в документации по запуску QEMU.
Проверьте совместимость
Гостевые системы с ядром Linux начиная с версии 2.6.32 могут автоматически использовать источник энтропии VirtIO после перезагрузки. Для более старых ядер и других ОС убедитесь, что драйвер VirtIO RNG поддерживается и включён.
- Установка PRNG в гостевой системе (необязательно)
Для старой системы с подтверждённой проблемой нехватки энтропии оцените возможность использования haveged по документации вашего дистрибутива. Не устанавливайте дополнительную службу энтропии только потому, что SSH кажется медленным. Если вы определили, что она подходит вашей системе:
Преимущества VirtIO RNG
- Постоянная и быстрая передача энтропии с хоста.
- Отсутствие значительных задержек у гостевых служб, зависящих от генерации случайных чисел.
- Ограничение скорости предотвращает чрезмерное использование CPU хоста.
Что следует учитывать
- Убедитесь, что на хосте достаточно энтропии для всех подключённых ВМ.
-
Для задач с повышенными требованиями к безопасности оцените, соответствует ли источник
/dev/urandomвашим требованиям.
Заключение
Настройка VirtIO RNG или использование PRNG, напримерhaveged, может значительно сократить задержки запуска служб гостевой ВМ и повысить общую производительность системы.