System na udrzbu minidistribuce [WAS: OT: distro na router]

Peter Surda shurdeek na routehat.org
Středa Březen 24 17:36:37 CET 2004


On Wed, Mar 24, 2004 at 03:15:46AM +0100, Jan Houstek wrote:
> Vyuziju nadhozene tema a pokusim se popsat myslenku, se kterou si uz delsi
> dobu pohravam. Jde prave o co nejefektivnejsi realizaci systemu pro
> router/firewall ci podobne zarizeni.
Ja sa s podobnou ideou nielen pohravam, ale uz na nej dlhsi cas robim, preto
si dovolim poslat komentar.

> 1) kazdy ma svou oblibenou distribuci
To je pravda, moj oblubeny je RedHat a aj som ho na routre nasadzoval (vyse
tucta), takze viem, ze to ma nedostatky. Hlavnym je narocnost na miesto na
disku. Z toho vyplyva (vsetky body nie su nevyhnutne aplikovatelne na vsetky
distribucie, ale na kazdu sa nieco najde):
- ked to orezes, mas problemy s updatmi, takze to musi zostat relativne velke
- ked sa disk pokazi, transfer dat z backupov je priamo umerny velkosti, a ked
  to prenasas cez internet a bezne linky (ADSL/kabel), zbytocne to zdrziava
- z ineho media ako disku sa to z praktickeho hladiska bezat neda: CD sa neda
  automaticky updatovat, flash by vysiel relativne drahy a musis to este
  dotunovat aby stale niekam nezapisoval (noatime, cron, ....)
- treba kopu funkcnosti navyse, vdaka ktorej si musis skompilovat a udrziavat
  vlastne package

No a ked si zozenies nejaku specificku distribuciu na rutre, tak to ma zase
tie nevyhody, ze si musis "prevyknut" a popripade to nepodporuje niektore
veci, na ktore si bol zvyknuty z tej "velkej".

Ako som uz nacrtol, pracujem na vlastnej minidistribucii, ale to hlavne nie je
ani tak minidistribucia ako platforma na tvorbu vlastnej minidistribucie. 2
oblasti kde to chcem pouzivat (a uz je to v testovacej faze) su routre a
settop boxy. Vyhody popisem ako odpovede na jednotlive Honzove body, budem sa
snazit moc nemarketigovat a opisat len to, co uz je otestovane :-)

Distribucia sa vola kupodivu routehat a mala by byt zaciatkom leta pristupna
(nebojte, ohlasim v konfere), a bude 100% open-source.

> Moznost mit minidistribuci stejnou jako sve ostatni systemy bych velmi
> ocenil (nejde o velikost, ale o umisteni konfiguraku, verze pouziteho
> software, zpusob prace apod.).
Routehat ti umozni vybrat si prakticky lubovolne verzie softwaru a konfiguraky
si mozes symlinknut.

> 2) unix bez kompilatoru neni unix
> Minidistribuce s pochopitelnych duvodu neobsahuji kompilator ani -devel
> casti pouzitych knihoven, coz hrozne komplikuje pridani jakehokoliv
> software. A ne kazda minidistribuce ma snadno pouzitelny build system, ve
> kterem by bylo mozne kompilaci a instalaci noveho software rozumne
> jednoduse provest. Tohle je nejvetsi slabina hotovych reseni, vetsinou
> obsahuji uplne vsechno az na jednu ptakovinu, ktera je pro me z nejakeho
> duvodu treba dulezita.
Routehat sa da komplet automaticky rebuildnut, prebieha to v chrootnutom
rootfs z uclibc, vyzaduje to velmi malo softwaru vopred pritomneho na tvojej
masine (bash, tar, gzip, bzip2, patch, mkdir, chroot, mkfs.cramfs, wget, cp, mv,
rm, mount a popripade mkisofs ked to chces bootovat z CD, vsetko ostatne ako
gcc bezi vovnutri toho chrootu, mam dojem ze mozno treba genksyms ale nie som
si isty). Skript vsetko downloadne, skontroluje, rozpakuje, buildne atd. V
build skripte si aj mozes vytvorit novu kolonku pre tvoju distribuciu, napisat
tam zoznam packagov a build potom spravit cez
./build.sh -d moja_distribucia

> 3) podpora, updaty
> Mnoho hotovych minidistribuci si nedela s updatama prilis hlavu. Je fakt, ze
> na takovych systemech nebudou lokalni uzivatele a v idealnim pripade pobezi
> jen sshd a mala hrstka dalsich userspace procesu, ale i tak by podpora na
> urovni velke distribuce potesila (nejen kvuli bezpecnosti, ale i
> funkcnosti).
Ked potrebujes update a je k dispozicii ako patch, tak ho jednoducho vhodne
pomenujes (napr. openssl-0.96c-12-buffer-overflow.patch), das do adresara
patches, spustis 
build.sh -f build openssl;build.sh -d moja_distribucia
a on upgradne openssl a spravi nove imidze distra.

