Как быстро кластер Nutanix восстанавливает целостность после отказа диска на узле?

В продолжение темы о том, что происходит при отказе диска или ноды кластера Nutanix, давайте посмотрим подробнее «сколько стоит» нам такая авария. В первую очередь нас будет интересовать время восстановления и объемы обработанного трафика.
Но прежде всего, давайте посмотрим как и что происходит при отказе диска в ноде или ноды целиком.
Если узел обнаруживает отказ диска, то корректирующие действия начинаются немедленно.
Если кластер обнаруживает потерю одного из узлов, он берет таймаут на 60 секунд, и если за это время не восстановилась работа узла (читай, не ответил CVM), то начинаются действия по исправлению ситуации.

В ходе этих корректирующих процедур, Nutanix Cluster для трафика внутренней репликации выделяется 25% общей ширины канала межнодовой сети кластера, чтобы эта процедура минимально влияла на нормальную работу и производительность системы. Таким образом, на процесс репликации внутри системы выделяется четверть доступной полосы (обычно это 10G Ethernet).

Когда кластер принимает решение о начале восстановления после отказа диска в ноде или ноды целиком, то первым делом начинается сканирование и проверка метаданных с тем, чтобы определить, какая часть информации затронута. Эта работа распределяется путем механизма map-reduce между всеми узлами кластера.

Задача репликации данных добавляется в очередь кластерных фоновых процессов, и начинает выполняться узлами, как только появляется возможность, в рамках выделенного лимита ресурсов для фоновых задач. Так как задача при этом распределена между всеми узлами кластера, то чем больше узлов в кластере, тем быстрее происходит ребилд. По умолчанию, можно занять 10 задач в секунду из 25 возможных для процесса внутренней репликации. Задача внутренней репликации имеет приоритет выше, чем auto-tiering.
Таким образом, в 4-нодовом кластере мы имеем 40 параллельных задач репликации. Данные в кластере перемещаются блоками, которые называются extent groups, размером 4MB. Следовательно, в кластере мы можем достичь объема копирования в данный момент времени репликации, равный 40х4MB=160MB, в идеальном случае.
Так как данные равномерно распределены по узлам кластера, и полоса, доступная на диск для репликации состяавляет 75MB/s (сюда входит и чтение и запись), то максимальная полоса составляет 75MB/s * число дисков, что значительно выше, чем 160MB/s. Таким образом, мы можем ожидать, что максимальная полоса репликации будет составлять 160MB/s.
Фактически, так происходит в кластере то, что в RAID называется RAID-rebuild, и для больших групп RAID-5 или RAID-6 может занимать дни.

Ну и, для иллюстрации, видео о том, как происходит процесс восстановления состояния кластера в результате потери 1TB SATA диска с 24GB данных на нем.
Рекомендую, для понятности, включить HD (YouTube теперь включает low-resolution по умолчанию для проигрывания видео), в этом ускоренном вдвое видео видно, что происходит с сетевым трафиком и загрузкой процессора в ходе такой процедуры.
Отказ диска был имитирован из консоли менеджмента.

Как вы видите, через 3 минуты рабочее состояние кластера было восстановлено и репликация данных полностью завершилось, при этом штатная работа по обслуживанию VM на кластере в этот период продолжалась.

Как быстро кластер Nutanix восстанавливает целостность после отказа диска на узле?: 1 комментарий

  1. Уведомление: Erasure code — больше пространства хранения на Nutanix - Virtualization solution with a nuts

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *