Допустим, вы внедрили виртуализацию серверов, повысив коэффициент использования оборудования, уменьшив затраты на администрирование и оптимизировав энергопотребление. Затем, возможно, перенесли часть рабочей нагрузки в “облако”, сделав следующий шаг в виртуализации. Быть может, вы даже виртуализировали часть инфраструктуры, чтобы облегчить бремя администрирования. Что дальше?
Теперь пришло время баз данных. Их виртуализация позволит повысить гибкость и эффективность ИТ-систем, снизить эксплуатационные затраты и сделать более легким администрирование. Никакого “железа” не требуется. Напротив, вы экономите ресурсы, то есть деньги, которые платите вендорам СУБД и большому штату персонала.
“Чаще всего внедряют виртуализацию серверов, при которой нагрузка может находиться везде — тут нет границ, — говорит Брайан Бабино, старший аналитик-консультант компании Enterprise Strategy Group. — При виртуализации баз данных всё очень похоже. Любой набор строк и столбцов становится текучим. Его можно переправить куда угодно. Такую таблицу можно сжать, внести в нее данные из любого места, разбить на множество частей”.
Такое “отделение” данных от самой СУБД, говорит Бабино, позволяет сделать ряд важных вещей. Во-первых, можно эффективнее использовать уже имеющиеся базы данных, не покупая лицензий больше, чем реально требуется. Во-вторых, можно обеспечить обмен данными между приложениями, использующими разные СУБД.
Но для многих из тех, кто уже внедрил виртуализацию баз данных, главные мотивы были те же, что и при виртуализации серверов: облегчить управление ими, повысить уровень их готовности и увеличить их производительность.
“Главная цель виртуализации баз данных — это позволить стандартной СУБД выполняться на кластере обычных серверов без всякого разделения ресурсов, благодаря чему повысятся масштабируемость и уровень готовности решения при меньших затратах по сравнению со специально созданными кластерами с разделяемым дисковым пространством”, — пояснил Мэттью Аслетт, аналитик компании The 451 Group. Такая СУБД “без разделения”, по Аслетту, базируется на независимых серверах, не имеющих единой точки отказа.
“Основная идея — это высокая доступность, хотя, в отличие от традиционных простых систем кластеризации баз данных, где одна инсталляция БД является активной, а другая пассивной, при виртуализации все серверы баз данных всегда активны”, — сказал он.
Преимущества этого очевидны — вы получаете обновление в реальном времени и рост производительности, так как нагрузка распределяется на несколько серверов вместо одного. Но есть и недостаток: ввиду множества экземпляров БД нужно оплачивать лицензию за каждый, к тому же увеличивается объем администрирования. К счастью, благодаря виртуализации и отделению самой СУБД от данных и конкретного сервера это можно преодолеть.
“Нашей целью было обеспечить легкость доступа и сопровождения множества баз данных, как если бы они были одной СУБД, — говорит Ноэль Юханна, главный аналитик компании Forrester Research. — Одна из самых больших проблем, с какой мы столкнулись за последние 5—10 лет, — это взрывной рост данных. Есть организации, имеющие 15 000 баз данных! Их сопровождение и предоставление стало большой проблемой”.
И виртуализация, считает Юханна, может в этом помочь: “Виртуализация дает общую платформу, повышая доступность, масштабируемость, удобство администрирования и безопасность приложений. Главная сложность в том, чтобы управлять всем этим. Становится трудно соблюдать SLA [соглашения об уровне сервиса] для этих приложений”.
Главный смысл виртуализации, отмечает Юханна, — достичь максимального использования имеющихся ресурсов. “Речь идет о лучшем использовании ресурсов и прозрачном масштабировании — общих политиках, выполнении SLA, а также централизованном администрировании системы и оптимизации смешанной нагрузки”, — сказал он.
Возможность добиться того, чтобы одна и та же СУБД справлялась с переменной нагрузкой, является значительным преимуществом виртуализации.
“Традиционно у вас есть хранилище данных и система обработки транзакций, — пояснил Юханна. — И нужно обеспечить доступ к одним и тем же данным для нескольких разных приложений”. Виртуализация, отметил он, позволяет “отвязать” данные от приложений.
“Вы получаете возможность объединить данные и обеспечить их коллективное использование, — подчеркнул Юханна, говоря о выгодах виртуализации. — Более 30% данных в организациях дублированы, потому что они должны использоваться разными приложениями”. Как результат, трудно обеспечить согласованность данных, а кроме того, это означает, что компании используют множество БД для доступа к копиям данных, которые считаются идентичными оригиналу. Поэтому важно объединить все эти данные в одну, “настоящую” версию. Все пользователи должны работать с одними и теми же данными.
Виртуализация СУБД, говорит Юханна, тесно связана с виртуализацией самих данных и концепцией “объединенных” (federated) данных. “Мы наблюдаем растущую тенденцию к усилению разнородности данных, — сказал он. — Вы сводите эти данные на общем мета-уровне. Forrester называет это “сетевым уровнем” информации. Ниже уровня данных находится уровень виртуализации СУБД”.
Конечно, идея виртуализации баз данных заманчива, но главный вопрос — как это работает в реальном мире. Грег Аста, директор по разработке ПО компании Omnigon Communications, имеет практический опыт. Его фирма разрабатывает виртуализированную среду БД для одного из федеральных органов США. Он не может назвать организацию и уточнить, что это за приложение (оно под грифом секретности), но готов поделиться, почему была выбрана виртуализация.
Omnigon, сказал Аста, использует систему виртуализации БД Gridscale фирмы Xkoto, чтобы обеспечить функциональность, заданную в проекте. “Мы применяем ее для обеспечения высокой готовности, а также для репликации данных между узлами и активными копиями БД, — сказал он. — У клиентов, инвестирующих в многоузловую серверную инфраструктуру, есть большое желание отказаться от “активных” и “пассивных” серверов”.
“В данном случае я могу работать с базой данных на множестве серверов одновременно, — говорит Аста. — Мы используем виртуализацию, чтобы обслуживать репозитории данных. Виртуализация дает нам инфраструктуру высокой готовности. Мы можем развертывать [приложения] без остановки системы, а при нарушениях электроснабжения избежать простоев. Мы работаем с одной, виртуальной, базой данных, а не с N числом баз данных, что облегчает разработку и упрощает архитектуру”.
Главное требование его клиента — это высокий уровень готовности. “Если даже главный ЦОД выключится из сети, можно будет, поскольку база данных виртуализирована, продолжать работать с нею. В идеальном случае возникшей проблемы никто и не заметит”, — сказал он.
На сегодня лишь считанные компании, включая Xkoto и Xeround, предлагают решения по виртуализации баз данных. Аслетт из The 451 Group говорит, что и Continuent также имеет продукты с такой функциональностью. А Бабино из Enterprise Strategy Group ожидает, что все крупные поставщики СУБД предложат такие средства в ближайшем будущем.