LINUX.ORG.RU

RAIDZ1 vs ZFS Mirror vs RAID1

 , ,


2

4

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

Во-первых, какие преимущества есть у ZFS Mirror перед RAID1 (здесь и далее под RAID я имею ввиду софтварный рейд, а под ZFS имею ввиду OpenZFS во FreeBSD и производных)? На тематических форумах по BSD и NAS приводят в качестве основного преимущества то, что ты сразу получаешь ФС, а не просто блочный девайс, но разве это преимущество? На блочный девайс я могу любую нужную мне ФС поставить. Или тут еще что-то скрыто? Вроде минус один уровень между железом и файлами.

Во-вторых, не могу определиться с тем, какой из ZFS RAID использовать. С одной стороны есть простое зеркало, о котором тут пишут, что это якобы наиболее производительный вариант при хранении больших файлов (недостаток с эффективным объем свободного места в <=50% от суммы объемов дисков пока не принимаем в расчет). А вот тут товарищ проводит тестирование различных ZFS RAID, по результатам которого понятно, что как раз зеркало самое НЕпроизводительное и вообще самое худшее получается. Кому верить?

В-третьих, не совсем понятно, как отражается на производительности выбытие из пула из одного RAIDZ1 одного диска из трех или более. Где-то пишут, что это сильно снизит производительность, при этом RAIDZ1 и RAIDZ2 являются самыми используемыми. Где подвох? Если, допустим, на RAIDZ1 из трех дисков выбывает один и это не сильно бьет по производительности на время замены диска, то, наверное, лучше выбрать 2xRAIDZ1 по 3 диска, чем добавлять в один RAIDZ1 еще диски.

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


Mirror — это RAID1, только лучше. RAIDZ — это RAID5/6, только лучше.

«Только лучше» заключается в том, что ZFS умеет:

  • обнаруживать тихие ошибки за счёт чексумм,
  • не перестраивать пустое пространство при сбое, и
  • обходиться без write hole.
intelfx ★★★★★ ()
Ответ на: комментарий от intelfx

обходиться без write hole

А почему это плюс?

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

обнаруживать тихие ошибки за счёт чексумм

Что за «тихие» ошибки не понял, но это относится к ZFS как к ФС. Но тоже самое можно сделать и с самой обычной ext4, так? Отслеживать ошибки, запуская fsck. На других ФС тоже есть инструменты для проверки и исправления ошибок.

не перестраивать пустое пространство при сбое

О каких сбоях идет речь? Сбой самой ФС или аппаратные тоже?

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

Что за «тихие» ошибки не понял, но это относится к ZFS как к ФС. Но тоже самое можно сделать и с самой обычной ext4, так?

Речь идет об ошибках на уровне блоков RAID5/6, а не уровне FS. ZFS имеет дополнительные механизмы контроля целостности массива по сравнению с классическими RAID5/6.

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

О каких сбоях идет речь?

Вылет диска с последующей заменой и перестройкой массива.

Serge10 ★★★★★ ()

RAIDZ1 или RAIDZ2 на 4-х или 5-и дисках.

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

Write hole — это ситуация (возникающая при крахе системы в процессе записи), в которой новые данные успели записаться, а parity ещё нет. Если это вовремя не задетектить и не пересчитать parity, для данного страйпа нарушается гарантия избыточности (т. е. в случае смерти диска страйп восстановить не получится).

Плюс в том, что в ZFS такая ситуация возникнуть не может (а, например, в btrfs или в классическом md без журнала — может).

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

Что за «тихие» ошибки не понял

Искажения отдельных битов внутри сектора, не обнаружимые средствами самого диска (т. е. не приводящие к отметке сектора как плохого).

Но тоже самое можно сделать и с самой обычной ext4, так? Отслеживать ошибки, запуская fsck.

Нет, не так.

О каких сбоях идет речь? Сбой самой ФС или аппаратные тоже?

Как написали выше — вылет диска с перестроением массива. Т. е. о тех сбоях, от которых и защищает RAID.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

А, блин, я это спутал с чем-то другим) А почему в Btrfs такое возможно?

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

Потому что в Btrfs слой файловой системы работает поверх слоя RAID, как в классическом md, а не наоборот.

Грубо говоря, у тебя весь многодисковый том бьётся на много маленьких разделов (chunks), поверх групп этих чанков создаётся обычный классический RAID, а поверх получившихся виртуальных разделов (blockgroups) уже работает btrfs со всей её атомарностью, CoW и прочим.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)

@intelfx, @Serge10, спасибо, о преимуществах я понял. Но вопрос производительности и выбора между mirror и raidz1 пока не решен. Есть у кого реальный опыт в сравнении на реальном железе в реальных юзкейсах? Или может быть достоверный источник, которому можно доверять. Я, конечно, в итоге и сам проведу сравнение на своем железе, но мне надо понимать, сколько дисков брать и какого объема в зависимости от mirror или raidz1.

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

Основной недостаток raidz (не только raidz, а вообще любых RAID с чётностью) — в том, что они медленно перестраивается. Выбирая количество дисков с чётностью, исходи из MTBF и nonrecoverable read error rate твоих дисков — иначе может получиться так, что пока ты будешь перестраивать массив, у тебя навернётся второй диск или случится ещё один битфлип.

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

Ну а преимущество у raidz в общем-то одно — ему нужно меньше дисков для достижения того же самого уровня избыточности.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

RAIDZ — это RAID5/6, только лучше

Хрен там оно лучше. Это я как пользователь ZFS говорю.

Аргументы ищите сами, мне лень пересказывать тему, которую уже тысячу раз обсосали.

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

mirror или raidz1

RAID-1 работает со скоростью самого медленного диска в пуле.

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

ZFS RAID 10 + cache

С некоторыми оговорками:

  • cache на SSD;
  • RAID-1 размазан по разным дискам;
  • RAID-0 размазан по разным дискам.
mord0d ★★★ ()
Ответ на: комментарий от mord0d

Хрен там оно лучше.

Лучше-лучше. Это я как пользователь ZFS говорю :)

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

Хрен там оно лучше.

Лучше-лучше. Это я как пользователь ZFS говорю :)

Kakije vashi dokazatelstva?

Нену, если в сравнении с хардварными RAID-5/RAID-6, то вполне может быть, у меня с ними дружба не сложилась с самого начала.

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

Kakije vashi dokazatelstva?

Cocainum! :))

Да, собственно, выше написали уже всё. Лучше аппаратных железок и mdadm.

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

RAID-1 работает со скоростью самого медленного диска в пуле.

Уточним - на запись.

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

for a given number of disks, a pool of mirrors will significantly outperform a RAIDZ stripe.

a degraded pool of mirrors will severely outperform a degraded RAIDZ stripe.

a degraded pool of mirrors will rebuild tremendously faster than a degraded RAIDZ stripe.

a pool of mirrors is easier to manage, maintain, live with, and upgrade than a RAIDZ stripe.

https://jrs-s.net/2015/02/06/zfs-you-should-use-mirror-vdevs-not-raidz/

Harliff ★★★★★ ()
Последнее исправление: Harliff (всего исправлений: 2)
Ответ на: комментарий от Nastishka

Внутри Btrfs.

Я же описал подробно, как это работает.

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

Да хватит уже совать эту статью везде. Там на три тонны воды ровно один простой как палка тезис: (любой) RAID с чётностью медленнее, чем тупое зеркало. Ну да, медленнее. Вот это поворот.

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

Лучше аппаратных железок и mdadm.

Покажи zpool status своего пула на RAIDZ? Интересует, только структура (config), остальное можешь тримнуть.

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

Искажения отдельных битов внутри сектора, не обнаружимые средствами самого диска (т. е. не приводящие к отметке сектора как плохого).

а как реализуется проверка? Постоянно перепрочитывается в простое?

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

RAID-1 работает со скоростью самого медленного диска в пуле.

Уточним - на запись.

И "холодное" чтение.

А учитывая, что на всём ЛОРе ARC умеют нормально тюнить всего полтора человека (я в этот список не вхожу)…

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

Есть обычные z2 и z3, что там можно увидеть то? :) У всех одинаково всё (linux/freebsd/solaris)

Deleted ()

По скорости быстрее всех будет bcache+mdadm. По надежности zfs.

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

В основном 8

Мне такая роскошь (пока) недоступна. Я только недавно заменил бракованный(?) блок питания, запитывание от которого более трёх дисков регулярно било данные/метаданные из-за рандомного отвала питания на некоторые шлейфы.

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

на всём ЛОРе ARC умеют нормально тюнить всего полтора человека

Дай сурс на тюнинг, интересно почитать чего там тюнить кроме min/max.

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

ARC могут тюнить не только лишь все !

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

Да и то в 0.8 по-умолчанию сделали всё:

https://zfsonlinux.org/manpages/0.8.0/man5/zfs-module-parameters.5.html

zfs_arc_max (ulong)

Max arc size of ARC in bytes. If set to 0 then it will consume 1/2 of system RAM. This value must be at least 67108864 (64 megabytes).

This value can be changed dynamically with some caveats. It cannot be set back to 0 while running and reducing it below the current ARC size will not cause the ARC to shrink without memory pressure to induce shrinking.

Default value: 0.

zfs_arc_min (ulong)

Min arc size of ARC in bytes. If set to 0 then arc_c_min will default to consuming the larger of 32M or 1/32 of total system memory.

Default value: 0.

Deleted ()

масштабируемое

  • RAIDZ +
  • MD +
  • hardware RAID -

минимальными затратами

  • RAIDZ +
  • MD +
  • hardware RAID -

хорошая производительность по крайней мере на чтение (точно не ниже чтения с одного диска)

  • RAIDZ +
  • MD +
  • hardware RAID +

Безопасность данных лучше всего обеспечивает zfs, но за это приходится платить производительностью. Если у тебя меньше чем 8 гб оперативки - то лучше не надо zfs. Советую попробывать всё варианты и понять что тебе надо. Лично я предпочитаю RAIDZ1.

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

Если у тебя меньше чем 8 гб оперативки - то лучше не надо zfs.

Ух, как требования подросли. Раньше нужно было не меньше 4 ГБ и процессор уровня Intel Atom.

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

Я даже не представляю как можно уместить всё ПО и ARC в 4гб ОЗУ.. Сейчас любое более менее известное приложение на яве запустишь минус 2-4гб минимум.

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

Запустил NetBeans 11.2, а в ней демонстрационный проект собрал и запустил — на всё ушло 1,2 ГБ ОЗУ. Запустил RSSOwl почитать новости — ещё откусило 300 МБ. Откуда «2-4гб минимум»?

iZEN ★★★★★ ()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от sky92

Сравнивать десктопное приложение и серверное — некорректно.

Те, кто умеет в настройку GC в JVM, понимают, что пресловутые требования в значительной степени взяты с потолка.

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

А кто их сравнивает то? Спросили куда 2-4 гб деваются - ответил. К тому же лично я не буду на свой NUC с одним ssd ставить zfs. Просто незачем мне он тут. Все важные данные я не храню на декстопе, для этого есть другие машины. Десктоп для хлама и разработки, а не для хранения данных. Поэтому немного недоумеваю когда люди с одним хардом ставят зфс корневой фс и хранят хлам торрент-сериалов и мемов на нём(надо еще компрессию включать на jpeg/mp4/* и дедупликацию туда же на 4 гб RAM, чтобы комбо). Всему своё место как по мне.

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

Приветствую. Так получилось что последние 5 лет не занимался FreeBSD и слегка подзабыл что там с ZFS, в общем есть сервер с 8 гиг оперативки (старый ксен, больше не ставить) там есть сата 6 портов, есть 5 одинаковых винтов SATA можно прикупить SSD под кеш, с SSD отдельная печальная история, я узнал что такое SLC кеш на горьком опыте :( …Так вот, что лучше замутить на этом железе ? RAID0+1 или RAIDZ и ещё если взять SSD на терабайт, в нём кеша 32гига всего, разметить этот SSD одним кусочком в эти 32 гига, можно ли этот кусочек под кеш использовать ?

nagual ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей