NetApp FlexClone: Как технология ускоряющая разработку

Здесь хочу я коротко описать традиционную архитектуру ИТ-инфраструктуры для обеспечения отказоустойчивости БД и схему разработки, использующую эту архитектуру. И более подробно остановиться на том, как можно упростить жизнь тестировщикам и разработчикам при помощи технологии FlexClone, которые используют БД или любой другой большой набор данных необходимый для тестирования и разработки.

Традиционный подход заключается в том, что создаётся кластер БД: основная и запасная. Далее, время от времени эта БД (как правило, на Stand-By стороне) копируется для разработчиков. И чем больше такая БД, тем реже она копируется и удаляется и тем сильнее нагружается СХД от таких операций. С другой стороны, разработчики и тестировщики получают устаревшую БД, она как правило месячной или даже полугодичной давности. Когда же приходит время внедрять отлаженный код в продуктив, оказывается, что БД успела сильно измениться: появились новые дополнительные данные, таблицы, поля и возможно удалены старые. Это приводит к тому что отлаженный код для старой БД не работает на новой, что сильно усложняет разработку, тестирование, внедрение и эксплуатацию нового кода.

dc7609679fde462baf9541abec1144fa.png

FlexClone более эффективный способ ведения Test/Dev с большими базами данных


Технология FlexClone позволяет создавать тонкие клоны, на основе снепшотов NetApp, которые не влияют на производительность системы. Клонов можно снимать много и очень часто, прямо посреди рабочего дня. Благодаря этому простому явлению жизнь тестировщиков и разработчиков существенно упрощается, а качество кода увеличивается. Это вписывается в подход, набирающий популярности под названием Copy Data Management (CDM), который призван использовать один набор данных сразу для нескольких задач. Подход удобен благодаря тому, что:
  • На тонкий клон можно зарезать QoS (это не касается Space Reclamation при использовании UNMAP)
  • Он ничего не занимает, со временем он станет занимать только изменения, а так как он больше читается, то изменений будет не много
  • Процесс копирования FullBackup не будет нагружать дисковую подсистему.
  • Моментально снимается, а не занимает долгие часы
  • Тестировщики получают наиболее свежие данные намного чаще и лучше могут отлаживать свой код на актуальных (а не сильно устаревших данных). Что очень важно для ускорения и улучшения качества отладки кода.
  • Это не сложно автоматизируется при помощи ПО для снятия консистентных снепшотов

e8e69706f68d4e16869b09d00fab8303.png

Что для этого нужно?


 — Лицензия FlexClone;
 — Расположить Prod или Stend-By на СХД с прошивкой ONTAP (ONTAP Select/ONTAP Cloud/ на NetApp FAS платформе), чтобы при помощи технологии FlexClone выполнить тонкое клонирование БД;
 — Продукт, позволяющий интегрировать БД c Hardware-Assistant снепшотами NetApp, для достижения консистентности, с которых потом будут создаваться клоны:

ПО для автоматизации и консистентности
Нижеописанные продукты выполняют резервное копирование и каждый из них может создавать консистентные с точки зрения ПО снепшоты.
  • SnapCreator бесплатный, но его нужно будет доработать при помощи скрипта, чтобы мочь замораживать БД и снимать снепшот
  • NetApp SnapCenter платный продукт который полностью автоматизирует процесс клонирования, предоставляет удобный GUI
  • Cammvault Simpana — платный продукт резервного копирования. Всё тоже самое что и SnapCenter, только с наворотами типа каталогизации и архивации на ленту.
  • Другие сторонние продукты (Symantec, Veeam, Syncsort, EMC Networker, HP DataProtector, IBM Tivoli, Acronis и др.), которые умеют интегрироваться с БД и NetApp ONTAP для снятия Hardware-Assistant Snapshot.
  • Если снимать клон со Stand-By, то можно ненадолго останавливать БД (потом снимать снепшот NetApp чтобы добиться консистентности) и снова её запускать, тогда не понадобится ПО для снятия консистентных снепшотов, без написания скрипта для взаимодействия с БД

Операции по снятию консистентных снепшотов (смотри список выше), клонированию и подключению к БД легко можно автоматизировать, предоставляя их как сервис для отдела Test/Dev при помощи web-интерфейса бесплатного Workflow Automation.

CodeEasy FlexClone Toolkit


CodeEasy это набор скриптов и методология для DevOps, которая использует технологии NetApp такие как Snapshot и FlexClone, для сокращения время тестирования и разработки. Скрипты CodeEasy Toolkit используют NetApp Manageabilitys SDK для автоматизации шагов подготовки рабочего пространства для разработчиков и тестировщиков, который позволяет вообще без внесения изменений или с минимальными настройками их использовать.

Системные требования:

  • ONTAP (cDOT) 8.2 or later
  • NetApp Manageability Software Development Kit (NMSDK) 5.3.x or later

Скачать CodeEasy FlexClone Toolkit.

NetApp-PowerShell Commandlets


Для Windows машин доступен NetApp PowerShell Toolkit, который позволит создавать скрипты управления NetApp.

NetApp Docker интеграция


NetApp Docker Volume Plugin (nDVP) предоставляет связь между Docker и системами хранения NetApp (ONTAP, SolidFire и E-Series) для создания и подключения постоянного хранилища внутрь контейнеров. Эта тема заслуживает отдельного внимания и будет описана в одной из следующих статей.

Резервное копирование


FlexClone также очень часто используется в средах резервного копирования для тестирования работоспособности резервных копий. Так множество софта резервного копирования позволяют автоматизировать этот процесс. К примеру, Veeam On-Demand Sandbox интегрируется с ONTAP и благодаря использованию FlexClone, позволяет не затрагивая резервную копию моментально создать клон с виртуальной машины любого размера, запустить клон и выполнить тестирование его работоспособности и восстанавливаемости.

Workflow Automation (WFA)


Workflow Automation — это бесплатная графическая утилита доступная для Windows и Linux, позволяющая создавать наборы или связки задач, для автоматизации процессов управления ONTAP. К примеру, через неё можно настроить клонирование вольюмов или лунов, передачи их в тестовый SVM, создание новых файловых шар или iGroup, добавить в неё клонированные вольюмы и новые хосту-инициаторы с тестовой площадки, поднять новые LIF интерфейсы. А после временного разрыва отношений репликации, для клонирования данных, восстановить их обратно — и всё это практически по одному клику мыши. WFA также предоставляет возможность управления через PowerShell и Perl скрипты, а также через REST API.

Производительность


Важно отметить, что технология FlexClone не только существенно ускоряет разворачивание больших БД или большого количества любых других данных, кардинально уменьшая потребление дискового пространства, но и косвенно ускоряет их работу. Клонирование по сути выполняет функцию подобную дедупликации, т.е. уменьшает объем занимаемого пространства. Дело в том, что СХД NetApp FAS всегда помещает данные в системный кэш, а системный и SSD кэши в свою очередь является Dedup-Aware, т.е. они не затягивают дубликаты блоков, которые уже там есть, таким образом оба кэша логически вмещают намного больше данных, нежели физически они могут. Это сильно улучшает производительность во время эксплуатации СХД и особенно в моменты Boot-Storm благодаря увеличению попадания/чтения данных в/из кэш (а).

Дополнительные сценарии использования


Кроме тестирования/разработки тонкое клонирование может находить другие схемы применения. К примеру, иногда есть смысл разделить доступ к данным на задачи с разными приоритетами. Технология клонирования отлично дополняет функционал репликации SnapMirror, когда DR сайт используется не только как резерв на случай аварии, но и как среду разработки (клонировать Data Protection вольюм).Транзакции VS Отчёты
Примером может быть БД, которая используется как транзакционная, а помесячно или поквартально она же используется ещё и для построения отчетов. Транзакции генерируют как правило мелкие, случайные операции чтения/записи, такие операции весьма успешно могут кэшироваться и должны выполняться с низкой скоростью отклика (обычно не выше 10 мс). С другой стороны, есть отчёты, генерирующие большие последовательные операции чтения, а при сохранении результатов — записи (их обычно намного меньше, к примеру 10%). Отчёты строятся раз в месяц, квартал или год, они могут собираться в течении целых суток и нет принципиальной разницы если бы они собирались не за сутки, а, например, за трое суток.

Так вот если к транзакциям добавить ещё и отчёты, то транзакции могут сильно пострадать при том всём что отчёты если опоздают на час или сутки не важно. Получается весьма несправедливое распределение ресурсов. Вот здесь могут прийти на помощь FlexClone, QoS и политики кэширования:

Можно создать тонкий клон, на него зарезать MB/s, к примеру, в 3 раза меньше по сравнению с тем, как если бы отчёты запускались без ограничений, изменить политики кэширования и получить в три раза меньшее влияние на дисковую подсистему, и в 3 раза большее время построения отчёта (что как правило весьма приемлемо). И все эти процессы на СХД можно автоматизировать при помощи бесплатного ПО NetApp Workflow Automation.

Всё тоже самое может быть применимо в схеме, когда клон снимается с Stand-By в кластере БД: хоть она и не нагружена продуктивными транзакциями напрямую, но всё равно должна поспевать за внесением изменения от основной БД. И чтобы её не тормозить, удобно опять-таки использовать FlexClone и QoS.

Эти задачи достаточно легко автоматизируются при помощи платного или бесплатного ПО.

Выводы


Технология FlexClone позволяет не только более оптимально использовать ресурсы СХД (как в плане производительности, так и в плане пространства), но и существенно ускорить бизнес-процессы компаний, ускоряя и упрощая процесс разработки и отладки нового кода.

Для скачивания ПО от компании NetApp может понадобиться логин и пароль.
Сообщения по ошибкам в тексте прошу направлять в ЛС.
Замечания, дополнения и вопросы по статье напротив, прошу в комментарии.

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

  • 27 февраля 2017 в 16:04

    0

    Спасибо!

© Habrahabr.ru