Які дані на файловій системі дійсно впливають на втрату потужності?


0

Дозвольте моїй файловій системі встановлювати ext4 data=journal. Я не повністю розумію, що відбувається під час втрати потужності з файловою системою. Тому у мене є такі запитання:

  • За яких обставин дані, які вже зберігаються на жорсткому диску (незалежно від SSD або HDD), можуть бути пошкоджені (змінені) при втраті живлення?
  • За яких обставин дані, що записуються при втраті живлення, будуть непослідовними? (Я маю на увазі щось буде написано, але не буде рівним початковим даним)
  • Що відбувається, коли втрата потужності відбувається під час відтворення журналу fschk?

Відповіді:


0

Я вважаю, що це питання не є специфічним для Linux або ext4, а для будь-якої файлової системи в цілому.

Powerloss не знищить жодних даних, якщо на диск не буде записано файл.

Це в основному означає, що коли програма відкриває файл, він може зробити це багатьма різними способами.

Це може зробити так, щоб просто прочитати з нього, він може зробити це, щоб записати до нього з самого початку (переписати все) і додати до файлу (записати в кінці файлу).

Тепер хитрість полягає в тому, що файл має 2 сегменти. Це:

  • Таблиця змісту,
  • Дані.

На початку жорсткого диска написано таблицю, яка містить місце (и) файлу на жорсткому диску. У вказаному місці (-ах) дані записуються як 0 і 1 на жорсткому диску.

Читання файлу назад, очевидно, спочатку отримує його розташування, то з фактичного місця, отримати кількість 0 і 1, щоб сформувати фактичний файл в пам'яті.

Коли жорсткий диск записується до файлу, він робить це, спочатку записуючи дані на диск, переглядаючи нові точки початку та закінчення (зазвичай це те ж саме, але у випадку фрагментації даних і використання другого блоку) , записуються її початкові та кінцеві точки), а записи записуються в таблицю розділів.

Якщо під час запису в файл потужність виходить з ладу, індекс, очевидно, не відповідає даним. Це створює явища досягнення помилки читання при спробі доступу до файлу. Ви бачите його там, але все одно ви не маєте доступу до нього.

Оскільки читання до файлу насправді не змінює вміст диска, потужність тут не вплине.


AFAIU, коли використовуються файлові системи журналювання, операційна система спочатку записує у журнал файлової системи (log-write log) щось подібне до наступного: "Transaction begin" "Я збираюся написати перший сегмент X", "Я збираюся написати другий сегмент Y "," Трансакція закінчується ", а по-друге, роблять фактичне написання. Потім, якщо втрата потужності сталася під час написання журналу, то неповна транзакція може бути повністю знищена. Якщо втрата потужності сталася при написанні файлу, ми можемо відтворити журнал і написати пропущені частини з журналу. Я правий? У цьому випадку ми маємо повний файл або взагалі не маємо файлу.
0x2207
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.