3 заметки с тегом

tutorial

Сайзинг Flash Pool

Попробуем разобраться как подобрать нужное количество SSD-кэша для систем NetApp. Эти советы подойдут тем, у кого уже используется NetApp или есть возможность взять систему в тест. Даже демо-система без SSD дисков, позволит понять насколько эффективно будет работать кэш с вашими данными.

К сожалению, универсального ответа на вопрос «Как понять процент “горячих” данных?» без тестирования на реальном оборудовании у меня нет. Если кто-то поделится таким рецептом для каких-либо приложений, буду рад.

Как понять насколько эффективно работает Flash Pool в текущей конфигурации? Какая ёмкость SSD-кэша в Flash Pool будет оптимальной, если вы только собираетесь добавлять кэш к обычному агрегату?

Поговорим про AWA — Automated Workload Analyzer. Инструмент, который помогает получить ответы на эти вопросы.

Некоторую статистику по работе FlashPool можно увидеть в OnCommand System Manager. Но она не особо информативна и, например, не позволяет понять какие тома больше используют кэш, а каким он в принципе не нужен.

Куда больше информации можно получить, запустив AWA. Это часть ONTAP. Появилась эта функциональность в Data ONTAP 8.2.1 и доступна для 7-mode и cluster-mode. AWA собирает и анализирует статистику по определенному агрегату. На основе собранных данных рекомендует оптимальный размер SSD-кэша, показывает предполагаемые показатели cache hit rate для рекомендуемой ёмкости Flash Pool и аналогичные показатели при меньшем размере кэша. С выходом Data ONTAP 8.3.1 можно посмотреть информацию в разрезе томов на агрегате.

AWA — это по сути 3 node-shell команды:

- wafl awa start
- wafl awa print
- wafl awa stop

Вот как это выглядит на практике (вывод можно копировать):

Последовательность действий следующая. Сначала мы запускам AWA для агрегата. Ждём 24 часа, а ещё лучше несколько дней. Останавливаем работу AWA. Желательно, чтобы в период работы AWA на СХД была типичная нагрузка. В процессе можно смотреть результаты работы, используя wafl awa print. Можно запускать анализ сразу нескольких агрегатов одновременно. Максимально работа AWA “отъест” 2% CPU, независимо от количества анализируемых агрегатов и не более 0.2% от кэша контроллера на каждый агрегат.

Для просмотра информации по томам используется опция -t. Если добавить после неё число n, то выведется информация по n самым нагруженным томам.

AWA можно запускать на агрегатах, где уже используется Flash Pool.

Само собой, результат работы AWA, показанный выше далёк от того, что можно увидеть в реальной жизни. Я запускал это на симуляторе.

Вот например, как выглядят результаты работы AWA на «боевой» системе после сбора статистики в течение 2 недель. Это FAS8040 у клиента, который предоставляет облачные услуги.

### FP AWA Stats ###

                     Host NA-Store-A                    Memory 28342 MB
            ONTAP Version NetApp Release 8.2.1 Cluster-Mode: Fri Mar 21 14:48:58 PDT 2014
              AWA Version 1
           Layout Version 1
               CM Version 1

Basic Information

                Aggregate aggr_SAS
             Current-time Fri May 13 15:14:56 FET 2016
               Start-time Fri Apr 29 00:21:37 FET 2016
      Total runtime (sec) 1263213
    Interval length (sec) 600
          Total intervals 2111
        In-core Intervals 1024

Summary of the past 1023 intervals
                                   max
          Read Throughput      247.095 MB/s
         Write Throughput      274.819 MB/s
       Cacheable Read (%)       78.298 %
      Cacheable Write (%)       35.510 %
 Max Projected Cache Size     5888.973 GB
   Projected Read Offload       60.000 %
  Projected Write Offload       28.000 %

Summary Cache Hit Rate vs. Cache Size

       Size        20%        40%        60%        80%       100%
   Read Hit     46.000     52.000     55.000     59.000     60.000
  Write Hit     26.000     26.000     26.000     26.000     28.000

