Устойчивость
NTFS содержит две копии аналога FAT, которые называются MFT (Master File Table). В отличие от FAT MS-DOS, MFT больше напоминает таблицу базы данных. Если оригинал MFT повреждён в случае аппаратной ошибки (например, появления bad-сектора), то система при следующей загрузке использует копию MFT, и автоматически создаёт новый оригинал, уже с учётом повреждений. Но это не самое главное. Главное, что NTFS использует систему транзакций при записи файлов на диск. Эта система пришла из СУБД, где защита целостности данных — жизненно важное дело. Уже это говорит о её эффективности. В упрощённом виде она работает так:
- Драйвер ввода/вывода NTFS инициирует процесс записи, одновременно сообщая сервису «Log File Service» вести лог всего происходящего.
- Данные пишутся в кэш, под управлением сервиса «Cache Manager».
- «Cache Manager» посылает данные «Virtual Memory Manager» (менеджеру виртуальной памяти), для записи на диск в фоновом режиме.
- «Virtual Memory Manager» посылает данные драйверу диска, пропустив их через «Fault Tolerant Driver» (если у вас массив дисков RAID).
- Драйвер диска шлёт их контроллеру, который уже пишет их либо в кэш, либо прямо на диск.
- Если эта операция проходит без ошибок, запись лога удаляется.
- Если происходит сбой, запись лога остается в таблице транзакций, и при следующем доступе к диску «Log File Service» обнаруживает эту запись, и просто восстанавливает всё как было до этой операции.
Такая система гарантирует абсолютную сохранность данных в случае копирования, перемещения и удаления файлов или директорий. При внесении изменений в файл, вы теряете те изменения, которые находились в момент сбоя в памяти или в кэше контроллера, и не успели записаться на диск.