LINUX.ORG.RU
ФорумAdmin

RAID5 или RAD1 ?


0

0

Здравствуйте, имеется 3 SATA hdd, хочу поднять софт рейд. Подскажите имеет ли смысл поднимать Raid5 или лучше сделать обычный mirror(1)


Ответ на: комментарий от sidor

Почитал, просто гдето вроде видел что raid5 из 3hdd будет работать медленнее raid1 вот и хотел прояснить ситуацию

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

А причина? Малое кол-во hdd? Тоесть использование raid5 целесообразно только когда имеется большое кол-во hdd?

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

>А причина? Малое кол-во hdd?

Нет. Более сложный алгоритм обработки данных. В первом рейде они просто копируются 1:1 на все винты, а в пятом — наращиваются алгоритмами избыточного кодирования и затем размазываются по всем дискам.

Но пятый рейд не советую совсем по другим причинам.
1. В деградированном состоянии нагрузка на оставшиеся винты очень большая, поэтому высока вероятность вторичной поломки с фатальным исходом.
2. Регулярно ходят слухи, что вероятность успешного восстановления данных в случае падения одного из винтов в пятом рейде ниже 100%. Правда, точной инфы никто предоставить не может.

Так что бери либо шестой (если дисков много), либо, если скорость критична, 1 или 0+1.

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

Кстати касательно hotspare, каким образом нужно настроить mdadm чтобы он смог автоматически подставить hotspare в случае когда откажет какой либо диск?

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

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

С чего бы ей выростать в случае поломки одного винта? Нагрузка остается та же, просто RAID'у приходится досчитывать каждый блок данных.

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

Не на чем сейчас проверить, но, думаю, просто указать число устройств, участвующих в массиве + указать количество устройств для hotspare, что-то типа такого:

mdadm -l 1 -n 2 -x 1 -C /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1

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

С чего бы ей выростать в случае поломки одного винта?

Между чтением с 3-х винтов или с 2-х — 33% разница (или 50% смотря с какой стороны считать :)

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

собственно, и что?

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

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

Между чтением с 3-х винтов или с 2-х — 33% разница (или 50% смотря с какой стороны считать :)

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

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

> Софт-рейд 5? Не смешите мои тапочки...

что именно тебе делает смешно? На моей слабой тачке:

xor: using function: pIII_sse (11568.000 MB/sec)

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

> мозговыворачивающего синтаксиса

O_O что именно в нём непонятно? Ни разу не видел человека не осилившего mdadm.

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

А это где такое можно посмотреть?

/me вспоминает что-то подобное при загрузке системы в сообщениях ядра

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

Я про время жизни тоже ничего не говорил

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

За счет чего _возрастание нагрузки на диски_?

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

Когда рейд поломан, то инфа читается с 3-х дисков + еще надо и расчет потерянного блока делать.

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

> 2. Регулярно ходят слухи, что вероятность успешного восстановления данных в случае падения одного из винтов в пятом рейде ниже 100%. Правда, точной инфы никто предоставить не может.

Само понятие рейда (если это только не страйп) не подразумевает восстановления данных. Данные никуда не деваются. У меня на софт рейде (5) сдох один винт. Естественно, массив работал в деградированном режиме. И после замены винта и одной команды в консоли - начал перестраиваться и спустя какоето время вновь стал работать на все катушку. в целях экономии дискового пространства под избыточность я бы рекомендовал пятый рейд.

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

Речь идет о ситуациях, когда пятый рейд не способен работать в деградированном режиме. Некоторые утверждают, что такое возможно.

И я бы рекомендовал не использовать пятый рейд ни при каких условиях.

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

Вот. _Расчет_. Но _на диски_ нагрузка не меняется - в массиве не приходится делать дополнительные операции чтения, все остается на том же уровне.

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

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

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

С моей практикой оно не расходится :). Ок, потом может как-то наглядную демонстрацию сделаю.

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

Но _на диски_ нагрузка не меняется - в массиве не приходится делать дополнительные операции чтения, все остается на том же уровне.

В третий раз объясняю на пальцах:

Дано: райд 5 из трех дисков, файл размеров в 300 блоков полезной информации + 150 блоков избыт. инфы.

Рейд исправен — считываются 300 блоков с трех дисков (по 100 блоков с каждого)

Рейд не исправн — считываются 300 блоков с двух дисков (по 150 блоков с каждого) + восстанавливается потерянная инфа

Вопрос изменилась ли нагрузка на диски? (подсказка подчеркнута)

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

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

Упрощенно - в случае, если у нас все работает - инфа так же само читается с двух дисков, для каждой операции чтения третий у нас отбрасывается - на нем информация для восстановления - и для каждой операции чтения у нас этот 3-й разный.

Если взять размер блока 64 Кб, то при чтении с 3-х дисков мы читаем 64 Кб с одного, 64 Кб с другого, а 64 Кб с третьего мы отбрасываем (или используем для контроля целостности того, что мы прочитали с первых двух). Если у нас одного диска нет (например, 2-го) - то мы читаем 64 Кб с первого, 64 Кб с третьего и из полученных данных досчитываем то, что было на втором. Но читаем / пишем мы все равно один и тот же объем данных. И так для каждого шага работы с массивом.

Иначе:
Есть у нас ряд выражений:

2 + 3 = 5
1 + 2 = 3
4 + 3 = 7
2 + 2 = 4

раскидываем это в массиве и получаем

*2 | *3 | (5)
(3)| *1 | *2
*4 | (7)| *3
*2 | *2 | (4)

(* - полезные данные, () - контрольные суммы. Предположим, что читается все и уже потом где-то там отбрасывается)

теперь убираем один диск:

*2 | | (5)
(3)| | *2
*4 | | *3
*2 | | (4)

Приходится ли нам для каждой строки считывать больше цифр, чем мы считывали ранее?

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

Ок, фиг с ним, пусть не читается, так даже проще, для примера выше:

читается | читается | не читается
не читается| читается | читается
читается | не читается| читается
читается | читается | не читается

без одного диска

читается| высчитывается| читается
читается| высчитывается| читается
читается| не требуется | читается
читается| высчитывается| читается

Итого, для первого случая для 3-х блоков получаем 6 операций чтения, для второго случая для 3-х блоков получаем тоже 6 операций чтения.

> diff raid4 raid5


Разница только в способе размещения контрольных сумм - на отдельном винте в первом случае и на всех - во втором.

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

> Итого, для первого случая для 3-х блоков получаем 6 операций чтения, для второго случая для 3-х блоков получаем тоже 6 операций чтения.

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

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

>Выкить mdadm. Возьми ZFS.

Мда, прям как выкинь Коран, читай Библию.

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

Итого, для первого случая для 3-х блоков получаем 6 операций чтения, для второго случая для 3-х блоков получаем тоже 6 операций чтения.

Молодец начинаешь соображать, только в первом «6 операций чтения» делятся на N дисков (3 в нашем случае), а во втором — на N-1 дисков (здесь 2)

Т.е. раньше на каждый диск приходилось 2 операции чтения, а теперь (после поломки рейда) по 3-и. Итого нагрузка на каждый диск выросла на 50%

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

Разница только в способе размещения контрольных сумм - на отдельном винте в первом случае и на всех - во втором.

Разница в том, что при нормальной работе рейд-4 при чтении один диск не используется

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

> Молодец начинаешь соображать, только в первом "6 операций чтения" делятся на N дисков (3 в нашем случае), а во втором -- на N-1 дисков (здесь 2)

а фразу "не читается", ты, конечно, не заметил.

> Разница в том, что при нормальной работе рейд-4 при чтении один диск не используется


Ок, но речь про RAID 5

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

Мне кажется я говорю со стеной.

Последний раз: В любом состоянии рейда для чтения файла будет произведенно Х операций чтения, но распределятся они на N либо N-1 дисков. Т.о. нагрузка на каждый диск по отдельности будет разная X/N либо X/(N-1)

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

> распределятся они на N

>> Предположим, что читается все

> Предположение ложное.


Итого имеем

X/(N-1) в случае рабочего RAID'a, где X - количество операций чтения, N - количество дисков, "-1" - в каждый момент чтения у нас не читаются контрольные суммы с одного из дисков

и


X/(N-1) в случае нерабочего RAID'a, где X - количество операций чтения, N - количество дисков, "-1" - отсутствующий диск.

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

YAR добавлен в список игнорируемых с пометкой «мозг не обнаружен»

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

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

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

А можно аргументацию почему софтворный рейд должен работать хуже?

При записи IO больше. Все же кернел для RAID5 должен записать один лишний блок инфы на каждые (N-1) блоков, а для RAID1 — вдвое больше. При наличии железного рейда лишнее IO его проблемы.

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

Тсс, не подсказывай.

Потом io больше не на один винт, а суммарно по системе. Что ,по моим наблюдениям, абсолютно побоку если винтов немного и между северным и южным мостом приличная шина. Кроме того, линейная скорость чтения/записи вообще редко бывает критичным. По крайней мере меня интересует random io(или как это называется) ибо так работают БД, сервера с кучей мелких файлов и вообще системы с сильной фрагментацией. В таких условиях дай бог метров 50(в среднем) выжать с sas-хардов. А при таком трафике в сторону винтов точно ничего стращного не будет на swraid.

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

немного винчестеров - их надо минимум три, а лучше четыре. Приличная шина - это какая?

Софтверный рейд будет работать хуже. Доказано эксплуатацией. 5й рэйд в рандом сике просто съест ядро процессора и начнет тормозить. Плюс шедулер, плюс неравномерная загрузка... Кому оно надо? Если есть SAS, то под них берут нормальный Адаптек или Триварю. А софт-рейд5 это для пионеров.

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