The entire results and output of Automated Workload Analyzer (AWA) are
estimates. The format, syntax, CLI, results and output of AWA may
change in future Data ONTAP releases. AWA reports the projected cache
size in capacity. It does not make recommendations regarding the
number of data SSDs required. Please follow the guidelines for
configuring and deploying Flash Pool; that are provided in tools and
collateral documents. These include verifying the platform cache size
maximums and minimum number and maximum number of data SSDs.

### FP AWA Stats End ###

Что мы можем понять из этого вывода?

  • Read throughput and write throughput: Это максимальные показатели throughput из всех 10-минутных интервалов. Учитывается случайная и последовательная нагрузки.
  • Cacheable read and cacheable write: Это показатели из интервала, который имеет максимальные значения cache hit. Причём это может быть интервал отличный от интервала из предыдущего пункта. Flash Pool кэширует все случайные операции чтения на агрегате, то есть Cacheable Read (%) это процент случайного чтения с агрегата. Значение Cacheable Write (%) показывает операции записи, которые могут попасть в Flash Pool при использовании политики по-умолчанию “random-write” (это случайные операции перезаписи). Вообще про работу Flash Pool и доступные политики я сделаю отдельный пост. Когда-нибудь.
  • Max projected cache size: Это то, ради чего и запускается AWA — рекомендуемый размер кэша для агрегата. Чем дольше работал AWA, тем выше это значение может быть.
  • Summary cache hit rate vs. cache size: Это таблица показывает показатели cache hit при использовании меньшего объема кэша, чем указано в Max projected cache size. Иногда на значение Max projected cache size может влиять нетипичная нагрузка в течение некоторых интервалов. И в таблице можно будет увидеть, что меньшее количество кэша может дать такую же выгоду.

Рекомендую не забывать использовать AWA с новыми только настраиваемыми системами с SSD под Flash Pool. NetApp не даёт возможности удалить диски из агрегатов, в том числе используемые для кэша, без разрушения агрегата. Поэтому, чтобы в будущем не было “мучительно больно” из-за неправильного распределения кэша, лучше разбить диски по агрегатам, а добавление кэша отложить. В течение пары недель собрать статистику с помощью AWA, и на основе этой информации оптимально сконфигурировать Flash Pool.

AWA можно использовать и для сайзинга Flash Cache. Для этого надо обращать внимание только на показатели связанные с чтением, так как Flash Cache работает только как кэш на чтение.





2016   AWA   Flash Cache   Flash Pool   SSD   tutorial

Volume rehost

Хотел рассказать про новую функцию volume rehost, которая появилась в ONTAP 9, но за меня это отлично сделал Justin Parisi. Поэтому мне осталось всего лишь перевести его пост.

Но для начала я бы хотел напомнить, что такое Storage Virtual Machine (SVM). Потому что часто сталкиваюсь с тем, что даже у опытных пользователей NetApp отсутствует четкое понимание. Чего уж говорить о новичках.

Итак, SVM, которые раньше назывались Vservers, появились в кластерной версии Data ONTAP. По-простому, это виртуальная СХД. Но не у всех есть понимание какие ресурсы кластера явлются общими, а какие привязаны к SVM.

Все ресурсы кластера грубо можно разделить на физические:

  • controller или node, которые объединяются в HA-пару
  • disks и RAID-group
  • aggregates
  • network ports, как Ethernet, так и FC

И логические:

  • FlexVol (тома)
  • LUN
  • qtree
  • files
  • igroup
  • LIF (logical interface)
  • namespace
  • exports и shares
  • и т. д.

Так вот SVM это виртуальная система хранения, которая объединяет в себе логические ресурсы и реализует доступ к данным по одному или нескольким доступным нам протоколам. Эти логические ресурсы не привязаны жёстко к физическим ресурсам. Можно переносить тома с агрегата на агрегат. Агрегаты при этом могут принадлежать разным контроллерам и HA-парам. LIF могут мигрировать с одного физического порта на другой, и также не привязаны к нодам (исключение с SAN LIF, они не мигрируют). В кластере может существовать больше одной SVM. И они спокойно могут размещать свои логические ресурсы на одних и тех же физических ресурсах. Каждая SVM изолирована от другой. У каждой SVM свой администратор и ими можно управлять независимо.

