Flash Pool: некоторые тонкости применения

Долгожданный Flash Pool (AKA Hybrid Aggregate) наконец-то вышел в релиз с появлением версии Data ONTAP 8.1.1. О том, что это такое я уже писал, но для тех, кто все пропустил, и не желает посмотреть в поиске по этому блогу, вкратце: это технология, которая позволяет создать комбинированный aggregate на системе хранения NetApp, в которй добавленные в aggregate диски SSD (на flash memory) используются для кэширования данных, читающихся, а также пишущихся на тома этого aggregate. Эта технология расширяет и дополняет уже имеющуюся несколько лет у NetApp для систем его midrange  и highend линейки, технологию Flash Cache, выполненную в виде карты flashmemory, и устанавливаемую внутри контроллера системы хранения.

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

Для начала я бы хотел привлечь ваше внимание к тому, что, хотя Flash Pool приходит с версией Data ONTAP 8.1.1, не любая система, на которую можно поставить 8.1.1, автоматически будет уметь работать с SSD во Flash Pool. Это связано с тем, что для работы подсистемы Flash Pool необходимо определенное количество RAM на контроллере, которое имеется не у любого контроллера.

На сегодня поддерживают Flash Pool следующие модели:

  • Поддерживают FAS2220, FAS2240-2 и FAS2240-4.
    НЕ поддерживают его FAS2040, несмотря на то, что Data ONTAP 8.1.1 на нее поставить можно.
  • Поддерживают FAS/V3160, FAS/V3170, FAS/V3240 и FAS/V3270
    НЕ поддерживают FAS/V3140 и FAS/V3210, а также более старые, типа 3040/3070.
  • Поддерживают FAS/V6030, FAS/V6040, FAS/V6070, FAS/V6080, FAS/V6210, FAS/V6240 и FAS/V6280 (то есть все без исключений highend)

Flash Pool работает как в 7-mode, так и в Cluster-mode, а также может использоваться с V-series, однако при работе с V-series для построения aggregate c Flash Pool могут использоваться только SSD и HDD от NetApp.

Metrocluster поддерживает использование Flash Pool только для aggregates из SAS или SATA, но НЕ из FC.

Обратите внимание, что NetApp сперва поставлял SSD с партномером X442A (это которые шли в той полностью набитой полке DS4243), а нынешние идут с партномером X441A, во Flash Pool можно использовать только эти последние. Если вы когда-то покупали полку SSD, а теперь хотите из ее SSD составить Flash Pool, то может не выйти, если SSD там используются X442A. NB: Да, раньше партномер был больше, а сейчас – меньше.

Сделать Flash Pool aggregate можно только из 64-bit aggregate! Обратите внимание, что если вы планируете использовать механизм автоконверсии типа aggregate, доступный с версии 8.1, то пока ваш aggregate не увеличен выше предельного для 32-bit aggregate размера (после чего и активируется “конверсия”), он остается старым, 32-битным, и добавить в него SSD для Flash Pool нельзя!

Несмотря на то, что в качестве нижележащих под Flash Pool aggregate поддерживаются как RAID-DP, так и RAID-4, вы должны использовать только какой-то один из этих типов для всех групп. Нельзя в aggregate из HDD в RAID-DP добавить SSD в RAID-4. Тут же, в качестве примечания, хочу отметить, что менять тип RAID в aggregate (из RAID-4 в RAID-DP и обратно) можно “на ходу” и без потери данных и прерывания доступа к ним (почему-то не все это помнят), но помните также, что максимальное число дисков в RAID-4 значительно меньше, чем в RAID-DP, и, скорее всего, вам не удастся преобразовать 22-дисковую группу RAID-DP в 21-дисковую RAID-4.

Хорошая новость: На FAS22xx для SSD в RAID-DP можно не оставлять hotspare (но для RAID-4 он нужен). То есть минимальное число дисков в Flash Pool равно 3 для FAS22xx (1data+2parity+0spare для RAID-DP, или же 1data+1parity+1spare для RAID-4).

Для midrange spare для SSD нужны по прежнему: то есть 6/5 SSD минимум для midrange FAS (3 data: 3+2+1 RAID-DP, или 3+1+1 для RAID-4), 12/11 SSD минимум для highend (9 data: 9+2+1 RAID-DP или 9+1+1 RAID-4). “Минимум” оначает минимум, то есть меньше чем 5 (или 6 при RAID-DP) SSD в midrange поставить нельзя.

Отдельно отмечу, что при использовании дисков SATA пользоваться RAID-4 крайне не рекомендуется, по причине гораздо меньшей надежности такого типа RAID.

Также отметьте, что состояние degraded (например отказ одного SSD в RAID-DP) приведет к отключению кэширования, а отказ (fail) в RAID-группе SSD приведет к недоступности данных всего Flash Pool aggregate, в который она включена!

Это мы поговорили о минимальном количестве, а теперь о максимальном. ?? тут у нас есть весьма существенная засада, в особенности для FAS22xx.

Максимальное число используемых во Flash Pool дисков SSD равно 300GB как для одного контроллера, так и для пары!

