LINUX.ORG.RU
решено ФорумTalks

USB Flash Drive vs PXE

 , ,


1

3

Привет, друзья! Всё никак не могу прийти к решению, что же лучше использовать в работе для загрузки, флешку или сеть. Надеюсь, вы сможете помочь определиться с выбором.

Плюсы PXE:

* Оркестрация. Не надо вставать со стула, просто подсунул образ и следующая железка, которую ты включаешь (тоже удалённо по iLO), его загрузит.

* Загрузка в BIOS и UEFI режимах работает одинаково хорошо на всех устройствах! Это просто чудо какое-то! Сколько я пердолил свою booty, допиливал, когда в моём распоряжении появлялась новая железка, на которой не работает загрузка с флешки.

Прикол в том, что мне не удалось при помощи GRUB2 загружать серверы HP Gen8, Gen9 в BIOS (Legacy) режиме. Поэтому пришлось вкорячивать аж отдельный syslinux (isolinux) загрузчик туда. На рабочих станциях, на HP Gen10 такой проблемы не было никогда, вот впервые столкнулся только на HP Gen8, Gen9.

Повторюсь, что с использованием PXE всё заработало реально с первого раза: создал бридж, потестировал в QEMU загрузку — работает, в бридж засунул сетевую карточку, к этой же сетевой карточке подключил серверы и всё, всё работает, и BIOS, и UEFI, это конечно круто.

Минусы PXE:

* Скорость загрузки; и я сейчас не общую скорость сети, а дело в том, что пока сетевая карточка находится в состоянии «без нормального драйвера операционной системы, которая ещё не загружена», её скорость будет реальные 10мбит/сек.

Частично эту проблему я могу решить путём загрузки минимального образа vmlinuz, initramfs с kexec-tools, общим весом в пару мегабайт, а затем wget'ом подтягивать уже нормальный образ с локального http-сервера и kexec'аться туда. Чем ждать, пока сразу нужный образ, весом 200мб, загрузится по PXE, — просто ждать придётся реально долго.

Вроде как iPXE решает эту проблему, через него скорость сети сразу нормальная, но нужно проводить эксперименты, точно не скажу.

Плюсы USB-флешки:

Скорость! Не сравнима ни с какой с сетью, а железо при необходимости обращаться сразу же к любому «участку», к любым данным на этой флешке. Буквально две-три секунды и образ весом 200 метров уже загружается.

Минусы USB-флешки:

При малейших изменениях приходится перезаписывать весь образ целиком на флешку, систему нужно держать в актуальном состоянии, особенно когда ты только занимаешься разработкой, постоянно бегать с флешкой ну такое себе.

----

Для загрузки по PXE нужен vmlinuz + initramfs, для загрузки с флешки нужен ISO, — разницы что то, что это, никакой. Всё делается одной командой booty build. Сложности создания образов нет, хочется только определиться, что лучше в перспективе использовать для работы.

На серверах могут быть отключены сетевые интерфейсы, либо может быть отключена загрузка с них, такое бывает редко, но бывает. Но с другой стороны, сетевые интерфейсы в любом случае надо включить, поэтому не будем считать это каким-то недостатком использования PXE. Просто при использовании флешки, сервер бы сразу загрузился и проделал всю работу (обновление делается через iLO), а тут лишние движения прост, заходить в биос, отвлекаться.

★★★★★

когда пару лет назад баловался с PXE, пришлось колхозить костыль чтобы grub подтягивал конфигурацию индивидуально для каждого хоста

regexp --set=1:m1 --set=2:m2 --set=3:m3 --set=4:m4 --set=5:m5 --set=6:m6 '^([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})' "$net_pxe_mac"
set mac="${m1}-${m2}-${m3}-${m4}-${m5}-${m6}"

source /os/mac-$mac/grub.cfg

if [ "$default" = "0" ]; then
	source /os/pxe-default/grub.cfg
fi

а сейчас обратил внимание по логам, что grub научился делать это сам. кра-со-та!

пытается сперва запросить grub.cfg по мак-адресу, а потом и по IP в hex(longip())

Apr  5 12:07:04 host in.tftpd[1699]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-01-52-54-00-12-34-56
Apr  5 12:07:04 host in.tftpd[1700]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-0A00000C
Apr  5 12:07:04 host in.tftpd[1701]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-0A00000
Apr  5 12:07:04 host in.tftpd[1702]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-0A0000
Apr  5 12:07:04 host in.tftpd[1703]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-0A000
Apr  5 12:07:04 host in.tftpd[1704]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-0A00
Apr  5 12:07:04 host in.tftpd[1705]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-0A0
Apr  5 12:07:04 host in.tftpd[1706]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-0A
Apr  5 12:07:04 host in.tftpd[1707]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg-0
Apr  5 12:07:04 host in.tftpd[1708]: RRQ from 10.0.0.12 filename /boot/grub/x86_64-efi/command.lst
Apr  5 12:07:04 host in.tftpd[1709]: RRQ from 10.0.0.12 filename /boot/grub/x86_64-efi/fs.lst
Apr  5 12:07:04 host in.tftpd[1710]: RRQ from 10.0.0.12 filename /boot/grub/x86_64-efi/crypto.lst
Apr  5 12:07:04 host in.tftpd[1711]: RRQ from 10.0.0.12 filename /boot/grub/x86_64-efi/terminal.lst
Apr  5 12:07:04 host in.tftpd[1712]: RRQ from 10.0.0.12 filename /boot/grub/grub.cfg
Spoofing ★★★★★ ()

Для начала не используй уже pxe. это очень и очень древний протокол и скорость там в разы медленнее, чем в ftp|http.

Используй Ipxe. Рецепт простой. Нужно собрать два образа:

  • собираешь худой образ, который поддерживает протокол pxe.
  • собираешь жирный образ, который поддерживает уже все - ftp, http(s), SAN FibreChannel, ipv4|ipv6, menu и прочее.
  • Логика - pxe -> thin ipxe -> pointing to fat ipxe -> fat ipxe -> some menu for better user expierence.

Также ipxe можно собрать сразу под виртуальные машины, cd iso, поддерживает даже wimboot для загрузки образов Windows.

Nurmukh ★★★ ()
Последнее исправление: Nurmukh (всего исправлений: 1)
Ответ на: комментарий от tiinn

не обязательно же. в современных роутерах уже есть необходимый функционал. по сути нужен только отдать 1 файл. он не большой.

Nurmukh ★★★ ()
Ответ на: комментарий от Nurmukh

не обязательно же. в современных роутерах уже есть необходимый функционал. по сути нужен только отдать 1 файл. он не большой.

В бытовых роутерах нет.

tiinn ★★★★★ ()
Ответ на: комментарий от Nurmukh

странно, у меня кучу роутеров на openwrt. Функционал реализовывается минут за пять.

А, т.е. вы ещё и openwrt предлагаете накатывать? Нет уж, благодарю покорно.

tiinn ★★★★★ ()
Ответ на: комментарий от Nurmukh

Да. 25% местных используют винду по работе. Подозреваю, ещё большее количество пользуется стоковой прошивкой на телефоне и роутере.

tiinn ★★★★★ ()
Ответ на: комментарий от Nurmukh

Очередная попытка «я использую thingname, а другие не используют, они все быдло»

Original ()

По итогу решил, что основная работа будет через PXE — у PXE больше преимуществ и гибкости в настройке.

Но к сожалению USB-накопители тоже нужны, когда приходит неведомая вундервафля с абсолютным непониманием как у неё заводится сеть. Такие бывают.

Spoofing ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)