Avainsana-arkisto: ZFS

FreeNAS – osa 1: Levypalvelimen asentaminen ja perusasetukset

FreeNAS on täysin ilmainen palvelinohjelmisto, jonka voi asentaa lähes kaikenlaisen raudan päälle jakamaan tiedostoja lähiverkkoon. Lyhyesti sanottuna kyse on levypalvelimesta, eli NAS:sta (Netowork Attached Storage).

FreeNAS hoitaa ja tekee samoja asioita kuin kaupalliset levypalvelimet, ainoa ero on että FreeNAS:in tapauksessa käyttäjä voi itse valita järjestelmän komponentit ja tehdä järjestelmästä omia tarpeitaan vastaavan.

Ohjelmiston asentamisen jälkeen kaikki asetukset tehdään web käyttöliittymän kautta. FreeNAS kykenee jakelemaan tiedostoja niin Windows (SMB/CIFS), Unix/Linux (NFS) kuin Apple (AFP) käyttöjärjestelmille. FreeNAS kykenee jakelemaan tiedostoja myös mm. FTP, iSCSI, WebDAV protokollilla. Mukana tulee luonnollisesti kattavat varmuuskopiointi mahdollisuudet, joihin kuuluvat tuki windows backup, rsync, Apple Time Machine ja PC-BSD Life Preserver.

FreeNAS:iin on saatavilla myös liuta erilaisia plugineja, joista ainakin elokuvaharrastajana minua kiinnostaa PLEX mediaserver. Myös oman pilvipalvelun pystyttäminen onnistuu.

FreeNAS käyttää ZFS tiedostojärjestelmää, joka on Sun Microsystemsin kehittämä. ZFS:n ominaisuuksiin kuuluvat suojaus tietojen korruptoitumisen estämiseksi, tuki suurelle tallennuskapasiteetille, tehokas tietojen pakkaus, jatkuva virheentarkistus ja automaattinen korjaus, ohjelmallinen RAID sekä tietojen salaaminen, muutamia mainitakseni. Huonona puolena voidaan pitää suurta muistintarvetta, mitä enemmän keskusmuistia on, sen parempi. 8 Gt on ehdoton minimi, suositeltava 16 Gt.  Joidenkin lähteiden mukaan itse käyttöjärjestelmä tarvitsee 4 Gt RAM, ja jokainen tallennus teratavu 512 Mt RAM. Toinen nyrkkisääntö on 1 Gt RAM / 1 Tt tallennuskapasiteettia. Toteuttamani järjestelmän osalta kummatkin ehdot täyttyvät, joten muistin määrän ei pitäisi olla pullonkaula.

Esittelyt saavat riittää ja siirrytään itse asiaan, eli FreeNAS:in asentamiseen.

FreeNAS lataaminen ja asentaminen

Ensimmäiseksi haetaan uusin versio FreeNAS:sta, joka jutun kirjoitushetkellä oli 9.10.1.  Tämän jälkeen luodaan asennusmedia (CD) tai lisätään levykyva suoraan iKVM:n kautta virtuaali CD-asemaksi. Myös USB muistilta buuttaus on mahdollinen.

Asentaminen

  1. Varmista BIOS-asetuksista, että kone buuttaa valitsemasi median kautta. Tämän jälkeen asentaminen on hyvin suoraviivaista. Asentaja lähtee käyntiin 15 sekunnin kuluttua automaattisesti.
    freenas_1
  2. Valitse 1, Install/Upgrade. Tämä vaihtoehto asentaa tai päivittää vanhan FreeNAS version.
    freenas_2
  3. Tämän jälkeen valitaan mille levylle palvelinohjelmisto asennetaan. Valmistajan suositus on USB muisti, jonka tulee olla kooltaan vähintään 8 Gt. Tässä tapauksessa USB muisti löytyy asemasta da7.
    freenas_3
  4. Tämän jälkeen tulee varoitus valitun levyn tyhjentämisestä.
    freenas_4 freenas_5
  5. Lopuksi annetaan pääkäyttäjän salasana, joka on syytä muistaa jatkossa. Tämän jälkeen alkaa varsinainen asennus, jossa vierähtää noin 5-10 min.
    freenas_6
  6. Kun asenus on valmis,  asennusmedian voi poistaa. Lopuksi käynnistä kone uudelleen painamalla OK ja valitsemalla 3, Reboot system.
    freenas_7
  7. Jos saat virheilmoituksen puuttuvasta järjestelmälevystä, tarkista BIOS asetukset.
    freenas_7b
  8. Asus P7F-M emolevyn BIOS:ssa piti ensin käydä Hard Disk Drives valikosta valitsemassa 1st Drive asemeksi USB: Kingston DT ja tämän jälkeen vielä Boot Device Prioritystä 1st Boot Deviseksi USB: Kingston DT.
    freenas_8 freenas_9
  9. Buutin jälkeen varsinainen asentaminen on valmis. Konsolissa ilmoitetaan palvelimen saama IP-osoite DHCP:ltä, joka tässä tapauksessa on 192.168.4.102. Kun tämän osoitteen kirjoittaa web selaimeen, avautuu ensimmäisenä salasanakysely, jonka jälkeen pääsee tekemään varsinaista palvelimen konfigurointia. Seuraavassa osioissa käyn ensin läpi IP-osoitteen muuttamisen ennen muiden asetusmuutosten tekemistä.
    freenas_10

