Viallisen kovalevyn vaihtaminen TrueNAS:ssa

Tässä bloggauksessa käsittelen hajonneen kovalevyn vaihtoa. Levyn hajoaminen voi olla äkillinen, eli se hajoaa varoittamatta, tai sen toiminta alkaa hiljalleen heikkenemään kirjoitus ja lukuvirheiden myötä. Alussa käyn läpi varmuuskopioiden tärkeyden, sekä mikä RAID on. Tämän jälkeen siirryn varsinaisiin ohjeisiin.

Varmuuskopioiden tärkeys

Säilytän levypalvelimella pääasiassa valokuvia ja videointeja, joten niiden tallessa pysyminen on varsin tärkeää. Varmuuskopioiden tekeminen on paras tapa varmistaa tiedon säilyminen, mutta mikäli tätä ei ole automatisoitu, varmuuskopioiden tekeminen saattaa unohtua.

Varmuuskopiointi on ainoa tapa, jolla vahingossa poistettu tieto saadaan palautettua. Toisaalta tieto voi kadota hajonneen kovalevyn seurauksena. Kovalevyn hajoamisen varalta on olemassa erilaisia RAID-tasoja, joilla yksittäisen tai useammankin levyn hajoaminen ei aiheuta tietojen menetystä. Täytyy kuitenkin muistaa, että oli käytetty RAID-taso mikä tahansa, ei se estä vahingossa poistetun tiedon katoamista.

Mikä ihmeen RAID?

Redundant Array of Independent Disks, on tapa tallentaa tietoa usealle levylle siten, että levyn hajoamisen myötä tiedot säilyvät. Tämä perustuu tiedon hajauttamiseen ja pariteettidatan tallentamiseen, jota hyväksi käyttämällä hajonneen levyn tiedot voidaan luoda ’tyhjästä’. Tosin RAID 0-taso on poikkeus, siinä yksittäisen levyn hajoaminen kadottaa kerralla kaikki tiedot.

Käytössäni on RAID-Z2 (vastaa RAID 6), joka lyhykäisyydessään tarkoittaa sitä, että levyjärjestelmässä on kaksi ylimääräistä levyä. Minkä tahansa kahden levyn yhtäaikainen hajoaminen ei aiheuta tiedonmenetystä. Kolmannen levyn hajoamisen myötä kaikki katoaa. Kahden levyn samanaikainen hajoaminen on hyvin epätodennäköistä, kolmen levyn hajoamisesta puhumattakaan.

Levyn vaihtamisen tärkeys

Rakentamani levypalvelin koostuu 7 kpl 3TB Western Digital WD RED NAS levystä, joista kahden levyn verran käytetään pariteettidatan tallentamiseen. Rakensin levypalvelimen vuonna 2016, eli se on lähes 8 vuotta vanha. Kovalevyillä on käyttötunteja reilu 50000h, eli reilun 6 vuoden edestä lähes tauotonta pyörimistä. Viimeiset 2 vuotta palvelin on ollut käytössä vain tarvittaessa korkean energiahinnan takia. Käynnistyskertoja levyillä näyttää olevan vain 165. Käyttötuntien perusteella ei ole ihme, että levyt alkavat hiljalleen ilmoittelemaan toimintahäiriöstä.

Toimintahäiriöstä ilmoittava levy on syytä vaihtaa uuteen nopeasti, sillä koskaan ei tiedä milloin seuraava levy alkaa piiputtamaan. Koska palvelin tekee pariteettilaskennan luentaa ja kirjoitusta levyille, on viallisen levyn poistaminen ja uuden lisääminen varsin raskas operaatio olemassa oleville levyille. Tästä voi seurata uusi levyrikko. Tämän takia odotteluun ei ole aikaa, ja niiden varmuuskopioidenkin on syytä olla kunnossa, ihan varmuuden vuoksi.

Vaihdon suorittaminen

