Лучшие практики ZFS с аппаратным RAID

30

Если у вас есть какое-то серверное оборудование, стоит ли когда-нибудь запускать ZFS поверх аппаратного RAID1 или чего-то подобного? Нужно ли отключать аппаратный RAID и запускать ZFS на a mirrorили a raidz zpool?

С отключенной функциональностью аппаратного RAID-контроллера, будут ли контроллеры SATA2 и SAS на базе аппаратного RAID более или менее скрывать ошибки чтения и записи, чем контроллеры не-RAID-оборудования?

С точки зрения ненастраиваемых серверов, если возникает ситуация, когда аппаратный RAID-контроллер эффективно не требует затрат (или даже снижает стоимость готового серверного предложения, поскольку его присутствие повышает вероятность того, что хостинговая компания предоставит дополнительный IPMI). доступ), следует ли вообще этого избегать? Но нужно ли его искать?

CNST
источник
2
возможный дубликат ZFS поверх Hardware Mirroring или просто зеркало в ZFS?
Шейн Мэдден
2
@ShaneMadden, вопросы похожи, однако, мой вопрос уже исходит из перспективы аппаратного рейда, плохого с точки зрения zfs, и я спрашиваю, насколько он плох; Кроме того, учтите, что принятый ответ на ваш связанный вопрос вообще не касается моего вопроса; мой вопрос больше похож на ответ на вопрос, который вы связали.
CNST
"ZFS поверх аппаратного зеркалирования или просто зеркало в ZFS?" и этот вопрос две разные темы. Эта другая тема более узкая, чем эта.
Стефан Ласевский
@ белый, ты уже не спрашивал об этом?
CNST
@cnst Хорошо, нет никакого отмеченного ответа, и люди продолжают понижать голосование за мой ответ. Так что было бы хорошо, если бы было какое-то завершение поставленного вопроса. ( Это ответственная вещь , чтобы сделать )
ewwhite

Ответы:

17

Идея ZFS состоит в том, чтобы как можно больше узнать, как ведут себя диски. Тогда от худшего к лучшему:

  • Аппаратный рейд (ZFS не имеет ни малейшего представления о реальном оборудовании),
  • Режим JBOD (проблема в том, чтобы больше о любом потенциальном расширителе: меньшая пропускная способность),
  • Режим HBA является идеальным (ZFS знает все о дисках)

Поскольку ZFS довольно параноидален в отношении аппаратного обеспечения, чем меньше он скрывается, тем больше он может справиться с любыми аппаратными проблемами. И, как отмечает Sammitch , конфигурации RAID-контроллера и ZFS могут быть очень трудными для восстановления или перенастройки в случае сбоя (например, аппаратный сбой).

Что касается вопроса о стандартизированном оборудовании с некоторым контроллером аппаратного RAID, просто будьте осторожны, чтобы аппаратный контроллер имел реальный сквозной режим или режим JBOD.

Ouki
источник
10
Стоит также отметить, что если вы используете HW RAID и ваш контроллер умирает [случается чаще, чем вы думаете], если вы не можете получить замену, которая является либо идентичной, либо полностью совместимой, вы попали в ловушку. С другой стороны, если вы передали сырые диски в ZFS, вы можете подключить эти диски обратно к любому контроллеру на любой машине, и ZFS сможет восстановить массив и продолжить работу, как будто ничего не произошло.
Саммит
1
Высококачественные серверы обычно имеют встроенные контроллеры RAID. Например, мне никогда не приходилось заменять контроллер в системе HP или Dell.
13
2
Этот ответ не отвечает ни на что. Это выражает лишь предвзятое мнение, что поставщик серверного оборудования и программист ZFS проделали лучшую работу, чем поставщик RAID-контроллера и программист встроенного программного обеспечения RAID. Сообщество FreeNAS полно парней, которые убили свои Zpools из-за неправильной работы серверной памяти или неподходящих источников питания. Вероятность того, что что-то большое потерпит неудачу, выше, чем что-то маленькое.
выступление
14

В. Если у кого-то есть какое-то серверное оборудование, всегда ли целесообразно запускать ZFS поверх аппаратного RAID1 или чего-то подобного?

О. Настоятельно предпочтительнее запускать ZFS прямо на диск и не использовать какие-либо формы RAID между ними. Независимо от того, требует ли система, которая фактически требует от вас использования карты RAID, исключение использования ZFS, больше связано с ДРУГИМИ преимуществами ZFS, чем с устойчивостью данных. Если и есть базовая карта RAID, отвечающая за предоставление одного LUN для ZFS, ZFS не собирается повышать отказоустойчивость данных. Если вашей единственной причиной, по которой вы в первую очередь выбрали ZFS, является повышение устойчивости данных, то вы просто потеряли все основания для его использования. Тем не менее, ZFS также предоставляет ARC / L2ARC, сжатие, снимки, клоны и различные другие улучшения, которые вы также можете захотеть, и в этом случае, возможно, это все еще ваша файловая система.

В. Следует ли отключить аппаратный RAID-массив и вместо этого запустить ZFS на зеркале или в raidz zpool?

О. Да, если это вообще возможно. Некоторые карты RAID допускают сквозной режим. Если он есть, это предпочтительнее.

В. С отключенной функциональностью аппаратного RAID-контроллера, будут ли контроллеры SATA2 и SAS на аппаратном RAID-уровне с большей или меньшей вероятностью скрывать ошибки чтения и записи, чем контроллеры не-RAID-оборудования?

О. Это полностью зависит от рассматриваемой карты RAID. Вам придется изучить руководство или обратиться к производителю / продавцу карты RAID, чтобы выяснить это. Некоторые из них делают очень много, да, особенно если «отключение» функциональности RAID фактически не отключает его полностью.

Q. С точки зрения ненастраиваемых серверов, если возникает ситуация, когда аппаратный RAID-контроллер эффективно нейтрален по затратам (или даже снижает стоимость готового серверного предложения, поскольку его присутствие повышает вероятность предоставления услуг хостинг-компанией). дополнительный доступ IPMI), его вообще следует избегать? Но нужно ли его искать?

О. Это почти тот же вопрос, что и ваш первый. Опять же - если ваше единственное желание использовать ZFS - это повышение устойчивости данных, а выбранная вами аппаратная платформа требует, чтобы карта RAID предоставляла один LUN для ZFS (или несколько LUN, но у вас есть полоса ZFS между ними), тогда вы делаете ничего для повышения устойчивости данных и, следовательно, ваш выбор ZFS может не подходить. Тем не менее, если вы найдете какие-либо другие функции ZFS полезными, возможно, это так и есть.

Я хочу добавить еще одну проблему - приведенные выше ответы основаны на идее о том, что использование аппаратной карты RAID под ZFS не наносит вреда ZFS, исключая его способность повышать отказоустойчивость данных. Правда в том, что это скорее серая зона. В ZFS существуют различные настраиваемые параметры и допущения, которые не обязательно работают так же, когда передаются многодисковые LUN ​​вместо необработанных дисков. Большая часть этого может быть сведена на нет при правильной настройке, но сразу после установки вы не будете так эффективны в ZFS поверх больших RAID LUN, как если бы вы работали поверх отдельных шпинделей.

Кроме того, есть некоторые свидетельства того, что совершенно другой способ, которым ZFS общается с LUN в отличие от более традиционных файловых систем, часто вызывает пути кода в RAID-контроллере и рабочие нагрузки, к которым они не привыкли, что может привести к странностям. В частности, вы, вероятно, окажете себе услугу, полностью отключив функциональность ZIL в любом пуле, который вы размещаете поверх одного LUN, если вы также не предоставляете отдельное устройство регистрации, хотя, конечно, я настоятельно рекомендую вам НЕОБХОДИМО предоставить пулу отдельное устройство с необработанным журналом (если это вообще возможно, это не LUN ​​от карты RAID).

NEX7
источник
9

Я запускаю ZFS поверх конфигураций RAID HP ProLiant Smart Array довольно часто.

Зачем?

  • Потому что мне нравится ZFS для разделов данных, а не для загрузочных разделов.
  • Потому что загрузка Linux и ZFS, вероятно, не достаточно надежна для меня прямо сейчас.
  • Потому что контроллеры HP RAID не позволяют проходить устройства RAW . Конфигурирование нескольких томов RAID 0 отличается от RAW-дисков.
  • Поскольку объединительные платы серверов, как правило, недостаточно гибки, чтобы выделять отсеки для дисков для конкретного контроллера или распределять обязанности между двумя контроллерами. В эти дни вы чаще всего видите установки с 8 и 16 отсеками. Не всегда достаточно, чтобы сегментировать так, как должно быть.
  • Но мне все еще нравятся возможности управления громкостью ZFS. Zpool позволяет мне динамически распределять файлы и максимально использовать доступное дисковое пространство.
  • Сжатие, ARC и L2ARC - убийственные функции!
  • Правильно спроектированная установка ZFS поверх аппаратного RAID по-прежнему дает хорошее предупреждение и предупреждение об ошибках, но превосходит аппаратное решение.

Пример:

Конфигурация RAID-контроллера.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

список блочных устройств

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

конфигурация zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

Zpool деталь

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

листинг файловой системы zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -
ewwhite
источник
Итак, что касается закрытого вопроса, с которым вы связались, то стоит ли говорить, что, если я хочу использовать ZFS, мне лучше избегать, например, Dell PERC H200 и HP P410? У них все еще нет способа отключить режим аппаратного рейда, будь то RAID0 или RAID1?
CNST
Таким образом, похоже, что dell.com/learn/us/en/04/campaigns/dell-raid-controllers заявляет, что H200 «поддерживает не-RAID», хотя h18004.www1.hp.com/products/servers/proliantstorage/ … Не совсем ясно, можно ли отключить функцию рейда в P410.
13
@cnst Нельзя отключить функцию RAID на HP Smart Array P410.
ewwhite
Это все еще правильно? Вы говорите, что нет опасного запуска ZFS на аппаратном рейде?
редкий
Правильный. Это не опасно.
Ewwhite
5

Как правило, вы никогда не должны запускать ZFS поверх дисков, настроенных в RAID-массиве. Обратите внимание, что ZFS не должен работать в режиме RAID. Вы можете просто использовать отдельные диски. Тем не менее, практически 99% людей используют ZFS для RAID-части. Вы можете просто запустить свои диски в чередующемся режиме, но это плохое использование ZFS. Как говорили другие авторы, ZFS хочет знать много нового об оборудовании. ZFS следует подключать только к карте RAID, которую можно установить в режим JBOD или предпочтительно подключить к HBA. Перейти на канал IRC Freenode #openindiana; любой из экспертов ZFS на канале скажет вам то же самое. Попросите вашего хостинг-провайдера предоставить режим JBOD, если он не даст HBA.

Крис
источник
1
Да я согласен. Но это также вопрос того, что доступно в наличии с конфигурацией, которая отвечает требованиям и спецификациям. Если у сервера отличный ЦП, много ОЗУ ECC, большая пропускная способность и много, но он должен поставляться с аппаратным RAID, поиск альтернатив может оказаться неэффективным, что может быть в несколько раз дороже, из-за того, что он находится в другой категории или около того, или отсутствует некоторые корпоративные функции, такие как ECC RAM и т. д.
cnst
2

Вкратце: использование RAID ниже ZFS просто убивает идею использования ZFS. Зачем? - Потому что он предназначен для работы на чистых дисках, а не на RAID.

poige
источник
1
Не обязательно. Что, если я больше беспокоюсь о гибкости управления томами, чем о том, что оптимизация вокруг имеет сырой доступ к физическим устройствам. ZFS работает довольно хорошо для моего случая использования.
Ewwhite
3
@ Хорошо, кто-то может ездить на велосипеде рядом с ним, говоря, что ему нравится ходить и вообще любить велосипеды, но правда в том, что велосипеды созданы для того, чтобы на них ездить. )
Пой
2

Для всех вас ... ZFS поверх любого Raid - это полная боль и выполняется только MAD-людьми! ... как использование ZFS без памяти ECC.

С образцами вы разберетесь лучше:

  • ZFS поверх Raid1, один диск немного изменился, когда он не был выключен ... попробуйте все, что вы знаете, ZFS увидит некоторые повреждения или не будет зависеть от того, какой диск читается (контроллер Raid не увидел, что бит был изменен, и думаю, что оба диска в порядке ) ... если сбой произошел в части VDEV ... весь ZPOOL потеряет все свои данные навсегда.
  • ZFS по сравнению с Raid0, один диск немного изменился, когда он не был выключен ... попробуйте все, что вы знаете, (контроллер Raid не увидел, что бит был изменен, и подумайте, что оба диска в порядке) ... ZFS увидит это повреждение, но если Ошибка в части VDEV ... весь ZPOOL теряет все свои данные навсегда.

ZFS хорош в обнаружении битов, которые изменились, когда диск находится без питания (RAID-контроллеры не могут этого сделать), а также когда что-то меняется без запроса и т. Д.

Это та же проблема, что и в случае, когда бит в модуле ОЗУ самопроизвольно изменяется без запроса ... если память является ECC, память исправляет ее самостоятельно; если нет, эти данные изменились, поэтому данные будут отправлены на измененные диски; убедитесь, что изменение не в части UDEV, если сбой произошел в части VDEV ... весь ZPOOL потеряет все свои данные навсегда.

