DIY datalagring for hjemmet wifi. Vi henter fra den gamle serveren en hjemme-NAS med en mediespiller på XPEnology

I tidligere innlegg har jeg nevnt zfs en rekke ganger. Dessuten viste det seg at både minne og prosessor ikke er barnslig nødvendig. Spørsmålet gjenstår - og hvorfor? Jeg må si med en gang at jeg ikke later til å være komplett osv. Hva er zfs finner du i Wikipedia. Hvis du er mer interessert, råder jeg deg til å google det. zfs administrasjonsveiledning(det ser ut til å ha vært på russisk også). Min intensjon er å forklare hvorfor plutselig et filsystem på bedriftsnivå er hjemme. Ca. Leseren, spesielt den andre delen av innlegget, skal ha en sikker forståelse av hva diskarrays er, for eksempel. RAID5. Hvis det ikke er forståelse, er det neppe verdt å bygge slike arrays hjemme og lese denne teksten.


1. Filsystemintegritet... Alle sto overfor en situasjon der filsystemet måtte repareres. Vellykket eller lite vellykket. zfs er bygget på en slik måte at den ikke engang har et verktøy som Windows chkdsk eller Linux fsck. En situasjon der filsystemet havnet i en inkonsekvent tilstand er rett og slett umulig. Implementert gjennom Copy-on-write (vi skriver ikke data over de gamle, men velger en ny blokk, skriv der, hvis alt er i orden bytter vi ut pekeren fra de gamle dataene til de nye. For mer detaljer, se Google). Som et resultat vil den logiske strukturen til disken ikke forringes på grunn av det faktum at noe ble slått av på feil tidspunkt eller lyset ble kuttet. Vel, med mindre det som ble registrert i løpet av de siste 10 sekundene vil gå tapt. (disken kan imidlertid fysisk brenne ut når du spiller med strøm).

2. Pass på at du ikke leser søppel og tenker at du leser data... Jern er ufullkommen. Hvis for eksempel kontaktene på SATA-kablene rasler, vil noe helt annet enn det som var i minnet bli skrevet til disken. Og ingen, vil jeg legge merke til i lang tid vil ikke vite om det. Min yrkeserfaring er knyttet til trykkeribransjen. Mer enn en gang var det nødvendig å se et bilde opp til midten av et normalt bilde ved utgangen - og deretter støy. zfs lagrer en kontrollsum med hver datablokk. Ved lesing av data blir mengden automatisk matchet. Det virker så enkelt...

3. Tillit til at de lagrede dataene ikke er råtten... Ja, data har en tendens til å forringes under lagring. Dette er velkjent for de som har trodd på markedsføringen av 100 år gamle DVD-produsenter og registrert arkivene deres på dem. Dette er spesielt viktig for "kalde" data som har stått stille i lang tid. Arkiv, gamle bilder osv. Det ser ut til å være enkelt å sjekke dataene - du må lese dem og sammenligne kontrollsummene. For zfs er det klart - det er nok å lese filene. For vanlige kontroller er det et team som sjekker alt i bakgrunnen.

4. Øyeblikksbilder av filsystemet. Enkel å huske tilstanden til filsystemet på et gitt tidspunkt, lagre slike øyeblikksbilder og rulle tilbake til dem om nødvendig. Beskytter mot tåpelige menneskelige handlinger. Kopier-på-skriv-modellen bidrar ganske enkelt til slik funksjonalitet - vi frigir rett og slett ikke blokker med slettede eller overskrevne data, men vi lagrer lenker til dem i et øyeblikksbilde. Som et resultat tar øyeblikksbildet like mye plass som det inneholder data endret i forhold til det nåværende øyeblikket, og ikke hele datamengden.

Det var alt for data uten redundans, for eksempel en enkelt disk. Men zfs lar deg danne redundante arrays, lik (og overlegen) til RAID1 (speil), RAID5 (redundans i størrelsen på én disk), RAID6 (to), og til og med "RAID7" (som beholder data hvis tre disker i arrayet svikter). Arrays kan kombineres for å lage noe som RAID10 eller RAID50. Og hvorfor er zfs-matriser bedre?

