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

Я думаю, что нашел решение, которое подразумевает булевские переменные SElinux. Просто установка (активируется), две булевские переменные добились цели:

# setsebool –P mysqld_disable_trans 1
# setsebool –P httpd_can_network_connect_db 1

После этого просто перезагрузив оба сервиса и все работает.

-P опция устанавливает его постоянно. Вы видите список булевских переменных и их состояния с:

# getsebool -a

Возможно, это могло помочь другим с подобной проблемой.

Править: Вы думаете, что это - хорошее и безопасное решение? там какие-либо другие пути состоят в том, чтобы добиться цели? Я сохраню вопрос оставшимся без ответа, так может отметить его в случае, если кто-либо knowns другое лучшее решение

30
задан 11 October 2013 в 00:00
7 ответов

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

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

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

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

17
ответ дан 28 November 2019 в 19:59

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

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

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

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

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

A. Это полностью зависит от рассматриваемой карты RAID. Вам нужно будет изучить руководство или обратиться к производителю / поставщику карты RAID, чтобы узнать. Некоторым очень нравится, да, особенно если "выключить" функция RAID фактически не выключает его полностью.

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

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

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

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

14
ответ дан 28 November 2019 в 19:59

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

Почему?

  • Потому что мне нравится ZFS для разделов с данными, а не для загрузочных разделов.
  • Потому что загрузка Linux и ZFS, вероятно, сейчас недостаточно надежна для меня.
  • Потому что RAID-контроллеры HP не поддерживают устройство 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  -
9
ответ дан 28 November 2019 в 19:59

Typically you should never run ZFS on top of disks configured in a RAID array. Note that ZFS does not have to run in RAID mode. You can just use individual disks. However, virtually 99% of people run ZFS for the RAID portion of it. You could just run your disks in striped mode, but that is a poor use of ZFS. Like other posters have said, ZFS wants to know a lot about the hardware. ZFS should only be connected to a RAID card that can be set to JBOD mode, or preferably connected to an HBA. Jump onto IRC Freenode channel #openindiana ; any of the ZFS experts in the channel will tell you the same thing. Ask your hosting provider to provide JBOD mode if they will not give a HBA.

5
ответ дан 28 November 2019 в 19:59

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

2
ответ дан 28 November 2019 в 19:59

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

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

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

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

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

Это слабость ZFS ... Сбой VDEV означает, что все данные теряются для когда-либо.

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

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

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

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

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

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

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

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

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

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

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

Что я лично

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

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

2
ответ дан 28 November 2019 в 19:59

Все говорят, что ZFS поверх RAID — плохая идея, даже не указывая ссылку.Но разработчики ZFS - Sun Microsystems даже рекомендуют запускать ZFS поверх HW RAID, а также на зеркальных пулах ZFS для баз данных Oracle.

Основной аргумент против HW RAID заключается в том, что он не может обнаруживать гниение битов, как зеркало ZFS. Но это неправильно. Для этого есть T10 PI. Вы можете использовать контроллеры с поддержкой T10 PI (по крайней мере, все контроллеры LSI, которые я использовал). Большинство корпоративных дисков поддерживают T10 PI. Поэтому, если это подходит для вас, вы можете создать массив с поддержкой T10 PI, создать пул ZFS без избыточности поверх него и просто убедиться, что вы следуете рекомендациям, касающимся вашего варианта использования, изложенным в статье. Хоть и написано для Соляриса, ИМХО подходит и для других ОС.

Преимущество для меня заключается в том, что замена диска в аппаратном контроллере действительно проще (особенно в моем случае, потому что я не использую весь диск для zpool по соображениям производительности). Это не требует никакого вмешательства и может быть выполнено клиентом. штат сотрудников.

Недостатком является то, что вы должны убедиться, что диски, которые вы покупаете, действительно отформатированы для поддержки T10 PI, потому что некоторые из них хотя и поддерживают T10 PI, но продаются отформатированными как обычные диски. Вы можете отформатировать их самостоятельно, но это не очень просто и потенциально опасно, если вы прервете процесс.

3
ответ дан 13 February 2021 в 12:55

Теги

Похожие вопросы