ZFS не має особливо високих вимог до пам'яті.
Як зазначається в коментарях, певні особливості ZFS (зокрема дедуплікація, але також і L2ARC) потребують певного обсягу пам'яті, щоб бути корисним.
Однак ці функції не є тими, які ти можеш використовувати, якщо у тебе немає конкретного випадку використання, який передбачає їх використання.
ZFS зі своїм першим шаром ARC (Adaptive Replacement Cache) не має значно більшого обсягу пам'яті, ніж будь-яка інша файлова система та кеш. Через використання ARC замість, наприклад, алгоритму кеш-пам'яті з останнім часом , у деяких робочих навантаженнях він може ефективніше використовувати наявну оперативну пам'ять кешу.
Що вимагає ZFS , це оперативна пам'ять ECC. Це повсюдно на серверах, але рідко зустрічається в персональних системах (багато процесорів нижчого рівня Intel навіть не підтримують оперативну пам’ять ECC). Ця вимога випливає із властивостей самолікування ZFS, оскільки проблеми з оперативною пам’яттю можуть потенційно знищити ваші дані під час роботи ZFS. Немає коду для перевірки цього в ZFS, ймовірно, частково, тому що, мабуть, немає 100% певного способу сказати з програмного забезпечення, чи система використовує оперативну пам'ять ECC.
Від того, чи має сенс ZFS, залежить від того, що ви намагаєтесь зробити, так само, як має значення NTFS, також залежить від того, що ви намагаєтеся зробити. Однак, ZFS пропонує декілька функцій, які мало або взагалі не пропонують інші файлові системи, які можуть бути дуже корисними у певних сценаріях. Деякі з них:
- Гарантована цілісність даних. Ви точно знатимете, що якщо певне читання вдалося, воно поверне ті самі дані, які були спочатку записані до цього місця. Це означає, що немає такого поняття, як мовчазна корупція даних; ви або отримуєте свої дані назад, або ви отримуєте помилку вводу / виводу.
- Смуга і резервування файлових систем. Звичайні контролери RAID розглядають весь запам'ятовуючий пристрій як лише велику купу блоків, у яких немає ніяких знань про будь-які структури даних на диску. Оскільки ZFS поєднує управління обсягом та файловою системою, він може приймати більш розумні рішення на тлі помилок. У нього також є "найважливіший перший" режим перезавантаження, який означає, що дані, що є критичними для функціонування файлової системи, перезавантажуються першими після відмови, і менш критичні дані отримують чекати, незалежно від того, де на диску є дані зберігається.
- Багатоярусне кешування Наприклад, ви можете мати ARC оперативної пам'яті, доповнений швидким SSD L2ARC, з великою частиною зберігання даних на обертових жорстких дисках. Для робочих навантажень, де набір робочих даних можна оцінити з розумною точністю, це може забезпечити величезні покращення продуктивності вводу / виводу при відносно низькій вартості і, безперечно, не потрібно використовувати весь SSD.
- Практично безкоштовні файлові системи. З ZFS створення "файлової системи" мало чим відрізняється від створення каталогу в більшості сучасних файлових систем. Файлові системи можуть мати різні квоти, як максимальні, так і гарантовані. З цієї причини у системі ZFS файлові системи часто рекомендується використовувати як адміністративні межі; наприклад, на великому сервері домашній каталог кожного користувача може бути власною файловою системою. Це ізолює частини дерева каталогів один від одного без накладних витрат, створюваних окремими регулярними розділами та файловими системами. Я використовую файлові системи для розділення, наприклад, архівів електронної пошти на рік або фотографій на місяць.
- Практично безкоштовні знімки. Я не знаю, скільки разів факт, що мені вдалося повернутися до того, як файл виглядав за кілька годин до того, врятував мене від якоїсь химерної помилки. Резервні копії забезпечують подібну здатність (і все ще потрібні, оскільки жодна кількість RAID не є резервною копією ), але знімки набагато доступніші. У ZFS сам знімок вимагає лише декількох кілобайт сховища метаданих, незалежно від кількості даних у відповідній файловій системі, і не має значних витрат на продуктивність.
Жодне з них не потрібно використовувати лише тому, що ви використовуєте ZFS. Але вони є, як правило, лише одна команда, якщо ви бажаєте їх включити.
Тепер це "надмір"? Це дійсно багато залежить від того, що ви намагаєтеся зробити. Я запускаю ZFS (з ECC RAM) у своїй домашній системі. Здебільшого він тихо тикає, не створюючи більше шуму, ніж будь-яка інша файлова система (і, мабуть, менше), але насправді врятувала мене від пошкодження даних хоча б раз (скраб знайшов кілька секторів які мали проблеми, і автоматично і безшумно відновлювали дані, не вимагаючи від мене втручання). Особисто я вважаю, що я зберег ці дані чомусь, і найімовірніше, що я хочу посилатися на ці дані пізніше. Подумайте тепер, що Всесвіт ненавидить ваші дані .
Із постійно зростаючими розмірами пам’яті та, по суті, постійно постійними частотами помилок бітів (за медіа-клас), помилки вводу-виводу не стануть менш поширеними. Дивлячись на мого уподобаного реселлера, Seagate та HGST пропонують 8 ТБ жорстких дисків за високими, але не екстремальними цінами, і, безумовно, в межах досяжності людей. Це приблизно 6,4 × 10 ^ 13 біт. Із частотою помилок 10 ^ -14 біт навіть один пропуск повного зчитування на носії є статистично великим, імовірно, виникне проблема вводу / виводу, що робить цілий сектор (4 КБ) нечитабельним. (До того моменту, коли ми потрапили на 10 ТБ HDD, статистично одне зчитування повного диска зіткнеться щонайменше з одним нечитабельним сектором .) Були проведені дослідження, які показують, що непоміченіПомилки читання трапляються набагато частіше, ніж ми хочемо визнати, відчайдушні зусилля виробників жорстких дисків щодо вдосконалення алгоритмів ECC на диску, хоча я не маю доступного посилання. Сучасні файлові системи, такі як NTFS, ext4, UFS +, HFS + тощо, просто не готові вирішувати таку ситуацію.
Ось націлена файлова система на зразок ZFS та Btrfs.