5. Maskinvareuavhengighet... For å lage maskinvare RAID5, spesielt RAID6, trenger du en dyr RAID-kontroller. zfs raidz er et programvare-RAID-alternativ, bare disktilgang er nødvendig, for eksempel SATA-porter. zfs raidz kan godt være bygget på porter til forskjellige kontrollere og fra disker av forskjellige modeller (det er fordeler og ulemper med å bruke forskjellige diskmodeller). Og den har blitt portert til nesten hvilken som helst maskinvare hvor du kan koble til disker. For eksempel byttet jeg gjentatte ganger disker mellom SATA-porter, importerte transparent en matrise opprettet i IDE-modus på kontrolleren, i ACHI-modus og på SAS-kontrolleren. Selv om operativsystemet nummererer disker etter porter og definerer IDE-, ACHI- og SAS-disker på forskjellige måter, kan zfs i det stille fungere alt dette (opp til visse grenser, selvfølgelig. Dumt nok kan det du vil brytes.)

6. Fravær Opptakshull... (Wiki) Det vil si dataødeleggelse hvis array-disken ikke kan motta data. Dyre RAID-kontrollere er utstyrt med batterier, som lar deg lagre data som ikke rakk å komme til disken i mange dager, og skrive dem til arrayet når det er mulig.

7. Diskfeilmotstandsdyktighet... Anta at vi har samme RAID5 og zfs raidz1. I hver av dem svikter en av diskene, vi endrer den til en ny. Og under erstatningsprosessen (og det tar mange timer for store arrays) leses ikke en blokk på en av de gjenværende diskene i arrayen.

For RAID5 er dette i de fleste tilfeller en katastrofe. Matrisen er erklært feil uleselig, vi fører den til fagfolk som vil gjenopprette informasjonen for et engangsbeløp.

For zfs raidz1 forteller den hvilke filer de dårlige blokkene falt på, resten er synkronisert. Og hvis i det minste noe leses fra disken som erstattes og den ikke kobles fra datamaskinen, vil informasjonen fra den også brukes til synkronisering. Og med høy grad av sannsynlighet vil vi ikke miste data i det hele tatt.

8. Jobber med nyttelast, ikke hele matrisen... For eksempel, hvis jeg erstatter en disk i en RAID5-matrise, avhenger gjenopprettingstiden av størrelsen på matrisen. Hvis i zfs raid1 - fra mengden informasjon som er registrert i matrisen, vil ikke plassen som ikke brukes til data bli synkronisert.

Det er fortsatt mange fordeler, men disse er mer interessante for meg for huset. I bedriftsapplikasjoner er det andre (datakomprimering, deduplisering ...). Jeg vil nevne viktig for meg begrensninger.

1. Det er umulig å vokse en raidz-array på én disk... Du kan erstatte alle terabyte-disker med tritere – og øke volumet. Du kan samle en annen raidz fra 3 (eller flere) disker og legge den til den eksisterende. Men du kan gjøre raidz1 fra 5 disker til raidz1 fra 6 bare ved å tappe informasjon et sted, ødelegge arrayet og lage en ny.

2.Array kan ikke reduseres... Du kan bare øke. For eksempel er det mulig å erstatte terabyte-skruer med to-terabyte-skruer i arrayet. Og på halv terabyte - det er umulig, selv om matrisen inneholder 1 kilobyte med informasjon.
Du kan koble en til til arrayet - men du kan ikke koble fra. Alle slike prosedyrer - bare gjennom å lagre informasjon et sted utenfor, ødelegge matrisen og lage en ny.

