Slik lagrer vi filene dine

Av jottacloud jottacloud
Publisert 17.07.2024 Redigert 18.07.2024

Jeg blir ofte spurt om hvordan vi kan tilby ubegrenset lagringsplass for bare 49 kroner i måneden. Svaret skal jeg forsøke å belyse her. Jeg håper at dette gir et nyttig innblikk i hvordan vi lagrer data på en kostnadseffektiv og sikker måte.

Vi startet Jotta i Oktober 2008. Ganske nøyaktig ett år etter lanserte vi første versjon. Sentralt i utviklingen av Jotta var å lage en lagringsplattform som var både skalerbar, sikker og robust. Men kanskje det viktigste for oss var prisen. Vi ønsket lavest mulig kost pr. GB. Husk, vi startet opp midt i finanskrisen.

Jottas lagringsplattform

Maskiner går i stykker og harddisker ryker. Dette er regelen og ikke unntaket.

Istedenfor å kjøpe dyre lagringsservere eller SAN-løsninger for å unngå slike maskinfeil har vi bestemt oss for at det er bedre å ta høyde for maskinfeil som en del av den normale driften.

Vår løsning på dette er å sette sammen lagringsservere i en klynge som hele tiden sørger for at enhver fil alltid er tilgjengelig på minimum to ulike lagringsservere (hver server har i tillegg redundant maskinvare som RAID).

Om én server eller harddisk dør, blir filene som lå på denne automatisk kopiert over på en tredje server fra kopiene som ligger på de andre serverne. Det blir litt som RAID på servernivå istedenfor disknivå.

Vår lagringsplatform har ikke noe problemer med å håndtere om en server går ned på grunn av feil eller vedlikehold. Andre servere står klar til å ta imot eller sende ut filer. Failover og reduplisering av filer skjer helt automatisk.

Lagringsplattformen er utrolig skalerbar. Vi trenger bare å legge til nye lagringsservere, så utvides den totale lagringskapasiteten. Ytelsen øker også i takt med at vi legger til nye lagringsservere.

Jottas lagringsservere

Vi trenger mye lagringsplass. Dette er faktisk en av de største kostnadene vi har i Jotta.

Det mangler ikke på tilbud av ulike lagringsløsninger fra store og kjente leverandører, men ingen av disse er i nærheten så billige som vi ønsker.

Kostnadseffektive SAN-løsninger koster rundt 15–20 kroner pr GB. JBOD løsninger fra de store leverandørene ligger rundt 5–8 kroner pr. GB.

Våre servere har en lagringskostnad på under 1 kr pr. GB.

Lave lagringskostnader er kritisk for vår suksess og det ble tidlig klart for oss at ingen selger så billig lagring som vi ønsker. Vi har derfor satt sammen langringsservere basert på billige og lett tilgjengelige komponenter. Dette er en utprøvd modell som Google har gjort stor suksess med.

Vi har valgt alle komponentene i våre servere ut ifra følgende krav:

  • Lav kostnad i forhold til ytelse

  • Lav kostnad i forhold til lagringsplass

  • Høyt antall TB lagringsplass pr. rack unit

  • Lett tilgjengelige komponenter med kort leveringstid

  • Lang garanti

Kabinettet brukte vi lang tid på å finne. Vi valgte til slutt et kabinett fra SuperMicro som gir oss 36 disker på bare 4U. I tillegg har alle diskene hot-swap som gjør vedlikeholdsarbeid lettere.

Serverne har Intel Xeon Quad-Core — X3450 2.66GHz prosessor og 6 GB RAM.

Hver server består av 36 harddisker. Totalt 72 TB lagringsplass i en 4U rackserver. Hver server har to strømforsyninger som er koblet til forskjellige strømkurser.

Diskene er standard HITACHI Deskstar 7K2000 med 2 TB lagringskapasitet. Vi har brukt endel tid på å finne billige disker som kan brukes i RAID konfigurasjoner. RAID edition disker blir alt for dyre. Til RAID kontroller bruker vi Adaptec RAID 5805 SAS.

Diskene er konfigurert med to RAID-6 sett med 18 disker i hvert sett. Det betyr at to disker i hvert sett til enhver tid kan ryke før vi mister dataene i settet. Hvert av RAID settene er igjen formatert som to EXT4 partisjoner. Maks størrelse på en EXT4 partisjon er 16 TB.

Vi har valgt en rimelig og kjapp 32 GB SSD disk som boot drive.

Totalt har altså dette en kostnad på under 1 kr pr. GB, og det inkluderer 5 års garanti.

Ikke bare maskinvare

Maskinvaren er bare én av byggeklossene som utgjør lagringsplattformen vår.

Alle serverne våre kjører på 64-bit Linux (Ubuntu Server 10.04). Diskene er satt opp i RAID-6. Filsystemet i bunn er EXT4. På toppen av EXT4 ligger et distribuert filsystem som heter GlusterFS.

GlusterFS gir oss mye av den nødvendige funksjonaliteten vår lagringsplattform trenger, men ikke alt. Hovedfunksjonen til GlusterFS er å sørge for at alle applikasjonsservere kan lese og skrive til det samme filsystemet over TCP (vi slipper dyre Fibre Channel eller InfiniBand kort).

Over GlusterFS ligger applikasjonsserverne som innholder all nødvendig logikk for å kjøre tjenesten. Vi bruker Geronimo Applikasjonsservere og Jetty webservere.

Til slutt går all trafikken via vår load balancer og HTTPS sanitizer. All trafikk inn til Jotta er kryptert med 256 bits AES kryptering.

Noe av det viktigste vi har lært oss etter ett år i drift er at lagring av store mengder data er vanskelig.

Det krever robuste og feiltolerante systemer, fysisk sikring og konstant vedlikehold. I tillegg trenger du avanserte systemer til å ta imot, sende ut, lagre og vedlikeholde brukernes filer.

Det som er lett ved noen 100 tusen filer blir en utfordring når man snakker om 100 millioner filer.

Håper dette gav et tydeligere bilde på hvordan vi lagrer data. Hvis dere har noen spørsmål ikke nøl med å ta kontakt eller skriv det i kommentar feltet.

Kort om leverandørerene våre

Powertech er leverandør av colocation og båndbredde. For oss var det viktig å plassere serverne våre på datasenter i Norge. Powertech har egne rom på Digiplex på Økern i Oslo. Digiplex har etter vår mening det beste datasenteret i Norge.

Nextron er leverandør av Jottas lagringsservere Vi har funnet en god levarandør som bygger og leverer lagringsserverne samt gir 5 års garanti.


(Originally posted Nov 10. 2010, by Roland Rabben)