Назад | Перейти на главную страницу

ZFS против XFS

Мы рассматриваем возможность создания сервера хранения размером ~ 16 ТБ. На данный момент мы рассматриваем как файловую систему ZFS, так и XFS. Какие плюсы, минусы? Что нам нужно искать? Есть ли третий, лучший вариант?

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.


Полное раскрытие информации: раньше я был архитектором систем хранения Sun, но я не работал на них более года, я просто в восторге от этого продукта.

Я обнаружил, что XFS больше подходит для очень больших файловых систем с возможно большим количеством больших файлов. У меня есть работающая файловая система XFS 3,6 ТБ уже более 2 лет без проблем. Определенно работает лучше, чем ext3 и т. Д. При таком размере (особенно при работе с большим количеством больших файлов и большим количеством операций ввода-вывода).

С ZFS вы получаете пул устройств, чередование и другие расширенные функции, встроенные в саму файловую систему. Я не могу говорить о деталях (позволю другим комментировать), но из того, что я могу сказать, вы захотите использовать Solaris, чтобы получить здесь максимальную пользу. Мне также неясно, насколько ZFS помогает, если вы уже используете аппаратный RAID (как и я).

использование снимков lvm и xfs на живых файловых системах - это рецепт катастрофы особенно при использовании очень больших файловых систем.

Последние 6 лет я работал исключительно на LVM2 и xfs на своих серверах (дома, даже с тех пор, как zfs-fuse просто слишком медленный) ...

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

Единственное исключение, которое я сделаю сейчас, - это моя собственная резервная копия личного почтового сервера / веб-сервера, где я буду делать резервные копии за ночь, используя временный снимок, который всегда равен размеру исходной файловой системы, и удаляется сразу после этого.

Важнейшие аспекты, о которых следует помнить:

  1. если у вас большая (ish) файловая система, у которой есть моментальный снимок, производительность записи ужасно ухудшается
  2. если у вас большая (ish) файловая система, у которой есть моментальный снимок, время загрузки будет задержано буквально на десятки минут, в то время как диск будет перемешиваться и перемешиваться во время импорта группы томов. Сообщения отображаться не будут. Этот эффект особенно ужасен, если root находится на lvm2 (потому что ожидание корневого устройства приведет к тайм-ауту и ​​система не загрузится)
  3. если у вас есть снимок, очень легко не хватить места. Как только у вас закончится свободное место, моментальный снимок будет поврежден и не может быть восстановлен.
  4. Снимки нельзя откатить / объединить в данный момент (см. http://kerneltrap.org/Linux/LVM_Snapshot_Merging). Это означает, что единственный способ восстановить данные из моментального снимка - это фактически скопировать (rsync?) Его. ОПАСНО ОПАСНО: вы делаете не хотите сделать это, если емкость моментального снимка не меньше размера исходной файловой системы; Если вы этого не сделаете, вы скоро наткнетесь на кирпичную стену и в конечном итоге получите повреждение как исходной файловой системы, так и снимка. (Я был там!)

Еще пара вещей, о которых стоит подумать.

  • Если диск умирает в аппаратном массиве RAID, независимо от файловой системы, которая находится на нем, все блоки на устройстве должны быть восстановлены. Даже те, которые не содержали никаких данных. ZFS, с другой стороны, является менеджером томов, файловой системой и управляет избыточностью и чередованием данных. Таким образом, он может разумно восстанавливать только блоки, содержащие данные. Это приводит к более быстрому восстановлению, чем когда том заполнен на 100%.

  • ZFS имеет фоновую очистку, которая гарантирует, что ваши данные остаются на диске согласованными, и устраняет любые обнаруженные проблемы до того, как это приведет к потере данных.

  • Файловые системы ZFS всегда находятся в согласованном состоянии, поэтому в fsck нет необходимости.

  • ZFS также предлагает больше гибкости и функций с помощью снимков и клонов по сравнению со снимками, предлагаемыми LVM.

Запуск больших пулов хранения для производства видео большого формата в стеке Linux, LVM, XFS. По моему опыту, легко попасть в микроуправление хранилищем. Это может привести к появлению большого количества неиспользуемого выделенного пространства и времени / проблем с управлением логическими томами. Это может не иметь большого значения, если у вас есть постоянный администратор хранилища, чья работа заключается в микроуправлении хранилищем. Но я обнаружил, что подход ZFS к хранилищу пула устраняет эти проблемы управления.

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

Мы используем OpenSolaris на этом сервере, в частности, потому что мы хотели иметь доступ к более новым функциям и потому что он предоставил новую систему управления пакетами и способ обновления.

Я не думаю, что вам следует сосредоточиться на производительности. Безопасны ли ваши данные с XFS, ext4 и т. Д.? Нет. Прочтите эти кандидатские диссертации и исследовательские работы:

XFS небезопасен от повреждения данных: pages.cs.wisc.edu/~vshree/xfs.pdf

Как и ext3, JFS, ReiserFS и т.д. Виджаяна Прабхакарана, 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-tested/811

Какую ОС вы планируете использовать? Или это еще одна часть рассмотрения? Если вы используете Solaris, насколько мне известно, XFS даже не вариант. Если вы не используете Solaris, как вы планируете использовать ZFS? Поддержка на других платформах ограничена.

Если вы говорите о сервере Linux, я бы лично остановился на Ext3, хотя бы потому, что он подвергается наибольшему количеству тестов. zfs-fuse еще очень молод. Кроме того, однажды у меня были проблемы с XFS, когда ошибка приводила к повреждению данных после обновления ядра. Преимущества XFS перед Ext3 определенно не перевешивали затрат на восстановление машины, которая находилась в удаленном центре обработки данных.

Не ориентированный на FS ответ, извините, но имейте в виду, что некоторые контроллеры дисков не будут работать с LUNS / логическими дисками> 2 ТБ - это может немного ограничить способ организации вашего хранилища. Я просто хотел, чтобы вы знали, чтобы вы могли проверить свою систему от начала до конца, чтобы убедиться, что она будет работать с 16 ТБ.

Это зависит от того, какие функции вы хотите ..., два разумных варианта - xfs и zfs, как вы сказали, код xfs довольно хорошо протестирован, я впервые использовал его 8 лет назад под IRIX

Можно получить снимки из xfs (используя lvm и xfs_freeze)

Возможно иметь отдельное устройство журнала, например SSD.

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

Большим xfs традиционно требуется много памяти для проверки

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

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

Вместо того, чтобы создавать свои собственные, альтернативой является Sun 7410 aka Toro. В комплекте с решением идет очень полезное программное обеспечение.

Что ж, ребята, давайте не будем забывать о последнем дополнении к zfs: дедупликация. И давайте поговорим об обмене iscsi, nfs или smb на лету. Как уже говорили другие, экспорт файловых систем zfs, снимков, контрольной суммы блока raidz (= raid5), ширины динамической полосы, управления кешем и многого другого. Голосую за zfs.