Uppgradering till Snow leopard server och en Mac mini server

Både det negativa och positiva med ny hårdvara och nytt operativsystem. Men mest det positiva.

Apples serveroperativ brukar få stå ut med mycket kritik när det recenseras. Samma sak med de servrar man släppt genom åren. I den typen av recensioner kan slutsatserna många gånger dras utan att man kört servern i skarpt läge, så här tar vi en lite annan vinkel och går igenom en uppgradering från en Mac mini med 10.5 till den nya Mac mini server och 10.6. I just skarpt läge.

Mac mini server

Mac mini server. Rykande färsk

Innan vi börjar med själva uppgraderingen kan det vara bra att veta förutsättningarna, och den tidigare konfigurationen på servern.

Genom åren har jag kört Apples olika serveroperativ på någon typ av Applehårdvara. Den första servern satte jag upp på en Powermac 9600 med Mac OS 9 och Appleshare IP, Webstar och Eudora Internet Mailserver, och har sedan migrerat uppåt både i hårdvara och mjukvara. Från 9600:an via Powermac 7300 med G3-uppgradering till Powermac G3, G4, G5 och även Mac mini med först G4 och sedan core solo och core duo. I början av övergången från OS 9 till Mac OS X körde jag ett tag klientversionen av operativet för att serva webb och mejl. Senare gick jag över till serverversionen istället och utökade tjänsterna till kalenderdelning, VPN och fildelning.

Servrarna har haft mellan tio och hundra användare av framför allt mejl och fildelning, men även de andra tjänsterna i olika hög utsträckning. Belastningen har legat på i snitt under 10 procent processorutnyttjande, med toppar på 50–60 procent någon gång i veckan. Så har det sett ut hela tiden genom åren.

Den senaste uppsättningen har varit en Mac mini core duo 2,0 GHz med 2 GB RAM och Mac OS X Server 10.5. Systemet har varit standard förutom att jag gjort en egen installation av MySQL 5, PHP (för att få stöd för GDlib) och installation av extra moduler för Spamassassin.

Hårdvaruuppgradering en barnlek med Mac OS X

Eftersom man inte är tvungen att göra nya installationer av systemet när man byter hårdvara, utan bara kan spegla över en full installation från en maskin till en annan så är det det tillvägagångssätt jag använt genom åren. Den installation jag ska uppgradera har redan genomgått byte från en core solo 1,6 GHz till dagens core duo 2,0 GHz. Nu ska den alltså vidare till Mac mini server 2,53 GHz med core duo-processor.

Time machine eller inte?

Till en början tänkte jag mig att jag kunde göra en återställning från den TM-backup som finns av servern. Jag provade det ett par gånger, men processen är extremt tidskrävande, och jag fick börja om återställningen ett flertal gånger. Trots att jag gjort förändringar för vad TM ska ta backup på (bland annat /var/spool/) för att verkligen få med allt som behövs så visade det sig att återställningen struntar i de extrainställningarna.

Vill man ha en fullständig kopia så räcker alltså inte TM till. Återstår att göra en rejäl återställning. Tyvärr visade det sig att det inte var helt lätt heller.

I Skivverktyg kan man göra en återställning av en skiva till en annan. Ska man göra en exakt kopia av en dator till en annan gör man det enklast genom att starta datorn man ska spegla och hålla ned ”T”-tangenten. Datorn startar då i ”target mode” och kan kopplas in via firewire till den nya maskinen, och monteras då som en extern hårddisk på den.

Jag har gjort det massor av gånger när jag installerat många datorer i ett svep, och jag vände mig återigen till funktionen i Skivverktyg.

Nu hör det till saken att jag bestämt mig för att köra de dubbla hårddiskarna i mini server som ett RAID 0 (stripe:ade) för att öka prestandan på de små 2,5 tums-hårddiskarna. Allt annat vore – för att parafrasera Joacim Melin på Macpro – hål i huvudet.

Den stora grejen är givetvis möjligheten att mjukvaruspegla de interna hårddiskarna, allt annat vore hål i huvudet för den som planerar att köpa och använda denna server.