Perusasetusten säätäminen

  1. Ensimmäiseksi vaihdetaan palvelimen IP-osoite staattiseksi, sillä dynaamisesti vaihteleva osoite ei ole käytännöllinen. Toki DHCP palvelimen voi määrittää antamaan osoitteen aina samaksi MAC-osoitteen perusteella, mutta itse pidän saattisista osoitteista enemmän. Osoitteen muutos tapahtuu kätevimmin konsolissa:
      • Paina 1 (Configure Network Interface) ja enter
      • Valitse oikea verkkosovitin, minun tapauksessa 1, em0
      • Reset network configuration? (y/n) => n
      • Configure interface for DHCP? (y/n) => n
      • Configure IPv4? (y/n) => y
      • Interface name: kirjoita tähän kohtaan sen verkkosovittimen tunnus jonka asetuksia olet muuttamassa, minun tapauksessa em0
      • Syötä uusi IP-osoite ja aliverkon peite esimerkiksi CIDR notaatiolla, minun tapauksessa 192.168.4.11/24 (/24 => 255.255.255.0)
      • Configure IPv6? (y/n) => n

    Tämän jälkeen FreeNAS päivittää  verkkosovittimen tiedot ja uusi osoite on hetken päästä käytössä. Päivittynyt osoite näkyy komentokehotteessa.
    freenas_12

  2. Kirjaudutaan web selaimen kautta käytten päivitettyä IP-osoitetta. Käyttäjätunnus on root ja salasana aiemmin määrittämäsi.

    freenas_11
  3. Seuraavaksi muutetaan System / General -välilehdeltä WebGUI IPv4 osoitteeksi 192.168.4.11, konsolin näppäimistökartta (Finnish ISO-8859-1) ja aikavyöhykkeeksi Europe/Helsinki.
    freenas_13
  4. Määritellään pääkäyttäjälle, eli root:lle sähköpostiosoite, jonne kaikki palvelimen tilaviestit toimitetaan. Tämä tapahtuu valikon Account / Users kautta, valitse käyttäjä root ja sen jälkeen Change E-mail. Anna sähköpostiosoite jonne ilmoitusten halut menevän.
    freenas_14
    freenas_14b
  5. Tämän jälkeen määritellään varsinaiset sähköpostiasetukset, joka tapahtuu valikon System / Email kautta. Syötettävät tiedot ovat peruskamaa, eli lähettäjän (palvelimen) sähköpostiosoite, sähköpostipalvelimen osoite, portti (salaamaton = 25, SSL = 465), salauksen tyyppi (Plain/TLS/SSL). rasti ruutuun Use SMTP Authentication mikäli lähtevän postin palvelin tarvitsee käyttäjätunnukset, sekä postipalvelimen käyttäjätunnus ja salasana kahteen kertaan. Paina lopuksi Save. Tämän jälkeen voit kokeilla sähköpostin toimivuutta Send Test Mail painikkeella. Sähköpostilaatikkoon pitäisi kolahtaa postia hetken kuluttua.
    freenas_14c

Seuraavassa osassa käydään läpi levypakan sekä datasettien luominen.

FreeNAS levypalvelimen raudan valinta

Vanhasta levypalvelimesta alkoi loppua tila kesken. Se koostui kahdesta erillisestä Buffalon levypalvelimesta, josta uudempi LinkStation LS-WXL toimi varsinaisena tietovarastona ja vanhempi LinkStation LS-WTGL teki kerran viikkoon varmuuskopiot. Kummankin laitteen kaksi levyä oli peilattu, jolloin tieto oli nelinkertaisesti varmistettu. Tämän takia tallennuskapasiteettia on ollut käytössä vain 500 Gt (25 % levykapasiteetista).

IMG_2462

RAID levyjärjestelmät ja tasot

RAID levyjärjestelmän huonona puolena voidaan pitää sitä, että vaikka ne selviävät levyrikosta, niin ohjainkortin leviäminen onkin kinkkisempi juttu. Jotta vanhan levypakan tiedot saisi luettua, tarvitaan identtinen laite (ohjain) johon levyt kytkeä. Vastaavan raudan hankkiminen voi kuitenkin olla hankalaa tai jopa mahdotonta kun aikaa on kulunut muutamia vuosia laitteen hankkimisesta. RAID -ohjaimen muokkaama ja tallentama data on aina valmistajakohtaista, jolloin eri valmistajan ohjain ei toimi vanhojen levyjen tietojen lukemiseen. Tämän takia vara ohjain tulisi hankkia samalla kertaa kun muuta järjestelmää on hankkimassa.

Softa RAID poistaa rautariippuvuuden, mutta koska aiemmin olen käyttänyt kaupallisia tuotteita, ongelma on aina ollut läsnä. Tästä syytä vanhassa järjestelmässä kummankin laitteen levyt oli peilattu laitekohtaisesti, sekä laitteet keskenään. Tällainen järjestely hukkaa valtavasti levytilaa, mutta sen pitäisi olla hyvin vikasietoinen sekä ohjainkortti että levyvikoja vastaan. RAID -tason valinta vaikuttaa myös tietojen luku ja kirjoitusnopeuteen.

RAID -tasoja löytyy muutamia:

  • RAID 0, eli tietojen lomitus. Tässä yhdistetään levyt yhdeksi asemaksi. Jos yksi levy hajoaa, kaikki tiedot katoavat. Tästä syystä RAID 0-tasoa ei tulisi käyttää sellaisenaan missään, ei ainakaan ilman varmuuskopiointia. Tämä vaihtoehto tarjoaa käyttöön 100 % asennetusta kapasiteetista. Tarvitsee vähintään kaksi levyä.
  • RAID 1, eli tietojen peilaus. Tässä sama data tallennetaan kahdelle levylle. Yhden levyn hajoaminen ei vaikuta tallennettuun dataan. Tämä vaihtoehto tarjoaa kahdella levyllä 50 % asennetusta kapasiteetista. Tarvitsee vähintään kaksi levyä.
  • RAID 5, vähän kuin RAID 0, mutta sisältää lisäksi pariteetti data levyn, jolloin minkä tahansa yksittäisen levyn hajoaminen ei kadota tietoja. Tämä vaihtoehto tarjoaa C * (N-1) kokoisen kapasiteetin, esimerkiksi kolmella levyllä toteutettuna 66 % asennetusta kapasiteetista saadaan hyötykäyttöön. Tarvitsee vähintään kolme levyä.
  • RAID 6 on kuten RAID 5, mutta yhden levyn sijaan siinä on kaksi pariteetti levyä, jolloin kaksi levyistä voi hajota tietojen katoamatta. Tämä vaihtoehto tarjoaa C * (N-2) kokoisen kapasiteetin, esimerkiksi neljällä levyllä toteutettuna 50 % kapasiteetista jää hyötykäyttöön, kuudella levyllä hyötysuhde nousee jo 66 %:iin. Tarvitsee vähintään neljä levyä.
  • RAID 0+1, yhdistää sekä tietojen lomituksen että peilauksen. Pelkkää 0-tasoa ei kannata käyttää, vaan käyttää esimerkiksi 0+1. Tämä vaihtoehto tarjoaa 50 % asennetusta kapasiteetista. Tarvitsee vähintään neljä levyä.
  • Lisäksi löytyy tasot 10, 50 ja 60, joita en tässä ala käymään läpi. Lisätietoa näistä ja edellä mainituista tasoista voi käydä lukemassa esimerkiksi täältä.

