QNAP: ko nedaryti ir dalis namo proto

Posted: 2018-03-08 in Darbeliai
Žymos:, , , ,

Kai pirkau QNAP TS-451A serveriuką, tai jis komplekte turėjo 2 GB RAM. Na, šiais laikais tai ne atmintis, o sklerozė — mano telefonas turi 6 GB RAM. Tad vienas iš pirmųjų dalykų, kuriuos iš karto planavau tobulinimui — atminties išplėtimas. Šis modelis gali būti aprūpintas daugiausiai 8 GB RAM. Tai šiek tiek liūdina, bet visgi TS-451+, ant kurio iš pradžių varvinau seilę, visgi man pasirodė per brangus. Todėl su visokiais pasvarstymais pagalvojau, kad visgi 8 GB RAM man užteks. Na, jei netyčia visgi neužteks, tai teks keisti visą NASą 🙂 Visgi manau, kad kelerius metus bus ramu.

Taigi ėmiausi RAM išplėtimo. QNAP puslapyje instrukcijos aprašytos ir detalios: https://www.qnap.com/en/support/con_show.php?op=showone&cid=9#5_4

Žmonės internetuose skundėsi, kad blogai čia tą RAMą keisti, sunku prieiti prie jo:

Ardomas QNAP TS-451A NAS serveris | Darau, blė

Na, bet pačių QNAP puslapyje nurodyta, kad reikia atsukti varžtelius ir nuimti kietųjų diskų rėmą, tada viskas yzy:

Ardomas QNAP TS-451A NAS serveris | Darau, blė

Pakeisti atmintį pavyko be problemų, tik NASas labai jau ilgai užsikraudinėjo. Nors jis apskritai labai ilgai kraunasi. Paskui jau veikia tikrai sparčiai ir patenkinamai, bet va užsikūrimas žiauriai lėtas. 5 minutės kaip minimum, bet gali būti ir daugiau — visos 10.

Taip pat dar supratau, kad NTFS draiveris yra labai gremėzdiškas ir ėdantis resursus. Aišku, aš irgi buvau optimistas. Į priekyje esančią USB 3 jungtį įjungiau nuotraukų diską ir paleidau jas kopijuoti. Tada apsižiūrėjau, kad yra QVR (apsaugos kamerų programinės įrangos) atnaujinimas. Pagalvojau, ai, davai, tuo pačiu…

Gavosi taip, kad QNAP’as vos vos vilkosi, atnaujinimas nepavyko, teko dar ir Docker konteinerius visus perrašyt iš naujo, ir kameras iš naujo perkonfigūruot. Kol kopijavo nuotraukas iš NTFS disko, aparatas tapo praktiškai nenaudojamas. Žodžiu, kai darote kokias nors kopijas — šiukštu nepradėkit kokių nors konfigūravimo ir atnaujinimo darbelių 😀 Žinoma, tas ir taip turėtų būti aišku, bet va kartais kažkaip šauna į galvą tokios eretiškos mintys.

QVR, beje, ypač naujausiąja (šiuo metu) 1.0.1.0 versija, esu labai patenkintas. Kliento programa yra net Linux, tik ji, tiesa, kiek vėlavo pasirodyt. Bet viskas labai liuks, veikia puikiai. Androido QVR Client irgi liuks, nors trūksta video srauto eksporto. Visgi prasukinėti istoriją labai patogu ir greita.

Taip pat dar sugalvojau, kad nėra ko man ant Avietės laikyti Home Assistant. Ir būtent tos Avietės, kuri per CAN magistralę prižiūri mano šviesas. MQTT irgi iškelsiu lauk. Tegu dirba QNAPas.

Pagrindinė to priežastis — du SD kortelių gedimai jau šiemet. Mano trečioji Avietė, kuri dirba irgi tokiu nedideliu serveriuku, buvo ekstra tvarka atnaujinta, kai nustojo veikti spausdintuvas. Pažiūrėjęs konfigūracijos failus radau ten kringelius — gedimas kortelėje. Kitas gedimas įvyko staiga apsižiūrėjus, kad Home Assistant pora valandų nebeveikia. Taigi teko ir tai Avietei keisti kortelę bei krapštyti atsargines kopijas — gerai, kad aš jas darau 🙂

Apskritai, apie tai, kaip padidinti Avietinio serverio patikimumą ir ilgaamžiškumą, parašysiu kada kitą kartą. Senokai ruošiausi tokį dalyką daryti, bet, manau, kad jau prisiruošiau. Apie tai papasakosiu atskiru įrašu, bus įdomu.

Taigi. Pirmas faktas: ant Avietės sudiegtą Home Assistant reikia prižiūrėti. Sukurti virtualią Python3 aplinką, pasirūpinti Python versijomis, atnaujinti ir pan. Naudoti Dockerį ant Avietės būtų galima, resursų užtektų, bet nesinori. Su QNAP tai daryti tiesiog patogiau. Be to, mano Avietė su CAN „galva“ vis dar su Raspbian Wheezy, o ten Python3 senstelėjęs, Home Assistant greitai tos versijos nebepalaikys. Į Jessie atnaujinti kažin ar pavyks, o perinstaliuot tiesiog tingiu. Ypač, kad tai, ko man minimaliai reikia, ten veikia. Todėl pradėjau regzti planus kraustyti visokius serverynus į QNAP.

Pradedam, susirandam Home Assistant konteinerį:

Home Assistant diegimas QNAP konteineryje su docker | Darau, blė

Environment skiltyje rekomenduojama nurodyti laiko juostą, nors ją galima nurodyti ir HA konfigūracijoj. Nustačiau ir PUID/PGID, kad Home Assistant suktųsi ne root teisėmis (tik kad nesuveikė kažkodėl):

Home Assistant diegimas QNAP konteineryje su docker | Darau, blė

Tinklo nustatymuose renkamės „host“. Kitaip sakant, portus ir kitus su tinklu susijusius reikalus Home Assistant naudos taip, lyg veiktų tiesiai pačiame serveryje, o ne konteineryje:

Home Assistant diegimas QNAP konteineryje su docker | Darau, blė

Svarbu tik, kad tie portai su niekuo nesipjautų. Na, bet standartinis Home Assistant naudojamas HTTP portas yra 8123, man nesipjauna su niekuo.

Reikia nurodyti konfigūracijos katalogą, jį primountinti kaip /config:

Home Assistant diegimas QNAP konteineryje su docker | Darau, blė

Viskas, konteinerio atvaizdas siunčiamas:

Home Assistant diegimas QNAP konteineryje su docker | Darau, blė

Jėė, Home Assistant pasileido:

Home Assistant diegimas QNAP konteineryje su docker | Darau, blė

Dabar iš savo Avietės, kurioje sukosi Home Assistant, rekia perkelti konfigūraciją ir istoriją. Tai daroma taip:

  • Sustabdomas Home Assistant
  • Nukopijuojamas .homeassistant katalogo turinys, kuris gali būti /home/homeassistant kataloge, jeigu buvo sukurtas atskiras vartotojas
  • Sustabdomas QNAP konteineris
  • Kopija perkeliama į naujojo konteinerio /config katalogą, kuris pas mane iš tikro guli /share/Kopijos/HomeAssistant
  • Senasis Home Assistant išjungiamas, kad nebeprisikeltų
  • Konteineris paleidžiams

Viskas veikia, istorija irgi išsisaugojus:

Home Assistant diegimas QNAP konteineryje su docker | Darau, blė

Paprastai ir sklandžiai, smagumėlis stačiai.

Su MQTT serveriu irgi viskas buvo paprastai. Tik jį aš dėjau į NAT, paforwardinau 1883 ir 9001 portus bei sukūriau vieną konfigūracijos bei logų katalogą. Įdomu, tačiau be tuščio mqtt.conf failo Mosquitto neveikė ¯\_(ツ)_/¯.

