Начална » как да » Как може неочаквано спиране да навреди на Linux компютър?

    Как може неочаквано спиране да навреди на Linux компютър?

    Дали неочакваните изключвания са вредни за Linux, както и за други операционни системи? Прочетете, докато изследваме ефектите от катастрофални изключвания на системи за файловите системи на Linux.

    Днешната сесия за въпроси и отговори идва при нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, групирано от общността уеб сайтове за въпроси и отговори.

    Въпроса

    Четецът на SuperUser User208554 е любопитен за файловите структури на Linux и е загрижен за приложението / инсталацията, по които работи:

    Разработвам приложение на вградена в Linux дъска (изпълнява Debian) напр. Raspberry Pi, Beagle Board / Bone или olimex. Дъските работят в среда, в която електричеството се прекъсва неочаквано (твърде сложно е да се постави захранване и т.н.) и това ще се случва всеки ден няколко пъти. Чудя се дали неочакваните прекъсвания на захранването ще причинят проблем на операционната система Linux? Ако това е нещо, за което трябва да се тревожа, какво бихте предложили да предотвратите щетите на операционната система срещу неочакваните прекъсвания на захранването?

    PS. Приложението трябва да запише някои данни в носителя за съхранение (SD карта), мисля, че не е подходящо да го монтирате само за четене.

    Така че каква е присъдата?

    Отговорът

    Сътрудникът на SuperUser l0b0 предлага известна представа за файловите системи за журналиране / не-журналиране:

    Това ще зависи от това

    1. дали използвате файлова система за журналиране и
    2. колко добре приложенията могат да обработват прекъсната обработка.

    Помислете например за приложение, което обработва файл и записва резултатите, тъй като те се изчисляват (един изходен ред на входен ред) към друг файл. Ако захранването бъде прекъснато по време на обработка и същото приложение се стартира след рестартиране, то не може просто да рестартира обработката от началото на входния файл - това би означавало, че изходният файл ще съдържа дублираща се информация.

    Може да е много трудно да се каже нещо определено за една хипотетична сложна система, но най-стабилният софтуер на Linux изглежда е способен да се справи с катастрофите доста добре..

    Stu предлага да се раздели операционната система и данните, както и да се добави резервно копие на батерията:

    За да минимизирате възможността за корупция на ОС, най-добре е да имате отделни дялове “system” и “data” на SD картата. По този начин можете да монтирате “системния” дял само за четене и да използвате високоустойчива FS на дяла “data”.

    Освен това, повечето от тези платки имат много ниски изисквания за мощност, така че е възможно резервно копие на батерията. Платката „LiPo ездач” за Raspberry Pi може да се използва като основно UPS устройство за осигуряване на чисто изключване при загуба на мощност..

    И накрая, Jenny D разширява предложението за файлова система за журналиране:

    Неочакваните прекъсвания на захранването могат да причинят повреждане на данните от файловата система - напр. ако процесът е започнал да пише във файл, но все още не е завършил писането му, файлът може да бъде написан само наполовина. Сега си представете, ако прекъсването на захранването се случи, когато сте на половината път през ъпгрейд на ядрото…

    Както пише l0b0, използването на файлова система за журналиране ще помогне, тъй като ще може да следи какво всъщност е направено. В допълнение към wikipedia инфото, което l0b0 е свързано, може да се интересувате от Защита на журналирането на файловите системи срещу корупция след повреда в захранването..

    Вие като програмист очевидно трябва да обмислите внимателно как да се справяте с писането на файлове, така че то да стане атомно (т.е. или е напълно направено, или изобщо не е направено, но никога не е свършено наполовина). Това е доста сложен въпрос.


    Имате ли какво да добавите към обяснението? Звукът е изключен в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.