[devel] rngd vs haveged vs crng
Leonid Krivoshein
klark.devel на gmail.com
Вт Май 28 02:53:12 MSK 2019
27.05.2019 14:59, Michael Shigorin пишет:
> On Thu, May 23, 2019 at 02:08:28AM +0300, Alexey Shabalin wrote:
>> В копилку дополнительных решений. Случайно наткнулся на
>> специальный клиент-сервер :)
> То есть сперва создать проблему на ровном месте,
> затем героически её решать.
Справедливости ради: специально её не создавали, так уж сложилось. Рынок
жаждет быстрых компьютеров, быстрых SSD. Overal Perfomance Index
определяется отнюдь не скоростью загрузки и временем отклика на данную
команду, но обыватель не любит ждать и ему важнее эти два "субъективных"
показателя, конечно, непосредственно о распараллеливании загрузки никто
особо не думает. Однако init-системы начали вырастать одна за другой в
угоду этим хотелкам рынка, systemd -- не первая, и наверняка не
последняя. Скорее всего, ещё и не самая плохая реализация параллельной
загрузки. Самой удачной она могла бы стать, если бы не ломала
надёжности, не создавала бы гонок на ровном месте, позволяла бы работать
с разными профилями надёжности и совместимости. Для бывалых никакого
значения не имеет скорость загрузки, надёжность важнее.
Но ведь даже не systemd стал проблемой. Не было бы его, здесь был бы
upstart или любой другой имярек. Просто, с одной стороны, компьютеры и
диски стали быстрее, система загрузки стала слишком непоследовательной,
с другой -- апстрим ядра закрутил гайки с CPRNG. И проблема вылазит
точечно, даже виртуалок это больше касается. Потому что и там прогресс,
и там тоже закрутили.
> Лёш, чинить journald апстрим часом не собирается?
> Например, на предмет ручки "не подписывать логи",
> "подписывать, если есть энтропия", "подписывать всегда"?
Выходит, в первую очередь именно мы должны думать, как компоновать
системы, чтобы не было потребителей энтропии на раннем старте.
Персонально отлавливать и отстреливать. Хороший пример с ssh-keygen -A.
> По умолчанию в "обычных" выпусках, как мне кажется,
> работоспособность системы в течение разумного времени
> после включения/перезагрузки важнее, чем подписи,
> которые не проверит/посмотрит никто.
Все варианты решения уже известны и обсуждались много раз. Можно ещё
один вариант рассмотреть. Допустим, мы уже точно знаем, какие приложения
сколько выжрут энтропии. Будучи запущенными в первые несколько секунд,
это создаст проблему. Оценить текущий пул через sysfs мы можем, время от
начала запуска известен. Для таких программ создаются фэйки-обёртки,
выполняющие их отложенный запуск. А systemd пусть думает, что всё уже
случилось. Если для ряда таких программ заблокировать запуск полностью
возможно без ущерба для загрузки, значит, сразу после логина юзера с uid
500 чтобы вылазило системное предупреждение, типа: внесите такие-то
изменения в свои настройки или мы и дальше будем блокировать запуск
таких-то приложений. Для таких программ, как gnome-keyring, если
создавать временное хранилище на основе ненадёжных данных -- тоже сразу
чтобы прилетало уведомление юзеру, но запуск не блокировался. На худой
конец, не создавать это временное хранилище. Короче, отстреливать
индивидуально или как-то так.
--
Best regards,
Leonid Krivoshein.
Подробная информация о списке рассылки Devel