Основы облачных технологий и виртуализации

Конспект вебинара HonorCup E=DC2 для сдачи HCNA Cloud.

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

Зачем надо (business perspective)

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

Основные драйверы роста облачных вычислений:

  • потребности клиентов по снижению инвестиций (как обычных b2c клиентов, так и крупных b2b/b2g)
  • скачек технологий:
    • аппаратные улучшения ИТ инфраструктуры: серверов, сети, устройств хранения,
    • программные улучшения ИТ инфраструктуры: развитие платформ разработки, тестирования, платформ приложений, самих приложений
    • технологии виртуализации,
    • технологии параллельных и распределенных вычислений,
  • изменение бизнес-моделей

Облачные технологии позволяют не содержать свои сервера или даже дата-центры, а арендовать вычислительные мощности других команий через сеть Интернет в виде услуг типо VPS/VDS.

В результате не нужно покупать hardware/software (зачастую и лицензии), а можно просто купить услугу и тем самым экономить средства на создание/поддержку инфраструктуры. Чаще всего при виртуализации можно использовать VM точно так же как и bare-metal сервер, не заметив даже разницы. Дополнительным преимуществом является простота удаленного доступа (зачастую через обычный браузер). Нельзя забывать и про динамическую утилизацию ресурсов – один и замериканских банков проводил исследование утилизации ресурсов своих серверов в 2007г и выяснил, что 5% серверов имеет загрузку 80%-100%, а 50% серверов имело нагрузку менее 10% – деньги на ветер.

Как работает  (technical perspective)

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

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

  • Облачная архитектура – должна быть высокопроизводительной, надежной, безопасной, масштабируемой scale out (подробнее ниже)
  • Облачные устройства включают сервера (для обработки данных), СХД (для хранения данных) и сетевые устройства (как связующее звено). Устройства обладают теми же характеристиками, что и архитектура и при этом они должны быть дешевыми per device. Характеристики по устройствам:
    • сервера с большим количество памяти, высокоскоростная сеть и высокая скорость чтения/записи на диски
    • поддержка и реализация QoS на устройствах – даем гарантию на вычислительную мощность, сетевые каналы или объем данных по хранению.
    • устройства хранения поддерживают linked cloning, thin provisioning, snapshot и прочие функции
    • многопортовые и относительно дешевые коммутаторы, форвардящие трафик на L2 и поддерживающие некостыльный балансинг на L2 типо TRILL (TranspaRent Interconnection of Lots of Links), SPB (Shortest Path Bridging),  CEE (Converged Enhanced Ethernet)/DCB (Data Center Bridging),  MPLS (MultiProtocol Label Switching) (подробнее ниже)
  • Облачные сервисы включают платформу облака, используемое для виртуализации физических ресурсов в виртуальные (создание пулов ресурсов), функции диспетчера (scheduling),  управления и платформу приложений, на которой хостятся приложения с доступом к ним через API платформы. За этим всем стоит ряд технологий, которые предоставляют Cloud/app платформы: Virtualization technology, Distributed storage, Automation (легкость внедрения и поддержки услуг, как в VPS/VDS через WEB), могут быть так же Application service API, Cloud capability service API, Cluster management, Parallel processing (например, для анализа Big Data).

 

Облачные технологии развивают следующие тренды в IT:

  • Для масштабирования используется горизонтальное (scale out) масштабирование, а не вертикальное (scale up) – большое количество бюджетных (low-cost) серверов заменяют собой специализированные мейнфреймы/высокопроизводительные сервера. Подход scale out зачастую упрощает процедуру масштабирования/балансировки/резервирования, снижает зависимость от производители, снижает стоимость владения (пример – scale out платформа для Big Data Huawei OceanStor 9000). Такой подход подразумевает решение задачи, чтобы клиенты видели все scale out nodes как одну систему, что часто реализуется на базе DNS (пример так же в Huawei OceanStor 9000).
  • ПК заменяются на тонкие клиенты (экономия меньшем потреблении энергии, в развертывании, в меньшем количестве персонала для обслуживания, дешевизне TC Thin Client)
  • Распределенный софт заменяет традиционный не автономный (standalone)
  • Автоматизация управления и контроля ПО замещает традиционную концепцию централизованного управления

 

Модели облаков
  • Private cloud (частное облако) – все принадлежит организации. Отличается от обычного ЦОД внутри организации в легкости масштабирования.
