Posts tagged ‘snapcreator’

SnapCreator вблизи. Часть 1.

Вот уже несколько лет, как среди программных продуктов NetApp есть такая штука, как SnapCreator. К сожалению, как я обратил внимание, он не только очень плохо известен пользователям, но даже те, кто знает про него, используют его крайне редко. А ведь это штука, которая, благодаря своей гибкости, может решить многие задачи, связанные с защитой данных на системе хранения и в прикладных системах, ее использующих.

SnapCreator первоначально был разработан в 2007 году как “служебный”, внутренний продукт, внутри подразделения Professional Services и Rapid Responce Engineering Group, для того, чтобы облегчить построение систем защиты данных в снэпшоты системы хранения для пользовательских прикладных систем, не входящих в список поддерживаемых “официальным” продуктом NetApp - SnapManager.
То есть, если у вас используется MS SQL Server, MS Exchange, Sharepoint, Oracle, SAP, Hyper-V или vSphere (и у вас есть деньги на лицензию SnapManager), то все относительно просто. Вы устанавливаете SnapManager для соответствующего программного продукта, и дальше он делает все сам.

Зачем нужен SnapManager, и почему нельзя обойтись просто командой snap create из консоли, или переданной через ssh или rsh? Ну, например потому, что некоторые программы требуют некоей согласованной последовательности действий на своей стороне, чтобы состояние данных, записанных на дисках системы хранения, было корректным, или еще говорят “консистентным”. Ведь, например, какие-то данные могут оказаться в буферах кэша сервера, как на стороне программы, так и файловой системы, базы SQL могут иметь незавершенные транзакции, и так далее. Все это требует, чтобы перед тем, как будет сделан “снимок”, снэпшот состояния данных, эти данные на дисках уже находились какое-то время в некоем стабильном, непротиворечивом состоянии, то есть все равно нужен некий “агент” на стороне программного продукта, умеющий с ним взаимодействовать.

Таким образом, если у вас используется какой-нибудь MySQL, Sybase, Xen, KVM или что-то подобное, вам нельзя так просто взять и сделать снэпшот. Нужно написать какую-то систему-посредник, между вашим софтом, и софтом Data ONTAP. Вот для того, чтобы облегчить такую задачу для специалистов Professional Services и был написан SnapCreator.

SnapCreator - это платформа, или, иначе говоря, фреймворк, для написания скриптов и агентов, взаимодействующих с вашей прикладной программной системой, с системой хранения, обеспечивающий автоматизацию взятия корректных, консистентных снэпшотов для данных этой программной системы. Вначале, первые несколько своих версий, это была закрытая внутренняя разработка, начиная с версии 3 она стала ограниченно доступна всем желающим. В настоящий момент для скачивания и использования доступна уже версия 4.1

Официально в настоящее время существуют две линейки, официальная, и так называемая Community Edition. Последняя это, так сказать, unstable, developers edition, где обкатываются все мульки, которые потом деплоятся в официальную поддерживаемую компанией ветку.

Архитектурно SnapCreator является клмент-серверным приложением. Существует так называемый SnapCreator Server, выполняющий код компонента Workflow Engine, который многопоточно обрабатывает поступающие от Агентов и собственного GUI и/или CLI запросы. Так как API открыт, то использовать SnapCreator могут любые внешние системы, например это могут быть коммандлеты PowerShell, другие продукты NetApp, такие как Unified Manager (для него есть свой собственный API), и даже собственные самописанные системы клиентов.

“Другим концом” Snap Creator Server взаимодействует с внутренним API Data ONTAP, обеспечивая все нужные вызовы и отдачу команд.
Конфигурации, jobs, и метаданные плагинов хранятся в специальной структуре - Репозитории (Repository / Extended Repository). Расписания задач, сами задачи (jobs), пользователи и их права доступа (RBAC) хранятся в базе данных (Database).

Наконец, специальный API есть для “клиентов”, агентов SnapCreator.

Посмотрим теперь подробнее на систему SnapCreator со стороны Агента.

Агент - это программный продукт, написанный на Java, чтобы многопоточно выполняться на всех поддерживаемых OS. В ранних версиях в качестве транспорта использовался обычный HTTP, начиная с версии 4.1 взаимодействие Агента и Сервера полностью шифруется в HTTPS.
Основным компонентом, ядром SC Agent является Operation/Execution Manager.
Ядро выполняет запросы от плагинов, которые могут быть как нативными на Джава, так и поддерживаться ранее написанные плагины “не-Java” (значительное их количество для разных программных систем было написано для версий SC 3.6 и 4.0, существовавших ранее), в том числе и на разных скриптовых языках, Perl, PowerShell, даже на UNIX Shell.

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

Snap Creator 3.6.0

Я уже немного рассказывал про любопытный софтовый продукт NetApp - NetApp Snap Creator. Это фреймворк для создания резервных копий данных в снэпшоты, с помощью средств системы хранения.

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

