Ну для начала в большинстве Linux'овых ФС есть журналирование. Во-вторых часть данных ты потеряешь в любом случае, и важно не это, а важно то, чтобы была согласованость между метаданными и непотеряными данными в ФС (тафталогия блин). Лично я знаю всего лишь три модели, позволяющие добиться этого, опробованые в промышленых масштабах: журналирование (ext3-4, xfs и т. д.), мягкие обновления (UFS2), COW (ZFS). У SoftUpdates есть два больших преимущества: простота реализации и высокая производительность, в идеале как при ассинхронной записи, но как выяснилось очень сложно реализовать fsck, т.к. надо прошуршать почти всю ФС. А fsck при журналировании пробегает лишь по относительно небольшому журналу и откатывает незавершённые действия, зато более сложная реализация и при каждой операции меняющей содержимое стабильного хранилища приходится синхронно писать лог в журнал. COW просто копирует данные при записи в другое место, а затем атомарно обновляет метаданные - отсюда сложность быстрой реализации, но ФС находится всегда в согласованом состоянии. Есть и ещё один метод - синхронная запись, но это жутко медленно. Короче, я не программист и не разработчик ФС, поэтому мои познания поверхностны и возможно неправильны. Если есть желание узнать об этих механизмах больше смотри книгу "Маршалл Кирк МакКузик FreBSD архитетура и реализация" и FreeBSD handbook - здесь достаточно доступно описано про SoftUpdates и причины использования именно этой технологии. Google поможет найти про журналирование и COW (смотри документацию по ZFS). Также, если интересно погляди про BLUFFS - реализация журналирования для UFS на уровне ФС, на одном из прошедших BSDCan была презентация этого проекта, вроде как обещают включить в FreeBSD 8.Для себя я решил, что если мне надо работать с большим хранилищем >2TB, то остаётся только два варианта, либо журналирование - Linux, либо COW - ZFS + Solaris. FreeBSD пока можно не рассматривать, т.к. у Soft Updates проблема с fsck, а ZFS+FreeBSD или FreeBSD + gjournal пока экспериментальные, хотя возможно к 7.1 или к 7.2 их уже можно будет считать достаточно стабильными. Собственно я выбрал Linux, т.к имею с ним опыт работы.
|