Решено написать о вещах, которые тут как-то не очень упоминались. За последние несколько недель я: собрал очередной компьютер, ко мне дошла посылка из Китая (почта это ок, три недели лежать на импорте - это здорово), похачил Арч, почитал умные книжки.
Новая железка состоит из Intel DQ45CB, Core 2 Duo E7600, 4 Gb RAM, смешной корпус Foxconn, смешной кулер CoolerMaster, HDD Hitachi на 2TB.
Раз я уж начал, называть машины из домашнего кластера именами персонажей из Cowboy Bebop, то этот получил имя «ein».
Такую забавную материнку выбрал из за чипсета Q45, у него есть VT-d (хочу IOMMU и проброс девайсов в виртуальные машины) и хардварное декодирование HD видяо. Правда под лялихом оно пока не очень поддерживается, но vaapi подаёт надежды. Сначала хотел взять с чипсетом G45 (оно vaapi поддерживается целиком), но тот без VT-d, а это не так весело.
Мать сама оказалась всем хороша, кроме просто невозможно бажного биоса. В каждом обновлении одно чинят, а другое ломается, сейчас отвалился хардварный мониторинг %_%.
И ещё оно E7600 не поддерживало до первого обновления чудесного биоса, потому пришлось выковыривать ЦПУ из другого компьютера, перепрошивать биос (что само по себе было достаточно весело), и только потом юзать новый проц. У ASUSов, хочу заметить, мать запускается и на неизвестных ей CPUID. Бутлоадер не грузит, но хоть биос обновить можно без шаманства.
Кстати, Kreolz клавиатура - это самое ужасное, что я видел в жизни. представить себе не мог, что можно _так_ плохо сделать клавиатуру.
Когда я это дохачу, оно будет работать в паре (в плане pacemaker, drbd или чё-то такого) с «ed», на котором умер веник с системой и мне всё некогда всё вернуть взад.
Можно заметить, что я их для фотографирования не мыл, правда жизни, так сказать. Горизонт завален, ок.
Из Китая, в том числе, пришли часики
они клёвые, но пару дней их поносив, я понял, что с часами на руке мне некомфортно, так что они теперь просто на столе валяются.
и весёлая разноцветная лампочка с ик-пультом:
светит себе на потолок, демонстрируя все его неровности,
и управляется такими вот кнопочками.
Это она типа «белым» светится, вживую, а не на фотографии, в целом, спектр похож на белый, но только в отраженном и рассеянном свете, в прямых лучах ярко выражены разноцветные пятна.
Потому я её направил в потолок. И всю комнату освещает (правда читать при таком свете всё равно невозможно, потому у меня есть и обычная лампочка накаливания там же у потолка), и «белый» свет похож на белый. А ещё она умеет цветомузыку делать разнорежимную, это меня забавляет, даже включаю иногда. Но главное, что теперь свет можно выключать не вставая от клавиатуры. Вайрлесс прогресс.
Что касается линуксов. В общем, появилась у меня бредовая идея сделать не просто кучу компьютеров, а нормальный мейнфрейм, чтобы все грузились с одинаковых образов. Но дом - не датацентр и все компьютеры должны немного отличаться в железках (а потому и в софте), иначе каждый из них как бы бессмысленный, ибо белки сворачивать у меня желания нет.
ein у меня вообще есть желание поставить к телевизору, но образа у всех хочу одинаковые.
Потому моя гениальная мысль заключается в том, чтобы всё, что можно, унести в виртуальные машины (с дисками расшаренными по сети, на случай фейла одной ноды), а всё что нельзя (ибо оно должно работать напрямую с железкой, например) - совать в бранчи aufs2, отпочковывающиеся copy-on-write от основного образа.
Основной образ я сначала было хотел слепить из Debian Live, но узрев миллион строк кода в livehelper я эту идею отложил. Следующий хорошо мне известный дистрибутив - Arch.
За три дня выходных я:
* изучил всю доступную документацию по Arch (чем сэкономил в следующие два дня уйму времени);
* изучил то, как работает larch (Live Arch), понял, что оно мне не нравится и надо писать свой;
* поигрался с утилитами из Арчевых dev-tools, где есть mkarchroot (типа debootstrap от Дебиана), понял что это близко к тому, что надо, но тоже надо написать свой;
* написал свои «правильные» версии утилит из dev-tools, позволяющие быстро собирать произвольные Арчевские образы в chroot, рут которого может находится на aufs2;
* написал свои хуки mkinitcpio, делающие aufs2 root при загрузке системы, слегка переписал rc.* скрипты, чтобы они не пугались такого метода загрузки;
* заставил всё это работать.
Итого:
* собираем chroot с Арчем;
* вваливаемся в этот chroot с пустым rw бранчем, на который ставим необходимые модификации;
* получаем ванильный Arch внизу и модификации на другом лейере, которые система видит как общую файловую систему;
* сжимаем все бранчи в отдельные файлы при помощи squashfs;
* кладём эти файлы в специальную директорию в /boot;
* хук в initrd подхватывает эти образы при загрузке и восстанавливает из них рабочий / с rw слоем на tmpfs.
В результате можно использовать один ванильный образ на все компьютеры, с маленьким образом локальных модификаций. При этом никакой NFS-root не нужен, работает это быстрее чем по NFS, и вообще даже сеть не нужна, можно иногда только базовый образ, получаемый упаковкой в squashfs chrootнутого ванильного Archа, обновлять хоть с флешки и радоваться.
Надо ещё только допилить, чтобы rw бранчем при загрузке можно было ставить раздел диска/lvm2, а то это тоже может быть полезно иногда.
И есть ещё глупый вопрос по математике: вот не вполне понятно почему сигнатуры алгебр иногда содержат нульарные функции, которые, казалось бы, выражают объекты, которые должны быть элементами множеств над которыми эти алгебры растут. Когда это F-алгебра и теория категорий, то эти нульарные штуки (ну там они уже даже и не функции, а эндофункторы с доменом из ко-произведения с терминальным объектом, но это не суть важно) воспринимаются чисто как технические ограничения (потому что есть объекты, но нет множеств, а, например, нейтральные элементы группы надо как-то выражать), но в аксиоматике теории множеств нульарный нейтральный элемент среди «функций» выглядит странно. Чего я не понимаю? upd: сам разобрался, ок