LINUX.ORG.RU
ФорумAdmin

Что выбрать: hw raid, mdadm, zfs?

 , , ,


1

2

Добрый день,

Имеется сервер под бэкапы и аппаратный контроллер RAID c батареей. Пока что имеем 4xHDD SATA под данные, 2xSSD под систему.

Думаю, что можно было бы поверх апаратной железки с батареиной пользоваться mdadm/zfs, но есть один нюанс: контроллер довольно старый и корзина - SAS 3Гб/с (потолок для неё, как мне сказали). Еще есть сомнения и несколько вопросов:

  • Имеет ли смысл пользоваться mdadm и создавать single drives вместо RAID10 из 4х (в перспективе можно поставить и 8 дисков) для данных и RAID1 из 2х SSD под систему?
  • Какова вероятность потери данных при резком отключении с mdadm? (можно ссылк на матчасть, если не сложно)?
  • Может стоит заморочиться с ZFS избыточностью и FreeBSD? Каковы плюсы и минусы по сравнению с mdraid (особо, никогда не пользовался - можно тоже ссылки на матчасть).
  • Можно ли как-то максимально затюнить с mdadm/ZFS под maximum perfomance, но чтобы данные не потерять случайно?

Пожалуйста, максимально без халивара - нужен совет в меняемыми разьяснениями, что лучше выбрать под данную задачу. Заранее спасибо за помощь.



Последнее исправление: zuxla (всего исправлений: 3)

Думаю, что можно было бы поверх апаратной железки с батареиной пользоваться mdadm/zfs

С какой целью ?

Xwo
()
Ответ на: комментарий от Xwo

Тогда уже лучше такой вариант: аппаратный рейд, внутри рейда mdadm, потом гипервизор, внутри которого zfs с избыточностью и уже на нём сервисы.

Xwo
()

аппаратный контроллер RAID

какой именно? Можно сказать точно, что, например, рейды dell - говно.

targitaj ★★★★★
()
Ответ на: комментарий от targitaj

HP Smart Array. Но без него никак - на самой плате SATA2.

zuxla
() автор топика
Ответ на: комментарий от Xwo

Отдать системе отдельные диски без избыточности, но с WriteBack with BBU. И уже далее - mdadm/zfs, если это можно затюнить по скорости. Но тут есть грабли, мне кажется: боюсь потерь данных при всяких софтварных кэшах, если что-то пойдет не так... Но, опять же, даже на апаратном рейде inode cache никто не отменял ^_^

zuxla
() автор топика
Ответ на: комментарий от poiuty

Хм, занятно... спасибо.

One might be inclined to try using single-drive RAID 0 arrays to try to use a RAID controller like a HBA, but this is not recommended for many of the reasons listed for other hardware RAID types.

И вот еще ссылка: http://jrs-s.net/2015/02/06/zfs-you-should-use-mirror-vdevs-not-raidz/

Выходит single drive'ами так же не стоит. Не совсем, правда полностью пойму, почему.

zuxla
() автор топика

hw raid

Шаткая конструкция. Если отвалится, данные ты не вытащишь. Хранить что-то под хардварным рейдом я бы в здравом уме не стал.

mdadm

К md* я отношусь относительно спокойно, серьёзных факапов с ним не было.

zfs

Если не брать во внимание тот факт, что оно не нативно (читай — не в ядре), сама по себе файловая система просто шикарна.

r3lgar ★★★★★
()
Ответ на: комментарий от zuxla

Дополнительно про zfs.

Как сделать raid?
https://pve.proxmox.com/wiki/ZFS_on_Linux

Используйте /dev/disk/by-id/
https://github.com/zfsonlinux/zfs/wiki/FAQ#booting-from-zfs

/dev/disk/by-id/: Best for small pools (less than 10 disks)

Не используйте mdadm + zfs.
https://habrahabr.ru/post/268807/

Устанавливать ZFS поверх mdadm массива — это излишнее расточительство ресурсов ЦПУ и излишний дисковый ввод-вывод.

Имеется сервер под бэкапы

Возможно вас заинтересует zfs compression lz4 & deduplication.

poiuty
()
Ответ на: комментарий от zuxla

Отдать системе отдельные диски без избыточности, но с WriteBack with BBU.