Jag hävdar precis tvärt om. Eftersom det är 2,5 tumsdiskar så är de i sitt ursprung långsamma. Att då stripe:a dem gör att man ökar hastigheten en hel del på dem. I Xbench får jag 79 poäng på disken direkt efter uppgraderingen. Att jämföra med de dryga 50 poäng Melin får med speglade diskar, och de 99 poäng han får i nya Imac 27 tum. En RAID 0 i minin ökar alltså diskprestandan till 80 procent av en 3,5 tumsdisk. Inte illa.

Disk test på servern

Utdrag ur disktestet i Xbench.

För backup och övrig lagring hänger man på en firewiredisk (inte USB, den drar för mycket processorkraft) eller två, så har man både snabbhet och säkerhet. Kör man en extern disk som speglas så kan man, om de interna diskarna lägger av, starta från den externa istället.

Nog om lagring.

Av någon anledning gjorde RAID-lösningen att Skivverktyg inte riktigt fixade att göra en återställning. Förmodligen (men jag har inte gjort några djupare analyser) på grund av att återställningen kopierar block-för-block, och RAID-blocken inte är riktigt symmetriska med ”vanliga” block.

Istället använde jag mig av Carbon copy cloner som är ett verktyg för att kopiera innehållet på en disk till en annan, och bibehålla alla metadataflaggor på filerna (rättigheter och liknande). Den tar oftast lite längre tid på sig jämfört med Skivverktyg, men i det här fallet var det precis tvärt om. Speglingen tog i runda slängar ett par timmar (c:a 70 GB) och är nog den väg man ska gå om man har RAID med i ekvationen.

In med uppgraderingen, bara!

Efter att speglingen var klar startade jag servern för att se att inget mystiskt hänt. Alla tjänster rullade som de skulle, så jag startade den från installationsskivan via en extern DVD-brännare. Uppgraderingen påminner mycket om uppgraderingen av klientversionen av systemet. Apple har i princip tagit bort alla val i installationsprogrammet, och det enda man kan göra är att välja den skiva man ska installera på. Man får ingen indikation på att det är en uppgradering som kommer ske, utan det ser likadant ut som när man installerar på en tom hårddisk.

Men kan man välja en hårddisk som inte är tom så är det en uppgradering som kommer göras.

Installationen tog c:a 45 minuter, men det kan säkert ha att göra med vilken typ av läsare man installerar från. Jag körde en brännare, vilken kanske inte är den snabbaste att läsa från. När den är klar startar datorn om automatiskt, och man möts av inloggningsrutan på sedvanligt sätt.

Vad som gick åt pipsvängen

Naturligtvis räknade jag inte med att allt skulle gå helt smärtfritt, vilket det heller inte gjorde. Framför allt räknade jag med att MySQL skulle sluta fungera, eftersom jag gjort en egen installation av den. Eller egentligen räknade jag med att behöva flytta databaserna från nuvarande plats och till den ”officiella” platsen i /usr/local/mysql/. Mycket riktigt var det så, och efter en flytt och koll av filrättigheterna på databaserna så rullade databasservern som den skulle. Det gick bra att logga in med phpMyAdmin och alla databaser och rättigheter fungerade som förväntat.

Det var nu det roliga började.

Webbservern tappade bort alla virtual hosts

Rätt snabbt stod det klart att webbservern bara levererade vissa sajter, och det fanns inget tydligt mönster i vilka. Efter att ha rotat runt några varv i inställningarna och slagit av alla utom två vhosts i taget så kunde jag till slut hitta vad det var som hänt.

Vid uppgraderingen kopieras alla conf-filer i /etc/apache2/sites/ till samma namn med .saved-Pre-SnowLeopard-unmodified som prefix. De läses sedan av installeraren, som gör en ny fil med alla gamla och nya inställningar. Här hade installeraren lagt till en stjärna på ServerAlias på alla sajter som inte hade något alias satt. Det här innebar att sajterna krockade med varandra.

Server admin tillåter inte längre att man låter sajterna vara utan alias, så man får lösa det genom att sätta samma domännamn i alias som i ”Host name”.