——

В Clustered Data ONTAP (теперь уже NetApp ONTAP) применяются виртуализированные контейнеры хранения, называемые Storage Virtual Machine (SVM). Они обеспечивают безопасную изоляцию в многопользовательских средах.
Каждая SVM владеет объектами вроде сетевых интерфейсов, FlexVol и выступает в качестве отдельной системы хранения поверх кластера из контроллеров и дисковых полок. В предыдущих версиях ONTAP тома были жёстко привязаны к SVM и перенос их на другую SVM в кластере был не так прост. Необходимо было использовать SnapMirror для репликации тома или скопировать данные другим способом. Процесс занимал время, был неэффективным и клиенты долгое время просили добавить возможность простой миграции томов между SVM.

Эта функциональность в ограниченном варианте была доступна в Data ONTAP 8.3.2 для использования во время миграции с 7-mode при помощи Copy-Free Transition.
Но теперь в ONTAP 9 мы можем перемещать тома между SVM без фактического копирования данных.

Как это работает?

Каждая SVM имеет уникальный идентификатор — UUID. Для того, чтобы узнать его необходимо выполнить следующую команду в advanced режиме:

ontap9-tme-8040::*> vserver show -vserver parisi,SVM1 -fields uuid
vserver uuid
------- ------------------------------------
SVM1 05e7ab78-2d84-11e6-a796-00a098696ec7
parisi 103879e8-2d84-11e6-a796-00a098696ec7
2 entries were displayed.

Когда том находится во владении SVM, то он ассоциируется с UUID SVM. И для него имеется специальный файл-хендлер, связанный с root namespace SVM.

В прошлых версиях ONTAP вы могли пренести том “руками”, если вы знаете секретную последовательность команд и у вас хватит на это смелости. Теперь же команда volume rehost автоматизирует весь этот процесс. Нет необходимости самостоятельно править кластерные базы и проверять, что нигде не напортачили.

К делу!

Теперь посмотрим как эта команда работает на практике. Ниже вывод man из ONTAP 9. Но имейте в виду, что использовалась предварительная версия “девятки” и в релизе вывод мог ненмого поменяться.

ontap9-tme-8040::*> man volume rehost
volume rehost Data ONTAP 9.0 volume rehost

NAME
 volume rehost -- Rehost a volume from one Vserver into another Vserver

AVAILABILITY
 This command is available to cluster administrators at the admin privilege
 level.

DESCRIPTION
 The volume rehost command rehosts a volume from source Vserver onto desti-
 nation Vserver. The volume name must be unique among the other volumes on
 the destination Vserver.


PARAMETERS
 -vserver <vserver name> - Source Vserver name
 This specifies the Vserver on which the volume is located.

-volume <volume name> - Target volume name
 This specifies the volume that is to be rehosted.

-destination-vserver <vserver name> - Destination Vserver name
 This specifies the destination Vserver where the volume must be
 located post rehost operation.

{ [-force-unmap-luns {true|false}] - Unmap LUNs in volume
 This specifies whether the rehost operation should unmap LUNs
 present on volume. The default setting is false (the rehost opera-
 tion shall not unmap LUNs). When set to true, the command will unmap
 all mapped LUNs on the volume.

| [-auto-remap-luns {true|false}] } - Automatic Remap of LUNs
 This specifies whether the rehost operation should perform LUN map-
 ping operation at the destination Vserver for the LUNs mapped on the
 volume at the source Vserver. The default setting is false (the
 rehost operation shall not map LUNs at the destination Vserver).
 When set to true, at the destination Vserver the command will create
 initiators groups along with the initiators (if present) with same
 name as that of source Vserver. Then the LUNs on the volume are
 mapped to initiator groups at the destination Vserver as mapped in
 source Vserver.

Том, который будет “менять” SVM называется “move_me” и принадлежит SVM1.

