Raspberry Pi je odolnější File Systém
Rozsah dokumentu
Tento dokument se vztahuje na následující produkty Raspberry Pi:
pí 0 | pí 1 | pí 2 | pí 3 | pí 4 | pí 400 | CM1 | CM3 | CM4 | CM 5 | Pico | ||||
0 | W | H | A | B | A | B | B | Vše | Vše | Vše | Vše | Vše | Vše | Vše |
* | * | * | * | * | * | * | * | * | * | * | * | * | * |
|
Zavedení
Zařízení Raspberry Pi Ltd se často používají jako zařízení pro ukládání a monitorování dat, a to zejména na místech, kde může docházet k náhlým výpadkům napájení. Stejně jako u jakéhokoli výpočetního zařízení mohou výpadky napájení způsobit poškození úložiště. Tato dokumentace poskytuje několik možností, jak zabránit poškození dat za těchto a dalších okolností výběrem vhodných file systémy a nastavení pro zajištění integrity dat. Tato dokumentace předpokládá, že Raspberry Pi používá operační systém (OS) Raspberry Pi (Linux) a je plně aktualizovaný s nejnovějším firmwarem a jádry.
Co je to poškození dat a proč k němu dochází?
Poškození dat označuje nezamýšlené změny v počítačových datech, ke kterým dochází během zápisu, čtení, ukládání, přenosu nebo zpracování. V tomto dokumentu hovoříme pouze o ukládání, nikoli o přenosu nebo zpracování. K poškození může dojít, když je proces zápisu přerušen před jeho dokončením způsobem, který brání dokončení zápisu, napříkladamppokud dojde k výpadku napájení. V tomto bodě je vhodné stručně vysvětlit, jak operační systém Linux (a v širším smyslu i Raspberry Pi) zapisuje data do úložiště. Linux obvykle používá mezipaměti pro zápis dat, která mají být zapsána do úložiště. Tyto mezipaměti ukládají data do mezipaměti (dočasně je ukládají) v paměti RAM (RAM), dokud není dosaženo určitého předem definovaného limitu, načež se všechny zbývající zápisy na paměťové médium provedou v jedné transakci. Tyto předem definované limity mohou být časově a/nebo velikostně vázány. NapříkladampTj. data mohou být ukládána do mezipaměti a zapisována do úložiště pouze každých pět sekund, nebo mohou být zapisována pouze tehdy, když se nahromadí určité množství dat. Tato schémata se používají ke zlepšení výkonu: zápis velkého bloku dat najednou je rychlejší než zápis velkého množství malých bloků dat.
Pokud však dojde k výpadku napájení mezi ukládáním dat do mezipaměti a jejich zápisem, data se ztratí. Další možné problémy mohou nastat dále v procesu zápisu, během fyzického zápisu dat na paměťové médium. Jakmile je hardware (napříkladampI když je rozhraní karty Secure Digital (SD) pověřeno zápisem dat, fyzické uložení těchto dat stále trvá omezenou dobu. Pokud dojde k výpadku napájení během tohoto extrémně krátkého období, je možné, že se zapisovaná data poškodí. Při vypínání počítačového systému, včetně Raspberry Pi, je nejlepší postupem použít možnost vypnutí. Tím se zajistí, že se všechna data uložená v mezipaměti zapíší a že hardware měl čas data skutečně zapsat na paměťové médium. SD karty používané většinou zařízení Raspberry Pi jsou skvělé jako levné náhrady pevných disků, ale v průběhu času jsou náchylné k selhání v závislosti na tom, jak se používají. Flash paměť používaná v SD kartách má omezenou životnost cyklu zápisu a jak se karty blíží tomuto limitu, mohou se stát nespolehlivými. Většina SD karet používá proceduru zvanou vyrovnávání opotřebení, aby se zajistila co nejdelší životnost, ale nakonec mohou selhat. To může trvat měsíce až roky v závislosti na tom, kolik dat bylo na kartu zapsáno nebo (což je důležitější) z karty vymazáno. Tato životnost se může u jednotlivých karet dramaticky lišit. Selhání SD karty je obvykle signalizováno náhodným file poškození, protože části SD karty se stanou nepoužitelnými.
Existují i jiné způsoby poškození dat, mimo jiné vadné paměťové médium, chyby v softwaru pro zápis do úložiště (ovladače) nebo chyby v samotných aplikacích. Pro účely této dokumentace je jakýkoli proces, kterým může dojít ke ztrátě dat, definován jako událost poškození.
Co může způsobit operaci zápisu?
Většina aplikací provádí nějaký druh zápisu do úložiště, napříkladampinformace o konfiguraci le, aktualizace databáze a podobně. Některé z nich fileData mohou být dokonce dočasná, tj. používaná pouze během běhu programu, a nevyžadují údržbu během cyklu napájení; stále však vedou k zápisům na paměťové médium. I když vaše aplikace ve skutečnosti nezapisuje žádná data, Linux bude na pozadí neustále provádět zápisy do úložiště, většinou zapisovat informace o protokolování.
Hardwarová řešení
I když to není zcela v rozsahu této dokumentace, stojí za zmínku, že prevence neočekávaných výpadků napájení je běžně používaným a dobře známým způsobem zmírnění ztráty dat. Zařízení, jako jsou nepřerušitelné zdroje napájení (UPS), zajišťují, aby napájení zůstalo stabilní, a pokud dojde k výpadku napájení UPS, mohou při napájení z baterie informovat počítačový systém o bezprostředním výpadku napájení, aby se mohlo zařízení plynule vypnout, než se vybije záložní zdroj napájení. Protože SD karty mají omezenou životnost, může být užitečné mít režim výměny, který zajistí, že SD karty budou vyměněny dříve, než dosáhnou konce své životnosti.
Robustní file systémy
Existuje několik způsobů, jak lze zařízení Raspberry Pi chránit před poškozením. Tyto způsoby se liší schopností zabránit poškození, přičemž každý z nich snižuje pravděpodobnost jeho vzniku.
- Snížení počtu zápisů
Pouhé snížení množství zápisů, které vaše aplikace a operační systém Linux provádějí, může mít příznivý účinek. Pokud provádíte hodně logování, zvyšuje se pravděpodobnost, že k zápisům dojde během události poškození. Snížení logování ve vaší aplikaci závisí na koncovém uživateli, ale logování v Linuxu lze také snížit. To je obzvláště důležité, pokud používáte úložiště flash (např. eMMC, SD karty) kvůli jejich omezenému životnímu cyklu zápisu. - Změna časů potvrzení
Čas potvrzení pro file Systém udává dobu, po kterou ukládá data do mezipaměti, než je všechna zkopíruje do úložiště. Zvýšení této doby zlepšuje výkon dávkovým zápisem velkého množství dat, ale může vést ke ztrátě dat, pokud dojde k poškození dat před jejich zápisem. Zkrácení doby potvrzení (commit) bude znamenat menší pravděpodobnost poškození dat, které povede ke ztrátě dat, i když jí to úplně nezabrání.
Změna času potvrzení pro hlavní EXT4 file systém na Raspberry Pi OS, je třeba upravit soubor \etc\fstab file který definuje, jak file Systémy se montují při spuštění. - $sudo nano /etc/fstab
Do položky EXT4 pro kořenový adresář přidejte následující file systém:
- commit=
Takže fstab může vypadat nějak takto, kde je doba potvrzení nastavena na tři sekundy. Pokud není výslovně nastavena, bude doba potvrzení standardně pět sekund.
Dočasný file systémy
Pokud žádost vyžaduje dočasné file úložiště, tj. data používaná pouze během běhu aplikace a není nutné je ukládat po jejím vypnutí, pak je dobrou možností, jak zabránit fyzickým zápisům do úložiště, použití dočasného file systém, tmpfs. Protože tyto file Protože systémy jsou založeny na paměti RAM (ve skutečnosti ve virtuální paměti), žádná data zapsaná do tmpfs se nikdy nezapisují do fyzického úložiště, a proto neovlivňují životnost paměti flash a nemohou být poškozena v důsledku poškození.
Vytvoření jednoho nebo více umístění tmpfs vyžaduje úpravu souboru /etc/fstab. file, který ovládá všechny file systémy pod operačním systémem Raspberry Pi. Následující příkladampProgram le nahrazuje úložiště /tmp a /var/log dočasnými úložišti. file umístění systému. Druhý exampsoubor le, který nahrazuje standardní složku pro protokolování, omezuje celkovou velikost souboru file systém na 16 MB.
- tmpfs /tmp výchozí hodnoty tmpfs, noatime 0 0
- tmpfs /var/log výchozí hodnoty tmpfs, čas doby trvání, velikost=16m 0 0
Existuje také skript třetí strany, který pomáhá s nastavením logování do RAM a který lze nalézt na GitHubu. Ten má navíc funkci ukládání logů z RAM na disk v předem definovaném intervalu.
Kořenový adresář pouze pro čtení file systémy
Kořen file systém (rootfs) je file systém na diskovém oddílu, na kterém se nachází kořenový adresář, a je to file systém, na kterém jsou všechny ostatní file Systémy se připojují při bootování systému. Na Raspberry Pi je to / a ve výchozím nastavení se nachází na SD kartě jako plně čtecí/zápisový oddíl EXT4. Existuje také bootovací složka, která je připojena jako /boot a je to oddíl FAT pro čtení/zápis. Nastavení rootfs POUZE pro čtení zabrání jakémukoli zápisu do něj, čímž se výrazně zvýší jeho odolnost vůči poškození. Pokud však nejsou podniknuty jiné kroky, znamená to, že do rootfs nelze nic zapisovat. file systém vůbec, takže ukládání dat jakéhokoli druhu z vaší aplikace do kořenového souboru (rootfs) je zakázáno. Pokud potřebujete ukládat data z vaší aplikace, ale chcete kořenový soubor pouze pro čtení, běžnou technikou je přidání paměťového zařízení USB nebo podobného zařízení, které slouží pouze k ukládání uživatelských dat.
POZNÁMKA
Pokud používáte swap file při použití funkce pouze pro čtení file systému, budete muset přesunout swap file do oddílu pro čtení/zápis.
Překryvná vrstva file systém
Překrytí file systém (overlayfs) kombinuje dva file systémy, horní file systém a nižší file systému. Pokud název existuje v obou file systémy, objekt v horní file systém je viditelný, zatímco objekt v dolní části file Systém je buď skrytý, nebo v případě adresářů sloučený s nadřazeným objektem. Raspberry Pi nabízí v souboru raspi-config možnost povolit overlayfs. Tím se kořenový soubor (dolní soubor) zpřístupní pouze pro čtení a vytvoří se nadřazený soubor založený na paměti RAM. file systém. To dává velmi podobný výsledek jako v případě režimu pouze pro čtení file systém, přičemž všechny změny provedené uživatelem se po restartu ztratí. Overlayfs můžete povolit buď pomocí příkazového řádku raspi-config, nebo pomocí desktopové aplikace Raspberry Pi Configuration v nabídce Předvolby.
Existují i další implementace overlayfs, které dokáží synchronizovat požadované změny z horního do dolního file systém podle předem stanoveného harmonogramu. NapříkladampMůžete například kopírovat obsah domovské složky uživatele z horní do dolní složky každých dvanáct hodin. To omezuje proces zápisu na velmi krátkou dobu, což znamená, že poškození je mnohem méně pravděpodobné, ale znamená to, že pokud dojde k výpadku napájení před synchronizací, veškerá data vygenerovaná od poslední synchronizace se ztratí. pSLC na výpočetních modulech Paměť eMMC používaná v zařízeních Raspberry Pi Compute Module je MLC (Multi-Level Cell), kde každá paměťová buňka představuje 2 bity. pSLC, neboli pseudo-Single Level Cell, je typ technologie flash paměti NAND, kterou lze aktivovat v kompatibilních úložných zařízeních MLC, kde každá buňka představuje pouze 1 bit. Je navržena tak, aby poskytovala rovnováhu mezi výkonem a výdrží flash paměti SLC a cenovou efektivitou a vyšší kapacitou flash paměti MLC. pSLC má vyšší výdrž zápisu než MLC, protože méně častý zápis dat do buněk snižuje opotřebení. Zatímco MLC může nabídnout přibližně 3,000 10,000 až XNUMX XNUMX cyklů zápisu, pSLC může dosáhnout výrazně vyšších čísel a blížit se úrovním výdrže SLC. Tato zvýšená odolnost se promítá do delší životnosti zařízení používajících technologii pSLC ve srovnání se zařízeními používajícími standardní MLC.
Paměť MLC je cenově výhodnější než SLC, ale i když pSLC nabízí lepší výkon a odolnost než čistá MLC, činí to na úkor kapacity. Zařízení MLC konfigurované pro pSLC bude mít poloviční kapacitu (nebo méně) než standardní zařízení MLC, protože každá buňka ukládá pouze jeden bit místo dvou nebo více.
Podrobnosti o implementaci
pSLC je na eMMC implementováno jako rozšířená uživatelská oblast (známá také jako rozšířené úložiště). Samotná implementace rozšířené uživatelské oblasti není ve standardu MMC definována, ale obvykle se jedná o pSLC.
- Rozšířená uživatelská oblast je koncept, zatímco pSLC je implementace.
- pSLC je jeden ze způsobů implementace rozšířené uživatelské oblasti.
- V době psaní tohoto textu implementuje eMMC používaná na výpočetních modulech Raspberry Pi rozšířenou uživatelskou oblast (Enhanced User Area) pomocí pSLC.
- Není třeba konfigurovat celou uživatelskou oblast eMMC jako rozšířenou uživatelskou oblast.
- Programování oblasti paměti jako rozšířené uživatelské oblasti je jednorázová operace. To znamená, že ji nelze vrátit zpět.
Zapnutí
Linux poskytuje sadu příkazů pro manipulaci s oddíly eMMC v balíčku mmc-utils. Nainstalujte standardní operační systém Linux na zařízení CM a nainstalujte nástroje takto:
- sudo apt install mmc-utils
Chcete-li získat informace o eMMC (tento příkaz se převádí na less, protože je zde poměrně dost informací k zobrazení):
- sudo mmc extcsd čte /dev/mmcblk0 | less
VAROVÁNÍ
Následující operace jsou jednorázové – můžete je spustit jednou a nelze je vrátit zpět. Měli byste je také spustit před použitím výpočetního modulu, protože vymažou všechna data. Kapacita eMMC se sníží na polovinu předchozí hodnoty.
Příkaz používaný k zapnutí pSLC je mmc enh_area_set, který vyžaduje několik parametrů, které mu sdělují, kolik paměťové oblasti má být pSLC povoleno. Následující příkladampPoužívá celou oblast. Podrobnosti o použití podmnožiny eMMC naleznete v nápovědě k příkazu mmc (man mmc).
Po restartu zařízení BUDETE muset přeinstalovat operační systém, protože povolení pSLC vymaže obsah eMMC.
Software Raspberry Pi CM Provisioner má možnost nastavit pSLC během procesu zřizování. Tuto možnost naleznete na GitHubu na adrese https://github.com/raspberrypi/cmprovision.
- Mimo zařízení file bootování systémů / ze sítě
Raspberry Pi dokáže bootovat přes síťové připojení, napříkladamppoužívání sítě File Systém (NFS). To znamená, že jakmile zařízení dokončí první stage boot, namísto načítání jádra a root file systém z SD karty, je načten ze síťového serveru. Po spuštění všechny file Operace probíhají na serveru, nikoli na lokální SD kartě, která v tomto procesu nehraje žádnou další roli. - Cloudová řešení
V dnešní době probíhá mnoho kancelářských úkolů v prohlížeči a všechna data jsou uložena online v cloudu. Ukládání dat mimo SD kartu může samozřejmě zlepšit spolehlivost, ale na úkor nutnosti neustálého připojení k internetu a možných poplatků od poskytovatelů cloudových služeb. Uživatel může buď použít plnohodnotnou instalaci operačního systému Raspberry Pi s prohlížečem optimalizovaným pro Raspberry Pi, aby mohl přistupovat ke všem cloudovým službám od dodavatelů, jako jsou Google, Microsoft, Amazon atd. Alternativou je jeden z poskytovatelů tenkých klientů, kteří nahrazují Raspberry Pi OS operačním systémem/aplikací, která běží ze zdrojů uložených na centrálním serveru namísto SD karty. Tencí klienti fungují tak, že se vzdáleně připojují k serverovému výpočetnímu prostředí, kde je uložena většina aplikací, citlivých dat a paměti.
Závěry
Při dodržení správných postupů vypínání je úložiště SD karty Raspberry Pi extrémně spolehlivé. To funguje dobře v domácím nebo kancelářském prostředí, kde lze vypínání kontrolovat, ale při použití zařízení Raspberry Pi v průmyslových případech nebo v oblastech s nespolehlivým napájením mohou dodatečná opatření zvýšit spolehlivost.
Stručně řečeno, možnosti pro zlepšení spolehlivosti lze uvést následovně:
- Použijte známou a spolehlivou SD kartu.
- Snižte počet zápisů delšími časy potvrzení a dočasnými file systémy, pomocí overlayfs nebo podobného.
- Používejte úložiště mimo zařízení, jako je síťové bootování nebo cloudové úložiště.
- Zaveďte režim výměny SD karet před koncem jejich životnosti.
- Použijte UPS.
Raspberry Pi je ochranná známka společnosti Raspberry Pi Ltd
Raspberry Pi Ltd
Tiráž
© 2020-2023 Raspberry Pi Ltd (dříve Raspberry Pi (Trading) Ltd.)
Tato dokumentace je licencována pod licencí Creative Commons Uveďte autora-Neodvozujte 4.0 International (CC BY-ND).
- datum sestavení: 2024. 06. 25
- verze buildu: githash: 3e4dad9-clean
Právní upozornění
TECHNICKÁ A SPOLEHLIVOSTNÍ ÚDAJE PRO PRODUKTY RASPBERRY PI (VČETNĚ DATOVÝCH LISTŮ), JAK JSOU ČAS OD ČASU MODIFIKOVANÉ („ZDROJE“), POSKYTUJE RASPBERRY PI LTD („RPL“) „TAK JAK JSOU“ A JAKÉKOLI VÝSLOVNÉ NEBO OMEZENÉ, BEZ ZÁRUK ODPOVÍDAJÍCÍ ZÁRUKY PRODEJNOSTI A VHODNOSTI PRO KONKRÉTNÍ ÚČEL. V MAXIMÁLNÍM ROZSAHU POVOLENÉM PŘÍSLUŠNÝM ZÁKONEM V ŽÁDNÉM PŘÍPADĚ NEBUDE RPL ODPOVĚDNÁ ZA JAKÉKOLI PŘÍMÉ, NEPŘÍMÉ, NÁHODNÉ, ZVLÁŠTNÍ, EXEMPLÁRNÍ NEBO NÁSLEDNÉ ŠKODY (VČETNĚ, ALE NEOMEZENO NA POSKYTNUTÍ POSKYTOVÁNÍ NÁHRADNÍCH DATA; , NEBO ZISKY NEBO PŘERUŠENÍ OBCHODNÍ ČINNOSTI), JAK JSOU ZPŮSOBENÉ A NA JAKÉKOLI TEorii ODPOVĚDNOSTI, AŤ VE SMLOUVĚ, PŘÍMÉ ODPOVĚDNOSTI NEBO deliktu (VČETNĚ NEDBALOSTI ČI JINAK), VZNIKLÉM JAKÝKOLI ZPŮSOB JAK JAK NAVYŠLI TOHOTO POUŽITÍ. TAKOVÉ ŠKODY.
Společnost RPL si vyhrazuje právo provádět jakékoli vylepšení, vylepšení, opravy nebo jakékoli jiné úpravy ZDROJŮ nebo jakýchkoli produktů v nich popsaných kdykoli a bez dalšího upozornění. ZDROJE jsou určeny pro zkušené uživatele s odpovídající úrovní znalostí designu. Uživatelé jsou výhradně zodpovědní za svůj výběr a používání ZDROJŮ a jakoukoli aplikaci produktů v nich popsaných. Uživatel souhlasí s tím, že odškodní a ochrání společnost RPL před veškerou odpovědností, náklady, škodami nebo jinými ztrátami vyplývajícími z jejich používání ZDROJŮ. Společnost RPL uděluje uživatelům povolení používat ZDROJE výhradně ve spojení s produkty Raspberry Pi. Veškeré jiné použití ZDROJŮ je zakázáno. Není udělena žádná licence k žádnému jinému právu duševního vlastnictví RPL ani jinému právu duševního vlastnictví třetích stran.
VYSOCE RIZIKOVÉ AKTIVITY. Produkty Raspberry Pi nejsou navrženy, vyrobeny ani určeny pro použití v nebezpečných prostředích vyžadujících bezpečný provoz, jako je provoz jaderných zařízení, navigačních nebo komunikačních systémů letadel, řízení letového provozu, zbraňových systémů nebo bezpečnostních aplikací (včetně systémů podpory života a dalších zdravotnických prostředků), u kterých by selhání produktů mohlo přímo vést k úmrtí, zranění osob nebo vážnému fyzickému poškození či poškození životního prostředí („Vysoce rizikové aktivity“). Společnost RPL se výslovně zříká jakékoli výslovné nebo implicitní záruky vhodnosti pro vysoce rizikové aktivity a nepřebírá žádnou odpovědnost za použití nebo zahrnutí produktů Raspberry Pi do vysoce rizikových aktivit. Produkty Raspberry Pi jsou poskytovány v souladu se standardními podmínkami společnosti RPL. Poskytování ZDROJŮ společností RPL nerozšiřuje ani jinak nemění standardní podmínky společnosti RPL, včetně, ale nikoli výhradně, zřeknutí se odpovědnosti a záruk v nich uvedených.
Často kladené otázky
- Otázka: Které produkty Raspberry Pi jsou tímto dokumentem podporovány?
A: Tento dokument se týká různých produktů Raspberry Pi, včetně Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 a Pico. - Otázka: Jak mohu snížit riziko poškození dat na mém zařízení Raspberry Pi?
A: Poškození dat můžete omezit minimalizací operací zápisu, zejména aktivit protokolování, a úpravou doby potvrzení (commit) pro file systém, jak je popsáno v tomto dokumentu.
Dokumenty / zdroje
![]() |
Raspberry Pi je odolnější File Systém [pdfUživatelská příručka Pi 0, Pi 1, Zvýšení odolnosti File Systém, odolnější File Systém, odolný File Systém, File Systém |