Довольно стандартный вариант разворачивания "частного облака" по русски - в ДЦ арендовал стойку (или просто несколько юнитов), развернул пару блейд-серверов, СХД, транспортное оборудование типо ASA для доступа ко всему этому добру - все-про-все примерно на 1кк. В офисе тонкие клиенты на Linux которые подключаются к этим серверах/СХД. Лицензии на сервера зачастую не покупаются в расчете на то, что проверка в ДЦ не придет, а в офисе ничего не выявить.

  • Community cloud (групповое облако) – разделение ифраструктуры между несколькими компаниями для решения общих задач. Кейсы: общая безопасность, решение юридических/комплаенс вопросов, доступ к инфраструктуре для подрядчиков/поставщиков, образование, etc
  • Public cloud (публичное облако) – электронная почта, сервисы по хранению данных, cloud office и прочие сервисы.
  • Hybrid cloud (гибридное облако) – сочетание частного и публичных облаков.

Виды cloud услуг

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

  • SaaS (software as a service) – ПО как услуга. Мы арендуем CRM, email, games, instant message. Cloud провайдер отвечает за установку/конфигурацию/обновление всех ОС и приложений, которые необходимы для корректной работы софта. Примеры: Microsoft Office 365, Google Drive, Skype, облачная CRM Salesforce, разные облачные АТС, разные WEB хостинги, есть даже облачный 1с 😉
  • PaaS (platform as a service) – платформа как услуга. Мы арендуем емкость баз данных, средств разработки (java, .net), приложения разрабатываем/развертываем/обслуживаем сами. Пример: Microsoft Azure
    • DaaS (data as a service)  – аренда пространства хранения
    • DBaaS (database as a Service) – аренда БД
    • DaaS (desktop as a service) – аренда десктопа в виде услуги (VDI)
  • IaaS (infrastructure as a service) – инфраструктура как услуга. Мы арендуем server, storage, network. ОС и приложения разрабатываем/развертываем/обслуживаем сами на основе наших потребностей. Пример: Amazon EC2, VPS/VDS хостинги
    • BaaS (bare-mated as a service) – реальные сервера как сервис (редкая услуга)

Виртуализация и облачные технологии

Облачные технологии зачастую полагаются на виртуализацию тех или иных ресурсов – разделение большой hardware машины на более мелкие виртуальные, для хорошей утилизации ресурсов hardware машины. Но если говорить именно об облачных вычислениях, то они могут полагаться и на обратную концепцию – объединение вычислительных мощностей независимых hardware машин в одну большую виртуальную (для больших вычислений, mining/ddos).

Что такое виртуализация

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

 

При использовании виртуализации мы получаем:

  • хорошую утилизацию ресурсов: уплотнение размещения ПО на физическом сервере, одно это может быть достаточным плюсом (вместо 10 серверов работает два в режиме отказоустойчивости)

  • экономию средств на электропитании, уменьшение негативного влияния на экологию:
    • в зависимости от нагрузки на сервера (load balancing, чтобы устройства не перегревались и не требовали доп. охолождения) или дня суток (понижение частоты CPU/etc или отключение неиспользумых серверов ночью с помощью использования Dynamic Power Management (DPM), завязанного на DRS – о нем ниже)
    • ПК заменяются на тонкие клиенты, которые потребляют значительно меньше питания (20+ watts vs 300+ watts)

  • централизованное и эффективное управление, простота развертывания (time to market), меньшее количество персонала по обслуживанию серверов: легко мигрировать VM на менее загруженную hardware машину или наоборот отключить лишние сервера/забрать ресурсы. VM могут развертываться быстро и автоматически (batch VM deployment, услуга типа VPS/VDS). Для обслуживания всеми устройствами может быть единая платформ, причем устройствами не только одного вендора (типо Huawei eSight).

  

  • простоту резервирования (backup, восстановления) и балансировки:
    • копирование VM (VM level backup/cloning/imaging) и перенос на другой сервер (VM migration). VM migration – фича когда VM мигрирует с одной host машины на другую внутри виртуального кластера из-за того, что сервер не имеет достаточно ресурсов (DRS – Distributed Resource Scheduler) или упал (в результате аварии или обслуживания).
    • клон VM на другом сервере который синхронизируется с основной VM и начинает работать после отказа основной VM (HA High Availability + FT Falt Tolerance) или даже работают одновременно (LB Load Balancing)

