madf: (Default)
[personal profile] madf
Рік тому відбулась історична суперечка між Linus'ом Torvalds'ом та іншими розробниками ядра (Ingo Molnar та Ted Ts'o) з приводу нової файлової системи ext4. Суперечка стосувалась системному виклику sync.
Суть у тому, що сучасні файлові системи не пишуть одразу дані на фізичний носій, а застосовують буферизацію. Це значно збільшує швидкодію (і строк служби flash-носіїв). Але, як завжди буває, така техніка має зворотній бік медалі: надійність.
Програма записує дані в файл, після чого виникає аварійна відсічка живлення: дані втрачено. Якщо звернутись до першоджерела (суперечки), ext3 виконує синхронізацію з диском раз на 5 секунд, в той час як ext4 виконує цю операцію раз на 2 хвилини. Звісно, що втрата даних на ext4 більш ймовірна, але ext4 менше завантажує систему дисковими операціями (маю наголосити, що ця різниця не єдина; більш того - зовсім мізерна в порівнянні з додатковим функціоналом ext4).
Наразі я зіткнувся з цією проблемою. Є файлова система ext2. Є сервер який на ній працює. Є зовнішня утиліта-конфігуратор, яка спілкується з програмою-сервером і перезаписує файли конфігурації. Частина системи "підхоплює" нові налаштування одразу, а частина - лише після перезапуску системи. Перезапускають систему банально - відсічкою живлення. В результаті частина даних не встигає записатись на диск. Як і писав Linus Torvalds, ця задача лягає на плечі програмістів (flush + sync) або користувачів (параметри монтування розділу). Як зараз пам'ятаю обговорення цього питання з Борисом aka [livejournal.com profile] stg34 коли ми їхали минулого року через міст на правий берег.
flush - скидає дані буферів із userspace до kernelspace.
sync - скидає дані буферів із kernelspace до носія.
Правда, не треба забувати що у сучасних носіїв є свій внутрішній буфер. Залишається сподіватись на ємність конденсаторів системи живлення носіїв даних :)

Upd.
Забув зазначити що ситуація описана для Compact Flash, тому транзакційні файлові системи не підходять.

Profile

madf: (Default)
madf

April 2018

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 09:14 pm
Powered by Dreamwidth Studios