Потребительский смысл понятия облака — неважно, частного или публичного — состоит в том, чтобы дать возможность конечным потребителям пользоваться функциями информационной поддержки в форме услуг.
Что значит в форме услуг? Это означает разделение ИТ-ресурсов, а также прикладных функций ИТ-систем таким образом, чтобы потребитель легко мог сформировать необходимый и достаточный их набор для решения своей прикладной задачи с требуемой ему производительностью (масштабируемостью). При этом потребителю услуги должен быть предоставлен максимально возможный набор вспомогательных инструментов для самостоятельного администрирования процесса инициации услуги, управления ею в ходе потребления, а также для завершения использования, включая коммерческий расчет. Назовем это ИТ-услугой в широком смысле, или истинной ИТ-услугой.
Понятие «ИТ как услуга» (или «ИТ как сервис», что эквивалентно по смыслу) существует уже много лет и даже десятилетий. Оно, скажем, очень активно эксплуатируется при внедрении различных процессов ITSM. Однако здесь мы в лучшем случае говорим лишь о зрелом клиенториентированном подходе, имея в виду внутреннего потребителя ИТ-сервисов в бизнес-среде. В сфере технологий формирования ИТ-услуг сам ITSM в общем не предлагает ничего, и, следовательно, мы по сути лишь оптимизируем внутренний маркетинг этих услуг или совершенствуем методику их продажи бизнесу исходя из имеющегося оборудования и арсенала прикладных систем.
Впоследствии же, по мере развития технологий, мы должны прийти к тому, что из облака можно будет получить абсолютно любые ИТ-услуги в полном смысле этого термина, включая сервисы по предоставлению ресурсов виртуальных машин, емкости для хранения данных и заканчивая приложениями.
Чтобы говорить об инфраструктурных облачных решениях (в данной статье ограничимся только ими), способных реализовать концепцию ИТ-услуги в широком смысле, прежде всего необходимо инфраструктурные решения научиться объединять. Только на базе объединенного ресурсного пула можно говорить о выделении ИТ-мощностей пользователям согласно их запросам, что является неотъемлемой характеристикой истинных ИТ-сервисов. Однако при объединении ресурсов возникают серьезные проблемы. Среди них можно выделить следующие.
- При объединении ресурсов очень трудно бывает получить арифметическую сумму их характеристик. Объединение не дается без потерь. Над решением этой проблемы работают и еще будут работать.
- Объединению всегда подлежат самые разные ресурсы (прежде всего вычислительные, ресурсы хранения и коммуникации). Получить на выходе некий объединенный комплекс обработки данных, в котором нагрузка на ресурсы отдельных типов всегда сбалансирована, тоже является очень трудной задачей, которая также до сих пор до конца не решена.
- Динамическое изменение конфигурации в использовании виртуализируемых физических ресурсов, что является весьма распространенной на практике задачей, должно производиться легко, без заметной потери производительности прикладных решений и уж тем более без остановки системы.
Именно тему объединения ресурсов и способы решения только что названных сопутствующих проблем мы и постараемся затронуть в данной статье. Инструментами в нашем случае будут служить два продукта — Windows Server 2012 и Hyper-V компании Microsoft.
Ресурсный уровень
Роль наших продуктов Windows Server 2012 и Hyper-V состоит в том, чтобы создавать эти самые ресурсные пулы. При их создании выделяется несколько уровней. На базовом формируются абстракции трех основных типов ресурсов:
- вычислительные мощности,
- ресурсы хранения,
- сетевые ресурсы.
Формирование таких абстракций — это по сути основная характеристика новой «облачной» виртуализации. На заре появления средств виртуализации компьютер стремились разделять на несколько изолированных виртуальных машин, прежде всего чтобы максимально эффективно загрузить каждую физическую машину в отдельности. Сейчас целеполагание меняется в корне: становится необходимо объединять виртуализируемые серверы в отказоустойчивые кластеры, которые и являются базовой единицей ресурсного пула.
В рамках такого ресурсного пула могут существовать виртуальные машины, которые гипервизор, в нашем случае Hyper-V, может перемещать между физическими серверами кластера без остановки систем. И над функциями гипервизора пришлось изрядно потрудиться для того, чтобы достичь требуемых характеристик его работы в условиях больших и сверхбольших систем. Теперь виртуальной машине можно выделить до 64 процессоров, до 1 Тбайт оперативной памяти и до 64 Тбайт места на диске. Помимо этого в кластер стало возможным объединить до 64 физических серверов и до 8000 виртуальных машин. Очень большим достижением явилось то, что сейчас же мы добились практически линейного роста производительности при увеличении количества объединяемых в ресурсный пул процессоров.
За пределами кластера
Если мы посмотрим на современные ЦОДы, то значительная их часть не ограничивается 64 серверами. Некоторые объединяют и 500, и 1000 систем, а то и больше. Следовательно, нужны технологии, которые могли бы консолидировать кластеры в масштабные сети с единой системой управления. И опять же для решения этой задачи можно использовать гипервизор с некими поддерживающими технологиями.
Это, например, та же возможность перемещения нагрузок между серверами без общего хранилища. При использовании единого хранилища задача перемещения нагрузки между узлами одного кластера сводится к переносу содержимого оперативной памяти. Теперь же возможно перемещение без остановки сервисов и самой виртуальной машины между кластерами, которые не связаны ничем, кроме сети. Так что на уровне вычислительных ресурсов Windows Server 2012 позволяет работать с нагрузками практически любого объема.
Объединяем ресурсы хранения
Технологии работы с данным типом ресурсов в основном направлены на решение вышеуказанной проблемы балансировки производительности отдельных типов ресурсов и нагрузки на них при решении типичных вычислительных задач. Здесь существует целый ряд подходов.
В последнее время стала актуальной проблема, которую принято называть труднопереводимым на русский язык выражением I/O Blender. Суть его состоит в снижении производительности, иногда существенном, вследствие того, что подсистема ввода-вывода перестает справляться с возросшей нагрузкой. Такое возрастание связано с ростом обращений к данным с разных виртуальных систем, которых заметно больше, чем физических.
Для того чтобы не допустить подобных проблем, необходимо правильное планирование ИТ-инфраструктуры. Есть спецификации, в том числе и у нас, в Microsoft, которые позволяют рассчитать нагрузку на подсистему хранения и правильно построить каналы связи между серверными ресурсами и СХД. Мы рекомендуем как минимум дублировать такие каналы и тщательно просчитывать нагрузку на них, особенно при наименее благоприятных сценариях.
Еще одна возможность — использовать технологии обеспечения качества сервиса ввода-вывода при определенных нагрузках. Если есть какие-то критичные нагрузки, для них необходимо выставить соответствующие ограничения, чтобы пропускная способность канала для трафика определенной виртуальной машины не опускалась ниже определенного уровня. В крупных ЦОДах используются сложные и дорогие сети хранения данных, которые поддерживают развитые технологии планирования доступа, мультиплексирования и т. д. Microsoft выступает в качестве агрегатора этих возможностей, позволяя подключать ресурсы тех или иных систем хранения к гипервизорам виртуализации с тем, чтобы максимально эффективно задействовать ресурсы современных СХД. Это, например, применение технологии ODX по работе с данными, которая позволяет выполнять копирование данных большого объема внутри хранилища, не задействуя сеть, что может ускорить процесс буквально в тысячи раз. Такой способ очень полезен при развертывании систем, когда часто требуется многократно клонировать однотипные образы виртуальных машин. Hyper-V в Windows Server 2012 также вводит понятие миграции хранилища на лету (live storage migration), что позволяет перемещать виртуальные жесткие диски без остановки самих виртуальных машин.
Значительно повышает удобство работы с СХД наш продукт System Center Virtual Machine Manager. С его помощью можно управлять хранилищами по протоколу SMI-S, делить массивы на логические единицы (LUN), а также распределять ресурсы хранения между хост-системами. Можно также назначать разные рейтинги различным ресурсам хранения.
Когда речь идет о создании недорогих частных облаков или каких-то динамических инфраструктур, то там используются более простые системы хранения вплоть до практически бытовых устройств. И с ними Windows Server 2012 также может работать по протоколу SMB, стандартному для файловых хранилищ. Причем его использование серьезным образом оптимизировано.
Использование сетевых ресурсов
Тут также произошло много небезынтересных изменений на разных уровнях. К примеру, для того, чтобы объединить несколько интерфейсов в один канал, теперь нет необходимости использовать фирменное ПО от производителей. Это можно делать встроенными средствами, причем с предельной простотой.
Значительные изменения внесены в виртуальный расширяемый коммутатор Hyper-V Extensible Switch.
Это расширяемое решение, функциональность которого можно наращивать с помощью модулей расширения, таких как средства фильтрации и очистки (например, от вредоносного ПО) или интеллектуальное перенаправление трафика. Уже есть по меньшей мере три одобренных нами расширения, и со временем это число будет только увеличиваться. Среди них можно назвать, скажем, популярный на рынке Cisco 1000V Nexus Switch, который уже использован в нескольких проектах. Это очень интересное решение по централизованному управлению с помощью инструментов и возможностей, предоставляемых интерфейсами Cisco.
На первый план выходят вопросы виртуализации и самой сети: создания изолированных участков для обеспечения того, что называют Multitenancy, или многоарендности. В Windows Server 2012 появилась поддержка данной архитектуры применительно к виртуальным частным сетям. Это полноценное решение, позволяющее увеличивать количество таких сетей как внутри виртуальных машин, так и между хост-системами. Причем за пределами того, что предоставляют традиционные VLAN.
Когда нужно получить более высокий уровень абстракции в рамках всего ЦОДа, мы предлагаем использовать System Center. С помощью этих продуктов можно создавать и настраивать VLAN между разными хост-системами и кластерами. Среди параметров, которые при этом можно задавать, имеется и QoS, о чем уже было сказано выше. Это позволит избежать и уже упомянутой проблемы I/O Blender.
Цена входного билета
Теоретически для создания частного облака достаточно двух физических серверов. У нас есть такие в тестовых зонах, и они реально работают. Вопрос лишь в том, какую пользу может такое облако принести. На практике же достичь чего-то можно только при использовании не менее четырёх серверов. По сути понятие облако может интерпретироваться на двух концептуальных уровнях: инфраструктурном и процессно-организационном. Все, что связано с инфраструктурой, включая виртуализацию, управление ресурсами, средства поддержания отказоустойчивости, вполне работоспособно и на двух серверах. Другое дело расширенные сценарии, реализующие такие вещи, как управление услугами, заказами на самообслуживание, учет потребления ресурсов и прочее. Разумная их эксплуатация предполагает наличие внутренних заказчиков и внутренних поставщиков, иначе все это не имеет смысла. Так что, как мне кажется, речь должна идти не менее чем о шестнадцати физических системах.
К тому же при таких масштабах затраты заказчика минимальны, а то и вовсе отсутствуют. Тот же гипервизор Hyper-V бесплатен, а его возможностей многим будет более чем достаточно. Средства управления — да, стоят денег, но относительно небольших по сравнению с другими решениями аналогичного назначения. Условия лицензирования самой операционной системы в виртуализационных средах у нас одни и те же и не зависят от используемого гипервизора. И часто наиболее целесообразно использовать Core Infrastructure Suite Datacenter, где отсутствуют какие бы то ни было ограничения на развертывание в виртуальных средах.