Это недостаток ZFS ... Сбой VDEV означает, что все данные будут потеряны навсегда.

Аппаратный Raid и Software Raid не могут обнаружить спонтанные изменения битов, у них нет контрольных сумм, худшие на уровнях Raid1 (mirros), они читают не все части и сравнивают их, они предлагают, чтобы все части всегда имели одинаковые данные, ВСЕГДА (я говорю это громко) Raid предполагает, что данные не изменились никаким другим способом / способом ... но диски (как память) подвержены спонтанным битовым изменениям.

Никогда не используйте ZFS в оперативной памяти, отличной от ECC, и никогда не используйте ZFS на рейдированных дисках, пусть ZFS просматривает все диски, не добавляйте слой, который может испортить ваш VDEV и POOL.

Как смоделировать такой сбой ... выключить компьютер, вынуть один диск из этого Raid1 и изменить только один бит ... разобраться и посмотреть, как контроллер Raid не может знать, что изменилось ... ZFS может, потому что все чтения проверены против контрольной суммы, и если не совпадает, прочитайте другую часть ... Raid никогда не читает снова, потому что происходит сбой (за исключением невозможности чтения из-за аппаратного обеспечения) ... если Raid может прочитать, он думает, что данные в порядке (но это не так ) ... Raid только пытается читать с другого диска, если там, где он читает, написано: «эй, я не могу читать оттуда, аппаратный сбой» ... ZFS читает с другого диска, если контрольная сумма не совпадает так же, как если бы он читал говорит «эй, я не могу читать оттуда, аппаратный сбой».

Надеюсь, я все проясню ... ZFS на любом уровне Raid - это боль и полный риск для ваших данных! а также ZFS на не-ECC памяти.

Но то, что никто не говорит (кроме меня):

  • Не используйте диски с внутренним кешем (не только те, которые имеют SHDD, а также те, которые имеют кэш от 8 до 32 МБ и т. Д.) ... некоторые из них используют не-ECC память для такого кеша
  • Не используйте SATA NCQ (способ записи в очередь), потому что он может испортить ZFS при отключении питания

Так какие диски использовать?

  • Любой диск с внутренней батареей, обеспечивающий запись всех очередей, будет записан на диск в случаях сбоя питания и использует в нем память ECC (извините, таких очень мало и они дорогие).

Но, эй, большинство людей не знают всего этого и никогда не сталкивались с проблемой ... Я говорю им: вау, как вам повезло, купите лотерейные билеты, пока счастливчик не ушел.

Риски есть ... такие неудачи могут возникнуть совпадения ... так что лучший ответ:

  • Старайтесь не размещать какой-либо слой между ZFS и местом, где действительно хранятся данные (RAM, Raid, NCQ, внутренний дисковый кеш и т. Д.) ... настолько, насколько вы можете себе позволить.

Что я лично делаю?

  • Добавьте еще несколько слоев ... я использую каждый 2,5-дюймовый диск SATA III 7200 об / мин в корпусе USB 3.1 Gen2 типа C, я подключаю некоторые корпуса к концентратору USB 3.1 Gen 2 типа A, который я подключаю к ПК, а другой - к другому концентратору что я подключаюсь к другому корневому порту на ПК и т. д.
  • Для системы я использую внутренние разъемы sata на ZFS (уровень Raid0), потому что я использую неизменяемую (как LiveCD) систему Linux, каждая загрузка идентичного содержимого на внутренних дисках ... и у меня есть образ клона системы, которую я могу восстановить (менее 1 ГБ системы) ... также я использую хитрость, чтобы система содержала файл, и использую подключенный к ОЗУ диск, на котором я клонирую его при загрузке, поэтому после загрузки вся система работает в ОЗУ ... помещая такой файл DVD я также могу загрузить таким же образом, так что в случае сбоя внутренних дисков, я просто загружаюсь с DVD, и система снова подключается ... аналогичный трюк с SystemRescueCD, но немного более сложный файл ISO может быть на внутренний ZFS или просто будь настоящим DVD и я не хочу двух разных версий.

Надеюсь, я смогу немного рассказать о ZFS против Raid, это действительно больно, когда что-то идет не так!

Claudio
источник
Итак, вы говорите, что ZFS настолько ненадежен, что, если один бит изменится, вы потеряете всю файловую систему? Как SATA NCQ вызывает потерю данных, когда диск все еще уведомляет хост только тогда, когда сектора были успешно записаны (хотя, возможно, в другом порядке)?
Malvineous