Промышленные конфигурации BlobStorage
Для обеспечения необходимой отказоустойчивости YDB нужно правильно сконфигурировать дисковую подсистему кластера: выбрать подходящий режим отказоустойчивости и аппаратную конфигурацию кластера.
Режимы отказоустойчивости
Для промышленных инсталляций YDB рекомендуется использовать следующие режимы отказоустойчивости:
block-4-2
— если кластер расположен в одной зоне доступности.mirror-3-dc
— если кластер расположен в трех зонах доступности.
В модели отказа YDB различаются понятия домена отказа и области отказа.
- Домен отказа (fail domain)
-
Набор оборудования, для которого вероятен одновременный отказ.
Например, доменом отказа можно считать диски одного сервера (в связи с вероятной недоступностью всех дисков сервера при отказе блока питания или сетевого контроллера сервера). Также доменом отказа можно считать серверы, расположенные в одной серверной стойке (в связи с вероятной недоступностью всего оборудования в стойке при проблемах с питанием или сетевым оборудованием, расположенным в той же стойке).
Обработка любых отказов домена осуществляется автоматически, без остановки работы системы.
- Область отказа (fail realm)
-
Набор доменов отказа, для которого вероятен одновременный отказ.
Например, областью отказа можно считать оборудование, расположенное в одном центре обработки данных (ЦОД), который может выйти из строя в результате стихийного бедствия.
Обычно под доменом отказа подразумевается серверная стойка, а под областью отказа – ЦОД.
При создании групп хранения YDB объединяет в группы VDisk, расположенные на PDisk из разных доменов отказа. Таким образом, для режима block-4-2
необходимо распределение PDisk по не менее чем 8 доменам отказа, а для режима mirror-3-dc
— по 3 областям отказа с не менее чем 3 доменами отказа в каждой.
Аппаратная конфигурация
При отказе диска YDB может автоматически переконфигурировать группу хранения так, чтобы вместо расположенного на отказавшем оборудовании VDisk использовался новый VDisk, который система пытается расположить на работающем в момент реконфигурации оборудовании. При этом соблюдается то же правило, что и при создании группы — VDisk создается в домене отказа, отличном от доменов отказа всех остальных VDisk этой группы (и в той же области отказа, что и отказавший VDisk для mirror-3-dc
).
Это вызывает ряд проблем в случе, когда оборудование кластера распределено по минимально необходимому количеству доменов отказа:
- при отказе всего домена реконфигурация теряет смысл т.к. новый VDisk может быть расположен только в отказавшем домене отказа;
- при отказе части домена реконфигурация возможна, но при этом нагрузка, которая раньше обрабатывалась отказавшим оборудованием будет перераспределена только по оборудованию в том же домене отказа.
Если же в кластере доступно хотя бы на 1 домен отказа больше, чем минимально необходимо для создания групп хранения (9 доменов для block-4-2
и по 4 домена в каждой области отказа для mirror-3-dc)
, то при отказе части оборудования нагрузка может быть перераспределена по всему оставшемуся в строю оборудованию.
Система может работать с доменами отказа любого размера, однако при малом количестве доменов и неодинаковом количестве дисков в разных доменах количество групп хранения, которые возможно будет создать, окажется ограничено. При этом часть оборудования в слишком больших доменах отказа может оказаться недоутилизированной. В случае полной утилизации оборудования существенный перекос в размерах доменов может сделать невозможной реконфигурацию.
Например, в кластере с режимом отказоустойчивости
block-4-2
имеется 15 стоек. В первой из 15 стоек расположено 20 серверов, а в остальных 14 стойках — по 10. Для полноценной утилизации всех 20 серверов из первой стойки YDB будет создавать группы так, что в каждой из них будет участвовать 1 диск из этого самого большого домена отказа. В результате при выходе из строя оборудования в любом другом домене отказа нагрузка не сможет быть распределена на оборудование в первой стойке.
YDB может объединять в группу диски разных производителей, различной емкости и скорости. Результирующие характеристики группы определяются набором наихудших характеристик оборудования, которое ее обслуживает. Обычно лучших результатов удается добиться при использовании однотипного оборудования. При создании больших кластеров следует учитывать и то, что оборудование из одной партии с большей вероятностью может иметь одинаковый дефект и отказать одновременно.
Таким образом, в качестве оптимальных аппаратных конфигураций для промышленного применения рекомендуются следующие:
- Кластер в 1 зоне доступности — использует режим отказоустойчивости
block4-2
и состоит из 9 или более стоек с равным количеством одинаковых серверов в каждой. - кластер в 3 зонах доступности — использует режим отказоустойчивости
mirror3-dc
и расположен в 3 ЦОД с 4 или более стойками в каждом, стойки укомплектованы равным количеством одинаковых серверов.
Смотрите также Упрощенные аппаратные конфигурации.
Восстановление избыточности
Автоматическая реконфигурация групп хранения снижает вероятность потери данных при возникновении множественных отказов, возникающих с достаточными для завершения восстановления избыточности интервалами. По умолчанию реконфигурация происходит через 1 час после того, как YDB выявляет отказ.
После реконфигурации новый VDisk автоматически наполняется данными для восстановления требуемой избыточности хранения в группе. При этом возникает повышенная нагрузка на остальные VDisk группы и на сеть. Для снижения влияния восстановления избыточности на производительность системы суммарная скорость репликации данных ограничивается как на стороне VDisk-источника так и на стороне VDisk-получателя.
Время восстановления избыточности при этом зависит от объема данных и от производительности оборудования. Например, репликация на быстрых NVMe SSD может завершиться за час, а на больших HDD репликация может длиться более суток. Для того, чтобы реконфигурация в принципе была возможной, в кластере должны быть свободные слоты для создания VDisk в разных доменах отказа. При расчете количества оставляемых свободными слотов следует учитывать вероятность отказа оборудования, длительность репликации, время, необходимое на замену отказавшего оборудования.
Упрощенные аппаратные конфигурации
В случаях, когда невозможно использовать рекомендованное количество оборудования, можно разделить серверы одной стойки на 2 фиктивных домена отказа. В такой конфигурации отказ 1 стойки будет означать отказ не 1, а сразу 2 доменов. В обоих режимах отказоустойчивости YDB сохранит работоспособность при отказе 2 доменов. При использовании конфигурации с фиктивными доменами отказа минимальное количество стоек в кластере для режима block-4-2
составляет 5, для mirror-3-dc
— по 2 в каждом ЦОД.
Уровень отказоустойчивости
В таблице приведены уровни отказоустойчивости для различных режимов отказоустойчивости и аппаратных конфигураций кластера YDB:
Режим отказоустойчивости |
Домен отказа |
Область отказа |
Количество ЦОД |
Количество серверных стоек |
Уровень отказоустойчивости |
---|---|---|---|---|---|
block-4-2 |
Стойка | ЦОД | 1 | 9 или более | Переживает отказ 2 стоек |
block-4-2 |
½ стойки | ЦОД | 1 | 5 или более | Переживает отказ 1 стойки |
block-4-2 |
Сервер | ЦОД | 1 | Не важно | Переживает отказ 2 серверов |
mirror-3-dc |
Стойка | ЦОД | 3 | По 4 в каждом ЦОД | Переживает отказ ЦОД и 1 стойки в одном из двух других ЦОД |
mirror-3-dc |
Сервер | ЦОД | 3 | Не важно | Переживает отказ ЦОД и 1 сервера в одном из двух других ЦОД |