3

Можно ли загружать сжатые ядра со сжатым initrd с помощью PXELinux?

Сначала немного предыстории:

Мы создали специальный дистрибутив Linux для бездисковых вычислительных узлов OpenCL. Мы хотим, чтобы эти узлы извлекали свои ОС из сети. Наш дистрибутив состоит из ядра (duh) и большого initrd, который загружается в RAM, и все выполняется оттуда.

Мы решили запустить все из initrd по двум причинам:

  • NFS не была опцией для обслуживания дополнительного содержимого файловой системы
  • Быстрый доступ к файлам из оперативной памяти.
  • Постоянное хранилище не требуется, данные и конфигурация динамически передаются через службу SOAP.

Теперь наш initrd размером около 450M. При скорости нашей сети загрузка одного клиента занимает около двух-трех минут. Будет ли сжатие ускорять загрузку, и если да, какой из них следует использовать? Поддерживается ли LZMA PXELinux, или нам нужно придерживаться bzip2 или gzip?

Из-за 2-3 минут загрузки загрузка 15 узлов по одному и тому же сетевому каналу занимает довольно много времени. Мы решили не использовать жесткие диски или приводы CD/DVD по финансовым соображениям (самый дешевый жесткий диск при 30 евро в 15 раз сэкономил ;-))

Итак, наш вопрос: какие параметры сжатия доступны для этой настройки? И как мы это делаем?

Спасибо за ваше время!

Иван Янссенс

3 ответа3

1

Как вы сделали initrd? Большинство известных мне систем сжимают их на последнем этапе:

> file /boot/initrd-2.6.37.1-1.2-desktop
/boot/initrd-2.6.37.1-1.2-desktop: gzip compressed data, [...]

Ядро должно поддерживать сжатие:

> cat /boot/config-2.6.37.1-1.2-desktop |grep CONFIG_RD_
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y

Но 450 МБ RAM-диска означает 450 МБ меньше памяти - и без жесткого диска у вас нет подкачки.

Вы должны серьезно взглянуть на сетевую файловую систему, там больше, чем NFS: gPXE может загружаться из iSCSI, AoE и даже HTTP.

0

У вас есть хотя бы о реализации Каспер и Squashfs. Таким образом, вы можете сохранить initrd минимальным размером, может быть, около 25 МБ и отправить squashfs отдельно. Squashfs поддерживает сжатие lzma, и если вы посмотрите, как с этим справляется parted magic, иногда они помещают squashfs в initrd ... однако в прошлом я играл с pxelinux, и вместо этого вы можете отправить его в виде отдельного файла. и сценарии Каспера все равно найдут его.

0

1) типичное ядро Linux сжато, то же самое для его initrd, проверьте цепочку сборки.

2) ваши цифры говорят, что вам не нужны сквош

3) pxelinux не заботится о вашем методе сжатия ядра /initrd, если таковой имеется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .