Overvåke ReadyNAS Duo med PHP

Høsten 2011 kjøpte jeg meg nettverksharddisken ReadyNAS Duo, gjerne omtalt som NAS, «Network-attached Storage». Jeg har to harddisker på 2 TB hver, og disse tar kontinuerlig backup av hverandre i tilfelle en av de skulle feile.

ReadyNAS Duo
Min ReadyNAS DUO måler 22 x 16,2 x 17,2 centimeter, og har 2 TB lagringsplass satt opp i RAID slik at innholdet alltid speiles på 2 harddisker

Bildearkivet mitt

Bakgrunnen for denne investeringen er at jeg har et ganske stort bildearkiv, spesielt fra den tiden jeg drev nettavisen Liernett. Samtlige digitale bilder jeg har tatt siden vinteren 2003 er arkivert med dato og beskrivelse, per i dag 56 462 bilder.

bildearkiv.png

I tillegg har jeg en god del andre bilder som er tatt i forbindelse med diverse timelapse-prosjekter. Blant annet tok jeg et bilde hvert minutt, døgnet rundt, fra terrassen i min gamle leilighet fra slutten av august 2011 til juni 2012. Inkludert noen perioder med nedetid, endte dette prosjektet med 371 714 bilder.

Med så mange bilder som dokumenterer så mye forskjellig vil jeg ikke risikere et diskkrasj. Og da jeg i tillegg ventet barn ville jeg sikre at alle minnene var litt tryggere enn hva de hadde vært tidligere. Jeg hadde jo backup-systemer tidligere også, men det var litt mer manuelt arbeid med diverse harddisker og (u)regelmessig kopiering fra A til B.

Fysisk plassering

Tidligere hadde jeg min NAS plassert på skrivebordet på hjemmekontoret. Den er svært stillegående og krever liten plass, men det er viktig at det er god luftsirkulasjon rundt den så den ikke går varm.

readynas4.jpg
Tidligere hadde jeg NAS-et plassert i hjørnet på skrivebordet på hjemmekontoret

Over tid så jeg at temperaturen jevnt over ble høyere, sannsynligvis grunnet økt diskaktivitet og flere aktive plug-ins. Da jeg flyttet inn i nytt hus sommeren 2013 innredet jeg et nytt hjemmekontor, og her ble ofte romtemperaturen mye høyere enn på mitt gamle hjemmekontor som lå i en kjeller uten vinduer. Disktemperaturene kunne gjerne ligge på rundt 40 °C.

Jeg er ingen ekspert på hardware, men syntes det ville være fornuftig om NAS-disken holdt en litt lavere temperatur, gjerne ned mot 30 °C. Det ville vært ergerlig om for høy temperatur skulle skape problemer på sikt.

Jeg har derfor flyttet hele disken inn i en bod 2. etasjer lenger ned (jeg har 4 etasjer). Jeg monterte en enkel hylle over døra, et sted hvor disken ikke vil være til hinder for noe annet og fikk lagt opp kablet nettverkstilgang. I tillegg til at jeg slapp å ha disken stående fremme og synlig, ville jeg også oppnå lavere temperaturer.

Ny fysisk plassering - over døra i boden
Ny fysisk plassering - over døra i boden

Logge data

For å se hvordan dette, og andre tiltak, samt årstidene, ville påvirke temperaturen utviklet jeg en løsning for å logge temperaturen. Så siden i sommer har jeg logget temperaturen for hver av de to harddiskene, samt hvilken hastighet vifta har, hvert 10. minutt døgnet rundt.

Jeg kjenner ikke til noe API for å gjøre dette, og har heller ikke kunnskap nok til å gjøre dette på noen geeky måte og hente det rett fra kilden. Løsningen ble å «web scrape» temperaturen fra selve brukergrensesnittet til disken.

Jeg kommer ikke til å dele alle detaljene rundt hvordan jeg har gått frem for å få til dette, blant annet fordi jeg ikke vil avsløre eventuelle smutthull inn i systemene mine.

readynas3.JPG

Jeg fant ut at når brukergrensesnittet viser status for ReadyNAS Duo hentes det en XML-fil med alle data. Jeg har satt opp NAS-en med fast IP og et eget domene, slik at jeg for eksempel kan logge meg på og få tilgang til filene mine fra andre steder i verden. Det er for eksempel veldig praktisk å ha tilgang til filene mine fra kontoret i Oslo.

Med cURL og PHP fikk jeg hentet ut denne XML-en, og med litt modifikasjoner fikk jeg isolert selve dataverdiene som heltall. Jeg måtte logge meg på som administrator via cURL.

Jeg opprettet en MySQL-tabell og satte opp en «cron» som kjørte PHP-scriptet mitt hvert 10. minutt. Scriptet puttet nye data inn i tabellen, og slik har jeg altså fått logget temperatur og viftehastighet over tid.

Statistikken

Statistikken nedenfor blir kontinuerlig oppdatert med nye data. Grønn og lilla markør er hhv. Disk 1 og Disk 2.

Begynnelsen på markøren angir laveste temperatur registrert, sort strek angir gjennomnittlig temperatur og slutten på markør angir høyeste temperatur registrert.

Til høyre vises gjennomsnittlig viftehastighet.

Ytterligere informasjon vises ved mouseover i statistikken.

Denne grafiske fremstillingen her er ikke helt god, men det var en enkel og rask metode som lett kunne brukes i bloggen og som kan oppdatere seg automatisk.

Presentasjonen av dataene er i dag ikke så viktig. Det viktige er at jeg har alle dataene loggført og kan kanskje få brukt det til noe fornuftig en gang i fremtiden. Er det for eksempel noen sammenheng mellom værdataene fra Yr?

Jeg har en egen side med en litt annen fremstilling ved hjelp av Highcharts, men av tekniske årsaker valgte jeg å ikke bruke dette verktøyet i bloggen. På sikt vil jeg nok lage et bedre dashboard for visning av disse dataene, men inntil videre får slike enkle fremstillinger duge.

Svend Asbjørn Sylling, 6. desember 2013

Bloggen fra Sylling Hardcode