Raspberry PI, OpenWRT a dlouhodobá spolehlivost

Odkazy na zajímavé články ze světa Linuxu.
Zamčeno
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8146
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Raspberry PI, OpenWRT a dlouhodobá spolehlivost

Příspěvek od xsouku04 »

Král je nahý, pokud na flash paměť Raspberry pi často zapisujeme, je pravděpodobné že při výpadku elektřiny nebo kolísání napětí se obsah uložený na flash poškodí a raspberry pi se stane nebootovatelné. A samozřejmě flash paměti nemají rády častý zápis samy o sobě, tedy pokazit se mohou i bez výpadku či kolísání elektřiny.
Pokud je uživatelem rovnou pan kutil, který si to sám umí sám "opravit", je to OK. Pro jakékoli jiné nasazení je to ale zásadní problém.

Jaké jsou možnosti?
  • Pořídit si záložní zdroj. Běžněji dostupné jsou 12V zdroj se záložní baterií + adaptér 12V na 5V. Výhoda je, že z tohoto zálohového zdroje na 12 V můžete napájet i router, switch či nějaké LED světla.
  • Zapisovat co nejméně - ideálně mít speciálně upravenou distribuci, která zapisuje, jen když je to nutné, po dávkách.
  • Zapisovat jinam než na flash, z které se bootuje - na disk připojený přes USB, další flash přes USB, nebo na síťový disk
  • Použít raději OpenWRT - pokud ale chcete použít oficiální openWRT pro Raspberry, král je opět nahý a používá obyčejný souborový systém. Je třeba si openWRT sám zkompilovat podle uvedeného odkazu. Pokud místo Raspberry použijete nějaký router, na vhodné omezování zápisů je již myšleno a i po havárii by měl být bootovatelný. Pokud vám nevadí omezená paměť těchto routerů router, na který lze nahrát openWRT, vyjde levněji než Raspberry a má navíc Wifi a 5 ethernetových portů, USB port bývá také k dispozici. Další výhoda OpenWRT je to, že síťové záležitosti se spravují snadněji než u běžného holého Linuxu (obsahuje UCI a kněmu webové rozhraní luci pro snadnější konfiguraci), tedy to že nemá vývod pro displej nemusí vůbec vadit.
  • Místo Raspberry použít banana a systém nechat běžet rovnou ze staršího disku pro notebook. Flash musí být také přítomna pro nabootování, ale nezapisuje se do ní.
  • Pro jistotu zkombinovat více opatření.
mobilemanic
Příspěvky: 486
Registrován: čtv 10. říj 2013 10:20:15

Re: Raspberry PI, OpenWRT a dlouhodobá spolehlivost

Příspěvek od mobilemanic »

Není to pravidlem, jde o konkrétní implementaci, třeba OPENElec asi tak často na disk nezapisuje...

Konkrétní příklad toho, že to jde:
Moje Raspberry Pi 2, SD karta, OPENElec... Za rok a půl už několik tisíc vypnutí natvrdo odpojením napájení a systém je stále naprosto nepoškozený. Jedná se o napájení z USB portu TV, který při vypnutí TV přestane dodávat proud...
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8146
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Raspberry PI, OpenWRT a dlouhodobá spolehlivost

Příspěvek od xsouku04 »

mobilemanic píše:Není to pravidlem, jde o konkrétní implementaci, třeba OPENElec asi tak často na disk nezapisuje...

Konkrétní příklad toho, že to jde:
Moje Raspberry Pi 2, SD karta, OPENElec... Za rok a půl už několik tisíc vypnutí natvrdo odpojením napájení a systém je stále naprosto nepoškozený. Jedná se o napájení z USB portu TV, který při vypnutí TV přestane dodávat proud...
No já myslím, že ten OPENElec je případ speciálně upravené distribuce. Tak upravené, že to prý ani distribuce vlastně není. Prostě jen Linux. Tedy předpokládám, že autoři na to, že je dobré zápisy omezit, mysleli.
Běžný extX souborový systém totiž zapisuje i takové nesmysly jako poslední čas čtení každého souboru.
Možná také považují fakt, že vědí, jak docílit rozumné spolehlivosti, za část jejich know how, a proto se s tím nechlubí.
A Raspberry foundejšn klidně dál nabízí svůj ne moc použitelný Raspbian (pravda zapisování informace o posledním čtení každého souboru vypnuli) bez toho, aby lidem dala nějaké možnosti a vysvětlila tyto zásadní slabiny... Pletu se v něčem, nebo je to opravdu takto kuriózní? Upravit si nebezpečný Raspbian na bezpečný není tak složité., jen je potřeba trocha osvěty a nelhat si do kapsy.
Vypadá to, jako by Raspberry foundejšn svým vlastním PR oklamala i sama sebe a docela účinně brání serióznímu použití Raspberry. Pravda, opravdový linuxový guru na to dříve či později přijde, ale i tak to bývá poměrně drahé ponaučení a spoustu lidí to odradí. A nakupují raději různé "průmyslové" předražené hračky s klikátky pro Widnows, které se jen tak bezdůvodně nepokazí, protože na svoji flash paměť proste nezapisují jen tak zbytečně a pořád.
alfi
Příspěvky: 718
Registrován: čtv 03. led 2013 15:31:10

