(mdadm, raid5, grow). Скорость расширения масива.
Доброго времени суток.
Попробовал расшить существующий RAID5 масив (с 2-х дисков до 3-х).
(Создавал с двух, потому что больше свободных ЖД не нашлось).
Если во время создания скорость была (в начале диска) - 110 Мб/с, то при расширении - была всего 30-35 Мб/с.
Только когда перевалило за 50% поднялась до 90 Мб/с.
И тут я понял почему она была такая маленькая вначале:
При расширении массива md-raid'у приходится считывать данные находящиеся в одном месте и записывать их в другое (на том же диске).
(Как доказательство на слух головка на ЖД дергалась во время этого процесса прилично).
Вопрос: можно ли увеличить кол-во блоков считываемое за раз с ЖД и записываемое на него? Т.к. это сократило бы перемещение головки ЖД, и увеличило бы среднюю скорость.
Размер chunk-а массива - 512К.
На момент расширения --bitmap отключал (ставил в none, после поставлю на файл, находящийся на на массиве).
Параметр /sys/block/md0/md/stripe_cache_size менять тоже пробовал, сейчас стоит 16К, увеличение в 2 раза скорость не меняло.
О /proc/sys/dev/raid/speed_limit_min и /proc/sys/dev/raid/speed_limit_max тоже знаю - выставил запредельные для скорости оба (нагрузка на дисковую подсистему массива во время расширения была мизерная).
Вопрос интересует т.к. в будущем планирую еще добавлять диски, и на сколько я понимаю дальше будет только хуже, т.к. при добавлении 4-го "тормозить" будет до 66,6%, 5-го - 75%, 6-го - 80%. Что меня не сильно радует. А ставить RAID 1+0 нет смысла, т.к. нагрузка на масив(особенно на запись) мизерная.
- Для комментирования войдите или зарегистрируйтесь
Откуда домыслы, что тормозить
Откуда домыслы, что тормозить будет?
Торможение при расширении - на то и торможение, что у тебя данные распространяются на третий диск из двух, создается избыточность для достижения отказоусточивости. Учите теорию хоть.
Не грусти, товарищ! Всё хорошо, beautiful good!
Спасибо, помог!
Мат.часть. по рейдам я знаю, и знаю что будет тормозить (в случаях подобным моему), и я объяснил почему.
Знаете есть разница между:
и
Смекаете?(с)
Ну и какая, по твоему,
Ну и какая, по твоему, разница?
Не грусти, товарищ! Всё хорошо, beautiful good!
Действительно...
reshape == recovery..?
и кто ж теперь теорию должен учить?
Вот посмотрим, что делают две
Вот посмотрим, что делают две последовательности команд.
1. Первая серия команд:
a. mdadm --create /dev/md0 -l 5 -n 2 /dev/sda /dev/sdb
Создается RAID 1 с ДВУМЯ дисками. Это значит, что при -n 2 в параметре -l может быть КАКАЯ УГОДНО циферка, если она не равна 0. Все равно получишь RAID 1:
b. mdadm --add /dev/md0 /dev/sdc
Теперь ты добавляешь spare-устройство к RAID 1:
c. mdadm --grow /dev/md0 -n 3
Теперь ты увеличиваешь RAID1 до трех дисков, отчего делается reshape до RAID5:
2. Вторая серия команд
a. mdadm --create /dev/md0 -l 5 -n 3 /dev/sda /dev/sdb missing
Создаем RAID 5 в degraded режиме с одним отсутствующим диском:
b. mdadm --add /dev/md0 /dev/sdc
Добавляем отсутствующий диск с восстановлением производительности и избыточности:
Итак, что мы вынесли из этого познавательного урока? В первом случае делался изначально RAID1, а не RAID5. При расширении получаем RAID5 с ожидаемым ПАДЕНИЕМ производительности. Теперь понятно, почему в при "создании скорость была (в начале диска) - 110 Мб/с, то при расширении - была всего 30-35 Мб/с"? Потому что RAID1 (2) -> RAID5 (3), а не RAID5 (2) -> RAID5 (3), как ты тут ожидал. При дальнейшем наращивании дисков производительность не будет "при добавлении 4-го "тормозить" будет до 66,6%, 5-го - 75%, 6-го - 80%", потому что не будет смены типа RAID-массива. С добавлением дисков будет расти скорость чтения, но не записи.
Теперь ясно все по теории?
Не грусти, товарищ! Всё хорошо, beautiful good!
ППЦ... А, ты, воспроизведи по
ППЦ... А, ты, воспроизведи по времени...
reshape длится на порядок дольше recovery, потому что... блин мне уже лень третий раз писать одно и то же.
А на выходе, да получаем RAID 5 из трех дисков... результат (по статусу) одинаковый, по времени и затраченным ресурсам - разный!
В первом случае за отсутствие лишних (временных, буферных) накопителей приходится расплачиваться скоростью прихода RAID-а в финальное состояние, по отношении второго.
Я ясно выразился?
winterheart написал(а):При
Бред!
Меня не интересует работа масива в финальном состоянии!!! Я хочу минимизировать переходное время, т.к. тут он, по моему личному мнению, очень уязвим. Хотя на практике с ВМ ему даже reboot хоста не помеха, пойдет с места где остановился.
Теперь, я ясно выразился?
p.s.: а скорость записи тоже будет расти - и попробуй мне хоть что-то возразить по поводу контрольных сумм: примеры с нагруженным CPU ит потоков ядра md0_raid5 в студию!!
NFS_Daemon написал(а): Меня
И точно британский ученый...
кроме флуда что-то толковое
кроме флуда что-то толковое написать слабо?
А если по делу - то действительно, почему меня должна интересовать работа массива? - Я знаю как она.. он работает. Знаю чем отличается 3-й от 4-го, а 4-й от 5-го, когда-то даже помнил отличия 5 от 5Е, 5ЕЕ, 6. И что..? Зачем мне о них волноваться? Я даже знаю что при создании ext3 или ext4 файловой системы (как пример, список ими не ограничивается) можно (для повышения эффективности) указывать такие параметры как -E stride,stripe_width, и я даже (представляете?) знаю как их высчитывать... Я много чего знаю, но вот когда не знаю задаю вопросы, и приходят умники, вроде вас, и еще 90% активных словоносцев этого форума, которые могут только троллить, т.к. на большее они не способны в принципе... А ясно изрек ход своих мыслей?
winterheart
Это тоже откровенный бред, если размер массива из двух одинаковых разделов равен объему одного из них это не обязательно RAID1.
У mdadm RAID1 из двух дисков отличается от RAID5 из тех же двух дисков по логике работы.
А именно - в RAID5 присутствует создание контрольных сумм (да, да, знаете, xor можно брать и от константы, например, либо использовать not, либо банально дублировать данные, не вдавался в подробности как это делает mdadm, но если хотите покурю пару недель исходники) и, что для меня более важное, - возможность расширения. В RAID1 нельзя увеличить размер масива путем добавления дисков. Но вам непонять зачем это нужно, ведь у вас есть компания, которая вас финансирует, мне же приходиться думать)
А ну-ка, скажи-ка, почему
А ну-ка, скажи-ка, почему этот массив работает:
ВАУ, я изобрел RAID5 на одном диске!!! Срочно бегу в патентное бюро!
Серьезно, ты думал, что не-degraided RAID5 можно собрать на двух дисков? Хотел обмануть mdadm? mdadm обманет тебя в ответ.
Не грусти, товарищ! Всё хорошо, beautiful good!
действительно? а чего же ему
действительно? а чего же ему не работать.. RAID5 может спокойно перенести смерть одного диска...
беги, беги - я посмотрю как на тебя там посмотрят...
то что я думаю не важно, важно то что уже реализовали в mdadm... чем я и воспользовался, а вы на меня как на барана посмотрели, потому что вам об этом никто ничего не сказал.
p.s.: RAID6, к слову, на двух дисках не реализовать, тут даже mdadm пошлет далеко и на долго... так что циферка не может быть абсолютно любой.
Предлагаю назвать такой вид
Предлагаю назвать такой вид RAID - RAID5NFS_Daemon_edition, и не смешить больше серьезных людей.
Не грусти, товарищ! Всё хорошо, beautiful good!
ладно, ладно, хотите пруфики,
ладно, ладно, хотите пруфики, будут вам пруфики, к концу дня, если успею, выложу частичные дампы с двух дисков, в случае записи одной и той же информации для случая RAID1 и RAID5 из двух дисков (hexdump'ы буду тащить из средины разделов, указываю дабы не начали что читал с начала диска, а там находится superblock, и иже подобные...)
могу даже сделать полный dd md-раздела RAID1 на RAID5 чтобы не было еще недовольств из-за того что сама файловая система может по разному записать файлы (аля в разные места)...
Ждите (если чесно уже самому интересно).
Не нужно:
Не нужно: http://superuser.com/questions/362277/how-to-remove-a-drive-from-a-non-standard-2-drive-raid-5-array
Не грусти, товарищ! Всё хорошо, beautiful good!
http://pastebin.com/kFkrnR79
http://pastebin.com/kFkrnR79
Да, вы были правы, на физическом уровне это зеркало (что логично минимум операций логики).
Но на логическом уровне - ну нет у mdadm'а возможности преобразовать RAID1 из двух дисков в RAID5 из трех, нет, и не было, и не будет, наверное никогда, потому что это дорогого стоит.
А то что вы не понимаете зачем это делать - я даже не буду вас убеждать. Есть такая вещь как минималистское использование ресурсов (это когда переходим из состояния А в состояние Б с минимальными затратами по стоимости). (Нет, я не жлоб, и умею вкладывать деньги, но только туда где они действительно нужны, в моем случае альтернативы по надежности mdadm'а был бы только какой-нибудь контроллер за $1-2 K, что меня не радует - зачем собственно он мне, да и не думаю что даже современные, полноценные RAId-контроллеры умеют расширение массива без потери данных).
Вывод - на физическом уровне RAID1 из двух дисков и RAID5 из двух дисков - одно и то же зеркало.
На логическом (и как результат в обслуживании) это совершенно два разных массива.
p.s.: столько шума, и все не в тему - ответа дельного (по буферу, отвечающему за reshape) еще никто не написал.
p.s.s.: и размеры массивов слегка разные (у RAID5 чуть меньше)
, возможно из-за bitmap'а - его я не проверял, хотя нет, --detail его должен был показать.
Из RAID1 в RAID5 в mdadm
Из RAID1 в RAID5 в mdadm можно переделывать, это позволяет технология, заложенная в mdadm. Однако reshape делается гораздо дольше recovery с большим поражением в производительности, при этом в таком состоянии система очень уязвима к сбоям. Надо ли говорить, что при потере питания будет потеря и данных? С другой стороны, recovery завершается на порядок быстрее и более терпима с сбоям.
И на физическом, и на логическом RAID1 и RAID5 на двух дисках суть одно и то же, не обманывайте себя.
Где те преимущества, которые я должен увидеть? Если вы хотели сделать RAID5 - надо было делать его изначально, если RAID1 - то RAID1.
Не грусти, товарищ! Всё хорошо, beautiful good!
Так и хочется процитировать
Так и хочется процитировать реплику главного героя из кинофильма Ирония судьбы или с легким паром.
хм, да, действительно умеет, видимо я что-то не так сделал когда проверял у себя.
Но, как это относится к первоначальной проблеме (скорости reshape)?
Или вы собираетесь утверждать что при reshape RAID5 с трих дисков до четырех таких "тормозов" не будет?
и вся вина тут лежит на злосчастном подсчете сумм т.к. идет переход с raid1 на raid5?
Не надо, именно для этих целей я себе еще 4-ре года назад купил UPS.
Преимущества, в, <цензура>, расширяемости, raid5 с двух дисков можно расширить хоть до 20-ти... raid1 - нет!
В этом заключалась главная задача, как при минимальном объеме незадействованных (т.е. не хранящих реальные данные) дисках перелить инфу на raid5 массив.
И у меня эта задача выполнилась, и мне не нужно было закупать (при моих 3-х 2Тб) дисках еще 4-и 2 Тб диска чтобы создать массив и скопировать на него инфу... Теперь то я понятно выразился.. Ах да - вы недоумеваете зачем оно надо... Это, <цензура>, ваши проблемы, у каждого, в конце, концов свои тараканы. Не знаю как ваши, а мои меня кормят (и вполне успешно).
Собственно говоря из-за чего
Собственно говоря из-за чего все это разбирательство?
RAID5 или RAID1, что это изменит?
Я имею привычку когда использую какой либо инструмент пользоваться терминами, которые этот инструмент определяет. В терминологии mdadm есть понятие RAID5 из двух дисков, и ведет он себя как RAID - терпит выход из строя одного диска, умеет расширяться, менять тип рейда. Что это меняет? Как будто я не догадывался что данные на двух дисках (чтобы организовать избыточность) можно еще как-то хранить кроме как дублирования (либо not-копии, но это дополнительные накладные расходы)... Ну что это меняет? Как не назови собаку - крылья у нее не вырастут и с дерева на дерево она летать не начнет, или я не прав?
Я ни о каких "сферическо-вакуумных" преимуществах RAID5 перед RAID1 из тех же злосчастных двух дисков никогда не писал, кроме как возможность расширения, да я уже кажется в каждом втором посте этой темы указал что для этот фактор имеет крайне важное значение (еще не поняли почему? - я опускаю руки).
Проверьте
Проверьте MaxMultSect/MultSect на дисках и можете поиграться с readahead параметром. На линейном чтении и малой загрузке может чего и выиграете...
Для экстрима можете и другие параметры через hdparm покрутить... ;)
Вот что у меня: # hdparm
Вот что у меня:
На всех используется udma6
multcount (MultSect) на первых четырех ЖД специально не выставлял, такие были сразу.
На пятом при попытке поменять выдается предупреждение:
По этому вопросу нашел тему: http://www.redhat.com/archives/fedora-devel-list/2007-April/msg01169.html
Если верно понял, этот параметр относится только к pio режимам.
Или ошибаюсь?
Pokazi hdparm -i
Pokazi
вот # hdparm -i
вот
Но проблема не в этом, да и вообще проблемы нет. А топикстартер нуб, т.к. делает подобные вещи, весьма признателен за оказанную помощь.
Как сказать... Вообше-то
Как сказать... на мой взгляд - проблема c /dev/sde есть... точнее есть мелкие замечания, которые могут перерасти в проблему, надо смотреть СМАРТ. Вообше-то
как бы странно и подозрительно... у меня такое было (нулевое значение и тоже не давало изменить даже принудительно!) перед тем, когда диск совсем сдох... посмотрите его на smartctl с тестами и попробуйте все-таки насильно выставить. В пределах MaxMultSect это безопасно на самом деле, если, конечно, диск не находится под большой нагрузкой в данный момент.
Да и unknown у параметров говорит о том, что диски левоватые, не все работает (усеченный набор комманд/доступ на уровне firmware)...
Посмотрите еще (для себя хотя бы)
И прежде чем читать антикварные статьи на форумах (которые вообще зачастую отражают лишь личное мнение автора) - прочтите man hdparm... :), - приведу лишь фрагмент (надеюсь, что про readahead, как я раньше советовал, прочтете сами):
-m Get/set sector count for multiple sector I/O on the drive. A setting of 0 disables this feature. Multiple sector mode (aka IDE Block Mode), is a feature of most modern IDE hard drives, permitting the transfer of multiple sectors per I/O interrupt, rather than the usual one sector per interrupt. When this feaтure is enabled, it typically reduces operating system overhead for disk I/O by 30-50%. On many systems, it also provides increased data throughput of anywhere from 5% to 50%. Some drives, however (most notably the WD Caviar series), seem to run slower with multiple mode enabled. Your mileage may vary. Most drives support the minimum settings of 2, 4, 8, or 16 (sectors). Larger settings may also be possible, depending on the drive. A setting of 16 or 32 seems optimal on many systems. Western Digital recommends lower settings of 4 to 8 on many of their drives, due tiny (32kB) drive buffers and non-optimized buffering algorithms. The -i option can be used to find the maximum setting supported by an installed drive (look for MaxMultSect in the output). Some drives claim to support multiple mode, but lose data at some settings. Under rare circumstances, such failures can result in massive filesystem corruption.
Благодарю!
По hdparm man'ы выучу на память, спасибо за наводку.
Пожалуйста, не мешайте
Пожалуйста, не мешайте британским ученым производить очередные исследования в области IT.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
)))
)))
>>Попробовал расшить
>>Попробовал расшить существующий RAID5 масив (с 2-х дисков до 3-х).
Срочно в патентное бюро. Вы - Гений. Всем остальным неудачникам для пятого рейда нужно три диска минимум.
А вам - срочно зубрить ман
А вам вместе с другими неудачниками - срочно зубрить ман мдадм!.. :)
Моя компания в состоянии
Моя компания в состоянии прикупить железный рейд. Надеюсь что в этой жизни мдадм осваивать не придется. Пятерка требует минимум три винта независимо от знания мдадм. Пятерка без винта это страйп (весьма ненадежно), пятерка без двух - смерть. Как то так. Матчасть тут http://ru.wikipedia.org/wiki/RAID#RAID_5
Более того, RAID5 без винта -
Более того, RAID5 без винта - это даже не страйп, это хуже по скорости, да к тому же Degraded Array.
Не грусти, товарищ! Всё хорошо, beautiful good!
и ? у мну в тачке на другом
и ? у мну в тачке на другом краю света 1+0-ка ;) задача - сделать из них 5-ку на 4-х дисках.
примерно так и решал ;)
И судя в том числе и по fortunes.gentoo.ru - успешно
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Опишите, пожалуйста,
Опишите, пожалуйста, последовательность действий, которую вы выспроизвели чтобы перенести данные с RAID1+0 (из 4-х дисках) на RAID5 (из тех же 4-х дисках).
Не такой ли она была:
1. Выносим из 10-ки по одному диску из каждого зеркала (превращаем 1+0 в 0, грубо говоря).
2. Из двух дисков создаем degraded RAID5 с двумя дисками из трех.
3. Переносим инфу с RAID0 на RAID5,
4. Добавляем два диска в RAID5
5. Ждем пока завершиться recovery.
6. По окончании запускаем --grow --raid-devices 4
7. Ждем завершения.
Так делали?
конечно такВернее не совсем
конечно так
Вернее не совсем - превращаем 10-ку не в 0, а раид1
Опенвз сервачок
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Это ж с потерей данных
Это ж с потерей данных что-ли? Объем массива уменьшится в два раза.
Или у вас полезных данных было только на пол массива.. ладно это не суть.
Я задал этот вопрос для того чтобы понять что заставило вас выразиться обо мне как о британском ученом.
Сначала я думал что это reshape... Но как оказалось, заблуждался, проясните пожалуйста, а то очень любопытно.
Ja rad cto vy takie
Ja rad cto vy takie bogatye... u menja toze petabajty, i cto? Ot znanija teorii eto ne osvobozdaet... :)
Citajte post vnimatelno - eto byl transitional variant - zapustil RAID5 na 2x HDD, a potom dobavil diskov!
I v cem "kriminal"?!..
Inogda tak udobnee (ili diskov ne xvataet) smigrirovat ot togo cto est na RAIDx. T.e. zapustil RAID, skinul dannye, osvobodilsja disk - dobavil v RAID.
P.S. TC molodec, cto myslit tvorceski, a ne metodom "loma": a-la postavim storage ot NetApp'a/Hitachi/etc, oni umnye, - vse budet xoroso i dumat ne nado!.. :D
как, Вам уже сказали, читайте
как, Вам уже сказали, читайте маны и пробуйте.
я перед тем как проделывать свою схему на физ. дисках (с живыми данными) проделал её три раза на ВМ (первый методом тыка, тут то как раз и выяснил что нельзя преобразовать при помощи mdadm --grow RAID 1 в RAID5, хотя желание было, именно поэтому и сделал RAID5 на двух дисках, а не degraged на три из двух, и повторно еще два раза чтобы откатать наличие строгой последовательности команд).
Знаете, есть такая штука как усовершенствования... но вы видимо всегда живете версией 1.0 после её релиза.
NFS_Daemon написал(а): Если
Я, возможно, понял что сбило вас с толку. Это указание скорости.
Но это не скорость записи на устройство - это скорости процессов mdadm'а, а именно - recovery (при создании масива, и она была, вначале - 120 МБ/с, в конце 50 МБ/с) и reshape (при расширении, вначале - 30-35 МБ/с, ближе к середине - 10 МБ/с, после перехода за 50% стала, на сколько помню где-то в районе 70-80 МБ/с и затем спала, в конце, до 50 МБ/с).
Это не скорости записи чтения в процессе recovery или reshape - пока это происходило массив не использовался (совсем, volume group была потушена).