Vmware vsphere 6.7 fault tolerance: the ultimate vm protection

Описание VMware ESXi

Гипервизор VMware ESXi – самый популярный, функциональный и уникальный в своем сегменте программный продукт для серверной виртуализации. Популярность и, как следствие, массовое использование в корпоративном секторе позволили разработчикам к 7-ой версии исправить ошибки, которыми болеют другие гипервизоры-конкуренты. Выбирая, ESXi, даже в бесплатной версии, вы гарантированно получаете продукт высшего качества, который будет работать стабильнее других, по которому всегда можно найти исчерпывающую официальную информацию, документацию, а теперь и видео. Помимо официального сайта есть форумы и блоги, с описаниями установки, способами миграции с физических серверов в виртуальные, вариантами проектов и прочим полезным материалом.

Основная функциональная возможность, которую реализует гипервизор ESXi – это создание виртуальных машин на физическом сервере. В качестве гостевых операционных систем поддерживаются все основные версии, используемые в корпоративном секторе.

Типовые ошибки VMWare Fault Tolerance

1. Отсутствует FT VMkernel

Для работы технологии FT требуется специальный сетевой интерфейс, который будет использоваться для копирования данных и логов с Primary виртуальной машины на Secondary. Для этих целей необходимо создать отдельный порт VMkernel, либо же задействовать существующий. В моем, случае, для этих целей я задействую выделенную сеть для vMotion, т.к. операции vMotion не будут выполнятся очень часто, забивая трафиком данный интерфейс.

В настройке интерфейса VMkernel ставим галочку напротив опции «Fault Tolerance logging»

Установка и настройка VMware Fault Tolerance-04

2. Недостаточно ресурсов для HA

Установка и настройка VMware Fault Tolerance-05

Для работы FT требуется работа технологии VMware High Availability. В моей среде у меня есть всего два хоста ESXi, включёнными в кластер HA, в результате в резерве у меня есть всего один сервер. Для работы FT такое решение не подходит, поэтому нужно либо добавить дополнительный хост в кластер HA, либо настроить HA на резервирование % от ресурсов, задав, например, 5%.

Установка и настройка VMware Fault Tolerance-06

3. Тонкие (Thin) диски необходимо переконвертировать в обычные (thick)

Установка и настройка VMware Fault Tolerance-07

Fault Tolerance не работает с тонкими дисками, поэтому необходимо преобразовать их в «толстые» (thick).

Отключите тестовую виртуальную машины. Откройте хранилище с ней (Browse datastore), правой кнопкой щелкните по vmdk диску и в меню выберите “Inflate”

Установка и настройка VMware Fault Tolerance-08

Установка и настройка VMware Fault Tolerance-09

источник

Настройка функциональности HA и DRS

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

Set-Cluster $cluster1 -HAEnabled:$true -Confirm:$false

Рисунок 4. Пример исполнения командлета Set-Cluster

Обращаем ваше внимание, что принцип HA заключается в следующем: несколько физических серверов объединяют в кластер, а при выходе одного узлов из строя виртуальные машины, которые были на нем, запускаются на других узлах кластера, на которых зарезервированы ресурсы. Однако при отказе оборудования будет зафиксировано небольшое время простоя сервиса / виртуальной машины

Чтобы сделать время простоя близким или равным нулю, используют технологию VMware Fault Tolerance.

Далее включим и настроим DRS. Напомним, что VMware DRS – это функциональность, которая определяет, на каком физическом узле запустить или куда смигрировать работающую виртуальную машину, чтобы выровнять нагрузку на всех узлах кластера. DRS объединяет ресурсы кластера в единый пул и в зависимости от выбранного режима распределяет виртуальные машины равномерным слоем по физическим узлам в кластере. В примере используется режим ‘manual’, а командлет выглядит следующим образом:

Set-Cluster $cluster1 -DRSEnabled:$true -DRSAutomationLevel “Manual” -Confirm:$false

Почему так дорого?

