Неочакваните спирания са толкова вредни за Linux, колкото и за други операционни системи? Прочетете, докато проучваме ефектите от катастрофалните спирания на системата на файловите системи на Linux.
Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.
Reader на SuperUser User208554 е любопитен за файловите структури на Linux и се интересува от приложение / инсталация, върху която работи:
Разработвам приложение на вграден борд на Linux (работи Debian), напр. Малина Pi, Beagle съвет / кост, или olimex. Таблата работят върху среда, в която електричеството се изрязва неочаквано (това е твърде сложно за поставяне на захранващото устройство и т.н.) и това би се случвало всеки ден няколко пъти. Чудя се дали неочакваните прекъсвания на захранването биха причинили проблем на операционната система Linux? Ако това е нещо, за което трябва да се тревожа, какво бихте предложили, за да предотвратите щетите върху операционната система срещу неочакваните прекъсвания?
PS. Приложението трябва да напише някои данни на носителя за съхранение (SD карта), мисля, че не би било подходящо да го монтирате като четене само.
И така, каква е присъдата?
Сътрудникът на SuperUser l0b0 предлага известно вникване в файловите системи за журнализиране / непериодиране:
Това ще зависи от това
- независимо дали използвате журналистическа файлова система и
- колко добре приложенията могат да обработват преустановената обработка.
Помислете например за приложение, което обработва файл и записва резултатите, тъй като те се изчисляват (един изходен ред на входния ред) към друг файл. Ако захранването се прекъсне по време на обработката и същото приложение се изпълнява след рестартиране, то не може просто да рестартира обработката от началото на входния файл - това би означавало, че изходният файл ще съдържа дублираща се информация.
Може да е много трудно да се каже нещо определено за хипотетична сложна система, но най-стабилният софтуер за Linux изглежда е в състояние да се справи с катастрофи доста добре.
Stu предлага разделяне на операционната система и данни, както и добавяне на резервно копие на батерията:
За да се сведе до минимум възможността за корупция на операционната система, вероятно е най-добре да има отделни дялове "system" и "data" на SD картата. По този начин можете да монтирате дяла "system" само за четене и да използвате високоеластичен FS в дяла "data".
Освен това, повечето от тези табла имат много ниски изисквания за захранване, така че е възможно захранване с батерия. Платформата "LiPo rider" за Raspberry Pi може да се използва като основен UPS, за да се осигури чиста изключване при загуба на мощност.
Накрая, Джени D разширява предложението на файловата система за журнализиране:
Неочакваните прекъсвания на захранването могат да причинят повреда на данните на файловата система - напр. ако процесът е започнал да пише във файл, но все още не е завършил писането му, файлът може да завърши само наполовина. Сега си представете, ако прекъсването на захранването се случи, когато сте на половината от ъпгрейд на ядрото ...
Както пише l0b0, ще помогне с помощта на журналистическа файлова система, тъй като ще може да следи какво всъщност е станало. В допълнение към информацията за уикипедия, която е свързана с l0b0, може да ви заинтересуват да правите журналистически файлови системи за гарантиране на корупцията след повреда на захранването.
Вие като програмист очевидно трябва внимателно да обмислите как да се справите с писането на файлове, така че да стане атомен процес (т.е. или е напълно направено, или не е направено изобщо, но никога не е било направено половината). Това е доста сложен въпрос.
Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.