RAID levyjärjestelmä ei poista tietojen varmuuskopioinnin tarvetta, tästä syystä vanha järjestelmä oli toteutettu kahdella erillisellä laitteella jossa data sijaitsi. Täten myös uusi järjestelmä tulee sisältämään datat kahdessa eri järjestelmässä.

Vaatimukset uudelle levypalvelimelle:

  • Alhainen tehonkulutus
  • Nykyistä järjestelmää nopeampi (vanhassa noin 6Mbit/s)
  • Nykyistä vikasietoisempi => RAID 6 levyjärjestelmä
  • Reilusti kapasiteettia
  • Levyjen salausmahdollisuus
  • Helpompi korjata ja päivittää tarpeen tullen
  • Pitää saada sijoitettua räkkikaappiin
  • Etähallinta mahdollisuus


Vaihtoehdot

Kaupalliset isokapasiteettiset levypalvelimet ovat arvokkaita. Western Digitalin, WD My Cloud EX4 24 Tt -levypalvelin kustantaa 1710€, tukien tasoja 0, 1, 5 ja 10. RAID 5-tasolla kapasiteettia jää hyötykäyttöön 18 Tt. Tällöin varmennetun terabitin hinnaksi muodostuu 95€.

WD:n levypalvelin ei kuitenkaan tue RAID 6-tasoa, jolla seuraava levypalvelin oli tarkoitus toteuttaa. Koska tämä malli on jo näin kallis, laite joka tukisi 6-tasoa on vieläkin kalliimpi. Täten vaihtoehdoksi jää rakentaa levypalvelin itse. Näin toteutettuna levypalvelimesta saa juuri sellaisen kun haluaa ja varaosien hankkiminen on huomattavasti helpompaa ja halvempaa. Lisäksi omilla valinnoilla voi vaikuttaa järjestelmän kokonaishintaan, mutta valitettava tosiasia on että levykapasiteetti on se mikä maksaa kaikkein eniten.

Komponentit

Seuraavassa on listaus komponenteista jotka levypalvelimen osiksi lopulta valikoitui. Osa komponenteista on hankittu jo 4 vuotta sitten virtuaalipalvelinta varten, jotka jatkossa hoitavat levypalvelimen virkaa. Alle listatut hinnat ovat hankintahetkien hintoja, joten tänä päivänä saa varmasti nopeampaa ja halvempaa rautaa.

TuoteKuvausMääräá-hintaHinta yht.
KoteloSharkoon MS120 MicroATX144,90€44,90€
EmolevyAsus P7F-M1202,90€202,90€
ProsessoriIntel Core i5-760 2.8GHz1158,90€158,90€
KeskusmuistiG.Skill Ares DDR3 1333MHz 2x4Gb247,90€95,80€
TeholähdeSilentiumPC Vero L1 500W149,90€49,90€
KovalevytWestern Digital Red 3TB7113,90€797,30€
SSD-levytKingston HyperX FURY SSD 120 Gb244,90€89,80€
USB-muistiKingston DataTraveller micro 8GB17,90€7,90€
EtähallintaAsus ASMB4-iKVM1~20€~20€
RAID-ohjainLSI SAS 9211-8i164,77€64,77€
SATA-kaapelitHP Amphenol MiniSAS SFF-8087 to 4xSATA29,79€19,58€
Toimituskulut~15€
Yhteensä~1567€

Tällä kokoonpanolla kahdella pariteettilevyllä varmistetun levypalvelimen hyötykäyttö terabitin hinnaksi muodostuu 104,50€/Tt. Tässä ei selvinnyt yhtään halvemmalla kuin valmiilla kaupallisella tuotteella, mutta näin saan RAID 6 käyttöön, järjestelmä ei ole enää rautariippuvainen softa RAID:in ansiosta, sekä tietysti rakentamisen ilo. Lisäksi FreeNAS mahdollistaa julmetun määrän säätömahdollisuuksia, levyjen salauksen sekä erilaisten palveluiden ajamista, kuten iSCSI ja PLEX. Tosin vastaavia ominaisuuksia löytyy myös kaupallisista laitteista nykypäivänä.

