Существует несколько различий и сходств между физическими и виртуальными кластерами, и разные типы кластеров обладают разными преимуществами. Физический кластер представляет собой набор серверов (физических машин), подключенных к физической сети, например ЛВС. У виртуальных кластеров разные свойства и области применения. В виртуальных кластерах существуют три критические конструктивные проблемы: динамическая миграция виртуальных машин (ВМ), миграция памяти и файлов, а также динамическое развертывание виртуальных кластеров.
При инициализации традиционной ВМ нужно вручную задавать конфигурационную информацию или указывать источники конфигурации. При наличии в сети большого количества ВМ неэффективная конфигурация всегда вызывает проблемы, например пере- или недогруженность ресурсов. Amazon Elastic Compute Cloud (EC2) — хороший пример веб-службы, которая предоставляет гибкие вычислительные возможности в облаке. EC2 позволяет клиентам создавать ВМ и управлять пользовательскими учетными записями в процессе использования сервиса.
Многие платформы виртуализации поддерживают режим моста, который позволяет доменам выглядеть в сети как отдельные узлы. При использовании этого режима виртуальные машины могут свободно «общаться» друг с другом посредством виртуальной сетевой карты и конфигурировать сеть автоматически.
Физические и виртуальные кластеры
Виртуальные кластеры создаются из виртуальных машин (ВМ), установленных на распределенных серверах одного или нескольких физических кластеров. Виртуальные машины в виртуальном кластере логически связаны виртуальной сетью на основе нескольких физических сетей. Виртуальные кластеры создаются на базе физических машин или ВМ, размещенных на нескольких физических кластерах. У виртуальных кластеров четкие границы.
Динамическая подготовка виртуальных машин для виртуальных кластеров предоставляет такие возможности:
- Узлы виртуальных кластеров могут быть физическими или виртуальными машинами, и, конечно же, на одном физическом узле можно иметь несколько ВМ с разными операционными системами.
- На ВМ работает гостевая ОС (она обычно отличается от ОС узла), которая управляет ресурсами физической машины с ВМ.
- Цель использования виртуальных машин заключается в консолидации разнообразной функциональности на одном сервере, что сильно повышает уровень использовании сервера и гибкость приложений.
- Можно создавать наборы или реплицировать виртуальные машины на многих серверах для расширения распределенного параллелизма и повышения отказоустойчисвости и возможностей восстановления в случае сбоя.
- Размер (число узлов) виртуального кластера может увеличиваться или уменьшаться динамически, подобно тому, как увеличивается оверлейная сеть при увеличении числа узлов одноранговой сети.
- Сбой любого из физических узлов влечет за собой отключение нескольких ВМ, размещенных на сбойных узлах, а сбой ВМ не «уронит» систему-хост.
Нужно тщательно спланировать эффективные стратегии управления виртуальными машинами на массе физических вычислительных узлов (которые еще называются виртуальными кластерами). Это подразумевает развертывание виртуального кластера и мониторинг и управление крупномасштабными серверами, а также планирование ресурсов, консолидацию серверов, отказоустойчивость и т. п. В виртуальной кластерной системе есть большое число виртуальных образов ВМ и жизненно важно определить, как эффективно хранить эти образы.
Для большинства пользователей и приложений можно создать стандартные экземпляры, такие как библиотеки программирования на уровне ОС или пользователя. Можно заранее установить эти пакеты приложений как шаблоны (которые тоже называются виртуальными машинами). С помощью этих шаблонов пользователи могут строить собственные наборы программ. Они могут также копировать новые экземпляры ВМ, используя шаблоны. Можно также создавать пользовательские компоненты, такие как библиотеки программ и приложений, заранее установленных на этих экземплярах.
Можно устанавливать отдельные ВМ на удаленных серверах или реплицировать на несколько серверов, состоящих в том же или другом физическом кластере. Границы виртуального кластера могут меняться по мере динамического добавления, удаления или миграции узлов ВМ.
Быстрое разворачивание и эффективное планирование
Ваша виртуальная кластерная система должна иметь возможность быстрого развертывания. В данном случае развертывание означает способность максимально быстро конструировать и размещать наборы ПО (в том числе операционные системы, библиотеки и приложения) на физических узлах в кластерах. Это также означает способность быстро переключать среду выполнения с виртуального кластера одного пользователя на виртуальный кластер другого пользователя. Если пользователь прекращает работать с системой, соответствующий виртуальный кластер должен быстро выключаться или переходить в спящий режим, чтобы освободить ресурсы для виртуальных машин других пользователей.
В последнее время стал очень популярным принцип «зеленых вычислений». Однако в более ранних методиках предусматривалась экономия затрат на питание компонентов одной отдельно взятой рабочей станции без более широкого анализа. Как следствие, не всегда обеспечивалось снижение потребления энергии кластера в целом. В этом плане у виртуальных кластеров намного больше возможностей.
Применять технологии экономии энергии в рамках всего кластера можно только в средах с однородными рабочими станциями и определенными приложениями. Оперативная миграция ВМ позволяет переносить рабочую нагрузку между узлами. Однако это не обязательно гарантирует произвольную миграцию между виртуальными машинами. Вообще говоря, нельзя игнорировать возможную дополнительную нагрузку, обусловленную миграцией виртуальных машин.
Она может оказывать серьезное отрицательное влияние на уровень использования, пропускную способность и качество сервисов кластера. Поэтому задача заключается в определении, как спроектировать стратегии миграции для реализации зеленых вычислений, не снижая производительность кластера.
Другое преимущество виртуализации заключается в балансировке нагрузки приложений в виртуальном кластере. Балансировку нагрузки можно обеспечить за счет использования индекса нагрузки и частоты входа пользователей. На основе этой модели можно реализовать автоматические механизмы горизонтального и вертикального масштабирования виртуального кластера.
Соответственно вы можете увеличить уровень использования ресурсов и сократить время отклика системы. Назначение виртуальным машинам наиболее подходящих физических узлов должно способствовать повышению производительности. Динамическая корректировка нагрузки между узлами за счет динамической миграции ВМ рекомендуется, когда нарушается баланс нагрузки на разные узлы кластера.
Высокопроизводительное виртуальное хранилище
При пользовательской настройке виртуальной машины шаблон ВМ можно распределить среди нескольких физических хостов в кластере. Кроме того готовые пакеты ПО сокращают время, необходимое на пользовательскую настройку и переключение между виртуальными средами. Важно эффективно управлять дисковым пространством.
Можно применить некоторые приемы архитектурного проектирования для сокращения дублирования блоков в распределенной файловой системе виртуальных кластеров. Используйте значения хеша для сравнения содержимого блоков данных. У пользователей будут собственные профили, хранящие идентификационную информацию о блоках данных в соответствующих ВМ в пользовательском виртуальном кластере. При изменении данных создаются новые блоки данных. Вновь созданные блоки идентифицируются в профилях пользователей.
По сути, развертывание группы виртуальных машин в кластере состоит из четырех шагов:
- Подготовка образа диска.
- Конфигурирование виртуальных машин.
- Выбор целевых узлов.
- Выполнение команды развертывания ВМ на каждом узле.
Во многих системах для упрощения процесса подготовки образа диска используются шаблоны. Шаблон представляет собой образ диска, который содержит предустановленную ОС, при этом он дополнительно может содержать определенные программы.
Пользователи выбирают шаблон, соответствующий их требованиям, и делают архив, получая собственный образ диска. Шаблоны могут быть в формате COW (Copy on Write). Файл нового COW-архива очень маленький, и его просто создавать и переносить. Поэтому вопрос дискового пространства стоит не так остро.
Время развертывания ВМ намного меньше времени копирования файла образа в формате RAW. Каждой ВМ назначается имя, образ диска, сетевые параметры, выделенные процессорные ресурсы и память. Конфигурации всех ВМ надо фиксировать в файле.
Однако этот метод неэффективен для управления большой группой ВМ. Для упрощения процесса на виртуальных машинах с одинаковыми конфигурациями можно применять готовые профили. Система будет конфигурировать эти ВМ в соответствии с выбранным профилем.
В большинстве конфигураций используются одинаковые параметры. Некоторые из них, такие как UUID, имя и IP-адрес ВМ, вычисляются и назначаются автоматически. Обычно пользователей не интересует, на каком узле работает их ВМ.
Нужна стратегия выбора подходящего целевого узла для виртуальных машин. В основу стратегии развертывания нужно положить принцип реализации требований к ВМ и балансировки нагрузки во всей сети с узлами.