На сайте VMware уже давно можно найти стоимость продуктов и меня часто спрашивают, почему там такие высокие цены. Все дело в том, что там опубликованы рекомендуемые  цены, которые и сама компания и ее партнеры должны транслировать своим заказчикам. Естественно, закупочная цена для партнера существенно ниже и озвучивать ее никто не имеет права. Поэтому на сайте  ITsave  будут публиковаться цены, доступные в OEM канале. Это те лицензии, которые обычно продаются вместе с оборудованием и тоже доступны в открытом доступе.

Лицензии VMware OEM отличаются от тех, которые продаются в коммерческом канале:

Типы гипервизоров

Существует два типа гипервизоров. Гипервизоры первого типа запускаются непосредственно на «железе» и не требуют установки какой-либо операционной системы. Для работы монитора виртуальных машин второго типа нужна операционная система — через нее производится доступ к аппаратной части. Лучшим гипервизором считается тот, что относится к первому типу, т. к. его производительность выше, поскольку они работают напрямую с оборудованием.

Рис. 1. Принцип работы гипервизора 1-го типа

Рис. 2. Принцип работы гипервизора 2-го типа

Примеры гипервизоров 1-го типа: Hyper-V, KVM, ESXi. Гипервизоры 2-го типа: VMware Workstation, Oracle Virtual Box, OpenVZ. Нас интересуют только системы виртуализации первого типа, так как вторые больше подходят для индивидуального использования, чем в качестве решений уровня предприятия.

Отметим, что Hyper-V и WMware — это проприетарные решения, поэтому мы подготовили обзор и сравнение гипервизоров этих моделей. Мы также поговорим и о решении с открытым исходным кодом — KVM. Многие предприятия выбирают именно его, не смотря, что некоторые независимые эксперты считают это решение довольно сырым и непригодным на корпоративной кухне. Однако, согласно отчету IT Central Station за январь 2018 года, 25% операторов связи и 11% финансовых организаций считают именно KVM лучшим гипервизором. Так что при рассуждениях о том, какой гипервизор выбрать, это решение исключать нельзя.

Рис. 3. Немного статистики от IT Central Station

Сначала мы рассмотрим проприетарные решения, а затем попытаемся выяснить, стоит ли использовать KVM.

Удобное управление профилями хранения

Благодаря VASA можно значительно упростить себе жизнь в части работы с СХД NetApp в виртуальной среде. Собирая информацию о хранилищах из Virtual Storage Console и пересылая ее в vCenter, провайдер VASA позволяет:

  • Более грамотно размещать новые VM на датасторах. Можно создать профили хранения с разным уровнем надежности и производительности, а VASA позволит подобрать под них правильные устройства.
  • Своевременно получать оповещения о несоответствии хранилища уровню надежности или производительности, заявленному в профиле vSphere. То есть если уровень RAID был каким-то образом изменен с 10 на 1, вы узнаете об этом до размещения там пары новых СУБД.

По умолчанию провайдер VASA содержит три стандартных профиля хранилищ:

  1. Gold — позиционируется как вариант для размещения бизнес-критичных приложений. Характеризуется высочайшей производительностью, которая не зависит от загрузки соседних дисковых томов, и изоляцией в случае аварии.
  2. Silver — мейнстрим для корпоративных приложений. Это достаточно производительные хранилища с чуть меньшей надежностью при масштабных авариях.
  3. Bronze — самый емкий, но при этом ограниченный по скорости профиль. Обычно для таких систем не предусмотрен вариант защиты от масштабных аварий.

При развертывании новых виртуальных машин можно использовать один из этих профилей для правильного размещения их VMDK.

Аппаратные блокировки

Для внесения изменений в объекты VMFS гипервизор от VMware использует принцип блокировки дискового тома (LUN). То есть если нужно создать новую VM, изменить размер виртуального диска (что происходит очень часто с «тонкими» дисками) или просто добавить к имеющейся VM новое устройство, — на время выполнения этой операции ESXi блокирует ВЕСЬ LUN с использованием SCSI reservation.

При действующей блокировке с томом не могут работать остальные хосты, что порой здорово мешает в крупной виртуальной среде. Чем выше дисковая нагрузка в среде виртуализации, тем болезненнее (в плане производительности) будут происходить любые изменения в датасторах VMFS и тем более явными будут «тормоза» требовательных к дисковому I/O приложений.

Для решения этой проблемы в VAAI используется Hardware Assisted Locking API, позволяющий более детально подходить к вопросу блокировок. Вместо целого тома резервируются конкретные области раздела СХД, которые необходимо изменить.

Знакомство с PowerShell и PowerCLI

В этой части материала мы познакомим вас с основами PowerShell и PowerCLI. Отметим, что PowerCLI – расширение для Windows Powershell, добавляющее более 500 новых командлетов для управления облачной и виртуальной инфраструктурой. Последняя версия пакета доступна на официальном сайте VMware. После установки дистрибутива необходимо запустить ярлык VMware vSphere PowerCLI. Это позволит открыть консоль PowerShell и загрузить все модули PowerCLI.

Рисунок 1. Запуск VMware vSphere PowerCLI

В качестве альтернативы можно использовать редактор сценариев PowerShell ISE, который позволяет выполнять команды, создавать, изменять, тестировать и отлаживать скрипты в среде, поддерживающей цветное выделение синтаксиса и Unicode.

Итак, что же умеет PowerCLI? Для отображения списка доступных команд в консоли PowerCLI набираем:

Get–VICommand

Имейте в виду, что выводимый список получается достаточно большим. Но если вас интересует что-то конкретное, связанное, к примеру, с виртуальными машинами, команда приобретет следующий вид:

Get–VICommand *VM

Чтобы начать управление виртуальной инфраструктурой, подключимся к vCenter Server. Для этого используем команду Connect-VIServer. А поскольку в рассматриваемом примере vCenter Server имеет название vcsa-01a, используем это значение при подключении. Команда выглядит следующим образом:

Connect-VIServer vcsa-01a -User corpadministrator -Password VMware1!

Если вы не уверены в том, как использовать тот или иной командлет, обратитесь к справке. Для этого необходимо набрать Get-Help или упрощенный вариант «help», после чего указать название командлета:

Рисунок 2. Пример вывода справочной информации

Для отображения детальной информации с примерами использования командлетов и описанием параметров, используйте ключ –Full:

help Connect–VIServer –Full

А если возникла необходимость разобраться только в примерах, используйте ключ –Examples:

help Connect–VIServer –Examples

Включение общего диска для ESXI 5.5 и ниже

В более ранних версиях гипервизора Vmware ESXI 5.5 и ниже, общий кластерный диск выключается таким образом. Вы заходите так же в свойства виртуальной машины и добавляете там новый SCSI Controller с типом работы «Virtual».

Затем вы создаете новый диск, указываете его размер и тип Thick Provision Eager Zeroed.

Далее Vmware ESXI 5.5 попросит вас выбрать Выбор LSI Logic SAS контроллер, обязательно укажите тот, что мы создали заранее и запомните порт SCSI к которому вы его подключаете в моем примере, это SCSI (1:0).

Далее в настройках виртуальной машины вам необходимо перейти на вкладку «Option — General» и нажать кнопку «Configuration Parameters».

В самом конце для каждого общего диска пишем в имени номер SCSI порта SCSI1: 0.sharing в поле «Value» пишем multi-writer.

Для второй виртуальной машины делаем те же действия, единственное на этапе создания диска, выбираем пункт существующего «Use an existing virtual disk»

Через кнопку «Browse» указываем путь до него.

Выбираем сам VMDK диск. После чего не забываем так же прописать на вкладке «Option — General» и нажать кнопку «Configuration Parameters», для каждого общего диска пишем в имени номер SCSI порта SCSI1: 0.sharing в поле «Value» пишем multi-writer.

источник

Use cases for FT ^

  • An application that needs to be bulletproof: Its workload cannot have five minutes of downtime. It’s a business-critical enterprise application. Every minute counts.
  • A custom application that cannot do clustering any other way.
  • Temporary protection: You might have a monthly report running one day per month every month, and you want to be absolutely sure your VM won’t be down because of a hardware problem. You activate FT for a day for that particular VM.
  • Clustering is too complicated to maintain and configure: There might be cases where your application can be clustered, but it’s really problematic and difficult to install and maintain.

KVM

KVM — простой в использовании, легкий, нетребовательный к ресурсам и довольно функциональный гипервизор. Он позволяет за минимальные сроки развернуть площадку виртуализации и организовать виртуализацию под управлением операционной системы Linux. В процессе работы KMV осуществляет доступ к ядру операционной системы через специальный модуль (KVM-Intel или KVM-AMD). Изначально KVM поддерживал только процессоры x86, но современные версии KVM поддерживают самые разные процессоры и гостевые операционные системы, в том числе Linux, BSD, Solaris, Windows и др. Кстати, все Wiki-ресурсы (MediaWiki, Wikimedia Foundation, Wikipedia, Wikivoyage, Wikidata, Wikiversity) используют именно этот гипервизор.

Поскольку гостевые операционные системы взаимодействуют с гипервизором, который интегрирован в ядро Linux, у гостевых операционных систем есть возможность обращаться напрямую к оборудованию без нужды изменения гостевой операционной системы. За счет этого замедления работы гостевой операционной системы почти не происходит.

KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, VMware и другие образы, содержащие операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и другое железо.

Благодаря поддержке немодифицированных образов VMware, физический сервер можно легко виртуализовать при помощи все той же утилиты VMware vServer Converter, а затем перенести полученный файл в гипервизор.

Установка KVM в операционной системе Linux заключается в инсталляции пакета KVM и библиотеки виртуализации Libvirt, а также в тщательной настройке среды виртуализации. В зависимости от используемой на хосте операционной системы необходимо настроить мост или подключение к VNC-консоли, с помощью которой виртуальные машины будут взаимодействовать с хостом.

Администрировать KVM сложнее, так как прозрачный доступ к файлам, процессам, консолям и сетевым интерфейсам отсутствует, это приходится настраивать самостоятельно. Перестройка параметров VM в KVM (CPU, RAM, HDD) не очень удобна и требует дополнительных действий, включающих перезагрузку ОС.

Сам проект не предлагает удобных графических инструментов для управления виртуальными машинами, только утилиту Virsh, реализующую все необходимые функции. Для удобного управления виртуальными машинами можно дополнительно установить пакет Virt-Manager.

У KVM нет встроенных инструментов, подобных Fault Tolerate для VMware, поэтому единственный способ создать кластер высокой доступности — использовать сетевую репликацию при помощи DRDB. Кластер DRBD поддерживает только два узла, а узлы синхронизируются без шифрования. То есть для более безопасной связи необходимо использовать VPN-соединение.

Кроме того, для построения кластера высокой доступности понадобится программа Heartbeat, которая позволяет обмениваться служебными сообщениями о своем состоянии узлам в кластере, и Pacemaker — менеджер ресурсов кластера.

Гипервизор KVM распространяется как продукт с открытым исходным кодом, а для корпоративных пользователей существует коммерческое решение Red Hat Virtualization (RHEL), основанное на KVM и платформе управления виртуальной инфраструктурой oVirt.

Несомненным преимуществом этого гипервизора является то, что он способен работать на любом сервере. Гипервизор довольно неприхотлив к ресурсам, что позволяет с легкостью использовать его для задач тестирования.

Следует учесть, что у KVM нет службы поддержки. Если что-то не получится, можно рассчитывать на форумы и помощь сообщества. Или перейти на RHEL.

Извлечение свойств заданного объекта

Когда вы запускаете командлет, например Get-VM, возвращаемые им значения преобразуются в текст и выводятся на экран. Но если возникла необходимость передать возвращаемое значение одного командлета на вход другого, используйте | или конвейер (pipeline или piping):

Get-VM linux-CPU-Load-01a | Get-Member -MemberType property

В этом примере запрашиваются детали виртуальной машины с именем linux-CPU-Load-01a и выводится информация по конкретному свойству. Если же вы хотите получить информацию с описанием имени машины, указанием количества процессоров, используемой памяти, power-статуса и названием VM-хоста, используйте следующий набор:

Get-VM linux-CPU-Load-01a | Select Name, NumCPU, MemoryMB, PowerState, VMHost

Ограничения общих дисков VMware ESXI

Без некоторых нюансов все же не обошлось, хочу выделить некоторые ограничения при использовании общих дисков:

Самое главное, что у вас пропадет возможность производить миграцию виртуальной машины, обычный vMotion и Storage vMotion (Подробнее https://kb.vmware.com/s/article/1003797)

Например, при попытке сделать Storage vMotion вы получите ошибку:

Virtual machine is configured to use a device that prevents the operation: Device ‘SCSI controller 1’ is a SCSI controller engaged in bus-sharing

Если нужно будет мигрировать, то придется выключать виртуалку.

Вы не сможете на живую произвести расширение дисков, при попытке вы получите вот такую ошибку:

The disk extend operation failed: The virtual disk requires a feature not supported by this program. Hot-extend is currently supported only for VMFS flat virtual disks without snapshots opened in persistent mode.

Если вы вдруг разметите оба диска в NTFS на двух хостах и попытаетесь на них писать, создав на одном одну папку, а на втором вторую, то хосты эти папки не увидят, каждый свою, учтите, это вам не общий диск с синхронизацией файлов, Multi-Writer VMDK именно нужен для кластеризации.

Создание и конфигурация кластера

Настало время практического кейса, приближенного к жизни. В этой части статьи рассмотрим создание виртуального окружения для небольшой вымышленной компании Nephosoft. Для начала создадим и сконфигурируем новый кластер. В процессе настроим сетевые параметры и виртуальный свитч VDS (virtual distributed switch). Затем в рамках созданного виртуального окружения развернем несколько виртуальных машин и зададим соответствующие настройки. Выполним шаги с помощью командной строки.

Для создания нового кластера будем использовать командлет New-Cluster

Обратите внимание, что кластеру необходимо задать имя и локацию. Для этого используем команду:

$cluster1 = New-Cluster -Name “Nephosoft Cluster 1” -Location “Datacenter Site A”

Теперь уделим внимание функциональности vMotion, которая позволяет мигрировать виртуальные машины между хостами без остановки и прерывания их работы. Функционал vMotion доступен с редакции vSphere Advanced, для его работы требуется vCenter, кластер vCenter, общее хранилище виртуальных машин, одинаковая конфигурация виртуальной сети на всех узлах в составе кластера с vMotion, интерфейс VMkernel с включенной опцией vMotion, процессоры с одинаковым набором инструкций

Следующее, что необходимо сделать, – проверить, поддерживают ли хосты режим EVC (enhanced vMotion compatibility). Для этого используем командлет:

$evcModes = Get–VMHost | Select MaxEVCMode 

Теперь необходимо проверить содержимое $evcModes. Для этого вводим название переменной, после чего на экран будут выведены значения. В рассматриваемом примере оба хоста используют одинаковый режим EVC.

Напомним, что EVC автоматически настраивает кластер для совместимости процессоров разных поколений. Применяется ко всему кластеру, ко всем узлам при активации.

В следующем шаге включаем EVC-режим в свойствах кластера. По умолчанию эта функциональность выключена. После применения EVC можно мигрировать виртуальные машины между узлами в кластере. Используем следующую команду:

Set–Cluster $cluster1 –EVCMode $evcModes.MaxEVCMode

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: