LINUX.ORG.RU

кэширование файловых систем


0

0

есть раздел ext2. создаю файл, секунд через 5 после этого происходит сбой по питанию. после следующей загрузки никакого файла и в помине нет. можно как-либо отключить кэширование файловых систем, чтобы избежать пропадания данных при сбое питания? или мне прямая дорога к reiserfs? спасибо.

anonymous

Прямая дорога к UPS. Отключишь кэширование (если отключится) -- взвоешь от тормозов.

Obidos ★★★★★
()

Монтировать (или перемонтировать) с -o sync. Не проверял, но в man mount сказано, что под линухом на ext2 работает.

Только вот я не уверен, что это поможет при отключении питания - так как современные диски содержат существенный внутрениий буфер - 1-2Mb обычное дело. Его, кажется, зафлешить программым образом нельзя, им внутренний контроллер диска рулит.

Не так давно Микрософт патчила Винды, чтобы они делали бОльшую задержку перед выключением питания, а то новые диски не успевали за отведенное время сбросить буфера на пластины и это иногда приводило к полному уничтожению fs.

Интересно, как журналирующие fs предохраняются от этого? Может кто разбирался в вопросе?

speer
()

Кеширование контроллером диска по умолчанию выключено (включить можно, см. man hdparm, параметр -W). Кроме монтирования всего диска в синхронном режиме можно указать конкретный файл для этого (команда chatr +S, man chattr).

DronK
()

Полностью отключить write cashe невозможно в принципе, например в силу синхронного характера передачи данных в режиме UDMA, поэтому эта -W может и не отключать ничего на самом деле.

speer
()

Прочитав все ответы на твой вопрос, подитоживаю, в тоем вопросе содержится и ответ - reiserfs я на него перешел и нестрадаю, UPS всегда хорошо, но не всегда по корману.

anonymous
()

ReiserFS _никак_ не поможет в этой ситуации. Поможет только UPS и sync.

DronK
()

Как я понимаю, reiser может гарантировать тебе в этом случае только целостность fs, а вот целостность данных - нет. Так что без UPS никак.

speer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.