ontap9-tme-8040::*> volume show -vserver SVM1 -fields msid,dsid,uuid,vserver -volume move_me
vserver volume dsid msid uuid
------- ------- ---- ---------- ------------------------------------
SVM1 move_me 1027 2163225631 cc691049-2d84-11e6-a796-00a098696ec7

Чтобы перенести этот том, просто вводим команду:

ontap9-tme-8040::*> volume rehost -vserver SVM1 -volume move_me -destination-vserver parisi

После запуска команды появляется предупреждение:

Warning: Rehosting a volume from one Vserver to another Vserver does not
 change the security information on that volume.
 If the security domains of the Vservers are not identical, unwanted
 access might be permitted, and desired access might be denied. An
 attempt to rehost a volume will disassociate the volume from all
 volume policies and policy rules. The volume must be reconfigured
 after a successful or unsuccessful rehost operation.

В общем, предупреждают, что, если на другой SVM используются отличные от первой настройки AD или LDAP, то могут быть проблемы с доступом к тому. (Vserever это то же самое, что и SVM).

Через несколько секунд получаем результат:

[Job 42] Job succeeded: Successful

Info: Volume is successfully rehosted on the target Vserver.
Set the desired volume configuration - such as the export policy and QoS policy - on the target Vserver.

Проверяем том. Он не принадлежит старой SVM:

ontap9-tme-8040::*> volume show -vserver SVM1 -fields msid,dsid,uuid,vserver -volume move_me
There are no entries matching your query.

Теперь том в новой SVM:

ontap9-tme-8040::*> volume show -vserver parisi -fields msid,dsid,uuid,vserver -volume move_me
vserver volume dsid msid uuid
------- ------- ---- ---------- ------------------------------------
parisi move_me 1028 2163225632 cc691049-2d84-11e6-a796-00a098696ec7

Другая SVM. Другие MSID/DSID. Тот же UUID для тома (это UUID именно тома, а не SVM, поэтому он не меняется). Для файлового доступа достаточно перемонтировать том, так как поменлся IP-адресс и хендлер.
Для LUNов можно использовать следующие флаги:

{ [-force-unmap-luns {true|false}] - Unmap LUNs in volume
 This specifies whether the rehost operation should unmap LUNs
 present on volume. The default setting is false (the rehost opera-
 tion shall not unmap LUNs). When set to true, the command will unmap
 all mapped LUNs on the volume.

| [-auto-remap-luns {true|false}] } - Automatic Remap of LUNs
 This specifies whether the rehost operation should perform LUN map-
 ping operation at the destination Vserver for the LUNs mapped on the
 volume at the source Vserver. The default setting is false (the
 rehost operation shall not map LUNs at the destination Vserver).
 When set to true, at the destination Vserver the command will create
 initiators groups along with the initiators (if present) with same
 name as that of source Vserver. Then the LUNs on the volume are
 mapped to initiator groups at the destination Vserver as mapped in
 source Vserver.

А что с FlexClones?

Тома могут иметь клоны (FlexClone). FlexClone — это копия тома, доступная на запись и чтение, котрая создана на основе снепшота, и не занимающая места пока в этот клон не начнут вносить изменения.

Что будет, если попытаться перенести том, у кторого есть клон, из одной SVM в другую?
Для начала создаём клон:

ontap9-tme-8040::*> volume clone create -vserver parisi -flexclone clone -type RW -parent-vserver parisi -parent-volume move_me -junction-active true -foreground true
[Job 43] Job succeeded: Successful

А потом узнаём, что rehost для томов с клонами пока не работает:

ontap9-tme-8040::*> vol rehost -vserver parisi -volume move_me -destination-vserver SVM1 -force-unmap-luns false -allow-native-volumes false

Error: command failed: Cannot rehost volume "move_me" on Vserver "parisi"
 because the volume is a parent of a clone volume.


ontap9-tme-8040::*> vol rehost -vserver parisi -volume clone -destination-vserver SVM1 -force-unmap-luns false -allow-native-volumes false

Error: command failed: Cannot rehost volume "clone" on Vserver "parisi"
 because the volume is a clone volume.

Вот и все для начала.

——

2016   9   9.0   FlexVol   ONTAP   SVM   tutorial

