Året var 2009, jag körde en lagringsserver för ett preservationsprojekt (som jag fortfarande driver) där vi bevarar mjukvara när den försvinner från hyllorna och skrivborden... 32st hårddiskar fördelat på två stycken 4-kanalers HighPoint kontrollerkort, Windows Server 2008 och tre stycken RAID6-arrays som hanteras av kontrollerkorten direkt (inte Windows-RAID)
9:e april
Påskstämning, ledig och full-laddad med påskmat. Är under dagen borta hos familjen ett par timmar bort, men aldrig längre från servarna än en RDP-session. Har med mig min Macbook laddad med Hamachi och en RDP-klient för att kunna logga på datorn där hemma för att under de lediga stunderna sitta och gå igenom nya titlar som skall arkiveras. Sitter och packar grejer när helt plötsligt så hänger sig servern.
Sekunder efter så tappar jag RDP-kontakten, alla mina Hamachinoder dyker, hemsidan slutar svara, börjar fundera på vad som hänt. Inte första gången som internetlinan dyker när man är ledig så man är luttrad, men oroad. Börjar fundera på om datorerna inte har känslor trots allt, när man är hemma så fungerar allt perfekt utan att jag rör nåt men så fort jag sticker någonstans så händer det grejer.
Säger till familjen att jag behöver dra hem en snabbis för att starta om grejerna, kör trots allt mailserver och annat lull och vill inte att saker slutar fungera. Kommer hem, ser att filservern hängt sig och linan gått ner men startar om allt och det kommer igång igen. Åker tillbaka till familjen och sätter mig under kvällen och kör lite Team Fortress 2 för att koppla av...
Får rätt som det är ett meddelande på MSN att han inte kommer åt min server. Märkligt tycker jag, funkade perfekt för en stund sen. Kollade snabbt mellan matcherna och märkte att jag inte kommer åt min X: som är kopplad till filservern. Loggar på filservern och ser att volymen finns där, men Windows vägrar att gå in i mappar eller göra nåt med disken. Tänkte att jaja, Windows har väl återigen tappat disken så drar igång en chkdsk på volymen med en ombootning för att göra en full koll. Så jag gör vad jag gjort många gånger förut och startar om servern. Efter ett par minuter bör den ju komma tillbaka, poppa upp på Hamachi och allt är OK.
20 minuter senare så har den inte kommit upp än.
10 minuter senare så börjar jag undra vad det är som pågår. Chkdsk är seg, men inte så seg. Låter det rulla på medans jag käkar kvällsmat.
En timme senare så är servern fortfarande inte igång. OK, något är allvarligt fel! Kan inte koppla upp mig till servern, svarar inte på ping och inget händer. Inte bra! Då min router är virtualiserad så har jag tappat allt, inkl internetlina, mailserver och all kommunikation med den civiliserade världen. Och då jag är flera timmar iväg från hemmet så kan jag inte göra nåt under kvällen...
10:e april
Kommer äntligen hem. Får knappt av mig skorna innan jag går in till arbetsrummet för att kolla vad det är som hänt med servern. Det första jag ser på skärmen är att datorn inte kan skriva till E$, kör chkdsk och bootningen har pausats. Efter ett par tangentbordstryck så bootar servern vidare och saker kommer igång igen. Men chkdsk körs och den börjar först med E:, sedan F:, sedan G:... det tar en väldigt lång tid och datorn går segt. Märker också att vissa enheter ligger dubbelt i utforskaren vilket är märkligt... Försöker kolla vad som hänt med volymerna...
ALL DATA ÄR BORTA!
De flesta mapparna har slumpartade namn på en av volymerna. Hela volymen verkar vara trasig och den rapporterar jag har över 800TB data på en 20TB volym vilket inte stämmer (totala volymen är 12TB med ca 9TB data). De två andra volymerna som ska innehålla en full backup samt data jag jobbar med är helt och hållet tomma, och de ska vara fyllda till en 80% också. Över 25TB data borta! Alla dokument, alla projekt, musik, rubbet.
Vid denna stunden så önskade jag en meteorit landade på Microsoft då allt är borta eller trasigt och inget verkade kunna gå att rädda!
Så börjar fundera på hur detta hänt. Arrayerna verkar OK, Windows verkar inte göra nåt för att reparera dem och inga varningar har skett. Då jag kör RAID6 så ska det ju till extraordinära situationer innan fler än 6 hårddiskar dör samtidigt för att döda tre arrayer... Jag tar fram mitt paket med recovery-program och börjar scanna, men märker snabbt att prestandan är väldigt seg, Windows hänger sig tillfälligt då och då och allt verkar väldigt konstigt. Men låter programmen scanna vidare under hela dagen...
11:e april
Börjar undra om det är någon hårdvara som pajat. Ingen av recoveryprogrammen kunde slutföra sin scan. Tar ut en disk i taget, stoppar in i en annan dator och gör en full sektor-check. Efter en hel dag så konstaterar jag att alla diskarna är 100% prima, inga SMART-fel, inget strul. Men arrayerna vägrar komma igång. Så jag lägger min fokus på resten av servern nu...
Stänger av servern, tar ut allt förutom kontrollerkorten och drar igång servern. Märker att den var väldigt lång tid på sig att boota. Efter en massa felsökning så märker jag att en av kontrollerkorten är väldigt varm, nästan så man bränner sig på chipet. Det andra kontrollerkortet är svalt. Kör igång diagnostikdisketten och bootar upp för att kolla korten och verifiera arrayerna, och märker att det trasiga kortet spottar ur sig så mycket fel! Den klarar inte ens att läsa diskarna utan att den tappar arrayen och stoppar verifieringen. Även när den försöker läsa diskarna så blir det korrupt data, och varje gång jag bootar om så tappar den någon disk eller identifierar inte disken korrekt. När jag sedan försöker komma åt datan så märker jag att kontrollerkortet inte ens läser eller skriver till diskarna korrekt, när jag kopplar in tre andra diskar så kan jag inte ens skriva till diskarna utan att få krascher och fel i Windows.
Konstaterar sedan att kontrollerkortet har skrivit sönder alla tre arrayer. Då alla tre arrayer var uppdelad på två kontrollerkort så skrev den sönder alla diskarna som var kopplat på det trasiga kontrollerkortet. Så det fanns ingen chans att rädda någon data, och backupen som låg på en egen array var också borta. 32 hårddiskar, all data trasig. Då kontrollerkorten var väldigt dyra så hade jag ingen chans att köpa nya kort och ersätta, utan fick helt enkelt klara mig med ett kort. Flyttade över alla diskarna från en array och försökte reparera men det var för mycket trasig data. Testade flera recovery-program och lyckades få ut enstaka filer, men allt var paj. Tog ut det trasiga kortet och lade undan det för att aldrig använda det igen.
----
----
Vad lärde jag mig av detta?
- Använd aldrig "hardware" RAID då jag inte kan flytta diskarna till annan dator och komma åt datan.
- Kör aldrig backup på samma dator och hårdvara som prod.
- Blanda aldrig backupdiskar med prod-diskar på samma kontrollers.
- Kör aldrig RAID6!
Strax efteråt så köpte jag min första rackserver, flyttade över diskarna och installerade FreeNAS. Har kört diskarna individuellt utan RAID eller någon array tills för en kort stund sedan då jag migrerat till TrueNAS och ZFS-arrays med snapshots som jag backar mellan två servrar. Allt i mjukvara, så händer nåt kan jag bara importera arrayen i en annan instans. Har kört det så här sedan dess och aldrig haft problem.
Idag kör jag två stycken arrays på 80TB vardera i två virtualiserade TrueNAS-instanser, volymerna är mountade via iSCSI till en virtualiserad Windows-instans som sköter access till filerna och deduplicering (då TrueNAS dedup är värdelös). Kör snapshots varje dag mot en annan server som har en virtualiserat TrueNAS-instans på sig, och behöver jag göra en återställning av filer så kan jag mounta den direkt i Windows och återställa filerna.
Kontrollerkortet har jag kvar för att påminna mig att aldrig köra en hobo-lösning hemma igen :).