Это довольно существенная засада, особенно в свете того, что существует сравнительно недорогой бандл, состоящий из FAS2220 и 12 дисков SSD в нем. Напрашивающееся решение – купить с ней дисковую полку SATA на 24 диска, и запузырить все эти SSD в два Flash Pool aggregate, по одному на контроллер, по 6 штук SSD в каждый. Не выйдет. 
Максимум можно использовать во Flash Pool на 22xx только 300GB SSD, или же  5 (пять) дисков, даже в двухконтроллерной системе, то есть 3 (три) data + 2 parity, и эту группу поместить в один aggregate, на одном контроллере, и этим лимит на систему, к сожалению исчерпывается. Остальные 7 дисков можно, например, использовать, как отдельный 7-дисковый SSD aggregate для хранения данных, но НЕ как Flash Pool. Также нельзя сделать два aggregate, по 5 SSD в каждом, потому что лимит в 300GB, он действует и на систему целиком. Можно сделать 2data + 2parity на один контроллер, и 1data + 2parity на второй, лимит в 300GB data-дисков превышен не будет, и, пусть несимметрично, но aggregates обоих контроллеров будут при Flash Pool.
Пожалуйста вникните в написанное выше и обратите на это особое внимание при планировании использования Flash Pool на FAS2220 и FAS2240.

Есть у нас сюрприз и для остальных.

Для мидрендж-систем (FAS3160, 3170, 3240, 3270) лимиты таковы:

  • 0,5TB на контроллер 3160 или 3240, и 1TB на HA-пару контроллеров 3160 или 3240.
  • 1TB на контроллер 3170 или 3270, и 2TB на HA-пару контроллеров 3170 или 3270.

Для highend-систем (FAS60xx и FAS62хх):

  • 1TB на контроллер 6030 или 6040, и 2TB на HA-пару контроллеров 6030 или 6040.
  • 2TB на контроллер 6070 или 6080 или 6210, и 4TB на HA-пару контроллеров 6070 или 6080 или 6210.
  • 6TB на контроллер 6240 или 6280, и 12TB на HA-пару контроллеров 6240 или 6280.

?? при этом для highend есть еще одна засада. В принципе можно использовать Flash Pool (SSD в aggregate) вместе с Flash Cache (платой PCIe в контроллере) на одном контроллере и одной системе, одновременно. Это возможно как в midrange, так и в highend. Но указанные лимиты для midrange, они действуют в том числе и на сумму емкости flash, в целом, то есть сумма емкости Flash Cache и Flash Pool SSD не должна превышать указанного выше. А вот для highend, в настоящий момент, использование совместно Flash Cache и Flash Pool в одной системе уменьшает лимиты сверху, имеющиеся для Flash Cache, на уровень лимита для Flash Pool. Например для Flash Cache-только вы можете поставить до 16TB на 6280, но для Flash Cache и Flash Pool совместно максимальная суммарная емкость Flash может быть только 12TB. Обратная ситуация для 6210 и 6240. Там бОльшие лимиты для Flash Pool, а при наличии в системе Flash Cache, имеющего на этих системах меньшие лимиты (1,5TB/3TB и 3TB/6TB соответственно), общий лимит ограничится по наименьшему из них. То есть система 6210 с Flash Pool-только, сможет работать с бОльшим объемом flash, чем с комбинированным вариантом.

Таким образом, если у вас уже есть highend из 60хх/62xx, хорошо набитый Flash Cache, то не торопитесь с SSD, и не расчитывайте, что добавлением Flash Pool вы еще емкость flash в системе увеличите. Можете и уменьшить даже.

Обратите внимание, что хотя вы вольны создавать более одного Flash Pool aggregate на контроллере, и в эти aggregates помещать произвольное число SSD, более минимума, и не превышая максимума для контроллера по суммарной емкости data-дисков, в случае двухконтроллерной FAS3240 с Flash Cache вы должны использовать симметричную, идентичную между контроллерами конфигурацию. Для других систем такого ограничения нет. Впрочем, по причине малого объема RAM сам NetApp вовсе не рекомендует делать на 3240 и 3160 конфигурацию с Flash Cache и Flash Pool одновременно.

Есть определенная надежда, что ситуация с лимитами будет со временем поправлена в следующих релизах. Я также надеюсь, что грядущие в новом году системы будут спроектированы уже с учетом повышенных требований к памяти, предъявляемых подсистемой Flash Something, и лимиты для них будут существенно раздвинуты.

Несколько слов о подсчете емкости. Прежде всего я хотел бы напомнить, что маркетинговая емкость не совпадает с практической емкостью для любого из дисков, по этой причине “100GB” на SSD не являются ровно “ста гигабайтами”. В настоящий момент right-sized usable емкость для X441A равна 94146MB, а для старых X442A – 84574MB. Это также означает, что, несмотря на то, что и тот и другой тип дисков называется “100GB SSD” нельзя их объединять в один RAID. Впрочем, X442A уже довольно давно не поставляются.

Диски SSD, поставляемые NetApp, являются SLC (есть люди, для которых это, по какой-то причине, крайне важно;).