Re: Raspberry PI, OpenWRT a dlouhodobá spolehlivost

Příspěvek od alfi »

OpenElec je hodně ořezaný systém, který umí v podstatě fakt jen pustit Kodi. Základní image je tuším jen read-only, dokud není vyžádána aktualizace.
OSMC je jiná alternativa pro Kodi, která používá víc standardní raspbian - a (znalému uživateli) dovolí doinstalovat další balíčky (apt) i víc zasahovat do konfigurace systému.

Obecně bych to se zápisy na kartu tak tragicky neviděl - dneska standardní ext4 se zapnutým žurnálem by si měl poradit i s výpadky (=ztratí poslední zápisy, ale ne konzistenci filesystému, teda pokud přežije HW karty. Já jsem na problémy s filesystémem nenarazil už hodně let, naposledy snad ještě na ext2). Asi všechny dnešní systémy se mountujou s noatime nebo alespoň relatime (https://blog.confirm.ch/mount-options-a ... -relatime/). A už z principu má linux rozdělené adresáře tak, aby mohl fungovat z téměř 100% read-only filesystému = vše zapisovatelné má být na /var, admin občas potřebuje něco změnit v /etc. A do ostatních adresářů se píše jen při aktualizacích systému/balíčků. Tohle vše mi přijde jako velmi dobré předpoklady pro přežití systému i po násilném vypnutí = není žádný přimý důvod, proč by kvůli "rozbitým" zápisům do /var nebo /tmp neměl fungovat /boot a ostatní systémové adresáře :-) A kdo se bojí, zvládne si potom /var ukládat na jinou partition/disk, což taky většina raspbian-like systému taky dělá min. pro uživatelská data v /home nebo /data... (např. ten OSMC má taky dmesg jen v RAM).

Openwrt je na tom velmi podobně, obvykle read-only root a rw overlay na potřebné změny. Díky tomu ale nejde pravidelně aktualizovat, což mi v téhle době plné zero day zranitelností přide pomalu nepoužitelné=nebezpečně. Na jednom openwrt píšu logy na malou USB flashku 5 let určitě, nejspíš i déle, a zatím vůbec žádný problém nehlásí, násilných vypnutí bylo nepočítaně :-) Ještě zkouším jednu instalaci r-pi s motioneye, která bude zapisovat fakt hodně, ale zatím neběží tak dlouho. Ale ani v návodech o problémech s kartou nic nezmiňujou, uživatelské a systémové partition jsou taky oddělené.

Ještě dvě alternativy k tipům v prvním příspěvku:
- logy se dají psát přes rsyslog na jiný stroj. A zbytek potom může být fakt read-only + RAM
- jako záložní zdroj jde použít i snadno dostupná power banka na USB = 5V, která je nonstop připojená k nabíjení, možná všechny dnešní umí současně napájet i nabíjet (viz např. http://raspi-ups.appspot.com/en/faq.jsp) :-)
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8146
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Raspberry PI, OpenWRT a dlouhodobá spolehlivost

Příspěvek od xsouku04 »

Díky za reakci. Ještě něco doplním.
alfi píše: Obecně bych to se zápisy na kartu tak tragicky neviděl - dneska standardní ext4 se zapnutým žurnálem by si měl poradit i s výpadky (=ztratí poslední zápisy, ale ne konzistenci filesystému, teda pokud přežije HW karty. Já jsem na problémy s filesystémem nenarazil už hodně let, naposledy snad ještě na ext2). Asi všechny dnešní systémy se mountujou s noatime nebo alespoň relatime (https://blog.confirm.ch/mount-options-a ... -relatime/). )
Ano souborový systém extX se výpadky elektřiny vyrovná, ale nevyrovná se s tím tak SD karta. Místo toho aby se poškodilo pár inodů, které by se při dalším bootování automaticky opravili (běžné chování s normálním diskem), u SD karet je to podstatně horší. Při výpadku se často stane nečitelným celý obsah SD karty. Proto také vůbec nepomůže rozdělit místo na SD kartě na více oblastí. Pokud se totiž něco stane zpravidla v jedné oblasti, nečitelná je celá karta. V tom je to záludné. A jak kdosi psal, problémy s poškozenou SD kartou se mohou projevovat různě záludně, tedy nemusí to být hned celé nebootovatelné, jen to jaksi nefunguje úplně jak má, takže na tom strávíte několik dní, než vás napadne vyměnit SD kartu.

Rasbian + raspberry pi - jako počítač je to málo výkonné a pro dlouhodobé použití nespolehlivé. A jako jednoúčelové spolehlivé zařízení je to perfektní až na to, že je třeba si být vědom těchto nedostatků a vyhnout se jim nebo je alespoň eliminovat, co to jde. Ideální by bylo, kdyby existovala varianta, kde která by obsahovala rovnou nabíjecí obvody pro záložní baterii (klidně jen pro pár minut provozu) a zabudovanou odolnou paměť eMMC. Možnost přepnout rasbian do režimu readonly a hlídat si zápisy by nic nestála, jen si přiznat problém. Tím že se problém tutlá znamená, že nelze jít jednou z vyšlapaných a předem připravených cestiček - ty jsou jen na hraní. Tím, že si ale PR hraje na malý univerzální počítač, vypadá to sice úchvatně, ale většinu praktických použití tím spíše komplikují, tedy do velké míry škodí sami sobě. Ono totiž pro většinu použití musím mít jistotu a ne jen doufat a experimentovat.

Kuriózní také je, že přestože existuje řada napodobenin Raspberry, žádný z nich tuhle zásadní věc nemá dobře a použitelně vyřešenou. Banana má sice nějaké nabíjecí obvody, ale vzhledem k mizerné dokumentaci, přistupu dodělej si sám a bez dokumentace a jiným nedostatkům (zbytečně velká citlivost na kvalitu zdroje) to také není výhra.
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8146
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Raspberry PI, OpenWRT a dlouhodobá spolehlivost

Příspěvek od xsouku04 »

alfi píše:- jako záložní zdroj jde použít i snadno dostupná power banka na USB = 5V, která je nonstop připojená k nabíjení, možná všechny dnešní umí současně napájet i nabíjet (viz např. http://raspi-ups.appspot.com/en/faq.jsp) :-)
Díky za ten typ, využít běžnou powerbank jako záložní zdroj, asi je to nejlepší a nejednodušší řešení ze všech těch možných kompromisů.
Jiná možnost - předělat si souborový systém tak, aby běžně pracoval jen v režimu pouhého čtení, je nepříjemná komplikace a omezení.

Jediná nevýhoda je, že poté co se Raspberry bezpečně vypne (delší výpadek elektřiny), neumí se samo po obnovení dodávky elektřiny pustit. Jako ochrana před poškozením SD karty i pro zachování funkce při kratším výpadku (jsou podstatně častější než ty dlouhé) je to dokonalé.

Update 24.06.2016 - ne každá powerbanka se hodí. Některá powerbanka (většina?) nedovede zároveň nabíjet i dodávat elektřinu. Jiná sice ano, ale a při výpadku napájení dodávku elektřiny na cca vteřinu přeruší. Nezbývá tak než tuto informaci páčit z prodejce a na neschopnost jej trestat vracením v době čtrnácti dní od nákupu.
Položil jsem dotaz prodejci zde http://www.aliexpress.com/store/product ... 3.8.KhTkVb Je to powerbanka bez baterek. Totiž číňanům se nedá moc věřit co se týče kapacity baterek a články z vykuchané baterie od noutebooku. Pokud baterie notebooku zemřela náhle (jako v mém případě), články budou nejspíše pořád OK. A pokud jste ji vyměnili kvůli poloviční kapacitě, pro powerbanku mohou být stále OK.
Zamčeno