ZFS проти XFS


62

Ми розглядаємо можливість створення сервера зберігання ~ 16 ТБ. Наразі ми розглядаємо і ZFS, і XFS як файлову систему. Які переваги, недоліки? Що ми маємо шукати? Чи є третій, кращий варіант?


7
Навіть не порівнюйте їх. ZFS - це сучасна файлова система корпоративного рівня, наприклад jfs2, wafl. XFS був хороший 10 років тому, але сьогодні це просто кам'яний вік.
дисерман

У чомусь їх не можна порівняти: XFS - це файлова система; ZFS - це файлова система і багато іншого: вона замінює файлову систему, диспетчер томів (як LVM) та RAID. Однак JFS більше не підтримується, якщо пам'ять служить: однак, XFS активний і підтримується та надійний. У будь-якому випадку - ZFS або XFS - ви не можете помилитися на мою думку.
Май

1
Я все ще думаю, що це питання є актуальним, тому пишу наш досвід тут: XFS простий, ви встановлюєте його, запускаєте його, його швидко, він працює. (HW рейд нижче). ZFS - це економія, стиснення, але вона присвячена роботі так само швидко, як XFS. Тож це також залежить від ситуації, в якій ви очікуєте запуску сервера. (бекенд кластера. зберігання користувачів, архів, ...)
SvennD

Також є Hammer2 dragonflybsd.org/hammer
скан

Відповіді:


44

Я виявив, що XFS більше підходить для надзвичайно великих файлових систем з можливо великою кількістю великих файлів. У мене функціонує файлова система XFS 3.6TB вже понад 2 роки без проблем. Визначально працює краще, ніж ext3 та ін. При такому розмірі (особливо при роботі з великими файлами та великою кількістю вводу-виводу).

Що ви отримуєте з ZFS - це об'єднання пристроїв, роздягання та інші вдосконалені функції, вбудовані в саму файлову систему. Я не можу говорити з конкретними даними (я дозволю іншим коментувати), але, з того, що я можу сказати, ви хочете скористатися Solaris, щоб отримати тут максимальну користь. Також мені незрозуміло, наскільки ZFS допомагає, якщо ви вже використовуєте апаратний RAID (як і я).


33
Ключовою особливістю ZFS, яку ви (як правило) не отримуєте в іншому місці, є CRC рівня блоку, який повинен виявити (і, сподіваємось, запобігти) мовчазну корупцію даних. Більшість файлових систем припускають, що якщо запис завершено успішно, то дані справді були записані на диск. Це не завжди так, особливо якщо сектор починає переходити "маргінально". ZFS виявляє це, перевіряючи CRC на результат запису.
Avery Payne

3
І так, мені дуже подобається XFS. :) Єдиний прийом, про який потрібно пам’ятати, - це схильність до зняття нуля секторів, які були «поганими» під час відновлення журналу. У деяких (рідкісних) випадках ви можете втратити дані ... Знайшов цей документ із пошуковим терміном Google "xfs нулі з секторів після відновлення" pages.cs.wisc.edu/~vshree/xfs.pdf
Avery Payne

3
Одна з речей, яка мені подобається в XFS, це програма xfs_fsr«дефрагментація».
Cristian Ciupitu

1
Корисність CRC на рівні блоку ZFS викликає сумніви. Жорсткі диски та жорсткі диски використовують код Hamming ECC для виправлення однобітних помилок та повідомлення про двобітні помилки. Якщо ECC не може прозоро виправити фізичну помилку читання, дані все одно втрачаються, і про помилку читання буде повідомлено ОС. CRC не виправляють помилки. Ця особливість є головною перевагою ZFS, але правда в тому, що вона є зайвою і не має значення. Що стосується помилки XFS з нульовим вимкненням живлення, то вона була виправлена ​​давно і сьогодні не актуальна.
Джоді Лі Брюшон

@JodyLeeBruchon те, що ви написали, невірно: хоча це правда, що пристрої зберігання даних вже мають код парності, приєднаний до даних, це не означає, що вони здатні захищати дані від кінця до кінця. Щоб досягти цієї мети без файлової системи чехсуммінгу, вам потрібно: a) стек зберігання SAS T10 / DIF / DIX або b) використовувати devicemapper dm-цілісність .
shodanshok

75

ZFS надасть вам переваги понад програмного RAID. Структура команди дуже продумана і інтуїтивно зрозуміла. У ньому також є стискання, знімки, клонування, пристрої передачі / прийому файлової системи та кеш-пристрої (ті модні нові SSD-накопичувачі) для пришвидшення індексації метаданих.

