XtremIO X2: что за кадром? Повышенная надежность.

Читая первые официальные документы по новому XtremIO, можно обнаружить интересные архитектурные подробности, оставшиеся за кадром. Об одной из таких деталей — в этой публикации. Речь пойдет о защите и восстановлении при сбоях.

Подборка статей  со ссылками опубликована в день релиза Ициком Райхом, блог которого содержит и много другой интересной информации по разрабатываемой его командой платформе.

Я решил внимательно перечитать все с самого начала и мое терпение было довольно скоро вознаграждено.   Первая вводная техническая «белая бумага» по X2, страница 29, раздел High Availability.

В ней идет речь о защите как от сбоев флэшей, так и от программных отказов.

Первая защита реализуется при помощи алгоритма XtremIO Data Protection (XDP), архитектура которого известна давно. О его принципиальны преимуществах можно прочитать тут.   Если коротко — это распределенный эластичный метод хранения данных на флэшах,  с двойной четностью и резервной емкостью для защиты, с встроенным тонким выделением ресурсов, дедупликацией и компрессией. Назвать это RAID-ом язык не поворачивается, потому что RAID это что-то, сделанное для дисков, а потом переделанное под флэш. XDP не такой, как вы поймете после прочтения указанной публикации.

Что же в нем нового? То, что он получил возможность вертикального масштабирования, вы уже, наверняка знаете. Об этом чуть ли не в первых строках везде говорится. Это то, о чем все очень просили, и это было сделано. Теперь каждая пара контроллеров может нести на себе от 18 до 72 флэшей с емкостью 400 и 1920 ГБ.

Наращивание осуществляется следующими шагами: 18=>24=>30=>36=>54=>60=>66=>72. Как видите, после 36 следующий шаг +18 флэшей. Связано это с тем, что модули организуются в две группы (DPG — Data Protection Group), максимальная емкость каждой из которых — 36  флэшей.

8 DPG

Сделано это для надежности, поскольку для 72 флэшей двойной четности откровенно говоря, маловато, да и управлять такой «махиной» сложно. Помните, что страйпы для записи собираются в кэше, да и ребилд требует работы со всей группой разом.  К тому же, выигрыш в эффективной емкости при переходе с 36-модульной к 72-модульной группе будет минимальным.

Итак, первая группа начинается с 18 модулей, и наращивается до 36. Когда она заполняется — начинает заполняться следующая, и нужно снова начинать с 18.

В каждой группе — две емкости флэша отводятся под четность и одна — под горячий резерв. Имеем коэффициент полезной емкости 33/36=91,6%. Если бы было 72 флэша на DPG коэффициент был бы 95,8%.  Действительно, незначительная разница, а надежность была бы существенно ниже.

Таким образом, каждая DPG может потерять 2 флэша одновременно без потери данных.  Для восстановления используется резервная емкость этой DPG. Как вы помните — это емкость одного флэша. Но восстановить защиту при двойном отказе XDP все равно может — он использует для этого свободное место, которое не занято пользовательскими данными. Как правило, место всегда есть, поскольку подобные массивы крайне редко эксплуатируются при утилизации емкости выше 80%. Каждые 10% свободного места — это 3 свободных флэша как минимум. Т.е. восстановление при двойном отказе проходит штатно, но полезная емкость сокращается. Это может продолжаться и дальше.

К тому же, у нас же две DPG . Почему их емкость не использовать для восстановления друг друга? Это и сделано в X2. Цитата:

«When no free space is available for a consequent rebuild on a particular DPG, the system may consume free space from the second DPG of the same DAE, assuming it has free space». 

Т.е. хоть DPG и разделены как fault domains, но они эффективно используют свободное место друг друга для восстановления уровня защиты данных.

Как долго могут продолжаться  отказы флэшей? На это тоже есть ответ — до тех пор, пока есть свободное пользовательское место в группах. А дальше  массив все равно не потеряет данные. Если некуда дальше делать ребилд —  лучше уж выключиться.

Цитирую снова:

«If no free space is available for rebuild on both DPGs of same DAE, the system will shut down automatically to protect
user data.»

Значит ли это, что массив можно спокойно эксплуатировать без замены флэшей пока есть свободное место? Нет, конечно.

Официально поддерживается до 6 последовательных отказов флэшей в DPG из 36 SSD и до 4х в DPG из 30 и менее SSD.

Те, кто помнит XDP в X1, знают, что там тоже поддерживалось до 6 отказов на пару контроллеров, которая содержала 25 SSD.  На первый взгляд, уровень резервирования стал ниже. Но на второй — отказ 6 флэшей в каждой группе — это 12 последовательных отказов на каждую пару контроллеров. Для массива с сервисным онлайн мониторингом 24*7 это невероятное событие. Не буду расписывать что будет происходить у нас в поддержке и у вас на площадке задолго до его наступления.

Резюмирую. Этот пример показывает, что архитектура XtremIO была эффективно усовершенствована для флэшей большого объема и Scale Up масштабирования, что позволило без потери надежности снизить ее стоимость.

Про стоимость и про то, как ее еще снижали в X2 я надеюсь написать в очередной публикации. Следите за новостями.

А на этом пока все.  Всего доброго!

 

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s