Файловые системы хранилищ: почему выбор между ними — это выбор про снапшоты
При создании тома система спрашивает про файловую систему, и от ответа зависит, сможете ли вы вернуть удалённую папку одним кликом. Разбираем механику копирования при записи.
Мастер создания тома задаёт вопрос, на который у большинства покупателей нет мнения: какую файловую систему использовать. Варианты выглядят как аббревиатуры без смысла, подсказка в интерфейсе ограничивается словами про надёжность, и человек нажимает то, что предложено по умолчанию.
Между тем от этого ответа зависит вполне практическая вещь: сможете ли вы через месяц вернуть папку, которую вчера удалили. Разберём механику.
Что делает файловая система
Файловая система — это способ, которым данные раскладываются по диску: где лежит содержимое файла, где его имя, где сведения о правах и датах, как всё это связано между собой.
Классические системы устроены прямолинейно: изменение файла означает перезапись тех же самых блоков на диске. Быстро, экономно и понятно. Проблема в том, что старое содержимое при этом исчезает безвозвратно, а если запись прервалась на середине — файл остаётся в противоречивом состоянии.
Копирование при записи
Современные системы работают иначе, и этот принцип объясняет все их остальные возможности. При изменении файла новые данные пишутся в свободное место, а старые блоки остаются нетронутыми. Только когда запись успешно завершилась, указатель переключается на новую версию.
Первое следствие — устойчивость к сбоям. Отключение питания посреди записи не оставляет полуизменённого файла: либо указатель уже переключён и виден новый вариант, либо нет и виден старый. Промежуточного состояния не возникает в принципе.
Второе следствие интереснее. Если старые блоки не затираются, их можно не отдавать под переиспользование, а запомнить — и получить снимок состояния тома на конкретный момент.
Снапшоты: почему они почти бесплатны
Слово «снимок» вводит в заблуждение: кажется, что система копирует весь том. Ничего подобного не происходит. Снапшот — это отметка «вот эти блоки не трогать» и список того, что изменилось с момента её установки.
Отсюда практические свойства, которые поначалу кажутся волшебными. Создание снапшота терабайтного тома занимает секунду. Место он занимает ровно столько, сколько данных изменилось после его создания. Держать несколько десятков снимков за месяц — нормальная практика, а не расточительство.
| Ситуация | Что занимает снапшот |
|---|---|
| Ничего не менялось | Практически ноль |
| Изменили один документ | Размер старой версии |
| Переписали весь том | Полный объём тома |
| Удалили папку | Размер удалённого |
Последняя строка объясняет главный сценарий использования. Удалённая папка физически не исчезает, пока на неё ссылается хотя бы один снимок, — и восстановить её можно за пару кликов, без обращения к резервной копии и без ожидания.
Как настроить расписание снимков
Снапшоты полезны ровно настолько, насколько продуман график. Слишком редкие не спасают от вчерашней ошибки, слишком частые без прореживания съедают место.
Устоявшаяся схема выглядит как пирамида: чем старше снимок, тем реже он встречается. Логика простая — недавние изменения нужны детально, а из прошлого года достаточно нескольких точек.
| Период | Частота | Сколько хранить |
|---|---|---|
| Последние сутки | Каждый час | 24 снимка |
| Последняя неделя | Ежедневно | 7 снимков |
| Последний месяц | Еженедельно | 4 снимка |
| Последний год | Ежемесячно | 12 снимков |
Такая схема даёт около полусотни точек восстановления и занимает удивительно мало места — потому что хранится не полсотни копий тома, а разница между ними. Для домашнего архива, который меняется медленно, накладные расходы измеряются единицами процентов от объёма.
Отдельная настройка, о которой стоит помнить: снимки должны быть доступны пользователям только на чтение. Иначе шифровальщик, добравшийся до сетевой папки с правами записи, уничтожит и снимки тоже — а именно от него они и должны защищать.
Контрольные суммы и тихая порча
Есть класс проблем, о котором обычно не задумываются: данные на диске могут испортиться без всякого отказа накопителя.
Механизмов несколько. Сбой электроники при записи. Ошибка в кабеле или контроллере. Постепенная деградация магнитного слоя. Результат один: диск отдаёт данные и считает их правильными, а на деле часть битов изменилась.
Классическая файловая система такую подмену не замечает. Фотография открывается с полосой поперёк, архив не распаковывается, документ выдаёт ошибку — и виноватого не найти, потому что диск исправен по всем показателям.
Системы с контрольными суммами хранят рядом с каждым блоком его контрольную величину и сверяют при чтении. Несовпадение означает порчу — и если в массиве есть избыточность, система восстанавливает правильный вариант и чинит испорченный молча и самостоятельно.
Обратная сторона копирования при записи
Механизм, дающий снапшоты и устойчивость к сбоям, имеет и недостаток, о котором честно стоит сказать: фрагментацию.
Раз новые данные всегда пишутся в свободное место, изменяемый файл со временем оказывается разбросан по диску кусками. На твердотельном накопителе это безразлично — он одинаково быстро читает откуда угодно. На механическом диске головке приходится прыгать, и скорость чтения падает.
Заметнее всего это на файлах, которые постоянно переписываются по частям: базах данных, образах виртуальных машин, больших журналах. Обычный файловый архив, куда кладут и откуда читают, страдает мало.
Практические выводы два. Первый: для томов с базами и виртуальными машинами твердотельные накопители предпочтительнее не только из-за скорости, но и потому, что снимают эту проблему целиком. Второй: системы умеют дефрагментировать себя по расписанию, и на механическом массиве эту задачу стоит включить вместе с проверкой целостности.
Сжатие и дедупликация
Ещё две возможности, которые появляются на современных файловых системах. Обе полезны, но по-разному.
Сжатие работает прозрачно: данные упаковываются при записи и распаковываются при чтении. На документах и текстовых файлах экономия заметная, на уже сжатых форматах — фотографиях, видео, архивах — почти нулевая. Нагрузка на процессор невелика, и включать сжатие обычно имеет смысл.
Дедупликация устроена сложнее: система находит одинаковые блоки и хранит их в единственном экземпляре. Выигрыш бывает огромным там, где данные повторяются: резервные копии нескольких похожих компьютеров, виртуальные машины с одной и той же системой. На обычном файловом архиве выигрыша почти нет.
Плата за дедупликацию — память, и много. Системе нужно держать таблицу всех блоков, чтобы находить совпадения, и таблица эта растёт вместе с объёмом. На домашнем хранилище с четырьмя гигабайтами включать дедупликацию не стоит: система начнёт задыхаться.
Что происходит при заполнении тома
У систем с копированием при записи есть особенность, которая неприятно удивляет: они плохо переносят нехватку свободного места, причём гораздо хуже классических.
Причина в самом принципе. Чтобы изменить файл, системе нужно свободное место под новую версию блока — даже если файл не растёт. Когда места не остаётся, затрудняется не только запись новых данных, но и изменение существующих, и даже удаление: оно тоже требует записи.
Снапшоты усугубляют картину. Удалили гигабайты — а место не освободилось, потому что на удалённое ссылается снимок. Человек удаляет ещё, снимок растёт, и ситуация ухудшается вместо того чтобы исправиться.
Практическое правило: держите свободными хотя бы десять-пятнадцать процентов тома и настройте уведомление о заполнении заранее. А если место всё-таки кончилось — начинать нужно с удаления старых снимков, а не файлов: это единственная операция, которая освобождает место сразу и гарантированно.
Можно ли сменить файловую систему потом
Короткий ответ: не на месте. Файловая система задаётся при создании тома и меняется только пересозданием — то есть с полной потерей содержимого.
Отсюда порядок действий, если решение принято задним числом. Понадобится место, куда временно вывезти данные: внешний диск, второй том или другой аппарат. Затем том пересоздаётся, и данные заливаются обратно. Для нескольких терабайт это операция на выходные, а не на вечер.
Вывод очевиден и потому особенно обидный, когда его вспоминают поздно: думать про файловую систему надо в момент первого запуска, когда том пустой и пересоздать его ничего не стоит. Пять минут чтения тогда экономят выходные потом.
Что это значит для памяти
Отсюда общее правило, которое объясняет требования к объёму памяти у продвинутых хранилищ. Простая файловая система обходится минимумом. Система с копированием при записи, контрольными суммами и снапшотами требует заметно больше — ей нужно держать в памяти структуры для быстрого поиска блоков.
Практический вывод при покупке: если планируете снапшоты и контроль целостности — а планировать их стоит, — берите аппарат с восемью гигабайтами или с возможностью нарастить. Экономия на памяти здесь оборачивается не отказом, а вязкой работой и необходимостью отключать самое полезное.
Проверка целостности по расписанию
Контрольные суммы ловят порчу при чтении. Отсюда следует неприятное: данные, к которым никто не обращается, не проверяются вовсе. Фотоархив пятилетней давности может тихо испортиться, и обнаружится это только при попытке открыть.
Решает это плановая проверка всего тома: система по расписанию вычитывает каждый блок, сверяет контрольную величину и чинит найденные расхождения из избыточных данных массива. Процедура нагружает диски часами, поэтому её ставят на ночь или выходные.
Разумный интервал — раз в месяц. Реже означает, что испорченный блок проживёт незамеченным дольше, и вырастет шанс, что к моменту обнаружения избыточности в массиве уже не будет — например, потому что параллельно отказал диск. Чаще особого смысла не имеет: нагрузка на механику растёт, а выигрыш уже невелик.
Стоит понимать и то, что возможности файловой системы работают только внутри хранилища. Файл, скопированный с защищённого тома на флешку или на компьютер, теряет и контрольные суммы, и историю версий: снаружи это просто набор байтов. То же касается передачи по сети — проверка целостности происходит при чтении с диска, а дальше данные идут обычным потоком. Поэтому разговоры о том, что продвинутая файловая система «защищает данные», нужно понимать буквально: она защищает их ровно там, где они лежат, и ни метром дальше. Для копий, уезжающих на другие носители, целостность приходится обеспечивать отдельно — например, складывая материалы в архив с внутренней проверкой или сверяя контрольные суммы после переноса вручную. Звучит занудно, но именно так обнаруживается, что архив доехал битым, — до того как оригинал успели удалить с хранилища, освобождая место под новые проекты и очередную порцию отснятого за прошедшую неделю рабочего материала.
Что выбирать на практике
| Задача | Разумный выбор |
|---|---|
| Домашний архив и медиа | Система со снапшотами |
| Рабочие документы команды | Со снапшотами и контролем целостности |
| Видеоархив с камер | Простая, без снапшотов |
| Том под приложения | Со снапшотами |
| Аппарат с 2 ГБ памяти | Простая, других вариантов нет |
Третья строка не опечатка. Видеоархив переписывается по кругу, и снапшоты на нём означают, что удалённые записи продолжают занимать место — то есть ротация перестаёт работать как задумано. Для непрерывно перезаписываемых данных механизм снимков вреден.
И общая рекомендация напоследок: настройте снапшоты в первый же день, не откладывая. Расписание вроде ежедневных снимков с хранением за месяц и еженедельных за полгода занимает минуты настройки и однажды избавит от очень неприятного вечера. Проверить работу механизма стоит сразу: создайте тестовый файл, удалите его и восстановите из снимка. Пять минут потраченного времени дают уверенность, что в нужный момент всё сработает, — а обнаружить, что снапшоты настроены не на ту папку, лучше на учебной тревоге, чем на боевой.
Коротко о главном
- Снапшот — не копия, а список того, что изменилось; поэтому он почти бесплатен.
- Контрольные суммы ловят порчу данных, о которой диск не сообщает.
- Современные файловые системы требуют памяти — на этом экономить нельзя.
Частые вопросы
Сколько места занимает снапшот?
Столько, сколько данных изменилось после его создания. Если ничего не менялось — практически ноль, поэтому держать десятки снимков нормально.
Заменяют ли снапшоты резервную копию?
Нет, они живут на тех же дисках. Снимки закрывают ошибки человека, внешняя копия — отказ массива, кражу и пожар.
Что такое тихое повреждение данных?
Изменение битов на диске без отказа накопителя. Диск отдаёт данные и считает их верными, а файл открывается с ошибкой. Ловится контрольными суммами.
Стоит ли включать сжатие?
Обычно да: на документах экономия заметная, нагрузка на процессор небольшая. На фотографиях, видео и архивах выигрыша почти нет.
А дедупликацию?
Только при большом объёме памяти и повторяющихся данных — резервных копиях похожих машин, виртуальных машинах. На файловом архиве смысла нет.
Нужны ли снапшоты для видеоархива?
Наоборот, вредны: удалённые по ротации записи продолжат занимать место, и автоматическая очистка перестанет работать.