3. Ressursintensitet... zfs beregner konstant sjekksummer, noe som skaper en belastning på prosessoren og spiser minne for cacher. I bedriftsapplikasjoner er det en mening - gigabyte minne per terabyte array. Hjemme er 330 atomer og 4 GB minne nok for meg (og tidligere fungerte det for 2 GB - jeg så ikke mye forskjell). Selv om jeg ikke har nok atom for fullstendig utnyttelse av et gigabit-nettverk, dekker 40-50 MB/s mine behov.. Men hvis maskinvaren er gammel og enda mye svakere - er ikke zfs noe for deg.

Ja, jeg vil minne deg på om du likte det - i NAS4 gratis, som hele syklusen av innlegg er viet til, går NAS-administrasjon, inkludert operasjoner med zfs, gjennom et nettgrensesnitt som er forståelig for en nybegynner.

Denne lille opplæringen vil hjelpe deg å bygge en fullverdig NAS-server fra en gammel datamaskin. Hvis du er klar til å kjøpe nye komponenter og gjøre fillagringen din kompakt og gi den et mer moderne utseende og funksjonalitet, er artikkelen mer egnet for deg. Vel, for de som liker ferdige løsninger, har jeg forberedt dette materialet:... La oss nå gå tilbake til den gamle PC-en og evaluere dens evner.

Gamle PC-krav

  • SATA-kontakter på hovedkortet, siden HDD-er med dette grensesnittet har det beste pris/ytelsesforholdet og har et mye større volum, i motsetning til IDE-harddisker.
  • Antall kontakter for tilkobling av harddisker på hovedkortet og ledige spor i dekselet (muligheten til å installere HDD-er i 5,25-tommers brønner (spesialbokser)) For å sette sammen HTPC bruker jeg slike bokser med 2 spor for 2,5-tommers HDD. .
  • Hvis det ikke er nok SATA-kontakter på strømforsyningen, kan du bruke spesielle IDE-SATA-adaptere.

Prosedyren for å installere harddisken i kabinettet

For å installere 3,5 "harddisker i 5,25" optiske stasjonsbrønner, plasser dem i en spesiell boks (se figur).

Slike tilfeller kan også lages i form av skinner som er festet til HDD på begge sider.

Du kan også bruke den fem-tommers brønnen, der den optiske stasjonen er installert, siden den ikke lenger er nødvendig i en serverløsning.

Installerer programvaren

For å implementere en serverløsning vil vi bruke programvare FreeNAS... Last ned ISO-bildet fra lenken for et 32-biters eller 64-biters system og brenn med minimumshastighet til en CD-R \ RW-plate. Hvis det ikke er noen plate, kan du installere den på en USB-flash-stasjon, hvordan lage en oppstartbar USB-flash-stasjon er skrevet inn. Koble diskettstasjonen midlertidig til PC-en (som du fjernet tidligere eller bruk en USB-stasjon). Gå til BIOS og sett Boot-delen til å starte opp fra diskettstasjonen. Etter at du har installert programvaren og startet PC-en på nytt, husk IP-adressen, som vil vises på skjermen.

Sette opp en NAS-server

Koble NAS-serveren til nettverket ditt. Åpne nettleseren til arbeidsdatamaskinen på dette nettverket og skriv inn i adressefeltet: http: // "IP-adressen til NAS-en din". I vinduet som vises, skriv inn brukernavnet - admin og passordet - freenas. Gå til menyen «Lagring | Volumer | Lag volum " og velg harddiskene som skal danne RAID-arrayet. Deretter aktiverer du ZFS-filsystemet.

Kan bli brukt:

  • RAID 0- Diskarray med økt ytelse, uten feiltoleranse.
  • RAID 1- speilet diskarray, har høy pålitelighet

Vi vil bruke RAID 1 da det er mer pålitelig. Trykk nå "Legg til volum" for å formatere stasjonene dine til en matrise.

Tilgang til NAS-serveren i det lokale nettverket

Gå til menyen for å åpne tilgangen til serveren «Tjenester | Kontrolltjenester ", aktiver CIFS-tjenester og konfigurer tilgang i delen «Deling | Windows Shares "... Som med alle nettverksmedier på et lokalt nettverk, utføres tilgang ved hjelp av Windows Utforsker (for eksempel \\ NAS for å få tilgang til roten eller \\ NAS \ Photos for å få tilgang til en bestemt delt mappe). Du kan også lage snarveier ved å klikke på "Kart nettverksstasjon"-knappen i datamaskinvinduet (Windows 7) under utforskerlinjen.

P.S. Du kan alltid lage en ekstra array ved å legge til harddisker, og du kan også konfigurere tilgang for ekstern bruk av NAS-serveren.

Litt informasjon om farene ved å bruke RAID

RAID er en redundant rekke uavhengige harddisker. RAID er ikke et backup-lagringssystem; det bidrar bare til å forbedre komforten for datatilgang. Et RAID-system er et sett med HDD-er kombinert til en matrise. Hvis harddisken svikter, kan du erstatte den og deretter gjenopprette RAID-en, og dataene dine vil være med deg, unntatt RAID 0-arrayen.

Ulemper med RAID 0

Denne modusen gir kun hastigheten på datatilgang. Striping Mode deler data i blokker og skriver data til flere harddisker samtidig. Hvis én harddisk går i stykker, vil alle data gå tapt.

Ulemper med RAID 1

I RAID 1-modus brukes dataspeilingsmetoden, det vil si at en identisk kopi av dataene er plassert på den andre disken. Det er en sårbarhet - en mulig funksjonsfeil på kontrolleren, som vil skade begge mediene.

Ulemper med RAID 1 og RAID 5

Under RAID-gjenopprettingsprosessen er skrivehastigheten høy, og etter at en harddisk svikter, kan det føre til at en annen HDD svikter, og dermed tap av data.

Dessuten kan en defekt RAID-kontroller føre til HDD-feil. I RAID-matriser brukes endringer på filer, og hvis data ved et uhell slettes eller endres, er handlingene irreversible.

Publikasjonen er beregnet på personer langt fra systemadministrasjon. Dette innlegget demonstrerer de grunnleggende egenskapene til det fantastiske NAS4Free-operativsystemet, som lar deg distribuere en hjemme-NAS selv på maskinvare med lav effekt, i fullstendig fravær av kunnskap om FreeBSD og kommandolinjen. Den første delen av publikasjonen er lokalisert.

Så vi har en boks med følgende egenskaper:

  • Veske: Thermaltake Core V1;
  • Strømforsyning: Chieftec HPS-350NS;
  • Hovedkort: GIGABYTE GA-J1800N-D2H;
  • RAM: Transcend SO-DIMM 2Gb DDR-III 1333Mhz x 2;
  • HDD: WD Re 2004FBYZ x 2 (les før du lager runde øyne);
  • Kjøling: TITAN DC FAN (80 mm, 2000 rpm) x 2.
Nå er tiden inne for å gjøre den om til en hjemme-NAS, så pålitelig som mulig i det gitte miljøet. Og i dette vil vi få hjelp av Zettabyte File System – kanskje den beste løsningen for å organisere feiltolerant og samtidig effektiv fillagring. ZFS ble utviklet av Sun Microsistems for Solaris, og ble senere portert til Linux og FreeBSD. Blant de mange fordelene vil vi være interessert i følgende:
  1. Opprettelse av datasett, på grunn av hvilket det blir mulig å selektivt kontrollere filkomprimering og deduplisering, sette diskkvoter, og alt dette - uten deltakelse fra ledere som LVM;
  2. Dataintegritetssjekk ved hjelp av 256-biters sjekksummer;
  3. Automatisk oppretting av sikkerhetskopier basert på øyeblikksbilder;
  4. Mulighet for å kombinere disker til RAID-lignende arrays på programvarenivå.