Стиснення:

#zfs set compression=on filesystem/home

Він підтримує прості для створення знімки з копією на запис, які можна встановити наживо:

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

Клонування файлової системи:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

Відправка / отримання файлової системи:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Поступове надсилання / отримання:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Пристрої кешування:

# zpool add filesystem cache ssddev

Це все лише верхівка айсберга, я б настійно рекомендував отримати свої руки на встановлення Open Solaris і спробувати це.

http://www.opensolaris.org/os/TryOpenSolaris/

Редагувати : Це дуже давно, Open Solaris припинено, найкращий спосіб використання ZFS - це, мабуть, на Linux або FreeBSD .


Повне розкриття: я раніше був архітектором зберігання НД, але я не працював над ними більше року, я просто в захваті від цього продукту.


Це посилання не працювало для мене з www. Використанняhttp://opensolaris.org/os/TryOpenSolaris/
aggregate1166877

Я б сказав, що найкраща ставка для zfs - це все-таки FreeBSD. Він був частиною системи вже досить багато років. Так що я здогадуюсь, є найменша можливість для неприємних сюрпризів. Хоча це лише мої $ 0,02.
Фокс

18

використання lvm знімків та xfs у живих файлових системах - це рецепт катастрофи, особливо при використанні дуже великих файлових систем.

Я працюю виключно на LVM2 та xfs протягом останніх 6 років на своїх серверах (вдома навіть з моменту, коли zfs-fuse просто занадто повільний) ...

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

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

Найважливіші аспекти, які слід пам’ятати:

  1. якщо у вас є велика (ish) файлова система, яка має знімок, продуктивність запису жахливо погіршується
  2. якщо у вас є велика (ish) файлова система, яка має знімок, час завантаження затягується буквально на десятки хвилин, тоді як диск буде збиватися та збиватися під час імпорту групи томів. Повідомлення не відображатимуться. Цей ефект особливо жахливий, якщо корінь знаходиться на lvm2 (тому що очікування кореневого пристрою закінчиться, а система не завантажиться)
  3. якщо у вас є знімок, дуже просто не вистачає місця. Щойно у вас не вистачає місця, знімок пошкоджується і його неможливо відновити.
  4. Знімки не можуть бути rolledback / злиті в даний момент (див http://kerneltrap.org/Linux/LVM_Snapshot_Merging ). Це означає, що єдиний спосіб відновити дані із знімка - це фактично скопіювати (rsync?) На них. НЕБЕЗПЕЧЕННЯ ОПАСНОСТІ: ви не хочете цього робити, якщо ємність знімка не менше розміру джерела fs; Якщо ви цього не зробите, ви незабаром потрапите на цегляну стіну, і в кінцевому підсумку і вихідні файли, і знімок пошкоджені. (Я був там!)

1
Як це буває, саме сьогодні хтось підтвердив, що vg із знімком - не в змозі завантажувати-linux все ще актуальний: bugs.launchpad.net/lvm2/+bug/360237
sehe

Переглянувши цю помилку, вони все ще вважають, що безпроблемні проблеми завантаження зі знімками - це "нормальна поведінка для lvm": bugs.launchpad.net/lvm2/+bug/360237/comments/7 (on 2012-01-07)
sehe

1
Оновлення: те саме стан. Тільки зараз минуло ще 7 років.
sehe

14

Пара додаткових речей, про які варто подумати.

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

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

  • Файлові системи ZFS завжди знаходяться в послідовному стані, тому немає необхідності в fsck.

  • ZFS також пропонує більшу гнучкість та функції завдяки знімкам та клонам порівняно із знімками, які пропонує LVM.

Запустивши великі пули пам’яті для виробництва відеофайлів великого формату на стеку Linux, LVM, XFS. Мій досвід полягав у тому, що легко потрапити в мікро-керування вашим сховищем. Це може призвести до великої кількості невикористаного виділеного простору та часу / проблем із керуванням вашими логічними томами. Це може не спричинити великих труднощів, якщо у вас є адміністратор пам’яті, що працює на повний робочий день, завданням якого є мікро-управління пам’яттю. Але я виявив, що підхід системи зберігання пулу ZFS усуває ці проблеми управління.


8

ZFS абсолютно дивовижний. Я використовую його як свій домашній файловий сервер для файлового файлу 5 x 1 TB HD, а також використовую його у виробництві з майже 32 ТБ місця на жорсткому диску. Він швидкий, простий у використанні та містить найкращий захист від корупції даних.

Ми використовуємо OpenSolaris на цьому сервері, зокрема, тому, що ми хотіли отримати доступ до нових функцій і тому, що це забезпечило нову систему управління пакетами та спосіб оновлення.


7

Яку ОС ви плануєте працювати? Або це інша частина розгляду? Якщо ви працюєте з Solaris, XFS навіть не є варіантом, наскільки я знаю. Якщо ви не працюєте з Solaris, як ви плануєте використовувати ZFS? Підтримка обмежена на інших платформах.

Якщо ви говорите про Linux-сервер, я б особисто дотримувався Ext3, хоча б тому, що він отримує найбільшу кількість тестування. zfs-fuse ще дуже молодий. Також у мене були проблеми з XFS одного разу, коли помилка викликала пошкодження даних після оновлення ядра. Переваги XFS над Ext3, безумовно, не переважали затрати на відновлення машини, яка знаходилась у віддаленому центрі обробки даних.


6
FreeBSD має зрілий рідний порт ZFS
Брайан Джанфоркаро

7
wiki.freebsd.org/ZFSKknownProblems Я думаю, що ваше визначення зрілої може відрізнятися від мого :-) Можливо, я б розглядав це після виходу 8.0.
Kjetil Limkjær

