LINUX.ORG.RU
ФорумAdmin

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

 ,


0

1

Имеется:

  • количество А разномастных hdd с плавающей скоростью записи (что логично, хдд от природы такие)
  • имеется В потоков данных

Если В <= А и трафик в каждом потоке из В < половины возможностей на запись самого медленного из дисков А все понятно - просто дублируем каждый поток на два любых диска.
С ситуацией когда трафик превышает возможности нескольких конкретных дисков тоже в целом понятно - прибываем потоки по приоритетам

Вопросы:

  1. чем удобней разрулить ситуацию когда потоков много (больше количества дисков) и при этом общий трафик всех потоков ~ 80% совокупной возможности дисков на запись в самом медленном для дисков случае (все диски на внутренних дорожках оказались одновременно)

Подозреваю что если возьму и просто сделаю райд1 из 5+5 дисков часть из которых в 5 раз быстрее соседей то меня будет ждать фиаско и он будет работать с непостоянной скоростью?

Подозреваю что зфс более логична за счет распределения по всем дискам из кеша в ОЗУ но если она распределяет равномерно то кеш так же равномерно и закончится в отличии от потоков

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

★★★★★

Подозреваю что если возьму и просто сделаю райд1 из 5+5 дисков часть из которых в 5 раз быстрее соседей то меня будет ждать фиаско и он будет работать с непостоянной скоростью?

raid1 из 5+5 сделать нельзя. Если ты про рейд10 то работать на запись будет примерно как самый медленный из дисков, умноженный на небольшой (меньше 5) коэфициент.

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

Да, по сути 10.
Т.е. если из 10 дисков 1 может писать 1мб/с, а 9 - 10мб/с, то общая производительность будет ~ 1х5? В целом логично но хотелось бы получить ~9х10 😁
Неужели нет готового решения чтоб сливать кэш фс из озу в кэши дисков по мере его освобождения размазывая данные «лишь бы копия попала на любой другой»?

rukez ★★★★★
() автор топика

количество А разномастных hdd

Сделайте себе одолжение - даже не пытайтесь собирать RAID вот из этого вот. Никто так не делает, что означает забег по граблям (а они непременно будут) придётся устраивать в гордом одиночестве, без какой-либо поддержки со стороны. Мои 2 копейки.

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

У тебя не только писаться будет через ж, но и читаться так же. Linux будет при чтении считывать разные блоки с разных дисков и на медленных дисках получить провисания. Я бы посмотрел в сторону специфических рейдов типа 2 и выделил медленные диски под коррекцию ошибок, а быстрые под данные. Там минимум по поему 7 дисков, как минимум будет интересно 😃. По теории с медленных дисков не будет чтения в нормальном режиме, а запись туда будет в меньших объёмах, что тоже в теории гуд.

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

На читаться пофигу - 99.99% записанных данных никогда не читаются а перезаписываются новыми, чтение оставшегося 0.01% может быть медленным (медленнее записи)
По сути это логгер работающий по аналогии с видеонаблюдением - пишет все с реал-тайм потоковых данных, точки интереса читаются редко и не требуют реалтайма

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

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

  • скорость «в конце» сильно разномастна по моделям
  • эта скорость неизвестна до полного заполнения диска

и соотв если все диски свалить в кучу хоть как райд10 хоть как набор райд1 с прибитыми к парам потоками, рано или поздно встретится пара «которая заметно медленнее чем другие» (при этом в одном райд10 еще пойди определи какая) и вот как минимум этот момент хотелось бы подстраховать

Никто так не делает

Что кстати удивляет - у каждого кто пишет много поточного эта проблема явно появляется, и решать ее в лоб докидывая дисков с запасом в 3-4 раза по пропускной довольно сомнительно банально потому что их и так довольно много

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

Это, ктсати, довольно важное услове, что у тебя на 99% запись.

Если у тебя выполняется еще одно условие - запись идет большими блоками (так, что набирается полный страйп), то делай RAID-6. При последовательной записи большими блоками получишь такую же скорость, как и у RAID-0 (т.е. размазывание по всем дискам) + избыточность.

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

Все хдд так или иначе разномастны по скорости

Если диски идентичны то задержки для конкретного страйпа будут плюс / минус одинаковыми вне зависимости от того куда он лёг по геометрии диска. Целый класс проблем уходит.

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

выделил медленные диски под коррекцию ошибок

Крайне сомнительная идея. Мало того что НЕ размазывать чётность по шпинделям - так себе затея, так они ещё и более нагруженные ввиду того что короткая запись приводит к read-update-write на оных. Не надо так делать никогда.

bugfixer ★★★★★
()

Изначальную задачу озвучьте.

Во-первых, что конкретно пишете - видеопотоки, базы данных или что-то еще?

Во-вторых, конкретизируйте описание сервисов.

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

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

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

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

эта скорость неизвестна до полного заполнения диска

С чего это неизвестна? dd в помощь и измеряй где хочешь её.

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

На dd я не смогу показать, как будет меняться скорость. Можно, конечно, видео записать - но не хочу.

Дык какую скорость за истину примем? Среднюю в 40 или самую низкую в 20? Или всё-таки она будет неизвестна, пока не начнём записывать конретную дорожку блина?

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

эта скорость неизвестна до полного заполнения диска

С чего это неизвестна? dd в помощь и измеряй где хочешь её.

Это ты чушь не пори.

ТС логично рассуждает, что скорость будет плавать. Причем на неё кроме самого диска еще будет влиять выбор ФС, мелкие-крупные файлы и степень её фрагментации. Ну запущу я dd, получу условные 40Mб/с, позапишу-поудаляю файлы, что по-твоему, если ещё раз запущу dd, то опять будет 40? Уверен, что не 45 или 35?

ALiEN175
()