Поэтому часто используются те или иные “агенты” на уровне хоста и приложения. Например, в вышеописанном случае с базой данных, можно перевести базу перед созданием снэпшота в состояние hot backup mode, при котором на диск сбрасываются все изменения и завершаются длящиеся транзакции, а новые приостанавливаются, затем делается снэпшот, и база возвращается в обычное состояние.

Для ряда приложений, таких как, например, MS SQL Server, MS Exchange, MS Sharepoint, Oracle DB, SAP, существует “коробочный продукт” - Snap Manager для соответствующего приложения.

Но что делать, если приложение есть, а Snap Manager для него нет?

Вот тут на помощь может прийти Snap Creator, в котором можно создать соответствующий процесс, с пре- и пост-процессными скриптами, взаимодействующими с приложением, и помогающими создать конситстентный, корректный и непротиворечивый снэпшот данных.

Продукт интересный, и, как мне показалось, на него NetApp многое ставит, так как разных приложений много, и под все SnapManager не напишешь.

Недавно Snap Creator обновился до версии 3.6.0, и в нем появились новые возможности:

  • Появилась поддержка для DOT 8.1 Cluster-mode и 7-mode.
  • Поддерживается VMware vSphere 4.1 и 5.0, VMware vCloud Director 1.5.0 и 1.5.1, Red Hat KVM, Citrix Xen.
  • Расширены имеющиеся возможности плагинов для Domino Server
  • Улучшена поддержка в Protection Manager и взаимодействие со SnapVault
  • Улучшен GUI и CLI

Берут его там же, где обычно, на сайте support.netapp.com

Рекомендую также посмотреть несколько видео-скринкастов, чтобы лучше разобраться что к чему.
Например:
Introduction to the NetApp Snap Creator Framework - Version 3.6
Snap Creator Agent Installation on Linux
Snap Creator Installation on Windows
Introduction to the Snap Creator GUI - Working with Backup Profiles and Configuration Files
Snap Creator GUI and SnapMirror
Snap Creator GUI and SnapVault

Остальные видео можно поискать тут: тег snap_creator в communities.netapp.com

Если у вас стоит задача интегрировать какое-то приложение со снэпшотным механизмом NetApp, и для которого нет уже готового SnapManager, или функциональность того, что делает SnapManager вас не устраивает, то Snap Creator для вас, несомненно, первый выбор.

SnapCreator Framework

SnapCreator Framework это пока не такой широко известный и активно продвигаемый продукт, как, например, продукты семейства SnapManager, но тоже интересный инструмент.

Это, если в двух словах, специальный фреймворк для самостоятельного создания процессов взятия консистентных снэпшотов для любых ваших систем, в том числе и тех, для которых пока нет специализированных SnapManager-ов. Например, в комплекте с SnapCreator поставляются, как образец, плагины для IBM DB2, MySQL и Oracle DB (несмотря на то, что для Oracle и есть отдельный SnapManager for Oracle). SnapCreator это не заменяющий его, но дополняющий продукт.

Продукт выпущен под следующие платформы:

  • Microsoft Windows Server 2008 (32/64bit)
  • Microsoft Windows Server 2003 (32/64bit)
  • Red Hat® Enterprise Linux® (32/64bit)
  • SUSE® Linux Enterprise Server (32/64bit)
  • Solaris® SPARC and x86
  • IBM® AIX®

В состав framework входят необходимые для управления созданием снэпшотов API и средства, сервер, под различные платформы, а сами плагины под конкретные продукты пишутся на Perl.

image

Серверная часть SnapCreator общается, с одной стороны, с хранилищем под Data ONTAP с помошью вызовов API, с другой – с агентами под приложения, которые осуществляют операции необходимых предварительных действий при создании снэпшота данных приложенй, операцию фиксации состояния, например режим hot backup для базы, и прочие подобные действия, обеспечивающие консистентность получаемых снэпшотов. После выполнения необходимых предварительных действий на уровне приложения, сервер вызывает через API необходимую функцию в Data ONTAP и создает снэпшотданных этого приложения.

image

Посмотреть Administration Guide можно тут:
SnapCreator Framework 3.3.0 Installation and Administration Guide

Пользователи обсуждают продукт, задают вопросы и делятся решениями, в том числе и готовыми плагинами в форуме NetApp Communities (eng):
communities.netapp.com - snapcreator

Обратите внимание, SnapCreator это отличный способ создавать и использовать снэпшоты NetApp для, например, баз MySQL, PostgreSQL, MaxDB и некоторых других популярных баз данных, и использующих их решений, для которых нет готового SnapManager, но уже написаны плагины под SnapCreator.

Скачать – в NOW. Продукт бесплатный, но несвободно распространямый, и доступен клиентам NetApp, имеюшим доступ к скачиванию ПО для их систем. Начиная с текущей версии 3.3, SnapCreator Framework не требует специальной лицензии и approving для использования на сайте пользователя.