Džiugiai pranešu, kad pagaliau pradėsiu rašyti įvairiomis temomis apie inkiliuko protinimą. Pats ilgai laukiau šito momento, bet nenorėjau tuščiai filosofuoti, nes dažnai sprendimai pasikeičia kokį tūkstantį kartų iki realaus įgyvendinimo. Net ir šis įrašas būtų buvęs kitoks, jei būčiau rašęs ankščiau. Juolab kai kalbama apie DIY sprendimą. Bet paskui reiktų rašyt naujus įrašus apie pasikeitimus, kaip kad D rašė apie interjerą. (Ir galimai rašys dar…) O tų pasikeitimų per metus buvo nemažai.

Rašydamas bandysiu labiau vadovautis „agile” metodologija. T.y. rašysiu apie atskiras sistemos dalis, ir tik apie tas, kurios jau įgyvendintos. Ne veltui krioklio metodologija (kai pirma daromas projektas, o paskui įgyvendnimas… Nu arbaaa pagal faktą pritempiamas projektas) smagiai miršta šių laikų programavime. Tiesą pasakius, aš kai dar pusėtinai jaunas (tolumoje kikena D) programeris, ta prasme nė dviženklio skaičiaus metų nedirbu, tai nelabai man su kriokliais teko susidurti, apart tų gamtinių. Na gal tik banke truputį susidūriau, nes ten vis dar reikėjo dokumentacijos kai pradėjau dirbt, bet ir šaldytuvo instrukcija kuo puikiausiai sueidavo…

Šiai dienai situacija tokia: kaip pas tikrą dizainerę, grindų plytelės atvažiuoja greičiau, nei išliejamos pačios grindys, taip ir programeris suderina, kad šviesos laidas name internetą pradeda tiekti greičiau, nei sutvarkoma elektros instaliacija, ar tuo labiau pradedama name gyventi. Tiesiog norėjau greičiau susitvarkyti su kasinėjimais, o ir vieną kitą kamerytę paleist jau būtų neblogai. Tuo pačiu džiaugiuosi, kad pakentėjau dar metus ir išėjo avietė su 8GB RAM, kuri pagaliau nebenaudoja vieno kontrolerio ant USB ir LAN, atsirado gigabitinis ethernet ir USB 3.0. Na, o rugpjūčio pradžioj šitas džiaugsmas atsidūrė ir mano rankose.

Raspberry pi 4 8GB

Ėmiau visą komplektuką: korpusas su radiatoriais, maitinimo šaltiniu, laidais, SD kortele, ir t.t. Aktyvaus aušinimo turbūt nenaudosiu, bet visumoj patenkintas šituo komplektu. „Maitekas” geras, sunkus, 3 amperų – jaučiasi, kad visai kokybiškas, neblogai telefoną krauna.

Tai, kad jau vyksta kažkas ir raspberis greitai nutūps inkile, pradėsiu drėgmes gal kokias stebėti ir temperatūrą. Ta proga pasakosiu šiandien jums, kaip nebrangiai pasidaryti patikimą duomenų saugyklą jūsų programų duomenims vieno raspberio konfigūracijoje. O bent jau pas mane tų programų suksis ne tiek jau ir mažai. Didelė dalis ir dabar jau veikia, bet skirtinguose raspberiuose arba jų alternatyvose.

Tai kokie variantai?

Viskam naudoti Raspberry SD kortelę

Aišku kaip tikram vyrui, tai galima viską saugot raspberrio SD kortelėj be jokių atsarginių kopijų, nes tikras vyras jaučia kai SD korta jau į pabaigą. Negalima. Man net akis trūkčioti pradeda, vien pamačius ar išgirdus apie tokį variantą. Kai kuriuose blog’uose yra pasvarstymų, kad pirk brangią kortelę ir daryk „read-only” – aha pažiūrėčiau kaip jums duombazė kokia veiks. Gal tada ram-disk iškart daryt? Dar kai kur svarstoma, kad su laiku kortelės bus patikimos. Tai P sako – nebus, ir šiaip atrodo kvaila neturėti jokio plano B.