Levyn vaihto-operaatio on varsin suoraviivainen prosessi:

1. Kirjaudu TrueNAS:iin

2. Tarkistetaan oikean yläkulman kellosta hälytykset

3. Valitaan vasemmalta Storage => Pools

4. Valitse ratas -kuvake => Status

5. Tarkista levyjen status. Kunnossa olevien levyjen tila on ONLINE, viallisessa levyssä UNHEALTY. Levy ei välttämättä ole mennyt UNHEALTY-tilaan, vaikka siinä virheitä olisikin. Virheet ovat peräisin tällöin levyn omasta S.M.A.R.T-diagnostiikasta.

6. Valitaan vasemmalta Storage => Disks

7. Käydään läpi levy kerrallaan tarkistamalla S.M.A.R.T test results. Hälytysluettelon mukaan levyistä da5 ja da6 löytyvät ongelmat. Ota samalla talteen levyn sarjanumero, sillä tarvitset sitä myöhemmin varmistaaksesi, että olet vaihtamassa oikeaa levyä.

8. Valitettavasti S.M.A.R.T test resultsin kautta ei tule hullua hurskaammaksi, sillä näkymä tarjoilee vain mystisen error koodin. Sivu kertoo myös levyn käyttötuntimäärät, jotka tässä tapauksessa on 53829 tuntia, eli noin 6 vuotta ja 2 kuukautta.

9. Kattavat testitulokset on mahdollista saada näkyviin Shell:in kautta, jonka saa valittua vasemmasta reunasta.

10. Kirjoita avautuvaan ikkunaan smartctl -a /dev/xxx, jossa xxx on haluamasi levyn laitetunnus, esim. da5. Tietoa tulee useamman sivun verran, syyllinen täytyy osta kaivaa kaiken tämän seasta. Alla kuvakaappaus osasta saamaani raporttia.

Pääasiassa useimmat rivit raportoivat vanhasta iästä. Ikä itsessään ei mielestäni ole mittari tai syy vaihdolle, toki kun levyillä alkaa olla ikää, voi olla hyvä hankkia levy, jos toinenkin varalle. Tällöin toimenpiteisiin pääsee puuttumaan heti, eikä esimerkiksi vasta 3 viikon päästä kuten minulla.

Lukuvirheiden määrä on kasvussa, samoin levyn käynnistyminen on hitaampaa, sekä jotain sektorin siirtämisiä on mahdollisesti tehty. Nämä ovat vasta ennakkoilmoituksia, ja koska energiansäästösyistä palvelin on ollut päällä näiden kolmen viikon aikana vain pari vuorokautta yhteensä, en ole pitänyt kovin suurta kiirettä levyjen vaihdon kanssa.

Toisaalta kun ennakkoilmoituksia oli jo kahdella levyllä, niin niitä voi pian ilmaantua myös muille levyille. Joidenkin mielestä ennenaikaista hötkyilyä, mutta ennemmin sitä kuin kaiken tiedon menettäminen. Vian havaittuani tein osittaiset varmuuskopioinnit ja uusien isompien varmuuskopiolevyjen saavuttua (2x 16Tb) tein täydelliset varmuuskopiot.

11. Kun vialliset levyt on paikannettu ja päätös levyjen vaihdosta on tehty, mennään jälleen Storage => Pools => Ratas -kuvake => Pool status. Etsitään haluttu levy, joka halutaan poistaa käytöstä, esimerkiksi da5. Painetaan vastaavan rivin perässä olevaa kolmea pistettä, ja painetaan Offline.

12. Levyn ohjelmallisessa irrottamisessa tulee olla huolellinen – ettet irrota vahingossa väärää levyä. Enkä suosittele irrottamaan ja vaihtamaan kuin yhden levyn kerrallaan (vaikka käytössä olisi RAID-Z2 tai -Z3).