Глупость несусветная. Помрет батареечка/конденсатор в самый неподходящий момент и никакая избыточность в zfs не поможет.

anonymous
()

HP SmartArray лучше поменять на что-то другое. Для mdadm/zfs идеально подойдут HBA без RAID, например LSI SAS9207-8i (или его более свежий аналог).

Для бэкапов идеально подойдёт ZFS со сжатием (lz4, либо gzip-1, если запись редкая, а читать планируется мало). Если не смущает FreeBSD — можно будет поставить систему прямо на zpool, а из SSD сделать mirror-ZIL или ZIL+L2ARC (ZIL — выносной журнал транзакций, очень сильно увеличивает производительность синхронной записи без потерь в надёжности, L2ARC — кэш чтения, имеет смысл при больших объёмах чтения с массива).

Плюс относительно MD RAID один — MD RAID не знает ничего о том, что творится уровнем «выше» (будь там LVM или «простая» ФС) — для него это всё просто набор блоков, и он будет оперировать просто набором блоков (синхронизация зеркала будет выполняться долго, потому что синхронизировать надо всё). ZFS, напротив, знает о своём хранилище всё, от блоков на физических устройтвах до атрибутов конкретного файла в датасете, и может (и будет!) этим пользоваться для наиболее эффективной организации массива.

spijet ★★★
()
Ответ на: комментарий от anonymous

Помрет батареечка/конденсатор в самый неподходящий момент

какая, однако, глупость несусветная. алерты? мониторинг? не, не слышале.

никакая избыточность в zfs не поможет.

вот с этого места подробнее.

anonymous
()
Ответ на: комментарий от anonymous

Наверное, имеют ввиду, что контроллер с побитым writeback-кэшем начнёт писать какую-то дичь на массив, но при этом будет рапортовать системе, что всё хорошо, отдавая данные из своей RAM. Такой массив проживёт до первого ребута (ну или до вытеснения пострадавших данных из кэша).

spijet ★★★
()
Ответ на: комментарий от spijet

LSI SAS9207-8i - это же тоже хардварный райд, а не? :) Не совсем пойму, что значит Host Bus Adapter в данном контексте.

zuxla
() автор топика
Ответ на: комментарий от zuxla

HBA — дисковый контроллер, который отдаёт все диски в ОС «как есть». Никакого аппаратного RAID в нём нет.

spijet ★★★
()
Ответ на: комментарий от spijet

контроллер с побитым writeback-кэшем начнёт писать какую-то дичь на массив

это как? любой нормальный контроллер умеет мониторить состояние bbu и отключать writeback при падении заряда, а также посылать алерты системе.

anonymous
()
Ответ на: комментарий от anonymous

Изкоробочный HP SmartArray — не «любой нормальный». У меня эта гадость умудрилась сдохнуть на почти нулевой нагрузке (Proxmox с одной только что созданной VM) и унести с собой три диска из четырёх.

spijet ★★★
()
Ответ на: комментарий от spijet

HP SmartArray

Если это не самый дешманский лоуэнд аля p200 или что там сейчас актуально, то они это прекрасно умеют. А если что-то сдохло и гадит данные, то разницы нет - zfs это или средствами кортроллера рэйд.

и унести с собой три диска из четырёх.

это как?

anonymous
()
Ответ на: комментарий от anonymous

У меня был P410i (HP ProLiant DL380 G6, ЕМНИП). А вот так — в один момент получил звонок от мониторинга, что сервер «упал». Лицензии на iLO, конечно, не было, пришлось ехать на место. Подключился к серверу и увидел, что система крайне удивилась внезапному пропаданию корневой ФС. После ребута даже не показался GRUB — BIOS сказал, что ему не с чего грузиться. Вытащил все диски, полез в утилиту настройки контроллера — конфига массива нет, всё чистое как будто сервер только из коробки достали.

Потом проверил диски на аналогичном сервере с другим контроллером — определился только один из четырёх.

spijet ★★★
()
Ответ на: комментарий от spijet

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

anonymous
()
Ответ на: комментарий от spijet

Присоединюсь к анону отписавшему выше. Не вижу в вашем изложении вины контролера.

anc ★★★★★
()
Ответ на: комментарий от anonymous