Для клонирования дисков/данных могут быть использованы не только средства платформы виртуализации, но и софт (clonezilla, symantec ghost или даже утилиты системы (dd).

  • независимость ОС и приложений от hardware
    • легко следовать правильной политике one-application-per-server и поднять VM специально для какого-то софта
    • легко перенести все ресурсы на другую систему и даже платформу
  • централизованные и уникальные функции безопасности
    • централизованные политики по безопасности: передача данных только в зашифрованном виде, доступ к данным только по сертификатам или аккаунтам, изоляция как политика по умолчанию между VM
    • антивирус, который работает на Host машине без необходимости установки на VM

История виртуализации

Виртуализация начал появляться еще при появлении ПК и особенно мейнфреймов –  даже в IBM 360 были отдельные элементы виртуализации. Далее появились технологии поддержки виртуализации CPU от Intel/AMD, позволившие виртуализировать платформу x86.

Принципы виртуализации
  • Zoning (Зонирование) – мы используем один сервер для нескольких VM
  • Isolation (Изоляция) – VM изолированы друг от друга (не всегда по факту, иногда находят бреши). Изоляция позволяет исключить влияние проблем с ОС/приложениями/драйверами из-за багов/вирусов и прочего одном VM на сервисы другой VM на одном физ. сервере. Чаще всего гипервизор так же позволяет ограничивать ресурсы так, чтобы одна VM не могла занять все ресурсы.
  • Encapsulation (Энкапсуляция) – сохранение VM в виде простого файла позволяет легко мигрировать и переносить VM
  • Hardware-independence (Аппаратная независимость) – непривязанность ОС к аппаратный ресурсам, в том числе возможность смены системы виртуализации (нет вендор-лока)

Комоненты виртуализации

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

  • Физической машины с hardware (host machine) на которой установлена ОС (host OS)
  • Виртуальных машин с виртуальным hardware (guest machine) на которой установлена ОС (guest OS)
  • Гипервизора (hypervisor) или VMM (Virtual Machine Monitor) – ПО, которое позволяет виртуализировать физ. ресурсы host machine для предоставления их guest machine

Гипервизоры, VMM

https://toster.ru/q/2618 – неплохое (правда, старое) сравнение гипервизоров Microsoft Hyper-V, VMware ESXi, XenServer

https://toster.ru/q/363969 – сравнение Hyper-V и ESXi (в кратце – если в виртуалке будет винда, то дешевле и удобнее использовать hyper-v, особенно если выбор только между бесплатными версиями – у макрософт она не порезана)

XEN и KVM системы виртуализации часто используются в Linux-системах. Обе крайне популярны и поддерживаются ведущими игроками рынка: RHEL/IBM KVM, Amazon/Citrix/Oracle XEN. Amazon часть сервисов переделывает c XEN на KVM.

  • Hosted Virtualization – виртуализация с использованием ОС хоста в виде обычного приложения. Достоинство – простое развертывание. Недостаток – серьезные потери в производительности. Примеры: VMware Workstation, Virtual PC, Oracle VirtualBox.
  • Baremetal virtualization (часто используется) – работают без ОС на базе процессоров x86, самый популярный тип. Достоинство – независимость от ОС (поддержка множества ОС), простота реализации для ОС/ПО, высокая производительность т.к. железо используется “чисто” под виртуализацию без прослойки в виде ОС. Недостаток: реализация системы виртуализации довольно сложна из-за архаичности архитектуры x86 и необходимости перехвата/исполнения части команд к процессору. Примеры: VMware ESXi Server, Citrix XenServer, Microsoft Hyper-V, Huawei FusionSphere.
  • OS-level Virtualization – контейнерная виртуализация на уровне ОС. Достоинства – простая реализация, малое использование ресурсов под management (OS). Недостаток – проблемы с изоляцией контейнеров из-за работы на одной ОС. Примеры: Parrallels Virtuozzo, Docker.
  • Hybrid Virtualization (часто используется) – гибридная виртуализация. Достоинства – высокая производительность, поддержка множества ОС. Недостаток – частичная привязка к hardware.Примеры: Red Hat KVM.

Типичный интерфейс управления на примере Hyper-V (примерно такой же и в VirtualBox, virt-manager, vSphere).

Виртуализация hardware

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

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

x86 CPU имеет 4 привилегии в protected режиме: Ring 0 (самые приоритетные инструкции от ядра ОС), 1-2 (службы ОС), 3 (приложения).

Виртуализация памяти (как ОЗУ, так и ПЗУ) – выделение части ресурсов ОП в пул для 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 периферии – так же как с памятью требует дополнительных прослоек:

  • для нахождения устройства VM: XenBus (драйвер паравиртуализации Xen) на VM взаимодействует с XenStore на Domain0 (Domain0 – это host машина) для получения информации об устройстве
  • для обмена: в виде front-end driver (blkfront, на стороне VM)  и back-end driver (blkback, на стороне гипервизора) драйверов, взаимодействующих через интерфейс, созданный гипервизором, по протоколу Xen BLKIF. Картинка по работе драйверов blkback <-> blkfront (отсюда).

Картинки по запросу blkfront blkback

Виртуализация ХРАНЕНИЯ

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

Варианты реализации виртуализации ресурсов хранения:

  • Raw Device + Logical Volume
  • Storage Device Virtualization
  • Host Storage Virtualization + File System

  • Raw Device + Logical Volume – чистые устройства (SAN или локальные диски примонтированные к хосту) разделяются на блоки в 1GB, используя эти блоки создаются LUN. Плюсы: лучшая производительность R/W из-за простого пути I/O. Минусы: нет поддержки продвинутых фич.

  • Storage Device Virtualization – виртуализация устройства хранения. С этим типом виртуализации устройства хранения могут предоставить продвинутые фичи типа thin provisioning, snapshot, linked clone. Понравилась пометка: относится только к Huawei Advanced SAN и FusionStorage и в текущий момент не предоставляет много продвинутых фич :D. Плюсы: средняя поддержка продвинутых фич, средняя производительность R/W.  Минусы: зависимость от аппаратного устройства.

  • Host Storage Virtualization + File System – виртуализация ресурсов хоста + файловая система (SAN или локальные диски примонтированные к хосту, хост создает на них файловую систему, VM создаются как файлы в этой ФС). Позволяет хостам управлять файлами на VM через файловую систему. Этот тип виртуализации позволяет предоставлять фичи, независимые от устройства хранения. В текущий момент это очень популярный тип виртуализации. Плюсы: самая хорошая поддержки продвинутых фич независимо от типа аппаратного устройства хранения.  Минусы: плохая производительность R/W из-за сложного пути I/O.

Суммаризация:

Виртуализация сети

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

  • Виртуализация сетевой карты (выше)
  • Классический стек – из нескольких коммутаторов делается кластер (Cluster Switch System).
  • Коммутатор гипервизора – гипервизор создает виртуальный коммутатор, который соединяется с физической сетью, предоставляя доступ к сети для VM, базовый пример можно посмотреть в статье VirtualBox.
  • Виртуализация аппаратных коммутаторов – физический коммутатор разделяется на разные логические коммутаторы внутри с разным управлением (Ericsson SmartEdge 600, Huawei CloudEngine 12800).

Для работы миграции VM между разными host-машинами сеть должна обеспечивать связность между host-машинами.

Чаще всего это делается на уровне L2. Причем этот L2 должен быть стандартизирован, поддерживать транспортировку FibreChannel, а не только Ethernet, иметь возможность работать без потерь – под эти характеристики подходит CEE (Converged Enhanced Ethernet). Помимо этого должен быть протокол, который разруливает петли, не отрубая “лишние” пути, а балансируя по ним трафик, например SPB (Shortest Path Bridging) или TRILL (TranspaRent Interconnection of Lots of Links).

  

Для форварда/защиты/маркировки трафика VM между собой используются виртуальные коммутаторы. Они могут быть реализованы в виде (первые два используются Huawei для виртуализации сети в их продуктах):

  • vSwitch – на базе CPU гипервизора. Плюс – дешево, много фич. Минус – производительность.
  • eSwitch – на микросхеме сетевой карты хост машины. Плюс – производительность. Минус – дороже.
  • Physical switch – коммутация трафика на реальном коммутаторе. Плюс – простота. Минус – мало документации, плохое масштабирование, плохая совместимость с гипервизорами.

Для доступа к VM может использоваться программный (как Huawei пишет норм для ~700 VDI) или аппаратный (вполне нормально, если они будут реализованы на одном устройстве, называют это в Huawei SVN):

  • LB (Load Balancer) – балансировщик и файрволл
  • AG (Access Gateway) – удаленный доступ к DC (intranet из extranet) на базе SSL VPN, типа VPN концентратора (авторизация, назначение прав, NAT)

 

Huawei nCenter – решение Huawei по автоматизации миграции VM между ДЦ. Настройки сети и политики безопасности автоматически переносятся при миграции VM. Основное условие – VM должны быть в одном бродкаст домене т.к. перенос полагается на L2 протокол TRILL. Утверждается, что перенос возможен между гипервизорами разных вендоров.

TRILL allows VMs to dynamically migrate within the data center in a wide range

 

VM

Пример создания VM на основе пользовательских требований. Переводить смысла не вижу, процесс везде одинаков (VirtualBox, KVM, VMWare Workstation, etc).

VDI

VDI – virtual desktop interface – облако, в котором находятся “рабочие ПК пользователей”.

К каждому виртуальному ПК доступ строго контролируется, с доступом, например, через простой WI (Web Interface) с помощью USB token key (USB токен + PIN) и/или AD. VDI платформы типо FusionAccess позволяют подключаться к одному и тому же VDI  не только пользователям ОС Windows, но даже с мобильных терминалов Android/iOS app.

Тонкие клиенты (TCs – thin client) использовать для этого не обязательно, хотя лучше использовать, нежели нет (экономия в развертывании, обслуживании, питании, проч). Используя CD-rom на TC можно устанавливать ОС на VM (помимо стандартного iso файла).

Подробнее про практические кейсы реализации VDI на основе FusionAccess можно посмотреть тут.

Summary

Вопросы

все вопросы/ответы по теме тут

Leave a Reply