migrering til FreeBSD

From: Claus Guttesen (none@cguttesen--yahoo.dk.lh.bsd-dk.dk)
Date: Mon 22 Dec 2003 - 21:56:11 CET


Date: Mon, 22 Dec 2003 21:56:11 +0100 (CET)
From: Claus Guttesen <none@cguttesen--yahoo.dk.lh.bsd-dk.dk>
Subject: migrering til FreeBSD
To: bsd-dk <none@bsd-dk--bsd-dk.dk.lh.bsd-dk.dk>

Hej.

Er ansat i et firma, hvor man siden starten har
baseret driften af serverne på RedHat Linux, apache og
php.

Ogradering af rpm-pakker kan være lidt træls. App-get
er jo et alternativ, men ports-samlingen og
portupgrade er for mig to velkendte ting, som jeg er
komfortabel med.

Jeg begyndte derfor at installére vores php-sider på
FreeBSD. Først på 4.7, siden på 5.1. Hver gang jeg
stødte ind i en væg, og løste problemet, skrev jeg et
notat om det, hvilket vidst ikke var sket før.

Det kunne være biblioteker som skulle oprettes,
uid/gid på visse brugere, softlinks etc. Så nu havde
vi faktisk noget på skrift, fremfor denne kollektive
hukommelse, vi tit bruger, fordi vi ikke gider at
skrive noget ned.

Tilsidst havde jeg en opskrift, som gjorde at jeg
kunne (re)installére en server på ca. 4 timer. Nu er
der blot tale om seks servere, så det var jo ikke
alverden, men var der tale om flere servere eller
noget der skulle gentages ofte, skulle opsætningen jo
køres ud på cd, og køres ud på hver enkelt server
derfra.

FreeBSD er jo knaldstabilt, ik'??? Jo, som regel er
det det. Men jeg har sandelig haft mine tvivl under
denne migrering. Alt fungerede glimrende under test,
siderne blev vist korrekt, man kunne gemme billeder
etc.

Det første alvorlige problem jeg løb ind i, var med
apache. Vi snakkede sammen min kollega og jeg, og blev
enige om at prøve ver. 2.0. Han havde installéret den
på sin Mandrake Linux, og det fungerede. Der stod godt
nok på php, at den ikke fungerede særlig godt med
apache 2.0. Men der stod ikke noget konkret, om
hvorfor.

Problemet opstår, fordi at apache 2.0-installation
åbenbart benytter tempnam-rutinerne. Fra man tempnam
står der bl.a.:

Most historic implementations of these functions
provide only a limited number of possible temporary
file names (usually 26) before file names will start
being recycled.

Vi fik et problem når folk sendte deres filer op på
vores servere, fordi når apache tager imod filen,
laver den et midlertidigt filnavn, inden kontrollen
overlades til php. Sendte tilstrækkelig mange filer
op, ville de overskrive hinanden, mens apache stadig
har kontrollen på filen.

Heldigvis fandt vi hurtig en løsning på det. Løsningen
var at nedgradére til apache 1.3., som - jeg har ikke
undersøgt hvorfor, tiden var ikke til det - bruger
funktionen mkstemp istedet.

Det næste problem var med vores grafik-program
ImageMagick, eller rettere med php-programmet imagick.
Her kan du kalde ImageMagick fra php, uden at skulle
lave et system-kald. Uvist af en eller anden årsag,
fik vi et segmentation fault fra httpd, forårsaget af
netop imagick. Løsningen på dette var at kalde
ImageMagick direkte fra php.

Den sidste stopklods, var også den som sled mest på
min faglige stolthed. Ca. en gang i døgnet,
genstartede FreeBSD, uden så meget som et pip i
loggen. Genstart, op igen, fsck (heldigvis i
baggrunden), så den var oftest oppe igen efter et
minuts tid. Vi var endnu ikke kommet til den travle
periode, som er i starten af december, men vi nærmede
os med syv-mile-skridt.

Hvorfor ikke installérer 4.9, for det er jo stabilt
som bare det?

Tjaa, det virkede i mit tilfælde værre end både 5.1
frossen, samt to servere som kørte diverse
inkarnationer af current. Så jeg smed hurtig 5.1 på
igen. Og så hjælper det jo med en opskrift.

Løsningen i dette tilfælde var at sætte
boot-parametrene kern.vm.kmem.size="450000000" samt
kern.maxvnodes="200000" i filen /boot/loader.conf.
Rådet kom fra en Scott Long som er meget aktiv inden
for FreeBSD-udviklingen.

Desuden slettede jeg filer som var ældre end fire
timer i /tmp samt /var/tmp hver time.

Og jeg må indrømme, at jeg ikke var mange dage fra at
installére en eller anden form for Linux, udelukkende
i ren desperation. Både min chef og kollega syntes jo,
det gik helt fint med Linux. Så hjælpen kom i aller
sidste øjeblik. Havde jeg virkelig installéret Linux,
ville jeg hævde at jeg var sindsyg i
gerningsøjeblikket.

Efter det har serverne været det, som FreeBSD er kendt
for, nemlig virkelige stabile.

Èn gang er en server stoppet. Dette skyldtes
bge-netkortet. Men hva'fan'. Sker det hver tyvende
dag, overlever jeg det.

http://uptime.netcraft.com/up/graph/?host=www.eurofoto.no

Så nu glæder jeg mig til at FreeBSD 5.2 har været ude
i det fri i et stykke tid, og så opgradérer først én
maskine, og går det godt, så en til osv.

God jul og godt nytår herfra.

Claus

Yahoo! Mail (http://dk.mail.yahoo.com) - Gratis: 6 MB lagerplads, spamfilter og virusscan



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:34 CET