?

Log in

No account? Create an account

[icon] /^.in$/
View:Recent Entries.
View:Archive.
View:Friends.
View:Profile.
View:Website (/me (домен, хотящийся в углу комнаты)).
Missed some entries? Then simply jump to the previous day or the next day.

Tags:, , , ,
Security:
Subject:Надо что-то делать
Time:12:35 am
Решено написать о вещах, которые тут как-то не очень упоминались. За последние несколько недель я: собрал очередной компьютер, ко мне дошла посылка из Китая (почта это ок, три недели лежать на импорте — это здорово), похачил Арч, почитал умные книжки.

Новая железка состоит из 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. Бутлоадер не грузит, но хоть биос обновить можно без шаманства.

Картинки с компутером и штуки из посылкиCollapse )

Что касается линуксов. В общем, появилась у меня бредовая идея сделать не просто кучу компьютеров, а нормальный мейнфрейм, чтобы все грузились с одинаковых образов. Но дом — не датацентр и все компьютеры должны немного отличаться в железках (а потому и в софте), иначе каждый из них как бы бессмысленный, ибо белки сворачивать у меня желания нет.
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: сам разобрался, ок
withComments $ arr (take 15) >>> delay new

[icon] /^.in$/
View:Recent Entries.
View:Archive.
View:Friends.
View:Profile.
View:Website (/me (домен, хотящийся в углу комнаты)).
Missed some entries? Then simply jump to the previous day or the next day.