Немного о комбинации дисков в одной полке. В настоящий момент NetApp не предлагает SSD в формате 2,5”, поэтому SSD всегда ставятся в полку DS4246 (а также в “голову” FAS2220), возможна их установка в полку DS4243, но это требует формального разрешения от поддержки NetApp (так называемый PVR).

Так как SSD конструктивно используют интерфейс SATA, их можно ставить в одну полку только вместе с SATA, но НЕ с SAS. Даже если вы используете Flash Pool, состоящий из HDD SAS и SSD, вам придется разнести их по разным полкам. А вот SATA вы можете поместить в ту же полку, что и SSD. Кроме этого, в настоящий момент не поддерживается SSD+HDD mix в FAS2220. То есть вы не можете купить 12-дисковый бандл FAS2220, вынуть из него 7 дисков, которые все равно не получится использовать во Flash Pool (см выше про лимиты почему так), а на свободное место в голову напихать SATA. Но можно подключить внешнюю полку SATA и сделать Flash Pool обычным образом (также помните про 300GB лимита на объем дисков данных на систему в целом).

Надеюсь, что вы помните, что вы можете сделать Flash Pool aggregate из только двух типов дисков. То есть ??Л?? SATA + SSD, ??Л?? SAS + SSD. Но не из всех трех типов разом. Только или-или. За одним исключением: не рекомендуется, но не запрещается комбинировать FC и SAS в один aggregate. Но не разрешается соединять в Flash Pool диски с разным RPM. Например 10K FC, и 15K SAS, хотя такой aggregate в виде не-Flash Pool вполне может существовать (хотя также не рекомендуется). Да, кстати, SSD+SSD нельзя тоже :) Ну вдруг кому такое придет в голову :)

Теоретически (через запрос PVR) вы можете размещать и root volume на aggregate с Flash Pool. Это может быть очень востребовано в случае младших систем, зачастую, для экономии, размещающих root volume на одном общем с данными aggregate, который, часто, единственный у контроллера. Но без официального PVR такая конфигурация не поддерживается. Также помните, что такая конфигурация поддерживается только в 8.1.1, и вы, в случае такой схемы, не сможете даунгрейдиться на предыдущую версию (SSD из aggregate, после их добавления, нельзя удалить без уничтожения всего aggregate).

Помните, что хотя добавленные SSD и не увеличивают общую емкость aggregate, к которому они добавлены, и, значит, вы можете превращать в Flash Pool даже aggregate максимальной для данной системы емкости (при добавлении SSD в него его лимит по емкости не будет превышен), SSD учитываются в лимите на число шпинделей и суммарной дисковой емкости на систему. Если вы планируете систему на пределе ее возможностей по поддерживаемой контроллером емкости и по числу дисковых шпинделей, держите эту особенность в памяти.

В общем, если после всех “помните” этого поста, у вас голова не взорвалась, вы можете считать себя готовым к пресейл-работе с новыми продуктами NetApp :)

Комментарии (13)

  1. Александр:

    … Вот и я думаю может в NetApp податься и нести людям свет и добро :)

  2. ivs:

    Отлично было бы в виде таблицы модели и ограничения для них с этими flash сделать.
    Так, конечно, запомнить нереально.

  3. bbk:

    >Хорошая новость: На FAS22xx для SSD в RAID-DP можно не оставлять hotspare (но для RAID-4 он нужен)
    а что на счёт hotspare для midrange RAID-DP, hotspare обязателен?

  4. bbk:

    Все написано, как вы вообще меня читаете?
    Ровно следующий абзац начинается со слов: “Для midrange spare для SSD нужны по-прежнему:

  5. bbk:

    Я имею ввиду, система даже не даст создать Flash Pool если нет одного Spare диска, или даст но будет ругаться, что его нет?

  6. bbk:

    Вариант работы без spare на midrange не поддерживается.

  7. bbk:

    ??звесно ведь, что можно в экстренном случае когда есть агрегат из SAS дисков, а под рукой для замены только SATA (боьшего объёма), то можно его подсунуть ситеме (понятное дело с непредсказуемой производительностью и т.д.). Типа чтобы протянуть до приезда “правильного диска”.

    А вот интересно, можно сделать тоже самое с FlashPool’ом и заменить SSD на SAS (к примеру), в последствии заменить все SSD и получить как результат FlashPool из SATA и SAS?

    Что-то у меня фантазия разыгралась %)

  8. Алексей:

    спасибо

  9. bbk:

    В версии DataOntap 8.2 рейд группа в FlashPool агрегате для SSD не обязана быть такого же типа, как и группа из HDD :)

  10. bbk:

    Fas2240 Tech FAQ> In Data ONTAP 8.1.2 the maximum Flash Pool cache size increases to 400GB.

  11. Art:

    А где моно посмотреть сколько iops при каком % заполнения выдают гибридные ssd+sas и ssd+sata системы ???

  12. Art:

    SSD долго живут при использовании для кэша ? :)

  13. Art:
    SSD вообще очень неплохо “живут”. По крайней мере те, что используются в энтерпрайз-системах.

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