Som grädde på moset raderar installeraren alla mappar i /etc/apache2/ som inte hör till standardinstallationen. Har man – som jag gjort – lagt en extra mapp med conf-filer som sedan inkluderas i vhost-filerna (för Subversion bland annat) så försvinner allt sådant. Det gäller alltså att se till att ha backup på de filerna, eller lägga dem någon annanstans i filstrukturen.

Ny PHP, men inte hela vägen

En av de saker som gladde mig inför uppgraderingen var att standardinstallationen av PHP skulle ha stöd för GD library. Det biblioteket möjliggör manipulering av bildfiler i PHP (skalning, beskärning, omsampling och färgjustering bland annat). En funktion man är i princip beroende av om man räknar med att ha något typ av CMS installerat på servern. Jag kör i huvudsak Wordpress (men även andra ramverk), vilket kräver GD för bilduppladdningen.

Tidigare har jag använt Marc Liyanages PHP-installation som är fullspäckad med alla tillägg som man någonsin behöver, och väl beprövad av många användare. Nu hade jag hoppats att det inte skulle vara nödvändigt längre. Dels för att jag har ambitionen att ha en så opåverkad installation som möjligt för att slippa krångla vid uppgraderingar, men också för att Liyanages paket för Snow Leopard inte är klart ännu.

Allt fungerade med standard-PHP förutom en sak. Tillägget PHP-IMAP följer inte med Apples distribution, och det krävs för att man ska kunna köra Z-push för att få pushmejl till Iphone.

I det här läget har jag tre alternativ: vänta på Liyanages uppdaterade distribution, installera ett nytt PHP-paket via Macports eller kompilera och installera en helt ny PHP. Tills vidare låter jag det vara, men ska testa att installera via Macports på en annan dator och se hur det går. Det är alltid lite nervöst att lägga in och ersätta med något helt nytt.

Mejlservern är nästa huvudvärk

Återigen har Apple bytt POP3/IMAP-server i mejlservern. Den här gången är det Cyrus som åkt ut, och man har lagt in Dovecot istället. I och med det har jag nu tagit mig igenom UW IMAP, Courier IMAP och Cyrus. Nackdelen med det här bytet är att Dovecot är kompatibel med mbox och mdir, men även har sin egen icke-standardvariant dbox för högre prestanda. Apple har, naturligtvis, valt att Dovecot ska använda dbox, vilket gör att alla gamla Cyrus-mboxar måste konverteras vid uppgraderingen.

Det här fixar installeraren, med ett förbehåll. Dovecot döper användarnas dbox-mappar till ett GUID, medan installeraren låter dem behålla det gamla kortnamnet från Cyrus. När man efter uppgraderingen loggar in på sin mejl så skapar Dovecot en ny dbox med ett GUID-namn som är tom. Det ser alltså ut som att alla mejl försvunnit.

Nu är det inte värre än att man får döpa om de gamla mapparna till det nya GUID:et och se till att ägaren verkligen är ägare på den och alla undermappar.

Problemet är att jag inte hittat något annat sätt att göra det på än att manuellt sitta och kolla under Maintenance ➔ Accounts i Server admin vilket GUID som är kopplat till vilken användare. Tidsödande, och säkert i princip ogörligt om man har många användare.

Förutom det här debaclet är Dovecot ett bra val av Apple. Man kan bland annat ha mappar i mappar, och den ska vara betydligt snabbare jämfört med de övriga.

SMTP-servern avstängd

Nästa stora dilemma var att SMTP-servern inte gick igång. Inte alls. Den stod helt still oavsett vad jag gjorde. Det gick inte att skicka eller ta emot mejl. Ställde jag in servern på att göra relay av meddelanden som skickas så gick de iväg, men det var helt tvärstopp att ta emot inkommande SMTP-anslutningar.

Det går inte att slå på SMTP

Efter många långa timmar av felsökning lyckades jag lokalisera felet till ett stavfel i master.cf där skräppostfiltren inte hade rätt konfigurerade portar. Det krävdes att slå av alla skräppostfilter och viruskontroll, radera allt som hade med det att göra i filen, och sedan starta om Postfix för att slutligen slå på filtren igen. Då skrevs allt rätt till filen och SMTP-servern rullade igång.

Nyttig information med trasig server

Nu är det så att det inte finns något ont som inte har något gott med sig. Tack vare den här genomlysningen av mailservern luskade jag ut att:

  • Grålistning är inbyggt och behöver inte läggas till manuellt.
  • Skräppostfiltret Spamassassin har trimmats ett par varv, och kräver inte längre uppgradering och installation av extra tester.
  • Om ett brev får poäng av Spamassassin skrivs testen och poängen ut i headern på mejlet. Välkommet, och något jag saknat sen jag gick över till Mac OS X Server.
  • PHP 5.3 har en bugg i mail() som gör att sökvägen till skriptet som skickar mejlet skrivs ut i headern med CRLF (\r\n) sist i raden. Det här gör att mejlet flaggas som skräppost. Går att slå av i php.ini med mail.add_x_header = Off.
  • Mejl skickade med PHP måste validera för att inte flaggas som skräp.
Slutligen är användarkontona påverkade

När så alla tjänster var igång på servern så började jag titta i loggen för att se om jag missat något. Då visade det sig att när vissa användare loggade in så dök följande rad upp i systemloggen:

auth(default): od(kalle,192.168.0.202): user kallewangstedt exists more than once

Mystiskt, minst sagt. Efter lite sökande visade det sig att det här beror på att Workgroup manager av någon anledning har sönder informationen i användardatabasen. För att reparera det krävs att man ändrar användarnamnet (fullständiga eller alias till kortnamnet), sparar, avslutar WGM, startar WGM och ändrar tillbaka namnen. Omständligt med det går att göra.

Slutsatser och rekommendationer

Mac mini server är en extremt prisvärd maskin. Köper man den får man Mac OS X Server 10.6 för ungefär 400:- när man jämför priset på en vanlig mini med maxat minne och snabbaste processorn. Att serveroperativet kostar lite drygt 4.000:- plus moms att köpa löst, gör att affären blir fantastiskt bra. Installationsskivan som följer med mini server fungerar visserligen bara att starta på den hårdvaran, men som jag beskrivit ovan går det fin-fint att spegla servern till en annan maskin efter att installationen är genomförd.

Räkna inte med att en uppgradering görs av sig själv på något magiskt vis. Jag lade ner ett par dagar på tester innan själva uppgraderingen, och sedan ungefär tre arbetsdagar på att få allt att snurra som det skulle. Nu gick större delen av den tiden åt att felsöka mejlservern. Möjligen kunde det gått snabbare om jag hittat felet tidigare, men det är inget man kan räkna med. För dig går det säkert snabbare eftersom du läst det här innan.

Jämfört med den gamla servern är det en märkbar skillnad i snabbhet. Allt går snabbare, men framför allt genereras webbsidorna snabbare. Mycket snabbare. I runda slängar genereras sidorna på en tredjedel av tiden den gamla servern behövde. Om det är tack vare processorhastigheten, det större minnet eller RAID 0-disken är svårt att säga. Förmodligen beror det på allt sammanlagt.

Att hårdvaran har stöd för dubbla skärmar och fjärrkontroll känns mest onödigt. Inget av det är något man behöver. Förmodligen har det med tillverkningsprocessen att göra att komponenterna sitter där, men de skulle nog inte saknas om de försvann i framtiden.

Jag kommer inom kort att bygga en serverlösning på Mac mini server och Mac OS X Server 10.6 till ett företag med ungefär 300 användare. Den ska driva deras webb och mejl till att börja med, och kanske även kalendrar och adressbok i förlängningen. Jag tvivlar inte en sekund på att den fixar det galant.

Mac mini server är nog Apples bästa och mest prisvärda allround-serverprodukt hittills.

Uppdaterad

Även Datormagazin har testat och rekommenderar nya Mac Mini Snow Leopard Server i serverrummet.

Hoppa högst upp på sidan