Dabar reikės dar pasidaryt read-only Avietės konfigūraciją, kad būtų galima nesukant galvos ir iš elektros išlupt ar pan. Regis, Adafruit yra paruošę visą skriptą, kaip Avietę perdaryt į tokią atsparią sistemą ir netgi su galimybe uždėti read-only arba read-write trumpiklius ant GPIO. Skamba įdomiai, reikės pasibandyt. Tik ten, regis, logai vis tiek į standartinį syslogą rašomi, tai tas nedžiugina, reikės paieškot, kaip pakeist kokiu round robin buferiu.

Na, kol kas tiek.

Beje, pastebėjau ant konteinerio, kad Home Assistant upload/download gan aukštas, kartais net 800 kbps. Niekaip nesuprantu, ką jis ten naudoja. Atjungiau visokius išorinius servisus, kiek radau standartinėj konfigūracijoj, atjungiau Yahoo orų prognozes, kurias naudoju — vis tiek siurbia. Kažkas ten ne taip. Reikės pabandyti susidėt dar vieną konteinerį ir pažiūrėt, ar ir standartinė instaliacija taip pat blogai elgiasi :-/

Reklama
Komentarai
  1. Nerijus parašė:

    Koks, koks pirmas kambarys??? :)))

  2. Vytenis parašė:

    Iš kur tu toks protingas? Ar geras knygeles skaitai, ar tiesiog genijus nuo gimimo?

  3. HDi parašė:

    Avietės patikimumo didinimas ir man būtų aktualu, nes turiu signalizacijos valdymą, senesnio DSC, padaręs tėvams ant pirmos avietės tai ir vieną kartą buvo nusprogus korta, teko viską švariai perrašinėt.

    • Darau, Blė parašė:

      Labai trumpai, tai esmė padaryt kortelę read-only. Apie tai galima gūgtelėjus rasti nemažai resursų. /tmp įkelti į RAMą, vietoj syslog naudoti busybox logread’ą ir taip toliau. Galima dar atskirą skirsnį konfigūracijų katalogėliui padaryti, kad nereikėto viso root’o remountinti norint kažką pakoreguoti. Visokie rūteriai taip ir išgyvena, kad iš esmės viskas būna read-only arba, tiksliau, nebūna jokių įrašinėjimų į flash neskaitant priverstinių operacijų. Su tokia sistema kortelės būna praktiškai amžinos, o avietę galima lupt iš elektros galvos nesukant.

      • HDi parašė:

        Hmmm,

        Gal ir nieko variantas, bet kažką reikės sugalvot dar, nes ten mano rašytas softas, ir loginu ir saugau visas zonas kas kada suveikia, ateičiai gal ką nors įdomaus su tais duomenimis pavyks nuveikt. Gal reiks primapinti NAS’o drive įrašymams, o kortą read only tada.

  4. n\a parašė:

    Kodel buvo pasirinktas Mosquitto, o ne kazkas kito? Kodel netiko HBMQTT?

    • Darau, Blė parašė:

      Na, Mosquitto aš gan gerai pažįstu ir esu įsitikinęs, kad norint jis gali palaikyti tikrai heavy flow. HBMQTT yra tas pats, kaip PHP ar Flask appsą leisti be Apačiaus — pasitestavimui galima, bet realiom sąlygom nepavarys. Dar, mano kukliom žiniom, HBMQTT yra gan bugovas, o Mosquitto jau iždaužytas gan normaliai. Šiaip, jei MQTT naudot grynai tik Home Assistant reikmėms vienai kitai knopkei pavaizduot, tai gal ir ok. Bet jei MQTT apjungia keletą sistemų, tai visai nefaina, jei dėl HA konfigūravimo downtime susišika visa kita. Tai maždaug taip 🙂

  5. Rimas Baltrušis parašė:

    Mano patirtis su aviete irgi neblizga abipuse meile. Vat BeagleBone Black (arba Green) gerokai labiau myliu – jis turi vidinį 4GB flashą, kuriame OS’as su apps’ais sėdi. Ir taip jau treti metai, perkraunu pats, tik kai reikia. Tiesa, duomenys ir į kortą eina, bet ten jau visai kitoks I/O srautas.

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti /  Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti /  Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti /  Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti /  Keisti )

Connecting to %s

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