Как перевести систему с 7-mode в Cluster-Mode

Для многих актуален вопрос перевода системы с 7-mode в Cluster-Mode. В этом посте я не буду рассматривать варианты миграции. А рассмотрим случаи, когда к вам пришла новая система с 7-mode или у вас есть система, данные на которой для вас не важны или вы их куда-то смигрировали и хотите получить кластер.

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

Ваша система должна иметь версию Data ONTAP 8.1.x и выше. Если вы все еще используете 8.0.x, то сначала надо будет обновиться до более свежей версии.

Нельзя обновить до Data ONTAP 8.3 Clustered систему, которая работает в 7-mode. Для начала надо перейти из 7-mode в Cluster-Mode, а дальше обновляться на 8.3. На 8.3 можно обновляться с Data ONTAP 8.2.1 и выше.

Процесс обновления с одной версии Data ONTAP на другую описывается в документе «Upgrade and Revert/Downgrade Guide», который доступен на сайте NetApp Support. Нужно пользоваться документом для той версии, на которую вы собрались обновляться.

Для работы любой Cluster-Mode системы необходимо иметь Cluster Base Key. Это 28-значный лицензионный ключ. Получить его можно бесплатно при наличии действующей поддержки. Для его получения лучше обратиться к партнеру, у которого вы покупали систему. А партнеры в свою очередь обращаются к дистрибьютору или вендору. Напомню, что начиная с Data ONTAP 8.2 все лицензионные ключи привязываются к серийным номерам контроллеров. Для кластерных систем не нужны дополнительные лицензионные ключи на протоколы и функционал. Эти ключи одинаковые для 7-mode и Cluster-Mode.

Для работы любого кластера состоящего из двух и более нод (а нода это один контроллер, соответственно HA-пара имеет две ноды) необходима 10GbE cluster-interconnect сеть. Для двухнодового кластера можно обойтись без внешних коммутаторов и создать switchless cluster. То есть контроллеры подключаются друг к другу напрямую 10GbE линками. На каждой ноде используется два порта для cluster-interconnect (для старших контроллеров FAS8040/60/80 это не совсем так, но этот текст в основном для тех кто использует FAS22xx/FAS25xx).

После вводной части можно переходить непосредственно к конвертированию системы в Cluster-Mode:

Все действия надо произвести для обоих контроллеров HA-пары и делать это можно одновременно.

Отключаем Cluster Failover для HA-пары:

controller> cf disable

Перегружаем систему в LOADER:

controller> halt -f

После появления командной строки LOADER очищаем имеющиеся bootargs, отключаем автозагрузку ONTAP и говорим, что надо прогружаться в Boot Menu:

LOADER> set-defaults
LOADER> setenv AUTOBOOT false
LOADER> setenv bootarg.init.bootmenu true

Грузимся:

LOADER> boot_ontap

Должны увидеть Boot Menu и в нем надо ввести команду wipeconfig, на все вопросы отвечаем yes:

Если по какой-то причине загрузка не остановилась на Boot Menu и продолжилась дальше, то cистему надо будет опять перегрузить в LOADER, начать загрузку ONTAP и когда появится следующее сообщение нажать Ctrl+C:

******************************* 
*                             * 
* Press Ctrl-C for Boot Menu. * 
*                             * 
*******************************

После выполнения команды wipeconfig система должна будет один раз перезагрузиться. Так как мы отключили автозагрузку, надо будет ввести команду boot_ontap. После успешного wipe вводим в LOADER следующие команды:

LOADER> set-defaults
LOADER> setenv bootarg.init.boot_clustered true
LOADER> boot_ontap

Останавливаем загрузку на Boot Menu:

******************************* 
*                             * 
* Press Ctrl-C for Boot Menu. * 
*                             * 
*******************************

И выбираем пункт 4:

На все вопросы отвечаем yes, система перезагружается, вводим boot_ontap.
Начинается долгий процесс обнуления дисков и после его завершения система будет грузиться в Cluster-Mode:

Логин по умолчанию для Cluster-Mode — admin.

2015   7-mode   Cluster-Mode   Data ONTAP   tutorial