Оповещения были настроены внутри ОС (силами smartd). Помереть «плавно» винты вряд ли могли, потому что ОС была установлена на массив примерно за два дня до этого — массив собирался заново и контроллер (в идеале) не дал бы мне собрать массив из четырёх дисков, два из которых уже мертвы, да ещё и не вывести предупреждение при этом (рядом жил сервер с контроллером Adaptec — у того при малейших ошибках в SMART диск подсвечивается красным в утилите конфигурации и использовать его при создании массива уже нельзя).

Лицензии на iLO нет по довольно классической в российских реалиях причине — отдел закупок не счёл необходимым покупать их (ровно как и поддержку). А канитель там такая, что любой функционал, кроме «посмотреть сейчас что там через IE» (оповещения/iKVM/etc) требует отдельной лицензии (говорю про iLO2, сейчас ситуация может отличаться).

spijet ★★★
()
Ответ на: комментарий от spijet

Внезапно умершие харды из одной партии, редкость для серверных, совсем не редкость для не серверных. В любом случае вероятность не нулевая.

anc ★★★★★
()
Ответ на: комментарий от spijet

Если не смущает FreeBSD — можно будет поставить систему прямо на zpool, а из SSD сделать mirror-ZIL или ZIL+L2ARC (ZIL — выносной журнал транзакций, очень сильно увеличивает производительность синхронной записи без потерь в надёжности, L2ARC — кэш чтения, имеет смысл при больших объёмах чтения с массива).

Не смущает. Можно ссылочку поподробней, как так вынести mirror-ZIL или ZIL+L2ARC на SSD?

PS: Ключи на ILO Advanced без проблем гуглятся, или покупаются ;)

zuxla
() автор топика
Ответ на: комментарий от anc

Насчёт партий этих дисков уже не помню. Диски были «фирменные», 15kRPM SAS на 146GB.

spijet ★★★
()
Ответ на: комментарий от zuxla

Сейчас уже говаривают, что mirrored ZIL не так необходим, но я бы замиррорил. Почитать можно здесь (про ZIL в принципе) и тут (конкретно про добавление зеркала для ZIL).

Если я правильно понял из дискуссии в IRC, то потеря ZIL может привести к потере данных только в том случае, если в короткое время после смерти ZIL пропадёт питание. В обычном случае система увидит, что log-устройство начало сыпать ошибками (или умерло) и начнёт писать лог в основной пул.

spijet ★★★
()

Для ZFS нужен любой контроллер с функцией HBA (накопители должны быть видны в ОС «как есть»).

Чтобы серьёзно ускорить чтение/запись ZFS, можно поставить быстрый SLC-flash-накопитель (~16ГБ) для лога синхронной записи ZIL и относительно большой (~120ГБ) MLC/TLC-SSD для отдельного кэша чтения L2ARC.

Для надёжности ZFS нужна ECC-память объёмом от 16ГБ и больше.

iZEN ★★★★★
()

HW RAID имеет смысл только для тех ОС, которые не умеют загружаться с softraid. И даже в этом случае я жалею, что связался с этим говном.

Deleted
()
Ответ на: комментарий от iZEN

Для ZFS нужен любой контроллер с функцией HBA (накопители должны быть видны в ОС «как есть»).

А чем конкретно однодисковый RAID0 отданный системе не подходит? Не свосем пойму. Кэши контроллера можно и отключить. Мешает рабоать с кэшем самих дисков, или еще что?

zuxla
() автор топика
Ответ на: комментарий от zuxla

В некоторых случаях контроллеры пишут свои служебные заголовки на диск (ещё говаривают, что ровнять данные по блокам нормально не выйдет). Нашлёпаешь однодисковых RAID0, а потом смигрировать нормально сможешь только на аналогичный HWRAID, или делать более-менее полную копию пула, а потом zfs send.

spijet ★★★
()
Ответ на: комментарий от spijet

На производительность RAID0 однодисковый повлияет? Понятно, что пишут свои данные в начале массива, но смещение скорей всего понормальному кратное (не дураки же их выпускают :)

zuxla
() автор топика
Ответ на: комментарий от zuxla

Есть подозрение, что дураки. Разработчики ZFS рассказывали о случаях, когда целые линейки контроллеров могли «подъедать» последние 40 байт записываемых данных, например.

spijet ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.