logo

100. Виртуализация вычислительных ресурсов. "Облачные" вычисления

Облачные вычисления (Cloud computing) – вид вычислений, в которых динамически масштабируемые и часто виртуализованные ресурсы предоставляются в виде услуги через сеть (чаще всего сеть Интернета). Под услугой (сервисом) подразумевается способ предоставления ценности заказчику, путем способствования получения заказчиком ценности без специфических вложений (напр. капитальных инвестиций) и рисков.

Сервера вычислений/приложений/хранения из собственных серверных переносятся в облачные. При этом оборудование для cloud используется по большому счету тоже, что уже используется в ЦОД: сервера, устройства хранения, сетевые и даже клиентские (возможно) устройства.

С технической точки зрения – сверху есть приложение в виде поиска/форума, оно через API получает доступ к определенным сервисам хранения/обработки данных, которые реализуются на облачной платформе. Платформа полагается на ряд технологий для реализациии виртуализации/пераллельной обработки и прочее (ниже подробнее).

Облачные вычисления имеют три основных компонента: облачная архитектура, облачные устройства и облачные сервисы:

МОДЕЛИ ОБЛАКОВ

ВИДЫ CLOUD УСЛУГ

Различают следующие виды cloud услуг/бизнес моделей:

ЧТО ТАКОЕ ВИРТУАЛИЗАЦИЯ

Виртуализация предоставляет ОС разделяемые hardware ресурсы в виде виртуальных пулов (CPU/ОЗУ/HDD/etc), в результате чего ОС становится не привязана к конкретному hardware, а полагается на виртуальные ресурсы. По сути добавляется отдельная прослойка между ОС и аппаратными компонентами в виду уровня виртуализации.

КОМОНЕНТЫ ВИРТУАЛИЗАЦИИ

Система виртуализации состоит из:

ВИРТУАЛИЗАЦИЯ HARDWARE

Виртуализация hardware в общем случае подразумевает возможность создания нескольких логических устройств (процессоров, сетевых карт, etc) на основе одного физического – т.е. нет привязки один к одному.

Виртуализация процессора – выделение части ресурсов CPU в пул для VM, причем можно регулировать, сколько ресурсов будет отдано каждой VM. VM взаимодействует с процессором через Virtual Machine Monitor (VMM). VMM (Hypervisor) принимает инструкцию от VM, снимает с нее привилегии (делает как в QoS BE – тут это Ring 3) и ставит ее в очередь к CPU.

Виртуализация памяти (как ОЗУ, так и ПЗУ) – выделение части ресурсов ОП в пул для VM, причем можно регулировать, сколько ресурсов будет отдано каждой VM. Последовательные блоки к которым обращается VM по факту не последовательные в памяти host-машины. VMM (Hypervisor) сохраняет соответствие адресов физ. памяти и виртуальной памяти, которая предоставляется (типо NAT). Дополнительный уровень из-за того, что адресация не может для каждой виртуальной машины начинаться с нуля, потому что существует только один адрес с номером 0. Кроме того нужно разграничивать доступ к памяти разных VM между собой.

Виртуализация GPU (Graphics Processing Unit) реализуется путем создания множества vGPU с отдельным vGPURAM на GPU, который поддерживает такое создание (NVIDIA GRID K1/K2). В результате каждая VM получает прямой доступ к ресурсам GPU, сопоставляя себе vGPU. Такая схема позволяет без проблем запускать на VM графически-требовательные приложения типа 3D игр, AutoCAD, ProE, Catia, из-за поддержки vGPU библиотек/технологий OpenGL, DirectX, DXVA, Aero effects.

Виртуализация сетевой карты

Существует три основных метода виртуализации сетевой карты: 1) Common vNIC – взаимодействие между VM и аппаратной сетевой только через гипервизор (dom0) -> большая нагрузка на CPU. Есть поддержка Live migration/snapshot. 2) VMDq iNIC – частичная виртуализация, своего рода QoS для VM (Virtual Machine Device Queues). В результате использования пакеты с данными передаются напрямую в очередь сетевой карты без участия гипервизора (dom0) -> небольшая нагрузка на CPU. Есть поддержка Live migration/snapshot. 3) SR-IOV – полная виртуализация. Нет поддержки Live migration/snapshot.

Виртуализация I/O периферии – так же как с памятью требует дополнительных прослоек:

ВИРТУАЛИЗАЦИЯ ХРАНЕНИЯ

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

ВИРТУАЛИЗАЦИЯ СЕТИ

Основные варианты: