Rebuildworld/kernel 11.x vs. 12.x
Miroslav Lachman
000.fbsd at quip.cz
Tue Aug 20 09:24:40 CEST 2019
Marek Soudny wrote on 2019/08/20 08:26:
> Mirku, upgrad rsyncem me nikdy nenapadl, ale kdyz uz jsi ho zminil,
> rozumim tomu dobre, ze na 1 "builder" stroji udelas klasicky make
> buildworld, buildkernel, installkernel a installworld, vcetne rebootu a
> mergemaster(u) a vysledny (base?) system pak "jednoduse" rsyncnes, s
> osetrenim nejakyho exclude listu s /etc/{passwd,group,master.passwd}, na
> ostatni servery, ktery pak jenom rebootnes?
Ano, tak nejak to je. Nejdriv jsem pouzival centralni build,
primountovany na ostatni masiny pres NFS, takze na cilovych strojich se
spoustel uz jen installkernel a installworld. Coz sice funguje, ale i s
kazdym patch level updatem se prepisuji vsechny soubory v base, coz na
nekterych VM trva strasne dlouho, protoze jsou od provideral imitovane
na 200 IOPS. Takze to, co normalne trva 2 minuty tam trva pul hodiny.
Takze pak jsem prisel s tim, udelat na buildserveru samostatny adresar,
do ktereho udelam installkernel a installworld s nastavenim DESTDIR. Tim
vznikne instalace bez souboru v /etc/, takze tohle uz se da rsyncem
prenaset na ostatni stroje.
Porad tam je ale problem s tim, ze se zmeni cas modifikace u souboru, u
kterych se nezmenil jejich obsah (respektive byly prepsane stejnym
obsahem). Sice se po siti nemusi obsah souboru prenaset, ale zmena casu
na cilovem stroji stejne vyvola dalsi diskovou operaci. Tomu jsem se
potreboval vyhnout.
Takze jsem to pak posunul jeste o kousek dal a na build serveru mam tech
adresaru vice:
/vol0/rsync_updates/11.3-RELEASE_amd64
/vol0/rsync_updates/11.3-RELEASE-p1_amd64
/vol0/rsync_updates/11.3-RELEASE-p2_amd64
/vol0/rsync_updates/11.3-UPDATED_amd64
/vol0/rsync_updates/11.3-CHANGES_amd64
Takze kdyz vysla 11.3, udelal jsem make installkernel a installworld
DESTDIR=/vol0/rsync_updates/11.3-RELEASE_amd64
Naklonoval ho do 11.3-UPDATED_amd64 (pouzivam ZFS) a z toho
11.3-UPDATED_amd64 se pak pouziva rsync pro kopirovani na cilove stroje
Kdyz vysla 11.3-RELEASE-p1, tak jsem udelal instalaci s DESTDIR do
11.3-RELEASE-p1_amd64. Nasledne pak spocitam checksumy pro vsechny
soubory v 11.3-RELEASE_amd64 a v 11.3-RELEASE-p1_amd64 - tam, kde se
checksum a velikost souboru lisi, soubor prekopiruju do
11.3-UPDATED_amd64 a do 11.3-CHANGES_amd64
Takze v 11.3-UPDATED_amd64 je zase kompletni base system (bez /etc/) v
aktualni verzi a v 11.3-CHANGES_amd64 jsou jenom soubory, ktere se mezi
RELEASE a RELEASE-p1 zmenily - to pro pripad, ze bych je chtel
distribuovat i nejak jinak. Treba si z nich zabalit TAR atp.
Kdyz vysla 11.3-RELEASE-p2, tak se zase udela buildworld buildkernel,
installkernel a installworld do adresare 11.3-RELEASE-p2_amd64,
spocitaji checksumy, rozdilne soubory se nakopiruji do
11.3-UPDATED_amd64 a 11.3-CHANGES_amd64 a z 11.3-UPDATED_amd64 se to
rsyncem roznese na cilove stroje.
Nemuzu zatim prohlasit, jak moc (ne)spolehlivy tenhle system je.
Pouzivam to asi pul roku. Na zacatku bylo v planu pouzivat na version
upgrade to reseni s NFS a jen na patch level updaty pouzivat rsync, ale
jednou jsem si to omylem pustil na stroji, kde byla 10.4 a rsyncem jsem
to upgradnul na 11.2. Takze kdyz to proslo a stroj nabootoval, trosku
jsem si jeste pohral se scriptem, aby me to upozornilo na rozdilne verze
atd., ale ted delam upgrady z 11.2 na 11.3 taky rsyncem a zatim jsem na
problem nenarazil. Cimz nerikam, ze problem nastat nemuze. Urcite muze.
Zatim jsem mel ale daleko vetsi prusvih s tim, kdyz jsem se pokusil po
tom rsync upgrade pouzit etcupdate misto stareho dobreho mergemasteru
(necim se /etc/ updatovat musi, to rsync vyresit nemuze)
etcupdate mi na vsech strojich, kde jsem ho zkousel, zmeni prava na
skriptech v /etc/rc.d - nenastavi jim spustitelnost - tem, ktere
etcupdate musel mergovat - takze po rebootu nenabehly nejake sluzby a
treba taky ldconfig.
Navic mi etcupdate hlasi konflikty i v souborech, do kterych jsem ja
nezasahoval a mergemaster je dokaze sam v poklidu updatovat bez
manualniho zasahu.
Pouzivate nekdo uspesne etcupdate?
Mirek
More information about the Users-l
mailing list