Blant de spesialiserte løsningene som kan fungere med ZFS, skiller to konkurrenter seg tydelig ut – FreeNAS og NAS4Free. Disse speilvendte navnene er på ingen måte tilfeldige - begge byggene er basert på FreeBSD, og ​​NAS4Free i seg selv er en gaffel av FreeNAS 0.7, som dateres tilbake til tiden da det originale operativsystemet kom under vingen til iXsystems og ble kommersielt. NAS4Free er min personlige favoritt. Hvorfor? La oss finne ut av det.

Jeg tror de oppførte argumentene er nok til å ta et entydig valg. La oss nå finne ut av installasjonen og det første oppsettet av systemet.

Installere NAS4Free

Siden det bare er to disker i systemet, vil vi bruke en USB-flash-stasjon som en oppstartbar stasjon. Hvilken er helt irrelevant, enhver antikke fra 2 GB vil være nok. Hvis du er i tvil om brukbarheten til enheten, kan du bruke den samme Rufus ved å kjøre flere tester. Da er alt enkelt - og vi fortsetter med installasjonen. Først vil du se følgende skjerm:

Etter kort tid vises tekstmenyen på displayet:

Vi er interessert i det 9. elementet - vi velger det. Installasjonsprosessen starter:

Vi berører ikke ekspertmodusen, men valget mellom GPT og MBR avhenger av alderen på hovedkortet til maskinen din. Hvis du er en tilhenger av den "klassiske" BIOS, velg det andre elementet. Det er UEFI - velg den første. Etter bekreftelse vil NAS4Free vennligst informere deg om hvilke operasjoner den skal gjøre - vi godtar alt:

Deretter bør du spesifisere USB-flashstasjonen som installasjonen skal utføres på. Det er lett å skille det fra systemstasjonen ved størrelse og navn:

Det neste trinnet er å angi størrelsen på personsøkingsfilen. Regelen er enkel: hvis du bruker en 2 GB-stasjon - sett 512 MB, 4 GB - sett 1024 MB, hvis 8 - 2.

Installasjonsprosessen vil begynne, når du er ferdig, vil du se følgende skjermbilde:

Du kan koble fra flash-stasjonen og starte på nytt - installasjonen var vellykket.

La oss nå jobbe med selve NAS-en. Siden vi har valgt et budsjettalternativ for en tynnklient som hovedkort, må vi starte med å justere oppstartsparametrene ved å koble ikke bare en USB-flash-stasjon til enheten, men også en skjerm med et tastatur. D-Sub og HDMI finnes som videoutganger, så det burde ikke være noen problemer. Etter å ha slått på maskinen, hold nede "Delete" og sett inn USB-flashstasjonen vår i "Boot"-menyen som hovedoppstartsenhet (som standard vil UEFI Shell bli lastet, men vi trenger det ikke). Vi lagrer endringene, starter NAS-en på nytt, og hvis alt er gjort riktig, ser vi den allerede kjente menyen:

Du kan koble en NAS til et arbeidsmiljø på alle måter: gjennom en ruter, en svitsj, en null-hub – alt avhenger av dine personlige behov. Siden du mest sannsynlig vil bringe maskinen til hjemmenettverket ditt, er en ruter det beste alternativet, så la oss sette opp en statisk IP-adresse i trinn 2. Svar konsekvent på spørsmålene som stilles av systemet:

  • Vil du bruke DHCP for dette grensesnittet? - Nei (vi ønsker å angi en statisk IP)
  • Skriv inn ny LAN IPv4-adresse - 192.168.1.250 (angitt som standard, hvis den allerede brukes i nettverket ditt - skriv inn en ledig)
  • Skriv inn ny LAN-nettverksmaske - 24 (subnettmaske 255.255.255.0)
  • Skriv inn IPv4 standard gateway - 192.168.1.1 (spesifiser adressen til ruteren)
  • Skriv inn DNS IPv4-adresse - 192.168.1.1 (angi også adressen til ruteren)
  • Vil du konfigurere IPv6 for dette grensesnittet? - Nei (vi trenger rett og slett ikke IPv6 i hjemmenettverket vårt)
Vellykket fullføring av konfigurasjonen indikeres av denne skjermen:

