Рейтинг:1

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

флаг cn

Я настраиваю кластер ceph (первый раз для меня), который в итоге будет состоять из ~100 дисков, распределенных по 10 хостам. Я собираюсь использовать единый пул данных с кодированием затирания, чтобы максимизировать дисковое пространство; мои ограничения: эффективность ~ 80% и отказоустойчивость 2 дисков. Это может быть достигнуто проще всего с кодом стирания k=8 m=2, но также и с k=16 m=4 с бонусом допускающим до 4 отказов диска.

Таким образом, мне интересно, каковы недостатки увеличения количества полос; некоторые приходят мне на ум (например, увеличение нагрузки на ЦП и сеть из-за повышенной фрагментации файлов), но, учитывая мое очень плохое знание предмета, я не уверен.Я был бы очень признателен за любую информацию по этой теме.

флаг us
Если у вас есть 10 хостов, я бы посоветовал не использовать их все для создания блока EC. В случае сбоя узла восстановление будет невозможно до тех пор, пока узел не вернется в оперативный режим. Я бы рекомендовал использовать что-то вроде k=6 m=2, если вы хотите выдержать отказ 2 дисков. В этом случае у вас будет два «запасных» хоста, что вводит в заблуждение, поскольку, конечно, все хосты будут использоваться. Профиль EC, такой как k = 7 m = 2, также будет работать.
флаг cn
Спасибо за ваше предложение. Вы рассматриваете случай отказа домена hosts? Я думаю об установке домена сбоя osd, так как меня в основном беспокоит потеря дисков, а не машин, и поэтому меня интересует большое количество полос. Я также обеспокоен тем, что мои машины имеют разную общую емкость osd в диапазоне от 6 до 32 ТБ, поэтому в домене отказа хостов с почти полностью занятыми хостами я бы закончил с небольшими хостами, фактически ограничивающими общую емкость кластера, верно?
флаг us
Ну и диск, на котором установлена ​​операционная система, тоже может выйти из строя. ;-) Но да, я думал о домене сбоя хоста, это обычный случай во всех кластерах наших клиентов. Ваше предположение верно, наименьшее (или самое полное) OSD ограничивает общую емкость. Я не думаю, что это хорошая идея смешивать OSD с такой огромной разницей в емкости. Если вы создали разные классы устройств для больших и малых OSD, это может сработать, если вы создали пулы с этими классами устройств. Но я не думаю, что вы будете довольны результатом, если пойдете по этому пути, независимо от домена отказа.
флаг cn
У меня есть несколько дисковых серверов разного возраста и размера диска, которые до сих пор работали отдельно, и теперь мне нужно создать только одно большое хранилище, так как мне нужен один большой пул. Так что я буду жить с недостатками этой договоренности, но все равно спасибо за внимание. Возвращаясь к моему первоначальному вопросу, видите ли вы какую-либо серьезную проблему в увеличении количества полос даже до k = 40 m = 8?
флаг us
В основном речь идет о ваших требованиях к отказоустойчивости, но слишком большое количество фрагментов приводит к более высокой нагрузке на ЦП, это также может повлиять на ваши накладные расходы на хранилище, если вы думаете о `bluestore_min_alloc_size_hdd`. Если у вас много маленьких файлов, ваши фрагменты будут занимать место, если вы не измените размер выделения. Итак, в заключение, я бы посоветовал не использовать 48 чанков, а лучше остановиться где-то между 8 и 18 чанками. У нас есть несколько клиентов с пулами с кодированием затирания, и 18 чанков, и 9 чанков работают достаточно хорошо.

Ответить или комментировать

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