9
ext3 з 16 ТБ? Ні-ні-ні. Не роби цього. Ви будете плакати. ZFS або XFS - це найкраща файлова система там, на мою думку. Якщо можете, використовуйте ZFS (не запускайте його в Linux). Я говорю це з великим досвідом роботи в великих обсягах на Linux і Solaris протягом 5 років.
Томас

3
FreeBSD 7.2 після 20090601 склав більшість записів ZFSKknownProblems. Якщо ви використовуєте версію ОС AMD64, вона тепер стабільна. У 8.0 FreeBSD позначив ZFS як достатньо стабільний для виробництва.
Вальтер

3
ZFS на Linux доступний зараз ( zfsonlinux.org )
Джеймс Мур

7

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

XFS не є безпечним від пошкодження даних: pages.cs.wisc.edu/~vshree/xfs.pdf

І не є ext3, JFS, ReiserFS тощо: zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent "Я натрапив на захоплюючу кандидатську дисертацію Vijayan Prabhakaran, IRON File Systems, який аналізує, як п’ять товарних файлових систем журналу - NTFS, ext3, ReiserFS, JFS та XFS - вирішують проблеми зберігання.

Коротше кажучи, він виявив, що всі файлові системи є

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "

Але ZFS успішно захищає ваші дані. Ось дослідний документ щодо цього: zdnet.com/blog/storage/zfs-data-integrity-ested/811


5

Вибачте, не FS-орієнтована відповідь, але пам’ятайте, що ряд дискових контролерів не матиме справу з LUNS 2TB / логічними дисками - це може досить обмежити спосіб організації вашого зберігання. Я просто хотів, щоб ви були в курсі, щоб ви могли перевірити свою систему в кінці, щоб переконатися, що вона буде працювати з 16 ТБ протягом усього часу.


1

Залежить від того, які функції ви хочете ..., два розумні варіанти - xfs та zfs, як ви вже сказали, код xfs досить добре перевірений. Я вперше використав це 8 років тому під IRIX

Можна отримати знімки з xfs (використовуючи lvm та xfs_freeze)

Можливо мати окремий журнальний пристрій, наприклад, SSD

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

Великим xfs традиційно потрібно багато пам'яті, щоб перевірити

Проблема з нулями, що з'явилися, була функцією "безпеки", яка, на мою думку, зникла деякий час тому.


1

Крім того, що вже згадувалося, з точки зору продуктивності xfs на рейді на базі MD працює краще, ніж zfs на потокових носіях. Я півтора десятиліття використовував саме те саме обладнання з xfs і приблизно стільки ж часу з zfs на своєму медіа-сервері. На Intel Atom 330 з xfs я ніколи не відчуваю стутеру, на zfs на складних сценах той же апарат не може йти в ногу і починає скидати кадри.


0

Замість того, щоб будувати свій власний, альтернативою є Sun 7410 ака Торо. У ньому є дуже корисне програмне забезпечення, яке постачається в комплекті з рішенням.


0

Ну, хлопці, давайте не забувати про останнє доповнення до zfs: дедуплікація. І давайте поговоримо про льоту iscsi, nfs або smb-спільний доступ. Як вже говорили інші, експорт файлових систем zfs, знімки, raidz (= raid5) блокує контрольну суму, динамічну ширину смуги, кеш-керування та багато інших. Я голосую за zfs.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.