Dette fullfører klargjøringen av NAS - nå kan du koble lagringen til nettverket og begynne å konfigurere.

Sette opp disker

Alle operasjoner utføres gjennom en praktisk WebGUI - bare skriv inn den tidligere angitte IP-en i nettleseren (i vårt tilfelle - 192.168.1.250), og du vil umiddelbart bli tatt til autorisasjonsskjemaet:

Standard pålogging er admin, passordet (hvem hadde trodd) er nas4free. Logg inn og se systemmonitoren:

La oss gå rett til det store og mektige: gå til "System" -> "Generelt", og endre språket til russisk:

Her kan du også sette et nytt brukernavn og passord for nettgrensesnittet.

La oss nå begynne å konfigurere diskene. Vi går til "Disker" -> "Administrasjon", og ... vi finner ikke noe:

Bare ikke få panikk – i NAS4Free må du gjøre alt for hånd. Det enkleste alternativet er å klikke på "Tøm konfigurasjon og importer disker", men jeg anbefaler å klikke på det blå plusstegnet til høyre og legge til stasjoner en om gangen. Menyen ser slik ut:

La oss gå gjennom alternativene:

  1. Du trenger ikke fylle ut beskrivelsen i det hele tatt, jeg skrev inn det forkortede navnet på platen;
  2. Gå ut av overføringsmodus Auto;
  3. Spesifiser perioden for å sette stasjonene i standby-modus avhengig av dine personlige behov. Det bør imidlertid bemerkes: hyppig omstart gagner ikke selv den pålitelige WD Re, så det gir ingen mening å stille inn 5-10 minutter - dette vil bare fremskynde slitasjen på harddisken;
  4. Strømstyring - jeg setter nivå 127 - et kompromiss mellom ytelse og strømforbruk;
  5. Støynivå - jeg anser det ikke som nødvendig å bruke det, siden WD fungerer veldig stille uansett;
  6. Hvis du vil aktivere overvåking av S.M.A.R.T. - merk av i boksen;
  7. Siden diskene er nye lar vi Uformatert stå på siste linje.
Nå trykker vi på "Legg til" -knappen og gjentar prosedyren for de gjenværende diskene. Du trenger ikke å legge til en USB-flash-stasjon for å unngå misforståelser (formater den i hetten av øyeblikket, og alt må starte fra bunnen av).

Etter alle manipulasjonene ser vi følgende i diskinnstillingsmenyen:

Vi leser advarselen i skjermbildet. Ja, dette er særegenheten til NAS4Free: først gjør vi innstillingene, så bekrefter vi valget ved å klikke på "Bruk endringer" - du må venne deg til det. Etter det observerer vi resultatet av handlingene våre:

Hvis du ønsker å motta S.M.A.R.T.-data ved å overvåke statusen til disker, gå til fanen med samme navn.

Merk av for "Aktiver", velg Standby-strømforsyningsmodus (for ikke å forstyrre harddiskene i standby-modus) og lagre endringene. Det er også mulig å tilpasse varsler. Nå kan du se detaljerte data for hver stasjon i "Diagnostikk" -> "Informasjon" -> "S.M.A.R.T."

Så begge stasjonene er online, alle systemer fungerer bra. Men dette er bare begynnelsen på reisen. La oss gå til "Format HDD"-fanen. Som vi ble enige om i begynnelsen av artikkelen, vil vi bruke ZFS. Velg begge stasjonene og klikk "Neste":

I neste trinn angir vi volumetiketten - jeg valgte WDREZFS% 1. Konstruksjonen "% 1" betyr at diskene vi formaterer vil bli tildelt sekvensnumre fra én. Det vil si at den første vil hete WDREZFS1, den andre WDREZFS2, og så videre. Hvis du ikke spesifiserer startpunktet ved å sette "%"-tegnet uten et tall, vil systemet nummerere selve harddisken. Det er også mulig å gi navn etter serienummer. For eksempel, ")