Ked chces novu verziu, vascinou staci zmenit cislo verzie v build skripte (v
horsom pripade upravit patche alebo kompilovaci podskript pre ten program) a
spustit build.sh.

> 4) miniaturizace
> At uz system budeme stavet na srotoidnim PC nebo nejakem HW typu VIA Epia,
> tak v dnesni asi nestoji za namahu a problemy snazit se usetrit misto a
> pamet pouzitim odlehcenych knihoven (napr. dietlibc), agregaci zakladnich
> nastroju (busybox), kompresi binarek ci celeho fs apod. 16MB ci 32MB
> pameti a 64MB na disk (napr. flash) je takove minimum, pod ktere se uz asi
> nevyplati jit.
No, napr. pri RedHate ma len glibc a glibc-common 52MB. Routehat dokaze pod
16MB napchat cele distro vratane mplayeru aj perlu :-).

> Ten system orezavani by mel byt schopny co nejjednoduseji resit
> nekolik veci
> 
> 1) snadny a co nejvice automaticky/automatizovatelny system vyberu
> potrebnych souboru
> 
> 2) snadne updaty (tj. pri upgrade jednoho souboru nebo instalaci jednoho
> baliku presouvat na cilovy system jen tyto veci)
> 
> 3) podpora vetsiho mnozstvi cilovych systemu (typicky budu mit jednu
> "lihen" a nekolik cilovych stroju, stejnych ci odlisnych)
> 
> 4) zachovani chtenych zmen na cilovych systemech (tyka se hlavne
> konfiguraku)
Ked sa tak na to pozeram, a este pridam potrebu specifickych vlasnosti pre
router/firewall, ktore tvoja distribucia pripadne vobec neposkytuje, tak to
mozes robit rovno novu distribuciu :-).

> Uvitam jakekoliv namety a pripominky. Jde hlavne o ten orezavaci system.
> Snazil jsem se neco najit, ale nic nebylo rozumne obecne pouzitelne.
> Synchronizaci bude asi nejjednodussi resit pres rsync, na zbytek se mi
> zdal dost pouzitelny balickovaci system gentoo (ale zatim jsem ve stadiu
> jeho zkoumani).
Ja som totiz uz nieco podobne (na baze RedHat) skusal, ale bez prilisneho
orezavania. Bol to vlastne kickstart skript plus vlastne RPMka, a mne osobne
sa to casom zdalo prilis narocne na udrzbu, co bol jeden z dovodov, preco som
sa rozhodol spravit si distro z nicoho.

Ked to niekoho zaujima, aktualna verzia sa da downloadnut na
http://www.routehat.org/download/build-routehat-0.3.tar.gz
(pre vyvojarov, asi 700kB), a
http://www.routehat.org/download/routehat-0.3.iso
(asi 11MB hotove distro ale okrem toho ze bezi nic moc nerobi)
ale berte na ohlad ze je to este vo vyvoji a na otazky typu "je
to rozbity", "ako spravim toto", "nefunguje mi ifconfig" v blizkej dobe
odpovedat nebudem. Komplet build mi na Athlon XP 2400+ 1GB RAM trva pod 2
hodiny (prvykrat dlhsie lebo sa vsetky zdrojaky musia stiahnut z netu).

Minihautu na instalaciu: je to bez funkcneho hesla, to sa nastavi cez
parameter ROOTPW=blablabla pri boote (isolinuxu alebo grubu), potom sa da
nalogovat na konzole (bez toho sa neda nalogovat vobec). Konfiguracia sa
uklada vytvorenim suboru /mnt/ramdisk/config s obsahom
CONFIG=/dev/partysna_s_konfygom
CONFIGFS=ext2_alebo_reiserfs_alebo_vfat_alebo_cojaviemco
(to treba len prvykrat)
a potom
service config save
(ako aj vzdy ked sa konfiguracia zmeni).

Ma to autotedekciu hardwaru, malo by to rozpoznat vacsinu IDE a SCSI radicov,
USB sticky a PCI sietovky a mozno aj PCMCIA/Cardbus/zvukovku/TV-kartu. Takisto
sa pri boote pokusi najst predtym savenutu konfiguraciu a loadnut ju. Aha a
update distra sa robi cez
service update start
ale bacha lebo to nekontroluje chyby.

Ked sa niekto vaznejsie rozmysla o podielani sa na vyvoji, budem len rad,
napiste mi privatne.

> -- Honza Houstek
S pozdravom,

Peter Surda (Shurdeek) <shurdeek na routehat.org>, ICQ 10236103, +436505122023

-- 
Microsoft and Apple make the easy things very easy and the hard things impossible.
*BSD and Linux make the easy things challenging and the hard things difficult but possible.


Další informace o konferenci Linux