P patirtis su „Raspberry’iais” ir SD kortelėm

Su Raspberry pi galima sakyt esu nuo pat jo išleidimo. Dar kaip šiandien pamenu, kad tais 2012 metais buvau Erasmuse Danijoj, padariau pre-order ir prieš grįžtant Lietuvon gavau pačios pirmosios avietės B versiją (tuomet B nuo A skyrėsi tuo, kad B turėjo LAN jungtį) su 26 GPIO „pin’ais” (visi naujesni nuėjo su 40 „pin’ų”, net buvo išleista pirmojo raspberio B+ versija ir su 40 pin’ų, raspberry pi zero (kurį irgi turiu) – ir tas turi 40 pin). Gan greit jame apgyvendinau visokių skriptų skirtų prisijungimams į svetaines, kad duotų taškų, torrentų parsisiuntimo serverį, paprastą NAS pasidariau perkėlimams tarp kompų. Vienu metu net įsigudrinau naudoti kaip bitcoinų USB įrenginių (buvo tokie USB čipai kurie galėdavo kasti bitcoinus) kasimo servą. Nuo to laiko ir radiatoriai atsirado ant avietės, nes pradėjo perkaitinėt USB/LAN chipas. Na, o vėliau greitai tas „raspberris” atsidūrė pas tėvus name valdyti signalizacijai per telefoną ir ten guli iki šiol.

Užmaitintas nuo signalizacijos akumo. Stovi USB>RS232 keitiklis. Signalizacija: DSC

Ir veikia jau šita sistema kokius 6 metus. Ar buvo nusprogus kortelė? Taip. 2 kart. Bet nei vieno karto nenusprogo dėl amžiaus ar „sudrožimo”. Iš pradžių rakinėjau į read-only rėžimą kol daėdė keitinėt kaskart kai nori kažką atnaujint programoj. O dar vėliau pradėjau saugoti duomenis ir apie zonų suveikimus, tada read-only net ir nebetiko. Ir korta buvo ne pirmos jaunystės, išimta iš fotiko (nes nu studentas), LEXAR berods 4GB. Pirmas nusprogimas įvyko po 4 metų naudojimo kažkur. Kirto žaibas į telefono liniją greičiausiai, nes nusprogo DSL modemas, ir nusprogo SD korta. Sutapimas? Nemanau. Antras kartas įvyko po metų. Tuomet dar LESTO kažką sumalė su tinklu, kad dingo nulis, susvyravo įtampa tinkle – nusprogo nemažai buitinės technikos, nusprogo ir signalizacijos maitinimo blokas, nusinešė ir naują SD kortą kartu. Vėl gi – pats raspberris liko sveikas, Į sugadintos įrangos sąrašą įtraukėm tą SD kortą – kompensavo .

Dar vienas nelaimėlis, kurio SD kortelė išėjo pasivaikščioti anapilin, yra Orange Pi Zero. Tai mielas ir kompaktiškas kompiuteriukas turintis 4 branduolių nebaisiai galingą procesorių ir 512MB RAM. Ir dar net WiFi turi ir pigus buvo, dėl to ir paėmiau, nes gal kur nors prireiks, o kur, net negalvojau tuo metu.

Orange Pi zero mielas ir kompaktiškas kompiuteriukas su dėžute.

Ilgą laiką šitas kompiuteriukas veikė kaip VPN serveris ir nieko daugiau. Paleidus PD namo blog’ą, spėkit kur jis sukosi. Taip – šiame mielame kompiuteriuke, ir jei galėjot pastebėti pradžioje, blog’as buvo kiek lėtokas. Nors D sakė, kad viskas čia gerai. Ir taip jau nutiko, kad jame SD kortelė mirė nuo amžiaus turbūt, nes ir įdėta buvo tikrai ne pirmos jaunystės – pirma pasitaikiusi iš stalčiaus. Šiuo metu pats kompiuteriukas stovi be panaudojimo, nes blog’as perkeltas suktis ant Odroid XU4, kas turbūt tuo metu kai įsigijau (2015 metais) buvo geriausia, ką galima nusipirkti už pinigus iš tokio tipo kompiuterių. 8 branduolių Samsung Exynos procesorius (kažkas panašaus, kas ėjo ir Galaxy S serijos flagmanus). Vis gi korėjiečių kompanija gamina šitas avietės privalgusias šustrų morkų. Teko pagudrauti, kad atsisiųsčiau į Lietuvą, nes nesiuntė iš pradžių, ir ebėjuose nebuvo. Esminis skirtumas nuo kitų tokio tipo kompiuterių, kad gali naudoti tiek SD kortelę, tiek greitesnę eMMC atmintį. Tai vardan greičio – SD kortelės net ir nebandžiau. Plačiau jei kam įdomu:
https://www.hardkernel.com/shop/odroid-xu4-special-price/

Jei susidomėsit pirkti, tai asmeniškai man kliūnantis dalykas, kad XU4 pakankamai mėgsta kaisti. Originaliai ateina su aktyviu aušinimu, kuris garsiai ūžia. Aš ilgą laiką eksperimentavau su milžinišku radiatorium, tačiau galop vistiek teko primontuoti aušintuvą, nes stipriau ir ilgiau prismaugus – nesusitvarko, reikia apriboti dažnį procesoriaus norint naudoti be aušintuvo arba laikyt visiškai nuogą be jokios dėžutės.

Šiuo skyriumi norėjau pasakyti, kad iš asmeninės patirties, kuri ne tokia jau ir trumpa, SD kortos miršta ne tik nuo amžiaus ir drožimo.

Kaip P saugojosi nuo duomenų praradimo?

Per visas nutikusias gamtos išdaigas su žaibais, LESTO pokštus ar senatvės požymius nepraradau jokių svarbių duomenų. Lyg ir.

Nuo pat pirmųjų nuolatinio naudojimo dienų atsarginėms kopijoms naudojau smagius, mažiukus, nedidelės talpos USB raktus, kurių buvau visą krūvą iš gerųjų kiniečių atsisiuntęs. Dar ir dabar keli likę, bet didžioji dalis išdalinta arba išmėtyta. Principas paprastas – viskas sukasi iš SD kortos ir visiškai nesuku galvos kokia ta SD kortelė. O programų duomenų atsarginės kopijos kuriamos pagal pasirinktą dažnumą į USB raktą, kuris prijungtas per autoFS prie avietės.

AutoFS leidžia prijungti (primountinti) pasirinktą resursą tik tada, kai kreipiesi į jį žinodamas tikslų path iki jo, kitu atveju jis sistemoj nematomas. Jei diskas nenaudojamas, tai po kurio laiko atjungia jį ir vėl reikia žinot tikslų path.

Prie Odroido dar ir dabar yra taip primountintas USB raktas. Galima matyt, kad diskas prijungiamas tik po cd disk komandos.

Mano religiniai įsitikinimai sako: tokiu būdu sistema nemato, kad yra prijungtas diskas tai jo ir nedrožia šiaip sau.

Nenaudojau USB rakto programos duomenų saugojimui tiesiogiai, nes tada kaip ir du nekontroliuojamai drožiami taškai gaunasi – ir SD kortelė ir USB raktas.

Įsigijus Odroid pakūriau patikimą prie tinklo prijungtą diską, į kurį ir darydavau kopijas jei jis „online”, bet tuo pačiu neatsisakiau kopijų ir į USB raktą, nes tas patikimo tinklo disko projektas nebuvo toks jau patikimas. Papasakosiu gal kituose įrašuose, kas atsitiko.

Kaip bus šį kartą?

Šį kartą bus kažkoks hibridas, tarp patikimo tinklo disko ir USB rakto atsarginėm kopijom. Pasimokęs iš savo tinklo disko su aviete ar jos alternatyvomis privalumų ir klaidų, šį kartą patikimą diską nusprendžiau konstruoti iš nedidelės talpos USB raktų. Tuo labiau kad programoms daug vietos nereikės. Bent jau pradžioje. Paskui gal duombazės ir prisipildys. Idėja paprasta – kelis vienodos talpos raktus apjungti į vieną bendrą diską. Taip nukelsiu ir krūvį nuo SD kortelės.

Ką tai duoda?

Priklausomai nuo pasirinktos konfigūracijos, galima išlošti greičio arba saugumo, arba ir to, ir to. Saugumas pasireiškia tuo, kad paaukojus tam tikrą dalį vietos (vėl gi – priklausomai nuo pasirinktos konfigūracijos ir USB raktų kiekio) veikimo metu „leidžiama” sugesti betkuriam vienam ar keliems (priklausomai nuo konfigūracijos) USB raktams, ir duomenys nebus prarasti. Užteks sugedusį USB raktą pakeisti nauju tokios pat ar didesnės talpos, pridėti jį prie masyvo ir bus viskas atkurta. Net nieko perkrauti nereikia. Viskas kas veikė, veiks sėkmingai ir toliau. Čia yra kažkas tokio, ką gal net registrų centras naudoja, bet nebūtinai teisingai, arba nebūtinai ten kur reikia. Tik žinoma rimtiems reikalams naudojami „hardware” kontroleriai, aš naudosiu programinį kontrolerį.

Koks skirtumas nuo atsarginių kopijų?

Skirtumas tas, kad atsarginių kopijų darymui reikia parinkti kopijų darymo laiką ir dažnumą. Paleidus kelis blog’us, kopijas padažninau, kad darytų kas dvi dienas. Paprastesnių projektų kopijas darydavau kas savaitę. Su dabar aprašoma konfigūracija gausiu pakankamai saugią duomenų talpyklą realiu laiku, kurios saugumą galima dar padidinti pridėjus papildomų raktų ir pakeitus masyvo konfigūraciją iš RAID1 į tarkim RAID6. Tačiau net ir su diskų masyvu, pačių kopijų darymo neatsisakysiu, tik galimai praretinsiu iki karto per savaitę.

Kokia konfigūracija?

Iš pradžių galvojau, kad tai bus RAID5 masyvas iš 3 arba 4 USB raktų, kaip ir tinklo disko projekte, bet nusprendžiau, kad nenoriu prasidėti su USB šakotuvais (jie labiausiai ir kišo koją patikimumui), nes jie užimą vietą, o raspberis turi tik dvi USB 3.0 jungtis. Tad paskutiniu metu nusprendžiau, kad bus RAID1 masyvas iš 2 USB raktų, nes gal pradžioj man daug vietos ir nereikės, o vėliau vistiek planai kiti, kuriems šitas sprendimas netiks. USB 2.0 jungčių nenaudosiu, nes neišnaudos rakto greičio potencialo ir plius visas masyvas tada remiasi į lėčiausiai veikiantį USB raktą.

Apie RAID lygius čia: https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0

P patirtis

Kaip ir minėjau 2015 metais pradėjau žaisti su patikimo tinklo disko projektu, kurį sudarė 4 tradiciniai diskai po 500GB sujungti į RAID 5 masyvą – bendra talpa 1.5TB. Su nesklandumais vienaip ar kitaip susidorojau greičio sąskaita, ir tas tinklo diskas užkuriamas ir dabar, kai reikia, bet gavosi nepraktiškas.

Kokie USB raktai?

Nieko brangaus neieškojau, bet vis gi norėjau padorių greičių. Pasižiūrėjau AliExpresą, tai nieko ten nesuprasi kokie greičiai – pabijojau. Galvojau gal SD korteles daryt su skaitytuvais, bet truputį išbrangsta ir vėl su tais greičiais sunku ten suprast. Ir tada netyčia užmačiau šituos ir net Lietuvos parduotuvėse padori kaina, tai paėmiau iš Topo centro 4 tokius 32GB po nepilnai 6EUR už vienetą. Taip – tada dar galvojau, kad bus iš 4 raktų. Pirma ką pasidariau, tai atlikau greičio matavimą – neblogai.

Greitis USB 3.0 lizde.
Čia, kad nekiltų klausimų kodėl nenoriu USB 2.0 jungčių naudoti.
Tie USB raktai maži, tai nekelia jokių problemų, kad užsilauš ar netilps.

Kaip?

Na nieko sudėtingo tikrai nėra, nereikia net būt penktoku. Visų pirma atsisiunčiam mdadm:

sudo apt install mdadm

Pasitkrinimui kur kokie diskai, pasileidžiam:

sudo fdisk -l

Mano dalis komandos atsakymo:

Mano norimi USB raktai masyvui yra sda ir sdb

Kad galėtume sukurti diskų masyvą, paleidžiame tokią komandą. Po level= įrašote savo norimą – šiuo atveju tai level=1 atitinka RAID1, visi kiti parametrai turbūt savaime aiškūs. Mdadm perspės jus, kad nurodyti diskai bus suformatuoti, ir viską prarasite, tad porno persikelkit iš anksto.

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

Vat ir viskas, diskų masyvas gatavas ir iš nurodytų fizinių diskų sukurtas vienas. Galima pasitkrinti su:

sudo mdadm --detail /dev/md0

Dabar masyvą reikia suformatuoti norima failų sistema. Mano atveju ext4:

sudo mkfs.ext4 -F /dev/md0

Ir viskas. Mountinam kur norim, jei reikia susikuriam direktorijas mountinimui:

sudo mkdir /mnt/raid
sudo mount /dev/md0 /mnt/raid

Ir dabar diskas gatavas naudoti. Įdomumui galima prasileisti:

df -h -x devtmpfs -x tmpfs
Skirtingas RAID levelis skirtingai vietos pasiims. Mano atveju iš dviejų USB 32GB raktų gaunasi vienas, bet patikimas.

Ir į /etc/fstab pridedam tokią eilutę, kad prijungtų mums diską su sistemos pasileidimu:

/dev/md0    /mnt/raid    ext4 defaults 0 0

Perkraunam avietę ir perkrovus pasitikrinimui dar galima paleist komandą:

mount | grep md0

Jei duoda atsakymą, reiškia viskas veikia.

Toliau diską galite naudoti kur tik širdis geidžia.

Pabaigai

Tikrai neverčiu naudoti tokios konfigūracijos, įrašas labiau informacinis. Vis gi jei ketinate leisti išmanius namus ir vienaip ar kitaip naudoti avietę, o įpatingai jei ketinate saugoti visokius telemetrinius duomenis, kaip temperatūros, statusai ir t.t., primigtynai siūlyčiau galvoti apie kažką patikimiau nei tik avietės SD kortelė. Jos nepatikimos ir niekad nebus patikimos. Ir net brangiausią SD kortelę galima nesunkiai sugadinti su elektros iškrova. Ir šiaip laikyti duomenis saugiais, nes porą metų nebuvo jokių problemų – kvaila.

Kažkada greitai bandysiu aprašyti kaip lengvai ir paprastai organizuoti ir konfigūruoti programas/serverius ir jų duomenis, kad būtų lengva juos tvarkyti, ir daryti atsargines kopijas.

Bonus

Darbai sėkmingai vyksta toliau:

  • Išliejo grindis.
  • Apšiltino fasadą ir nepataikė su dekoratyvinio tinko spalva. D gal norės kada prie progos apstumt mane dėl to, tai sukals kokį įrašą.
  • Sumontavo lauko duris ir garažo vartus.
  • Atvedė dujas tiek iki sklypo, tiek ir į namą.
  • Kaip ir minėjau, atvedė šviesos laidą į chatą. Sakė imi 1gbps 2 metus ir nereikės mokėt už kabelio klojimą. Sutikau.