Valintakriteerit

Levypalvelimeen ei kannata valita mitään kallista ja nopeinta rautaa. Emolevyksi kelpaa mikä tahansa emolevy, sen ei ole pakko olla palvelinkäyttöön tarkoitettu. Jos nurkissa pyörii vanha, mutta edelleen toimiva tietokone, on siinä hyvä alusta levypalvelimelle.

Koska halusin mahdollisuuden etäkäyttöön, oli ainoa vaihtoehto käyttää palvelinemolevyä. Palvelinkäyttöön tarkoitettuja microATX emolevyjä kourallisella SATA -liittimiä ei kuitenkaan ole helppo löytää ja kun sellaisen löytää, on hinta huikea (~600€). Prosessoriksi on valittu edullisin malli joka emolevyn kantaan sopii.

Koska halusin iKVM etähallinnan koneelle, enkä halunnut maksaa uudesta emolevystä järkyttäviä summia, tuli eteen levy/RAID -ohjaimen hankkiminen. Lähtökohtaisesti kaikki alle 100€ hintaiset ohjainkortit kannattaa unohtaa. LSI 9211-8i on piireissä hyväksi ja luotettavaksi kehuttu, joten päädyin itsekin samaan valintaan. Kyseinen ohjain on huomattavan kallis, noin 400€, mutta kuten laiteluettelosta voit huomata, en moista summaa ole kortista kuitenkaan maksanut. Lisää ohjainkortin hankkimisesta ja ohjelmiston päivittämisestä voi lukea toisesta blogauksestani.

ZFS -tiedostojärjestelmä on muistisyöppö, mitä enemmän keskusmuistia on, sitä parempi. Minimi muistinmäärä on 8 Gt, suositus vähintään 16 Gt. Koska entiseen virtuaalipalvelimeen olin aikoinani ostanut 16 Gt muistia, oli tämä puoli siltä osin kunnossa.

Kovalevyiksi valikoitui 7 kpl Western Digital RED 3 Tt, jotka on tarkoitettu NAS käyttöön. 3 Tt mallit valikoituivat kokonaishinnan perusteella. RAIDZ2 järjestelmässä on kaksi pariteettilevyä, halvin kombinaatio levyjen määrä suhteessa niiden hintaan muodostui 3 Tt levyistä, kun käyttökapasiteettitavoitteeksi asetti noin 15 Tt.

SSD levyt eivät ole pakollisia, mutta niillä pitäisi voida nopeuttaa levypalvelimelle kirjoittamista ja lukemista. Levyt toimivat välimuistina, mikäli keskusmuisti ei riitä. Jättämällä nämä levyt pois, saa systeemin hintaa pudotettua 90€.

Kotelo valikoitui ulkomittojen, sekä etusäleikön tuplapuhaltimien takia. Kotelo vetää vakiona tosin vain 2kpl 3,5″ kovalevyjä tai 4 kpl 2,5″ levyjä. Mikäli valmistaja olisi suunnitellut kovalevykehikon noin 5mm leveämmiksi, sekä olisi lisännyt reiät kovalevyille, olisi kotelossa ollut tilaa seitsemälle levylle, sentin ilmanvaihtoraoilla. Koska koteloa ei ollut näin toteutettu, piti sitä hieman modifioida. 5.25″ asemapaikalle saa asennettua vielä yhden kovalevyn, jota tulevaisuudessa voin hyödyntää vaikka Hot-Spare -levynä RAID -pakassa.

IMG_2266 IMG_2265

Vaikka kovalevyt ovat virtapihejä, vajaa 5W/kpl kirjoittaessa/lukiessa ja prosessori mahdollisimman pienitehoinen, valitsin hyvähyötysuhteisen 500W teholähteen. Järjestelmä syö arviolta 60W verran tehoa ollessaan päällä, joten teholähde riittää paremmin kuin hyvin. Virtalähde on mitoitettu lähinnä käynnistyshetkeä varten, sekä toimimaan mahdollisimman hiljaisesti alhaisella kuormituksella, sillä laitteisto tulee olemana päällä 24/7/365.

FreeNAS:in kotisivuilta voi lukea lisää järjestelmän minimivaatimuksista.

Jutun seuraavassa osassa käsittelen FreeNAS:in asennusta ja parametrointia.