sunnuntai 6. syyskuuta 2015

Raidipakka sanoo poks

Voi tätä onnenpäivää. Hienosti konfiguroitu serveri lähetti sähköpostia ja kertoi, että levyssä alkaa olla vikaa. Kannattaisi vaihtaa, ennenkuin sattuu jotain. Eli tuumasta toimeen, uusi levy tilaukseen ja paketin noudon jälkeen vaihtohommiin.

Kyseessä oli kolmen levyn raid5 pakka, vieläpä tuhdisti kryptattuna. Raid5 on siitä kiva, että siinä kapasiteettia menetään N-1 kaavalla. Sitä voisi kuvata vaikka näin, kun luodaan neljän levyn raid5 pakka ja tallennetaan sille 123 niin käy näin:

1 menee levylle 1
2 menee levylle 2
3 menee levylle 3
neljännelle levylle kirjoitetaan tarkistusluku 6.

Jos siis joku levy hajoaa, niin tallessa on joko kaikki kolme palaa tiedosta, tai kaksi palaa tiedosta ja tarkistusluku, josta voidaan laskea puuttuvan palan sisältö. Perinteinen raid1 kestää myös yhden levyn hajoamisen, mutta levyjen yhteiskapasiteetista 50% menee varmistukseen. Kolmen levyn raid5 käyttää varmistukseen 33% kapasiteetista ja neljän levyn enää 25%.

Joten ei kun toimeen ja levyn vaihto käyntiin:

#mdadm --fail /dev/md2 /dev/sdd1
#mdadm --remove /dev/md2 --remove /dev/sdd1

Hajoamassa ollut levy siis merkattiin huonoksi ja poistettiin raidipakasta. Sen jälkeen sähköt pois, levyn vaihto ja kone käyntiin. Uusi levy piti partitioida, koska eri valmistajien levyt on hieman erillaisia, en ollut käyttänyt levyjen koko kapasiteettia. En viitsinyt laskea monenko blokin kokoinen partio on tehtävä, joten arvelin homman hoituvan helpoiten kopioimalla partitiotaulu toiselta levyltä:

#sgdisk --replicate=/dev/sdf /dev/sdd

Ja enterin lyömisen jälkeen tuli ei vit.. kun tajusi tehneensä kunnon mokan. Kaikissa konsolin tiedostokäskyissä logiikka on "mistä minne". Tuo olikin poikkeus, joka tekee operaatiot päinvastoin. Se siis kopioi tyhjän levyn partiointitaulut alkuperäisen raidilevyn päälle. Pikainen pelastusyritys eli viimeisen raidilevyn paritiointitaulun kopiointi juuri sileäksi vedetyn ja tyhjän levyn päälle ei auttanut: raidipakka hiljeni.

Teoriassa tuota olisi voinut vielä yrittää pelastaa hajoamisoireista ilmoittaneen levyn ja raidipakan ainoan ehjän levyn avulla, mutta olkoot. Se oli varmuuskopiopakka, jonka oleelliset tiedostot oli valtaosin muutenkin tallessa. Raid 5 on siitä inhottava, ettei jos jotain menee pieleen kun se kasaa itseään hajonneen levyn vaihdon jälkeen, on kaikki menetetty.

Ensi kerralla taidan vain laittaa uuden levyn usb koteloon, lisätä sen raidipakkaan varalevyksi paritioinnin jälkeen ja merkata hajoavan levyn vasta sitten huonoksi, jonka jälkeen tietojen pitäisi siirtyä varalevylle.

Ei kommentteja:

Lähetä kommentti