Малина-лого

Raspberry Pi постаје отпорнији File Систем

Raspberry-Pi-је-како-је-отпорнији-File-Системски производ

Обим документа

Овај документ се односи на следеће Распберри Пи производе:

Пи 0 Пи 1 Пи 2 Пи 3 Пи 4 Пи 400 ЦМ1 ЦМ3 ЦМ4 CM 5 Пицо
0 W H A B A B B Све Све Све Све Све Све Све
* * * * * * * * * * * * * *  

 

Увод

Уређаји компаније Raspberry Pi Ltd се често користе као уређаји за складиштење и праћење података, често на местима где може доћи до изненадних нестанака струје. Као и код било ког рачунарског уређаја, нестанак струје може проузроковати оштећење меморије. Ова бела књига пружа неке опције о томе како спречити оштећење података у овим и другим околностима одабиром одговарајућих... file системи и подешавања како би се осигурао интегритет података. Овај документ претпоставља да Raspberry Pi користи оперативни систем (ОС) Raspberry Pi (Linux) и да је потпуно ажуриран најновијим фирмвером и језгрима.

Шта је корупција података и зашто се јавља?
Оштећење података односи се на ненамерне промене у рачунарским подацима које се дешавају током писања, читања, складиштења, преноса или обраде. У овом документу мислимо само на складиштење, а не на пренос или обраду. До оштећења може доћи када се процес писања прекине пре него што се заврши, на начин који спречава завршетак писања, на примерampако нестане струје. У овом тренутку је вредно дати кратак увод у то како Линукс оперативни систем (и, самим тим, Распбери Пи оперативни систем) уписује податке у меморију. Линукс обично користи кеш меморије за писање да би сачувао податке који треба да се запишу у меморију. Оне кеширају (привремено чувају) податке у меморији са случајним приступом (RAM) док се не достигне одређени унапред дефинисани лимит, када се сви преостали записи на медијум за складиштење врше у једној трансакцији. Ова унапред дефинисана ограничења могу бити повезана са временом и/или величином. На примерampТј. подаци могу бити кеширани и записани у меморију само сваких пет секунди или записани само када се акумулира одређена количина података. Ове шеме се користе за побољшање перформанси: писање великог дела података одједном је брже него писање много малих делова података.

Међутим, ако дође до губитка напајања између складиштења података у кеш меморији и њиховог записа, ти подаци се губе. Други могући проблеми настају даље у процесу писања, током физичког писања података на медијум за складиштење. Када се хардверски део (на пример...)ampтј. интерфејсу за Secure Digital (SD) картицу се каже да пише податке, и даље је потребно ограничено време да се ти подаци физички сачувају. Поново, ако дође до нестанка струје током тог изузетно кратког периода, могуће је да се подаци који се записују оштете. Приликом искључивања рачунарског система, укључујући Raspberry Pi, најбоља пракса је коришћење опције искључивања. Ово ће осигурати да се сви кеширани подаци запишу и да је хардвер имао времена да заправо запише податке на медијум за складиштење. SD картице које користи већина Raspberry Pi уређаја су одличне као јефтине замене за чврсте дискове, али су подложне кваровима током времена, у зависности од тога како се користе. Флеш меморија која се користи у SD картицама има ограничен век трајања циклуса писања, и како се картице приближавају том ограничењу, могу постати непоуздане. Већина SD картица користи поступак који се зове изравнавање хабања како би се осигурало да трају што је дуже могуће, али на крају могу отказати. То може бити од месеци до година, у зависности од тога колико је података записано на картицу или (што је још важније) избрисано са ње. Овај век трајања може драматично да варира између картица. Квар СД картице се обично обележава случајним file оштећења јер делови СД картице постају неупотребљиви.

Постоје и други начини да се подаци оштете, укључујући, али не ограничавајући се на, неисправан медијум за складиштење, грешке у софтверу за писање података у меморију (драјвери) или грешке у самим апликацијама. За потребе ове беле књиге, сваки процес којим може доћи до губитка података дефинише се као догађај оштећења.

