Здесь хочу я коротко описать традиционную архитектуру ИТ-инфраструктуры для обеспечения отказоустойчивости БД и схему разработки, использующую эту архитектуру. И более подробно остановиться на том, как можно упростить жизнь тестировщикам и разработчикам при помощи технологии FlexClone, которые используют БД или любой другой большой набор данных необходимый для тестирования и разработки.
Традиционный подход заключается в том, что создаётся кластер БД: основная и запасная. Далее, время от времени эта БД (как правило, на Stand-By стороне) копируется для разработчиков. И чем больше такая БД, тем реже она копируется и удаляется и тем сильнее нагружается СХД от таких операций. С другой стороны, разработчики и тестировщики получают устаревшую БД, она как правило месячной или даже полугодичной давности. Когда же приходит время внедрять отлаженный код в продуктив, оказывается, что БД успела сильно измениться: появились новые дополнительные данные, таблицы, поля и возможно удалены старые. Это приводит к тому что отлаженный код для старой БД не работает на новой, что сильно усложняет разработку, тестирование, внедрение и эксплуатацию нового кода.
![](https://habrastorage.org/r/w1560/files/dc7/609/679/dc7609679fde462baf9541abec1144fa.png)
Технология FlexClone позволяет создавать тонкие клоны, на основе снепшотов NetApp, которые не влияют на производительность системы. Клонов можно снимать много и очень часто, прямо посреди рабочего дня. Благодаря этому простому явлению жизнь тестировщиков и разработчиков существенно упрощается, а качество кода увеличивается. Это вписывается в подход, набирающий популярности под названием Copy Data Management (CDM), который призван использовать один набор данных сразу для нескольких задач. Подход удобен благодаря тому, что:
![](https://habrastorage.org/r/w1560/files/e8e/697/06f/e8e69706f68d4e16869b09d00fab8303.png)
— Лицензия FlexClone;
— Расположить Prod или Stend-By на СХД с прошивкой ONTAP (ONTAP Select/ONTAP Cloud/ на NetApp FAS платформе), чтобы при помощи технологии FlexClone выполнить тонкое клонирование БД;
— Продукт, позволяющий интегрировать БД c Hardware-Assistant снепшотами NetApp, для достижения консистентности, с которых потом будут создаваться клоны:
Нижеописанные продукты выполняют резервное копирование и каждый из них может создавать консистентные с точки зрения ПО снепшоты.
Операции по снятию консистентных снепшотов (смотри список выше), клонированию и подключению к БД легко можно автоматизировать, предоставляя их как сервис для отдела Test/Dev при помощи web-интерфейса бесплатного Workflow Automation.
CodeEasy это набор скриптов и методология для DevOps, которая использует технологии NetApp такие как Snapshot и FlexClone, для сокращения время тестирования и разработки. Скрипты CodeEasy Toolkit используют NetApp Manageabilitys SDK для автоматизации шагов подготовки рабочего пространства для разработчиков и тестировщиков, который позволяет вообще без внесения изменений или с минимальными настройками их использовать.
Системные требования:
Скачать CodeEasy FlexClone Toolkit.
Для Windows машин доступен NetApp PowerShell Toolkit, который позволит создавать скрипты управления NetApp.
NetApp Docker Volume Plugin (nDVP) предоставляет связь между Docker и системами хранения NetApp (ONTAP, SolidFire и E-Series) для создания и подключения постоянного хранилища внутрь контейнеров. Эта тема заслуживает отдельного внимания и будет описана в одной из следующих статей.
FlexClone также очень часто используется в средах резервного копирования для тестирования работоспособности резервных копий. Так множество софта резервного копирования позволяют автоматизировать этот процесс. К примеру, Veeam On-Demand Sandbox интегрируется с ONTAP и благодаря использованию FlexClone, позволяет не затрагивая резервную копию моментально создать клон с виртуальной машины любого размера, запустить клон и выполнить тестирование его работоспособности и восстанавливаемости.
Workflow Automation — это бесплатная графическая утилита доступная для Windows и Linux, позволяющая создавать наборы или связки задач, для автоматизации процессов управления ONTAP. К примеру, через неё можно настроить клонирование вольюмов или лунов, передачи их в тестовый SVM, создание новых файловых шар или iGroup, добавить в неё клонированные вольюмы и новые хосту-инициаторы с тестовой площадки, поднять новые LIF интерфейсы. А после временного разрыва отношений репликации, для клонирования данных, восстановить их обратно — и всё это практически по одному клику мыши. WFA также предоставляет возможность управления через PowerShell и Perl скрипты, а также через REST API.
Технология NetApp FlexClone также находит применение в среде виртуализации, позволяя быстро разворачивать клоны виртуальных машин, благодаря интеграции с ведущими мировыми производителями гипервизоров. Так можно развернуть тысячи виртуальных машин за минуты, не имея проблем с производительностью (как в случае VMware Virtual Disk Thing Provisioning, VMware COW Snapshots или Linked Clone).
Важно отметить, что технология FlexClone не только существенно ускоряет разворачивание больших БД или большого количества любых других данных, кардинально уменьшая потребление дискового пространства, но и косвенно ускоряет их работу. Клонирование по сути выполняет функцию подобную дедупликации, т.е. уменьшает объем занимаемого пространства. Дело в том, что СХД NetApp FAS всегда помещает данные в системный кэш, а системный и SSD кэши в свою очередь является Dedup-Aware, т.е. они не затягивают дубликаты блоков, которые уже там есть, таким образом оба кэша логически вмещают намного больше данных, нежели физически они могут. Это сильно улучшает производительность во время эксплуатации СХД и особенно в моменты Boot-Storm благодаря увеличению попадания/чтения данных в/из кэш(а).
Кроме тестирования/разработки тонкое клонирование может находить другие схемы применения. К примеру, иногда есть смысл разделить доступ к данным на задачи с разными приоритетами. Технология клонирования отлично дополняет функционал репликации SnapMirror, когда DR сайт используется не только как резерв на случай аварии, но и как среду разработки (клонировать Data Protection вольюм).
Примером может быть БД, которая используется как транзакционная, а помесячно или поквартально она же используется ещё и для построения отчетов. Транзакции генерируют как правило мелкие, случайные операции чтения/записи, такие операции весьма успешно могут кэшироваться и должны выполняться с низкой скоростью отклика (обычно не выше 10мс). С другой стороны, есть отчёты, генерирующие большие последовательные операции чтения, а при сохранении результатов — записи (их обычно намного меньше, к примеру 10%). Отчёты строятся раз в месяц, квартал или год, они могут собираться в течении целых суток и нет принципиальной разницы если бы они собирались не за сутки, а, например, за трое суток.
Так вот если к транзакциям добавить ещё и отчёты, то транзакции могут сильно пострадать при том всём что отчёты если опоздают на час или сутки не важно. Получается весьма несправедливое распределение ресурсов. Вот здесь могут прийти на помощь FlexClone, QoS и политики кэширования:
Можно создать тонкий клон, на него зарезать MB/s, к примеру, в 3 раза меньше по сравнению с тем, как если бы отчёты запускались без ограничений, изменить политики кэширования и получить в три раза меньшее влияние на дисковую подсистему, и в 3 раза большее время построения отчёта (что как правило весьма приемлемо). И все эти процессы на СХД можно автоматизировать при помощи бесплатного ПО NetApp Workflow Automation.
Всё тоже самое может быть применимо в схеме, когда клон снимается с Stand-By в кластере БД: хоть она и не нагружена продуктивными транзакциями напрямую, но всё равно должна поспевать за внесением изменения от основной БД. И чтобы её не тормозить, удобно опять-таки использовать FlexClone и QoS.
Эти задачи достаточно легко автоматизируются при помощи платного или бесплатного ПО.
Технология FlexClone позволяет не только более оптимально использовать ресурсы СХД (как в плане производительности, так и в плане пространства), но и существенно ускорить бизнес-процессы компаний, ускоряя и упрощая процесс разработки и отладки нового кода.
Для скачивания ПО от компании NetApp может понадобиться логин и пароль.
Здесь могут содержаться ссылки на Habra-статьи, которые будут опубликованы позже.
Сообщения по ошибкам в тексте прошу направлять в ЛС.
Замечания, дополнения и вопросы по статье напротив, прошу в комментарии.
Традиционный подход заключается в том, что создаётся кластер БД: основная и запасная. Далее, время от времени эта БД (как правило, на Stand-By стороне) копируется для разработчиков. И чем больше такая БД, тем реже она копируется и удаляется и тем сильнее нагружается СХД от таких операций. С другой стороны, разработчики и тестировщики получают устаревшую БД, она как правило месячной или даже полугодичной давности. Когда же приходит время внедрять отлаженный код в продуктив, оказывается, что БД успела сильно измениться: появились новые дополнительные данные, таблицы, поля и возможно удалены старые. Это приводит к тому что отлаженный код для старой БД не работает на новой, что сильно усложняет разработку, тестирование, внедрение и эксплуатацию нового кода.
![](https://habrastorage.org/files/dc7/609/679/dc7609679fde462baf9541abec1144fa.png)
FlexClone более эффективный способ ведения Test/Dev с большими базами данных
Технология FlexClone позволяет создавать тонкие клоны, на основе снепшотов NetApp, которые не влияют на производительность системы. Клонов можно снимать много и очень часто, прямо посреди рабочего дня. Благодаря этому простому явлению жизнь тестировщиков и разработчиков существенно упрощается, а качество кода увеличивается. Это вписывается в подход, набирающий популярности под названием Copy Data Management (CDM), который призван использовать один набор данных сразу для нескольких задач. Подход удобен благодаря тому, что:
- На тонкий клон можно зарезать QoS (это не касается Space Reclamation при использовании UNMAP)
- Он ничего не занимает, со временем он станет занимать только изменения, а так как он больше читается, то изменений будет не много
- Процесс копирования FullBackup не будет нагружать дисковую подсистему.
- Моментально снимается, а не занимает долгие часы
- Тестировщики получают наиболее свежие данные намного чаще и лучше могут отлаживать свой код на актуальных (а не сильно устаревших данных). Что очень важно для ускорения и улучшения качества отладки кода.
- Это не сложно автоматизируется при помощи ПО для снятия консистентных снепшотов
![](https://habrastorage.org/files/e8e/697/06f/e8e69706f68d4e16869b09d00fab8303.png)
Что для этого нужно?
— Лицензия FlexClone;
— Расположить Prod или Stend-By на СХД с прошивкой ONTAP (ONTAP Select/ONTAP Cloud/ на NetApp FAS платформе), чтобы при помощи технологии FlexClone выполнить тонкое клонирование БД;
— Продукт, позволяющий интегрировать БД c Hardware-Assistant снепшотами NetApp, для достижения консистентности, с которых потом будут создаваться клоны:
ПО для автоматизации и консистентности
Нижеописанные продукты выполняют резервное копирование и каждый из них может создавать консистентные с точки зрения ПО снепшоты.
- SnapCreator бесплатный, но его нужно будет доработать при помощи скрипта, чтобы мочь замораживать БД и снимать снепшот
- NetApp SnapCenter платный продукт который полностью автоматизирует процесс клонирования, предоставляет удобный GUI
- Commvault 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.
Server virtualization and VDI
Технология NetApp FlexClone также находит применение в среде виртуализации, позволяя быстро разворачивать клоны виртуальных машин, благодаря интеграции с ведущими мировыми производителями гипервизоров. Так можно развернуть тысячи виртуальных машин за минуты, не имея проблем с производительностью (как в случае VMware Virtual Disk Thing Provisioning, VMware COW Snapshots или Linked Clone).
Производительность
Важно отметить, что технология 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 может понадобиться логин и пароль.
Здесь могут содержаться ссылки на Habra-статьи, которые будут опубликованы позже.
Сообщения по ошибкам в тексте прошу направлять в ЛС.
Замечания, дополнения и вопросы по статье напротив, прошу в комментарии.