Що таке ZFS: можливості та захист даних

Автор: Опубліковано

Коротко: ZFS — це файлова система, поєднана з механізмом керування дисковим простором. Вона перевіряє цілісність даних, дає змогу створювати знімки та об’єднувати накопичувачі в пули сховища. Особливо добре підходить для серверів і NAS — пристроїв, що надають доступ до файлів через мережу, але не замінює резервного копіювання.

Як працює ZFS і чим відрізняється від звичайної файлової системи

Файлова система визначає, як дані записуються на носій і як їх на ньому знаходять. ZFS також відповідає за функції, які в інших рішеннях часто виконує окремий рівень: об’єднання дисків, надлишковість даних і розподіл простору. Завдяки цьому вона має безпосередній доступ як до структури файлів, так і до інформації про місце їх зберігання.

ZFS створили в компанії Sun Microsystems. Нині в багатьох рішеннях на основі Linux і FreeBSD використовують OpenZFS — реалізацію ZFS, яку розвивають як програмне забезпечення з відкритим кодом. Доступність функцій і спосіб встановлення залежать від системи та версії, тому інструкцію з налаштування потрібно підбирати для конкретного середовища.

Простір у ZFS має кілька рівнів:

Отже, ви можете створити окремі набори даних (datasets) для документів, мультимедіа й резервних копій комп’ютерів, не розбиваючи диски на розділи фіксованого розміру. Ці набори використовують спільний вільний простір з урахуванням заданих лімітів і резервування.

Як ZFS виявляє пошкодження даних

ZFS використовує контрольні суми — значення, обчислені на основі вмісту даних. Під час читання вона перевіряє, чи відповідають записані блоки їхнім контрольним сумам. Це дає змогу виявляти, зокрема, приховані пошкодження, коли пристрій повертає неправильний вміст, не повідомляючи про помилку читання.

Виявлення помилки не завжди означає, що її можна виправити. Якщо пул має належну надлишковість, наприклад дзеркало, ZFS може взяти справну копію блоку й відновити пошкоджену. На окремому диску вона може виявити пошкодження даних файлу, але без додаткової справної копії не відновить його вміст.

ZFS також застосовує механізм copy-on-write: замість перезаписування використовуваного блоку вона записує змінені дані в новому місці, а потім оновлює посилання на них. Це допомагає підтримувати узгоджену структуру файлової системи й лежить в основі роботи знімків. Однак це не гарантує, що після раптового зникнення живлення збережуться всі останні зміни, внесені програмою.

Для періодичної перевірки слугує scrub — перевірка записаних даних за контрольними сумами. За наявності надлишковості вона також дає змогу виправляти виявлені помилки. Scrub доповнює моніторинг дисків, але не замінює їхньої діагностики чи резервного копіювання.

Знімки, стиснення та резервні копії

Знімок (snapshot) фіксує стан набору даних на певний момент. Спочатку він займає небагато додаткового простору; його обсяг зростає, коли потрібно зберігати старі блоки даних, які змінюють або видаляють. Тому видалення великого файлу не завжди звільняє місце, якщо його вміст і далі зберігається у знімку.

Наприклад, перед упорядкуванням сімейних фотографій ви створюєте знімок. Якщо випадково видалите каталог, зможете відновити його попередню версію, не відновлюючи всю колекцію із зовнішнього диска. Проте знімок у тому самому пулі не допоможе в разі втрати всіх носіїв, крадіжки пристрою або видалення самого знімка зловмисником із відповідними правами доступу.

ZFS може передавати знімки до іншого пулу, зокрема інкрементально — передаючи лише зміни відносно попереднього стану. Це основа зручної реплікації. Однак безпека такої копії залежить від місця її зберігання, прав доступу та правил збереження старіших версій.

Корисне й стиснення під час запису. Воно може заощаджувати місце та зменшувати кількість дискових операцій, але результат залежить від даних: текст зазвичай стискається краще, ніж готові відеофайли чи архіви. Не слід плутати стиснення з дедуплікацією, яка усуває повторювані блоки, але може потребувати значного обсягу пам’яті й ретельного планування.

Дзеркало чи RAID-Z: вибір конфігурації дисків

Дзеркало записує ті самі дані на кілька дисків. Якщо використовувати два носії однакової місткості, корисний простір приблизно дорівнюватиме місткості одного з них — без урахування службових витрат і рекомендованого запасу вільного місця. Така конфігурація може працювати після виходу з ладу одного диска.

RAID-Z розподіляє між носіями дані та інформацію, потрібну для їх відновлення. Варіанти RAID-Z1, RAID-Z2 і RAID-Z3 витримують вихід з ладу відповідно одного, двох або трьох дисків у межах одного vdev. Вибір залежить від потрібної місткості, навантаження та прийнятного ризику.

Вирішальне значення має конфігурація всього пулу: втрата vdev, що зберігає дані, може означати втрату пулу. Якщо додати до захищеного дзеркала окремий диск як ще один vdev, захист дзеркала не пошириться на цей диск. Перед розширенням також перевірте можливості своєї версії OpenZFS — не кожна зміна конфігурації доступна, і не кожну легко скасувати.

Коли варто вибрати ZFS

ZFS добре підходить для зберігання документів, архівів і резервних копій, якщо вам потрібні перевірка цілісності та знімки. Проте вона потребує планування конфігурації дисків, моніторингу стану пулу й запасу вільного простору. Продуктивність і потреба в RAM залежать від навантаження та ввімкнених функцій; єдиного універсального співвідношення між обсягом пам’яті й місткістю дисків немає.

Пам’ять ECC, яка виявляє та виправляє певні помилки оперативної пам’яті, корисна для сервера, але не є обов’язковою умовою роботи ZFS. Найкраще надати ZFS прямий доступ до дисків, а не приховувати їх за апаратним масивом RAID.

Перед перенесенням важливих даних накресліть схему vdev, визначте місце для незалежної резервної копії та перевірте відновлення одного каталогу. Така перевірка покаже більше про готовність конфігурації, ніж саме лише успішне створення пулу.

Дивіться також: Що таке Linux?

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.