Шта може изазвати операцију писања?
Већина апликација врши неку врсту писања у меморију, на примерampинформације о конфигурацији, ажурирања базе података и слично. Неки од њих fileМогу чак бити и привремени, тј. користити се само док програм ради и не захтевају одржавање током циклуса искључивања/искључивања; међутим, они и даље резултирају писањем на медијум за складиштење. Чак и ако ваша апликација заправо не уписује никакве податке, у позадини ће Линукс стално вршити уписивање у меморију, углавном записујући информације о евидентирању.

Хардверска решења

Иако није у потпуности у оквиру ове беле књиге, вреди напоменути да је спречавање неочекиваних нестанака напајања често коришћена и добро разумљива мера за ублажавање губитка података. Уређаји као што су непрекидни извори напајања (UPS) осигуравају да напајање остане стабилно и, ако дође до губитка напајања UPS-а, док се напајање из батерије може обавестити рачунарски систем да је нестанак напајања неизбежан, тако да се гашење може наставити грациозно пре него што се резервно напајање истроши. Пошто SD картице имају ограничен век трајања, може бити корисно имати режим замене који осигурава да се SD картице замене пре него што достигну крај свог животног века.

Робустан file система

Постоје различити начини на које се Raspberry Pi уређај може заштитити од оштећења. Они се разликују по својој способности да спрече оштећење, при чему свака акција смањује шансу за његово појављивање.

  • Смањење броја писаних података
    Само смањење количине писања коју ваше апликације и Линукс оперативни систем обављају може имати користан ефекат. Ако вршите доста евидентирања, онда се повећавају шансе да се писање догоди током догађаја оштећења. Смањење евидентирања у вашој апликацији зависи од крајњег корисника, али евидентирање у Линуксу такође може бити смањено. Ово је посебно релевантно ако користите флеш меморију (нпр. eMMC, SD картице) због њиховог ограниченог животног циклуса писања.
  • Промена времена потврђивања
    Време обавезе за file Систем је време током којег кешира податке пре него што их све копира у складиште. Повећање овог времена побољшава перформансе груписањем великог броја писања, али може довести до губитка података ако дође до оштећења пре него што се подаци запишу. Смањење времена потврђивања ће значити мању шансу да оштећење доведе до губитка података, иако га не спречава у потпуности.
    Да бисте променили време потврде за главни EXT4 file систем на Raspberry Pi OS-у, потребно је да измените \etc\fstab file који дефинише како file Системи се монтирају при покретању.
  • $sudo nano /etc/fstab

Додајте следеће у EXT4 унос за root file систем:

  • потврди=

Дакле, fstab може изгледати отприлике овако, где је време потврђивања подешено на три секунде. Време потврђивања ће подразумевано бити пет секунди ако није посебно подешено.

Raspberry-Pi-је-како-је-отпорнији-File-Систем-

 

Привремени file система

Ако апликација захтева привремено file складиште, тј. подаци се користе само док апликација ради и није их потребно сачувати током гашења, онда је добра опција за спречавање физичког писања у складиште коришћење привременог file систем, tmpfs. Јер ови file Системи су базирани на РАМ меморији (заправо, у виртуелној меморији), сви подаци записани у tmpfs никада се не записују у физичку меморију и стога не утичу на век трајања флеш меморије и не могу се оштетити услед корупције.
Креирање једне или више tmpfs локација захтева уређивање /etc/fstab file, који контролише све file системи под Raspberry Pi оперативним системом. Следећи примерample замењује локације засноване на складишту /tmp и /var/log са привременим file системске локације. Други бившиample, који замењује стандардну фасциклу за евидентирање, ограничава укупну величину file систем на 16MB.

  • tmpfs /tmp подразумеване вредности tmpfs-а, време без икаквог времена 0 0
  • tmpfs /var/log подразумеване вредности tmpfs-а, време пријема, величина=16m 0 0

Такође постоји скрипта треће стране која помаже у подешавању евидентирања у RAM меморију, а може се наћи на GitHub-у. Ова скрипта има додатну функцију евидентирања RAM меморије на диск у унапред дефинисаном интервалу.

Само за читање корен file система

