Raspberry Pi je odolnejší File Systém
Rozsah dokumentu
Tento dokument sa vzťahuje na nasledujúce produkty Raspberry Pi:
Pi 0 | Pi 1 | Pi 2 | Pi 3 | Pi 4 | Pi 400 | CM1 | CM3 | CM4 | CM 5 | Pico | ||||
0 | W | H | A | B | A | B | B | Všetky | Všetky | Všetky | Všetky | Všetky | Všetky | Všetky |
* | * | * | * | * | * | * | * | * | * | * | * | * | * |
|
Úvod
Zariadenia Raspberry Pi Ltd sa často používajú ako zariadenia na ukladanie a monitorovanie údajov, a to najmä na miestach, kde môže dôjsť k náhlym výpadkom napájania. Rovnako ako pri akomkoľvek výpočtovom zariadení, aj výpadky napájania môžu spôsobiť poškodenie úložiska. Táto biela kniha poskytuje niekoľko možností, ako zabrániť poškodeniu údajov za týchto a iných okolností výberom vhodných... file systémy a nastavenia na zabezpečenie integrity údajov. Táto biela kniha predpokladá, že Raspberry Pi používa operačný systém (OS) Raspberry Pi (Linux) a je plne aktualizovaný s najnovším firmvérom a jadrami.
Čo je to poškodenie údajov a prečo k nemu dochádza?
Poškodenie údajov označuje nezamýšľané zmeny v počítačových údajoch, ku ktorým dochádza počas zápisu, čítania, ukladania, prenosu alebo spracovania. V tomto dokumente hovoríme iba o ukladaní, nie o prenose alebo spracovaní. K poškodeniu môže dôjsť, keď je proces zápisu prerušený pred jeho dokončením spôsobom, ktorý bráni dokončeniu zápisu, napríkladampak dôjde k výpadku napájania. V tomto bode je užitočné stručne vysvetliť, ako operačný systém Linux (a v širšom zmysle aj operačný systém Raspberry Pi) zapisuje dáta do úložiska. Linux zvyčajne používa vyrovnávaciu pamäť na zápis dát, ktoré sa majú zapísať do úložiska. Tieto vyrovnávacie pamäte ukladajú dáta do vyrovnávacej pamäte (RAM), kým sa nedosiahne určitý vopred definovaný limit, kedy sa všetky zostávajúce zápisy na pamäťové médium vykonajú v jednej transakcii. Tieto vopred definované limity môžu byť časovo a/alebo veľkostne závislé. NapríkladampT. j. dáta sa môžu ukladať do vyrovnávacej pamäte a zapisovať do úložiska iba každých päť sekúnd alebo sa zapisovať iba vtedy, keď sa nahromadí určité množstvo dát. Tieto schémy sa používajú na zlepšenie výkonu: zápis veľkého množstva dát naraz je rýchlejší ako zápis množstva malých častí dát.
Ak však dôjde k výpadku napájania medzi uložením dát do vyrovnávacej pamäte a ich zápisom, tieto dáta sa stratia. Ďalšie možné problémy vznikajú neskôr v procese zápisu, počas fyzického zápisu dát na pamäťové médium. Keď je hardvér (napríkladampRozhranie karty Secure Digital (SD) má zapísať dáta, fyzické uloženie týchto dát stále trvá obmedzený čas. Ak dôjde k výpadku napájania počas tohto extrémne krátkeho obdobia, je možné, že sa zapisované dáta poškodia. Pri vypínaní počítačového systému vrátane Raspberry Pi je najlepším postupom použiť možnosť vypnutia. Tým sa zabezpečí, že sa všetky dáta uložené vo vyrovnávacej pamäti zapíšu a že hardvér mal čas skutočne zapísať dáta na pamäťové médium. Karty SD používané väčšinou zariadení Raspberry Pi sú skvelé ako lacné náhrady pevných diskov, ale sú náchylné na zlyhanie v priebehu času v závislosti od spôsobu používania. Flash pamäť používaná v SD kartách má obmedzenú životnosť cyklu zápisu a keď sa karty blížia k tomuto limitu, môžu sa stať nespoľahlivými. Väčšina kariet SD používa postup nazývaný vyrovnávanie opotrebenia, aby sa zabezpečila čo najdlhšia životnosť, ale nakoniec môžu zlyhať. To môže trvať mesiace až roky v závislosti od toho, koľko dát bolo na kartu zapísaných alebo (čo je dôležitejšie) vymazaných. Táto životnosť sa môže medzi kartami dramaticky líšiť. Porucha SD karty je zvyčajne signalizovaná náhodným file poškodenia, pretože časti SD karty sa stanú nepoužiteľnými.
Existujú aj iné spôsoby poškodenia údajov, vrátane, ale nie výlučne, chybného pamäťového média, chýb v softvéri na zápis do úložiska (ovládače) alebo chýb v samotných aplikáciách. Pre účely tejto bielej knihy sa akýkoľvek proces, pri ktorom môže dôjsť k strate údajov, definuje ako udalosť poškodenia.
Čo môže spôsobiť operáciu zápisu?
Väčšina aplikácií vykonáva nejaký druh zápisu do úložiska, napríkladampinformácie o konfigurácii le, aktualizácie databázy a podobne. Niektoré z nich filemôžu byť dokonca dočasné, t. j. používané iba počas behu programu a nevyžadujú si ich údržbu počas celého cyklu napájania; stále však vedú k zápisom na pamäťové médium. Aj keď vaša aplikácia v skutočnosti nezapisuje žiadne údaje, Linux bude na pozadí neustále zapisovať do úložiska, väčšinou zapisovať informácie do protokolov.
Hardvérové riešenia
Hoci to nie je úplne v rozsahu tejto bielej knihy, stojí za zmienku, že predchádzanie neočakávaným výpadkom napájania je bežne používaným a dobre známym prostriedkom na zmiernenie straty údajov. Zariadenia, ako sú neprerušiteľné zdroje napájania (UPS), zabezpečujú, aby napájanie zostalo stabilné, a ak dôjde k výpadku napájania z UPS, počas napájania z batérie môžu informovať počítačový systém o bezprostrednom výpadku napájania, aby sa vypnutie mohlo plynule vykonať skôr, ako sa vybije záložný zdroj napájania. Keďže SD karty majú obmedzenú životnosť, môže byť užitočné mať režim výmeny, ktorý zabezpečí, že SD karty budú vymenené skôr, ako dosiahnu koniec svojej životnosti.
Robustný file systémov
Existuje niekoľko spôsobov, ako možno zariadenie Raspberry Pi zabezpečiť proti poškodeniu. Tieto sa líšia svojou schopnosťou predchádzať poškodeniu, pričom každý krok znižuje pravdepodobnosť jeho vzniku.
- Zníženie počtu zápisov
Už len samotné zníženie množstva zápisov, ktoré vykonávajú vaše aplikácie a operačný systém Linux, môže mať priaznivý účinok. Ak vykonávate veľa protokolovania, zvyšuje sa pravdepodobnosť zápisov počas poškodenia. Zníženie protokolovania vo vašej aplikácii závisí od koncového používateľa, ale protokolovanie v systéme Linux sa tiež môže znížiť. Toto je obzvlášť dôležité, ak používate úložisko založené na pamäti Flash (napr. eMMC, SD karty) kvôli ich obmedzenému životnému cyklu zápisu. - Zmena časov potvrdenia
Čas potvrdenia pre file Systém určuje čas, počas ktorého ukladá dáta do vyrovnávacej pamäte predtým, ako ich všetky skopíruje do úložiska. Zvýšenie tohto času zlepšuje výkon dávkovým spracovaním veľkého množstva zápisov, ale môže viesť k strate dát, ak dôjde k poškodeniu dát pred ich zapísaním. Skrátenie času potvrdenia zápisu bude znamenať menšiu pravdepodobnosť poškodenia dát, ktoré povedie k strate dát, hoci jej úplne nezabráni.
Zmena času potvrdenia pre hlavný EXT4 file systém na Raspberry Pi OS, je potrebné upraviť súbor \etc\fstab file ktorý definuje, ako file systémy sa montujú pri spustení. - $sudo nano /etc/fstab
Pridajte do položky EXT4 pre koreňový adresár nasledujúci kód file systém:
- commit=
Takže fstab môže vyzerať asi takto, kde je čas potvrdenia nastavený na tri sekundy. Ak nie je výslovne nastavený, predvolený čas potvrdenia bude päť sekúnd.
Dočasné file systémov
Ak žiadosť vyžaduje dočasné file úložisko, t. j. dáta používané iba počas behu aplikácie a nie je potrebné ich ukladať po vypnutí, potom je dobrou možnosťou na zabránenie fyzickému zápisu do úložiska použitie dočasného file systém, tmpfs. Pretože tieto file Keďže systémy sú založené na pamäti RAM (v skutočnosti vo virtuálnej pamäti), žiadne dáta zapísané do tmpfs sa nikdy nezapisujú do fyzického úložiska, a preto neovplyvňujú životnosť flash pamäte a nemôžu sa poškodiť v dôsledku poškodenia.
Vytvorenie jedného alebo viacerých umiestnení tmpfs vyžaduje úpravu súboru /etc/fstab file, ktorý ovláda všetky file systémy pod operačným systémom Raspberry Pi. Nasledujúci príkladampProgram le nahradí umiestnenia úložiska /tmp a /var/log dočasnými priečinkami. file umiestnenia systému. Druhý exampsúbor le, ktorý nahrádza štandardný priečinok na protokolovanie, obmedzuje celkovú veľkosť súboru file systém na 16 MB.
- tmpfs /tmp predvolené hodnoty tmpfs, čas bez nastavenia 0 0
- tmpfs /var/log predvolené hodnoty tmpfs, čas, veľkosť=16m 0 0
Existuje aj skript tretej strany, ktorý pomáha nastaviť logovanie do RAM a ktorý nájdete na GitHub. Ten má ďalšiu funkciu, a to ukladanie logov z RAM na disk v preddefinovanom intervale.
Koreňový prístup iba na čítanie file systémov
Koreň file systém (rootfs) je file systém na diskovej oblasti, na ktorej sa nachádza koreňový adresár, a je to file systém, na ktorom sú všetky ostatné file Systémy sa montujú pri bootovaní systému. Na Raspberry Pi je to / a štandardne sa nachádza na SD karte ako plne čítací/zapisovací oddiel EXT4. Existuje aj bootovací priečinok, ktorý je pripojený ako /boot a je to čítací/zapisovací oddiel FAT. Nastavenie rootfs IBA na čítanie zabráni akémukoľvek zápisu doň, čím sa stane oveľa odolnejším voči poškodeniu. Pokiaľ sa však neprijmú iné opatrenia, znamená to, že do rootfs nie je možné zapisovať. file systém vôbec, takže ukladanie akýchkoľvek údajov z vašej aplikácie do rootfs je zakázané. Ak potrebujete ukladať údaje z vašej aplikácie, ale chcete rootfs iba na čítanie, bežnou technikou je pridať pamäťový kľúč USB alebo podobný nástroj, ktorý slúži len na ukladanie používateľských údajov.
POZNÁMKA
Ak používate swap file pri použití funkcie iba na čítanie file systém, budete musieť presunúť swap file do oddielu na čítanie/zapisovanie.
Prekrytie file systém
Prekrytie file systém (overlayfs) kombinuje dva file systémy, horný file systém a nižšia file systéme. Keď názov existuje v oboch file systémy, objekt v hornej file systém je viditeľný, zatiaľ čo objekt v spodnej časti file Systém je buď skrytý, alebo v prípade adresárov zlúčený s nadradeným objektom. Raspberry Pi poskytuje v súbore raspi-config možnosť povoliť overlayfs. Vďaka tomu bude koreňový súbor (dolný) iba na čítanie a vytvorí sa nadradený súbor založený na RAM. file systém. Toto poskytuje veľmi podobný výsledok ako pri nastavení iba na čítanie file systém, pričom všetky zmeny vykonané používateľom sa po reštarte stratia. Funkciu overlayfs môžete povoliť buď pomocou príkazu raspi-config z príkazu príkazu raspi-config, alebo pomocou konfiguračnej aplikácie Raspberry Pi v ponuke Predvoľby.
Existujú aj iné implementácie overlayfs, ktoré dokážu synchronizovať požadované zmeny z hornej do dolnej úrovne. file systém podľa vopred stanoveného harmonogramu. NapríkladampNapríklad, môžete kopírovať obsah domovského priečinka používateľa z horného do dolného priečinka každých dvanásť hodín. To obmedzuje proces zápisu na veľmi krátky čas, čo znamená, že poškodenie je oveľa menej pravdepodobné, ale znamená to, že ak dôjde k výpadku napájania pred synchronizáciou, všetky údaje vygenerované od poslednej synchronizácie sa stratia. pSLC na výpočtových moduloch Pamäť eMMC používaná v zariadeniach Raspberry Pi Compute Module je MLC (Multi-Level Cell), kde každá pamäťová bunka predstavuje 2 bity. pSLC alebo pseudo-Single Level Cell je typ technológie flash pamäte NAND, ktorú je možné aktivovať v kompatibilných úložných zariadeniach MLC, kde každá bunka predstavuje iba 1 bit. Je navrhnutá tak, aby poskytovala rovnováhu medzi výkonom a výdržou flash pamäte SLC a nákladovou efektívnosťou a vyššou kapacitou flash pamäte MLC. pSLC má vyššiu výdrž zápisu ako MLC, pretože menej častý zápis údajov do buniek znižuje opotrebenie. Zatiaľ čo MLC môže ponúknuť približne 3,000 10,000 až XNUMX XNUMX cyklov zápisu, pSLC dokáže dosiahnuť výrazne vyššie čísla, čím sa blíži k úrovniam výdrže SLC. Táto zvýšená odolnosť sa premieta do dlhšej životnosti zariadení využívajúcich technológiu pSLC v porovnaní so zariadeniami využívajúcimi štandardnú MLC.
Pamäť MLC je nákladovo efektívnejšia ako pamäť SLC, ale hoci pSLC ponúka lepší výkon a odolnosť ako čistá MLC, robí to na úkor kapacity. Zariadenie MLC nakonfigurované pre pSLC bude mať polovičnú kapacitu (alebo menej) ako štandardné zariadenie MLC, pretože každá bunka ukladá iba jeden bit namiesto dvoch alebo viacerých.
Podrobnosti o implementácii
pSLC je implementované na eMMC ako rozšírená používateľská oblasť (tiež známa ako rozšírené úložisko). Skutočná implementácia rozšírenej používateľskej oblasti nie je definovaná v štandarde MMC, ale zvyčajne ide o pSLC.
- Rozšírená používateľská oblasť je koncept, zatiaľ čo pSLC je implementácia.
- pSLC je jeden zo spôsobov implementácie rozšírenej používateľskej oblasti.
- V čase písania tohto článku implementuje eMMC používaná na výpočtových moduloch Raspberry Pi rozšírenú používateľskú oblasť pomocou pSLC.
- Nie je potrebné konfigurovať celú používateľskú oblasť eMMC ako rozšírenú používateľskú oblasť.
- Programovanie oblasti pamäte ako rozšírenej používateľskej oblasti je jednorazová operácia. To znamená, že ju nemožno vrátiť späť.
Zapína sa
Linux poskytuje sadu príkazov na manipuláciu s oddielmi eMMC v balíku mmc-utils. Nainštalujte štandardný operačný systém Linux na zariadenie CM a nainštalujte nástroje nasledovne:
- sudo apt install mmc-utils
Ak chcete získať informácie o eMMC (tento príkaz sa presúva do less, pretože je potrebné zobraziť pomerne veľa informácií):
- sudo mmc extcsd čítanie /dev/mmcblk0 | menej
POZOR
Nasledujúce operácie sú jednorazové – môžete ich spustiť raz a nedajú sa vrátiť späť. Mali by ste ich spustiť aj pred použitím výpočtového modulu, pretože vymažú všetky údaje. Kapacita eMMC sa zníži na polovicu predchádzajúcej hodnoty.
Príkaz používaný na zapnutie pSLC je mmc enh_area_set, ktorý vyžaduje niekoľko parametrov, ktoré mu hovoria, akú veľkosť pamäťovej oblasti má byť pSLC povolená. Nasledujúci príkladampPoužíva celú oblasť. Podrobnosti o použití podmnožiny eMMC nájdete v pomocníkovi príkazu mmc (man mmc).
Po reštarte zariadenia BUDETE musieť preinštalovať operačný systém, pretože povolením pSLC sa vymaže obsah eMMC.
Softvér Raspberry Pi CM Provisioner má možnosť nastaviť pSLC počas procesu poskytovania. Túto možnosť nájdete na GitHub na adrese https://github.com/raspberrypi/cmprovision.
- Mimo zariadenia file bootovanie systémov / siete
Raspberry Pi dokáže bootovať cez sieťové pripojenie, napríkladamppoužívanie siete File Systém (NFS). To znamená, že akonáhle zariadenie dokončí svoje prvétage boot, namiesto načítania jadra a root file systém z SD karty, načíta sa zo sieťového servera. Po spustení všetky file Operácie prebiehajú na serveri a nie na lokálnej SD karte, ktorá v tomto procese nehrá žiadnu ďalšiu úlohu. - Cloudové riešenia
V dnešnej dobe sa veľa kancelárskych úloh vykonáva v prehliadači, pričom všetky dáta sú uložené online v cloude. Uchovávanie dát mimo SD karty môže samozrejme zlepšiť spoľahlivosť, ale na úkor potreby neustáleho pripojenia na internet, ako aj možných poplatkov od poskytovateľov cloudových služieb. Používateľ môže použiť buď plnohodnotnú inštaláciu operačného systému Raspberry Pi s prehliadačom optimalizovaným pre Raspberry Pi, aby získal prístup ku ktorejkoľvek cloudovej službe od dodávateľov, ako sú Google, Microsoft, Amazon atď. Alternatívou je jeden z poskytovateľov tenkých klientov, ktorí nahrádzajú OS Raspberry Pi operačným systémom/aplikáciou, ktorá beží zo zdrojov uložených na centrálnom serveri namiesto SD karty. Tenké klienty fungujú tak, že sa vzdialene pripájajú k serverovému výpočtovému prostrediu, kde je uložená väčšina aplikácií, citlivých dát a pamäte.
Závery
Pri dodržaní správnych postupov vypínania je úložisko Raspberry Pi na SD karte mimoriadne spoľahlivé. Toto funguje dobre v domácom alebo kancelárskom prostredí, kde je možné vypínanie kontrolovať, ale pri používaní zariadení Raspberry Pi v priemyselných prípadoch alebo v oblastiach s nespoľahlivým zdrojom napájania môžu dodatočné opatrenia zvýšiť spoľahlivosť.
Stručne povedané, možnosti na zlepšenie spoľahlivosti možno uviesť takto:
- Použite známu a spoľahlivú SD kartu.
- Znížte počet zápisov dlhšími časmi potvrdenia a dočasnými file systémy pomocou overlayfs alebo podobného nástroja.
- Používajte úložisko mimo zariadenia, ako je napríklad sieťové bootovanie alebo cloudové úložisko.
- Zaveďte režim výmeny SD kariet pred dosiahnutím konca ich životnosti.
- Použite UPS.
Raspberry Pi je ochranná známka spoločnosti Raspberry Pi Ltd
Raspberry Pi Ltd
Kolofón
© 2020-2023 Raspberry Pi Ltd (predtým Raspberry Pi (Trading) Ltd.)
Táto dokumentácia je licencovaná pod licenciou Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND).
- dátum výroby: 2024
- verzia zostavenia: githash: 3e4dad9-clean
Právne upozornenie
TECHNICKÉ ÚDAJE A SPOĽAHLIVOSŤ PRODUKTOV RASPBERRY PI (VRÁTANE ÚDAJOVÝCH hárkov), AKO Z ČASU UPRAVUJÚ („ZDROJE“), POSKYTUJE SPOLOČNOSŤ RASPBERRY PI LTD („RPL“) „TAK, AKO SÚ“ A AKÉKOĽVEK VÝSLOVNÉ ALEBO IMPLICITNÉ, BEZ OBMEDZENÍ BEZ ZÁRUK PREDPOKLADANÉ ZÁRUKY PREDAJNOSTI A VHODNOSTI NA KONKRÉTNY ÚČEL SA ODMIETNUJÚ. V MAXIMÁLNOM ROZSAHU POVOLENOM PRÍSLUŠNÝM ZÁKONOM V ŽIADNOM PRÍPADE NEBUDE RPL ZODPOVEDNÁ ZA AKÉKOĽVEK PRIAMY, NEPRIAME, NÁHODNÉ, ŠPECIÁLNE, EXEMPLÁRNE ALEBO NÁSLEDNÉ ŠKODY (VRÁTANE, ALE NEOBMEDZENÉHO POUŽITIA, ZAOBCHÁDZANIE GOODS; ALEBO ZISKY; ALEBO PRERUŠENIE PODNIKANIA) AKO JE TO SPÔSOBENÉ A NA AKEJKOĽVEK TEÓRII ZODPOVEDNOSTI, ČI UŽ V ZMLUVE, PRÍMEJ ZODPOVEDNOSTI ALEBO PREČINKU (VRÁTANE NEDBALOSTI ALEBO INAK), VZNIKNUTÉM AKÝMKOĽVEK SPÔSOBOM Z NAŠEHO POUŽITIA. TAKÝCHTO POŠKODENÍ.
Spoločnosť RPL si vyhradzuje právo kedykoľvek a bez ďalšieho upozornenia vykonať akékoľvek vylepšenia, vylepšenia, opravy alebo akékoľvek iné úpravy ZDROJOV alebo akýchkoľvek produktov v nich opísaných. ZDROJE sú určené pre skúsených používateľov s vhodnou úrovňou znalostí dizajnu. Používatelia sú výlučne zodpovední za svoj výber a používanie ZDROJOV a akékoľvek použitie produktov v nich opísaných. Používateľ súhlasí s tým, že odškodní a ochráni spoločnosť RPL pred všetkými záväzkami, nákladmi, škodami alebo inými stratami vyplývajúcimi z používania ZDROJOV. Spoločnosť RPL udeľuje používateľom povolenie používať ZDROJE výlučne v spojení s produktmi Raspberry Pi. Akékoľvek iné použitie ZDROJOV je zakázané. Na žiadne iné práva duševného vlastníctva RPL alebo iné práva duševného vlastníctva tretích strán sa neudeľuje žiadna licencia.
VYSOKORIZIKOVÉ AKTIVITY. Produkty Raspberry Pi nie sú navrhnuté, vyrobené ani určené na použitie v nebezpečných prostrediach vyžadujúcich bezporuchový výkon, ako napríklad pri prevádzke jadrových zariadení, navigačných alebo komunikačných systémoch lietadiel, riadení letovej prevádzky, zbraňových systémoch alebo bezpečnostne kritických aplikáciách (vrátane systémov na podporu života a iných zdravotníckych pomôcok), v ktorých by zlyhanie produktov mohlo priamo viesť k smrti, zraneniu osôb alebo vážnemu fyzickému poškodeniu alebo poškodeniu životného prostredia („Vysokorizikové aktivity“). Spoločnosť RPL sa výslovne zrieka akejkoľvek výslovnej alebo implicitnej záruky vhodnosti pre vysokorizikové aktivity a nepreberá žiadnu zodpovednosť za používanie alebo zahrnutie produktov Raspberry Pi do vysokorizikových aktivít. Produkty Raspberry Pi sa poskytujú v súlade so štandardnými podmienkami spoločnosti RPL. Poskytovanie ZDROJOV spoločnosťou RPL nerozširuje ani inak nemení štandardné podmienky spoločnosti RPL vrátane, ale nie výlučne, vyhlásení o zrieknutí sa zodpovednosti a záruk, ktoré sú v nich uvedené.
Často kladené otázky
- Otázka: Ktoré produkty Raspberry Pi sú podporované týmto dokumentom?
A: Tento dokument sa vzťahuje na rôzne produkty Raspberry Pi vrátane 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: Ako môžem znížiť riziko poškodenia údajov na mojom zariadení Raspberry Pi?
A: Poškodenie údajov môžete znížiť minimalizáciou operácií zápisu, najmä aktivít protokolovania, a úpravou časov potvrdenia pre file systém, ako je popísané v tomto dokumente.
Dokumenty / zdroje
![]() |
Raspberry Pi je odolnejší File Systém [pdf] Používateľská príručka Pi 0, Pi 1, Vytvorenie odolnejšieho File Systém, odolnejší File Systém, odolný File systém, File Systém |