Mikäli levy on salattu, kuten minulla, ilmestyy varotus, jossa ilmoitetaan, että Offlineen laitettua levyä ei voi laittaa takaisin Onlineen. Valitaan Confirm, ja painetaan lopuksi Offline.

13. Tämän jälkeen valittu levy menee OFFLINE-tilaan, ja levypakka DAGRADED-tilaan. Nyt voit sammuttaa palvelimen.

14. Kun palvelin on sammunut, avaa kotelo ja poista viallinen levy. Tässä kohtaa tarkista, että ohjelmallisesti irrottamasi levyn sarjanumero vastaa fyysisen levyn sarjanumeroa. Liitä uusi levy tilalle (samankokoinen tai suurempikapasiteettinen), ja käynnistä kone.

15. Käynnistymisen jälkeen mennään jälleen Storage => Pools => Ratas -kuvake => Pool status. Yksi asemista on kadonnut ja tilalle on tullut mystinen kirjainhirviö. Tämä on se puuttuva levy, joka ei ole vielä osana RAID-pakkaa. Valitaan samalta riviltä kolme pistettä, ja Replace.

16. Avautuvasta ikkunasta valitaan levy, joka halutaan ottaa uutena käyttöön. Erikoista tässä on se, että vaikka irrotin levyn da5, niin irrotuksen jälkeen aiempi da6 muuttui da5:ksi. Eli kun olen liittämässä uutta levyä systeemiin, epäintuitiivisesti valitsekin levyn da6, sen irrotetun da5:n tilalle. Koska levyni on salattu, täytyy myös salauksen tunnussana syöttää.

17. Palvelin rouskuttaa noin minuutin, jonka jälkeen tulee ilmoitus onnistuneesta levynvaihdosta. Ikkunan voi sulkea.

18. Vaikka kaikki käyttäjän toimenpiteet ovat tehtynä, on vaihto kaikkea muuta kuin valmis. Koska uusi levy on täysin tyhjä, ei se vastaa RAID-Z2 konfiguraatiota. Eli puuttuvat tiedot on kopioitava muilta levyiltä. Toisaalta muut levyt eivät sisällä sitä tietoa mitä tällä levyllä pitäisi olla, vaan palvelin joutuu laskemaan olemassa olevien levyjen tiedoista puuttuvan datan pariteettien perusteella, tätä toimenpidettä kutsutaan resilvering:ksi. Tämän operaation kesto riippuu niin käytettyjen levyjen koosta, levyillä olevan tiedon määrästä kuin RAID-pakan leveydestä (minulla 7 rinnakkaista levyä yhdessä poolissa).

Alussa arvio näytti yli 24 tuntia, mutta aika lyhenee todellista nopeammin. Todellisuudessa aikaa kului noin 13 tuntia.

19. Kun puuttuva data on saatu luotua ja siirrettyä levylle, on operaatio lopullisesti valmis.

Helppoa, mutta kuumottavaa

Vaihto-operaatio oli hieman jännittävä, sillä tämä oli ensimmäinen kerta, kun jouduin tämän tekemään – ja vielä kahdesti peräkkäin. Etenkin tuo kohdan 12 levyn irrottaminen ja siitä tullut varoitus, että levyä ei voi enää liittää takaisin hieman epäilytti. Pienen selvittelyn jälkeen selvisi, että mitään epämääräistä tai ennakoimatonta ei ole tapahtumassa. Kunhan vaan sen oikean levyn irrottaa, ettei joudu tekemään yhtä ylimääräistä resilvering kierrosta.

Toinen jännityksen aihe oli, miten olemassa olevat levyt kestävät tuon 13 tuntia kestävän rääkin, niin ikään kahdesti. Jo aiemminhan levyt olivat huutaneet noin 17 tuntia varmuuskopioinnin merkeissä. Onneksi ongelmia ei esiintynyt, eikä levyille ilmaantunut myöhemmin tehdyssä S.M.A.R.T testeissä virheitä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

This site uses Akismet to reduce spam. Learn how your comment data is processed.