Корен file систем (rootfs) је file систем на партицији диска на којој се налази коренски директоријум, и то је file систем на којем су сви остали file Системи се монтирају приликом покретања система. На Raspberry Pi-ју је то /, и подразумевано се налази на SD картици као потпуно EXT4 партиција за читање/писање. Постоји и boot фолдер, који је монтиран као /boot и представља FAT партицију за читање/писање. Остављање rootfs-а САМО за читање спречава било какав приступ писању, чинећи га много отпорнијим на оштећења. Међутим, осим ако се не предузму друге мере, то значи да ништа не може да пише на file систем уопште, тако да је чување података било које врсте из ваше апликације у rootfs онемогућено. Ако треба да чувате податке из ваше апликације, али желите rootfs само за читање, уобичајена техника је додавање USB меморије или сличног уређаја који служи само за чување корисничких података.

НАПОМЕНА
Ако користите замену file када се користи само за читање file систем, мораћете да померите swap file на партицију за читање/писање.

Оверлаи file система

Преклапање file систем (overlayfs) комбинује два file системи, горњи file систем и нижи file систем. Када име постоји у оба file системи, објекат у горњем file систем је видљив док је објекат у доњем file Систем је или скривен или, у случају директоријума, спојен са горњим објектом. Raspberry Pi пружа опцију у raspi-config-у за омогућавање overlayfs-а. Ово чини rootfs (доњи) само за читање и креира горњи заснован на RAM-у. file систем. Ово даје веома сличан резултат као и код система само за читање file систем, при чему се све корисничке измене губе при поновном покретању. Можете омогућити overlayfs помоћу командне линије raspi-config или помоћу апликације за конфигурацију Raspberry Pi-ја на десктопу у менију Подешавања.

Постоје и друге имплементације overlayf-ова које могу да синхронизују потребне промене од горњег до доњег нивоа. file систем по унапред одређеном распореду. На примерampнпр., можете копирати садржај корисничке почетне фасцикле из горњег у доњи фасциклу сваких дванаест сати. Ово ограничава процес писања на веома кратак временски период, што значи да је оштећење много мање вероватно, али значи да ако се напајање изгуби пре синхронизације, сви подаци генерисани од последњег ће бити изгубљени. pSLC на рачунарским модулима eMMC меморија која се користи на Raspberry Pi рачунарским модулима је MLC (Multi-Level Cell), где свака меморијска ћелија представља 2 бита. pSLC, или псеудо-Single Level Cell, је врста NAND флеш меморије која се може омогућити у компатибилним MLC уређајима за складиштење података, где свака ћелија представља само 1 бит. Дизајнирана је да обезбеди равнотежу између перформанси и издржљивости SLC флеша и исплативости и већег капацитета MLC флеша. pSLC има већу издржљивост писања од MLC јер ређе писање података у ћелије смањује хабање. Док MLC може понудити око 3,000 до 10,000 циклуса писања, pSLC може постићи знатно веће бројеве, приближавајући се нивоима издржљивости SLC-а. Ова повећана издржљивост значи дужи век трајања уређаја који користе pSLC технологију у поређењу са онима који користе стандардни MLC.

MLC је исплативија од SLC меморије, али иако pSLC нуди боље перформансе и издржљивост од чистог MLC-а, то чини на рачун капацитета. MLC уређај конфигурисан за pSLC имаће половину капацитета (или мање) који би имао као стандардни MLC уређај, јер свака ћелија чува само један бит уместо два или више.

Детаљи имплементације

pSLC је имплементиран на eMMC-у као побољшана корисничка област (такође позната као побољшано складиштење). Стварна имплементација побољшане корисничке области није дефинисана у MMC стандарду, али је обично pSLC.

  • Побољшана корисничка област је концепт, док је pSLC имплементација.
  • pSLC је један од начина имплементације побољшане корисничке области.
  • У време писања овог текста, eMMC који се користи на Raspberry Pi Compute модулима имплементира побољшану корисничку област користећи pSLC.
  • Нема потребе да конфигуришете целокупно корисничко подручје eMMC-а као побољшано корисничко подручје.
  • Програмирање меморијског региона да буде побољшана корисничка област је једнократна операција. То значи да се не може поништити.

Укључивање
Линукс пружа скуп команди за манипулацију eMMC партицијама у пакету mmc-utils. Инсталирајте стандардни Линукс оперативни систем на CM уређај и инсталирајте алате на следећи начин:

  • судо апт инсталл ммц-утилс

Да бисте добили информације о eMMC-у (ова команда се претвара у less јер има доста информација за приказивање):

  • sudo mmc extcsd читање /dev/mmcblk0 | less

 УПОЗОРЕЊЕ
Следеће операције су једнократне – можете их покренути једном и не могу се поништити. Такође би требало да их покренете пре него што се употреби Compute Module, јер ће обрисати све податке. Капацитет eMMC-а ће се смањити на половину претходне вредности.

Команда која се користи за укључивање pSLC-а је mmc enh_area_set, која захтева неколико параметара који јој говоре колико меморијског простора треба да омогући pSLC. Следећи примерample користи целу област. Молимо погледајте помоћ за mmc команду (man mmc) за детаље о томе како да користите подскуп eMMC-а.

Raspberry-Pi-је-како-је-отпорнији-File-Систем-

Након што се уређај поново покрене, ПОТРЕБНО је да поново инсталирате оперативни систем, јер ће омогућавање pSLC-а обрисати садржај eMMC-а.

Софтвер Raspberry Pi CM Provisioner има опцију за подешавање pSLC-а током процеса пружања услуга. Ово се може наћи на GitHub-у на https://github.com/raspberrypi/cmprovision.

  • Ван уређаја file покретање система / мреже
    Raspberry Pi може да се покрене преко мрежне везе, на примерampкоришћење мреже File Систем (NFS). То значи да када уређај заврши своје првоtagе бут, уместо да учитава своје језгро и root file систем са SD картице, учитава се са мрежног сервера. Једном када се покрене, све file Операције се изводе на серверу, а не на локалној СД картици, која не игра никакву даљу улогу у поступку.
  • Цлоуд решења
    Данас се многи канцеларијски задаци обављају у прегледачу, а сви подаци се чувају онлајн у облаку. Чување података ван SD картице очигледно може побољшати поузданост, на рачун потребе за сталном интернет конекцијом, као и могућих накнада од стране добављача услуга у облаку. Корисник може да користи комплетну инсталацију Raspberry Pi оперативног система, са прегледачем оптимизованим за Raspberry Pi, да би приступио било којој од услуга у облаку добављача као што су Google, Microsoft, Amazon итд. Алтернатива је један од добављача танких клијената, који замењују Raspberry Pi оперативним системом оперативним системом/апликацијом која се покреће са ресурса смештених на централном серверу уместо са SD картице. Танки клијенти раде тако што се даљински повезују са рачунарским окружењем заснованим на серверу где се чува већина апликација, осетљивих података и меморије.

Закључци

Када се поштују исправне процедуре искључивања, складиштење података на SD картици Raspberry Pi-ја је изузетно поуздано. Ово добро функционише у кућном или канцеларијском окружењу где се искључивање може контролисати, али када се Raspberry Pi уређаји користе у индустријским случајевима или у подручјима са непоузданим напајањем, додатне мере предострожности могу побољшати поузданост.

Укратко, опције за побољшање поузданости могу се навести на следећи начин:

  • Користите добро познату, поуздану SD картицу.
  • Смањите број писања коришћењем дужег времена потврђивања, користећи привремене file системи, користећи overlayfs или слично.
  • Користите складиште ван уређаја, као што је мрежно покретање или складиште у облаку.
  • Примените режим замене SD картица пре него што им се истекне животни век.
  • Користите УПС.

Распберри Пи је заштитни знак компаније Распберри Пи Лтд
Распберри Пи Лтд

Колофон
© 2020-2023 Распберри Пи Лтд (раније Распберри Пи (Традинг) Лтд.)
Ова документација је лиценцирана под лиценцом Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND).

  • датум израде: 2024-06-25
  • верзија изградње: githash: 3e4dad9-clean

Правно обавештење о одрицању одговорности
ТЕХНИЧКЕ ПОДАТКЕ И ПОУЗДАНОСТ ЗА ПРОИЗВОДЕ РАСПБЕРРИ ПИ (УКЉУЧУЈУЋИ ЛИСТЕ ПОДАТАКА) КАКО СЕ ПОВРЕМЕНО МОДИФИКУЈУ („РЕСУРСИ“) ОБЕЗБЕЂУЈЕ РАСПБЕРРИ ПИ ЛТД („РПЛ“) „КАКО ЈЕСУ“ И БИЛО КОЈИ ИЗРИЧИТО, Њ. ДА СЕ ПОДРАЗУМЕВАНЕ ГАРАНЦИЈЕ О ПРОДАЈНОСТИ И ПРИКЛАДНОСТИ ЗА ОДРЕЂЕНУ НАМЕНУ ОДРИЧЕ. У МАКСИМАЛНОЈ МЕРИ КОЈИ ЈЕ ДОЗВОЉЕН ВАЖЕЋИМ ЗАКОНОМ НИ У КОМ СЛУЧАЈУ РПЛ НЕЋЕ БИТИ ОДГОВОРАН ЗА БИЛО КАКВЕ ДИРЕКТНЕ, ИНДИРЕКТНЕ, СЛУЧАЈНЕ, СПЕЦИЈАЛНЕ, ПРИМЕРНЕ ИЛИ ПОСЛЕДИЧНЕ ШТЕТЕ (УКЉУЧУЈУЋИ, КОЈИ СЕ УКЉУЧУЈУ, АЛИ НА Г. ИЦЕС, ГУБИТАК КОРИШЋЕЊА, ПОДАТАКА , ИЛИ ДОБИТАКА ИЛИ ПРЕКИДА ПОСЛОВАЊА) КОЈИ БИ БИЛО УЗРОК И О БИЛО КОЈОЈ ТЕОРИЈИ ОДГОВОРНОСТИ, БИЛО У УГОВОРУ, СТРОГОЈ ОДГОВОРНОСТИ ИЛИ ДЕЛАТНОМ ДЕЛУ (УКЉУЧУЈУЋИ НЕМАР ИЛИ НА ДРУГИ НАЧИН) КОЈИ НАСТАЈЕ НА БИЛО КОЈИ НАЧИН ИЗ СИБИЛИТИ ТАКВЕ ШТЕТЕ.

РПЛ задржава право да изврши било каква побољшања, унапређења, исправке или било које друге измене РЕСУРСА или било ког производа описаног у њима у било ком тренутку и без даљег обавештења. РЕСУРСИ су намењени вештим корисницима са одговарајућим нивоом знања о дизајну. Корисници су искључиво одговорни за свој избор и коришћење РЕСУРСА и било какву примену производа описаних у њима. Корисник се слаже да обештети и заштити РПЛ од свих обавеза, трошкова, штета или других губитака који произилазе из њиховог коришћења РЕСУРСА. РПЛ даје корисницима дозволу да користе РЕСУРСЕ искључиво у вези са производима Raspberry Pi. Свака друга употреба РЕСУРСА је забрањена. Ниједна лиценца се не даје ни за једно друго РПЛ или друго право интелектуалне својине треће стране.

АКТИВНОСТИ ВИСОКОГО РИЗИКА. Производи Raspberry Pi нису пројектовани, произведени нити намењени за употребу у опасним окружењима која захтевају безбедне перформансе, као што је рад нуклеарних постројења, навигациони или комуникациони системи авиона, контрола ваздушног саобраћаја, системи наоружања или безбедносно критичне апликације (укључујући системе за одржавање живота и друге медицинске уређаје), у којима би квар производа могао директно довести до смрти, телесних повреда или тешке физичке или еколошке штете („Активности високог ризика“). RPL се посебно одриче било какве изричите или имплицитне гаранције подобности за активности високог ризика и не прихвата никакву одговорност за употребу или укључивање производа Raspberry Pi у активности високог ризика. Производи Raspberry Pi се пружају у складу са Стандардним условима RPL-а. Одређивање РЕСУРСА од стране RPL-а не проширује нити на други начин мења Стандардне услове RPL-а, укључујући, али не ограничавајући се на одрицања одговорности и гаранције изражене у њима.

Често постављана питања

  • П: Које Raspberry Pi производе подржава овај документ?
    A: Овај документ се односи на различите Raspberry Pi производе, укључујући Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 и Pico.
  • П: Како могу смањити шансе за оштећење података на мом Raspberry Pi уређају?
    A: Можете смањити оштећење података минимизирањем операција писања, посебно активности евидентирања, и подешавањем времена извршења за file систем као што је описано у овом документу.

Документи / Ресурси

Raspberry Pi постаје отпорнији File Систем [пдф] Упутство за кориснике
Пи 0, Пи 1, Стварање отпорнијег File Систем, отпорнији File Систем, отпоран File систем, File Систем

Референце

Оставите коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена *