Что такое и как работает Storage VMotion в VMware vSphere
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по виртуализации Pyatilistnik.org. Виртуализация, чем хороша, что позволяет не привязываться к оборудованию и располагать виртуальные сервера там, где вам это лучше, имея для этого разные механизмы. Сегодня мы как раз и поговорим об одном из таких механизмов под названием Storage vMotion. Уверен, что вы его за свою практику будите использовать очень часто, особенно при смене оборудования систем хранения данных, но обо всем о порядку.
Что такое Storage VMotion?
Одна из замечательных технологий, которая стала доступна из GUI в VMware vSphere, Storage VMotion позволяет перемещать хранилище виртуальной машины (ее виртуальные диски) на другой том VMFS / LUN без остановки работы служб и приложений. На диаграмме ниже показано, какие именно фазы проходят в ESX/ESXi при перемещении виртуальной машины между хранилищами.
- Во-первых, при инициировании миграции, VMware vSphere копирует все файлы виртуальной машины, за исключением виртуальных дисков, на новое целевое виртуальное хранилище.
- Во-вторых, в VMware vSphere включается технология Changed Block Tracking для диска виртуальной машины. VMware vSphere отслеживает изменяющиеся блоки и записывает эти данные в битовый массив. Обычно этот битовый массив хранится в памяти VMware ESX / ESXi.
- Далее VMware vSphere «пре-копирует» диск виртуальной машины и swap-файл с целевого устройства на хранилище назначения (первая итерация). В это время виртуальная машина может продолжать запись в виртуальный диск. В это время некоторые блоки диска меняются и отслеживаются технологией Changed Block Tracking. Далее изменившиеся данные посылаются vSphere на целевой диск и применяются там (вторая итерация). При этом во время такого копирования данные на исходном диске также изменятся и также эти изменения отследятся Changed Block Tracking. Таким образом, итерации будут продолжаться до тех пор, пока объем изменений не будет настолько мал, что они будут переданы мгновенно на целевой виртуальный диск.
- Теперь ESXI вызывает (fast suspend/resume) виртуальной машины. Виртуальная машина «приостанавливается» (suspend) на хосте ESX и процесс, реализующий виртуальную машину, запускает ее уже с целевого хранилища (resume). Именно в этот момент происходит последняя итерация копирования изменившихся данных исходного диска на целевой vmdk. Таким образом, виртуальные диски исходного и целевого виртуального хранилищ оказываются идентичны, после чего происходит resume виртуальной машины.
- После того, как виртуальная машина запустилась с целевого хранилища, ее виртуальные диски и другие файлы на исходном хранилище уничтожаются.
Каковы варианты использования Storage vMotion?
- Миграция со старого хранилища на новые системы хранения или миграция на хранилище другого поставщика без простоев на виртуальные машины.
- Выполнение запланированных действий, таких как обновление хранилища на исходном Lun.
- Преобразование типа диска виртуальной машины из толстого в тонкий и из тонкого в толстый.
- Перенос критически важных виртуальных машин в высокопроизводительные массивы хранения для повышения производительности виртуальной машины.
- Миграция рабочей нагрузки между различными физическими LUN
- Балансировка нагрузки IOPS (с кластерами sDRS Datastore)
- svMotion не зависит от хранилища, что означает, что он может работать со всем, что может предоставить хранилище данных VMware. (iSCSI, FCoE, vSAN, NFS, NAS и т. д.)
Требования и ограничения Storage vMotion
Виртуальная машина и ее хост должны соответствовать требованиям к ресурсам и конфигурации для дисков виртуальной машины, которые необходимо перенести с помощью Storage vMotion. Storage vMotion подчиняется следующим требованиям и ограничениям:
- Диски виртуальных машин должны находиться в постоянном режиме (persistent mode) или быть необработанными сопоставлениями устройств (RDM). Для RDM в режиме виртуальной совместимости вы можете перенести файл сопоставления или преобразовать его в диски с толстым (thick-provisioned) или тонким (thin-provisioned) предоставлением во время миграции, если местом назначения не является хранилище данных NFS. Если вы преобразовываете файл сопоставления, создается новый виртуальный диск, и содержимое сопоставленного LUN копируется на этот диск. Для RDM в режиме физической совместимости (physical compatibility) вы можете перенести только файл сопоставления.
- Миграция виртуальных машин во время установки VMware Tools не поддерживается.
- Поскольку хранилища данных VMFS3 не поддерживают виртуальные диски большой емкости, вы не можете перемещать виртуальные диски размером более 2 ТБ из хранилища данных VMFS5 в хранилище данных VMFS3.
- Хост, на котором работает виртуальная машина, должен иметь лицензию, включающую Storage vMotion.
- Хостам ESXi 4.0 и более поздних версий не требуется конфигурация vMotion для выполнения миграции с помощью Storage vMotion.
- Хост, на котором работает виртуальная машина, должен иметь доступ как к исходному, так и к целевому хранилищу данных.
- Виртуальная машина должна быть выключена, если вы хотите одновременно перенести виртуальную машину на другой хост и другое хранилище
- svMotion может вызвать проблемы в приложениях с интенсивным вводом-выводом, таких как базы данных. Имейте это в виду
- Максимальное количество одновременных миграций svMotion - 16, тем не менее, это может привести к снижению производительности массива хранения.
- В то время как vMotion требует выделенного стека vmkernel TCP / IP для трафика. Storage vMotion переносит данные двумя способами: через коммутаторы FC, если вы используете Fibre Channel, или с помощью интерфейсов управления или обеспечения.
- Виртуальные машины со снимками, не могут быть перемещены с помощью Storage VMotion
- Хост, на котором виртуальная машина запущена, должен иметь доступ к исходному и целевому хранилищам данных
Практическая часть в vCenter 5.5
теперь немного практики. При общем storage есть два вида миграции
- Change host
- Change datastore
При первом у вас уже должен быть общий storage. Перед тем как я познакомился с vMotion конфигурация была следующей. Два хоста не в кластере. Независимые storage. Необходимо было перезагрузить один из хостов а машинки на нем не трогать. В итоге создал общий storage для них. Затем смигрировал с первого хоста на другой storage машинку, для этого кликнул по ней выбрал migration и выбрал
Выбрал общий storage и дождался когда операция закончится, затем выбрал в миграции первый пункт Change host и выбираем нужный host.
Как работает "Shared-Nothing" vMotion (Enhanced vMotion) в VMware vSphere 5.1.
Как знают многие пользователи, среди новых возможностей VMware vSphere 5.1 есть так называемая Enhanced vMotion или "Shared-Nothing" vMotion - функция, позволяющая переместить работающую виртуальную машину на локальном хранилище ESXi на другой хост и хранилище с помощью комбинации техник vMoton и Storage vMotion в одной операции. Это означает, что для такого типа горячей миграции не требуется общее хранилище (Shared Storage), а значит и затрат на его приобретение. Напомним также, что функция Enhanced vMotion включена во все коммерческие издания VMware vSphere, кроме vSphere Essentials.
Давайте посмотрим поближе, как это все работает:
Сначала приведем требования и особенности работы vMotion при отсутствии общего хранилища:
- Хосты ESXi должны находиться под управлением одного сервера vCenter.
- Хосты должны находиться в одном контейнере Datacenter.
- Хосты должны быть в одной Layer 2 подсети (и, если используется распределенный коммутатор, на одном VDS).Enhanced vMotion - это исключительно ручной процесс, то есть функции DRS и Storage DRS не будут использовать миграцию машин без общего хранилища. Это же касается и режима обслуживания хоста (Maintenance Mode).
- Для одного хоста ESXi может быть проведено не более 2-х Enhanced vMotion единовременно. Таким образом, на хост ESXi может одновременно приходиться максимум 2 штуки Enhanced vMotion и 6 обычных vMotion (всего 8 миграций на хост) + 2 операции Storage vMotion, либо 2 Enhanced vMotion (так как это также задействует Storage vMotion).
- Enhanced vMotion может проводить горячую миграцию одновременно по нескольким сетевым адаптерам хоста ESXi, если они имеются и настроены корректно.
Миграция Enhanced vMotion может быть проведена только через тонкий клиент vSphere Web Client (в обычном клиенте эта функция недоступна - см. комментарии):
Миграция Enhanced vMotion идет по обычной сети vMotion (а не по Storage Network), по ней передаются и диск ВМ, и ее память с регистрами процессора для обеспечения непрерывной работоспособности виртуальной машины во время миграции:
Теперь как это все работает последовательно. Сначала механизм Enhanced vMotion вызывает подсистему Storage vMotion, которая производит копирование данных по сети vMotion. Здесь важны 2 ключевых компонента - bulk copy и mirror mode driver.
Сначала механизм bulk copy начинает копирование блоков данных с максимально возможной скоростью. Во время этого часть блоков на исходном хранилище хоста может измениться - тут и вступает в дело mirror mode driver, который начинает поддерживать данные блоки на исходном и целевом хранилище в синхронном состоянии.
Mirror mode driver во время своей работы игнорирует те блоки исходного хранилища, которые меняются, но еще не были скопированы на целевое хранилище. Чтобы поддерживать максимальную скорость копирования, Mirror mode driver использует специальный буфер, чтобы не использовать отложенную запись блоков.
Когда диски на исходном и целевом хранилище и их изменяющиеся блоки приходят в синхронное состояние, начинается передача данных оперативной памяти и регистров процессора (операция vMotion). Это делается после Storage vMotion, так как страницы памяти меняются с более высокой интенсивностью. После проведения vMotion идет операция мгновенного переключения на целевой хост и хранилище (Switch over). Это делается традиционным способом - когда различия в памяти и регистрах процессора весьма малы, виртуальная машина на мгновение подмораживается, различия до передаются на целевой хост (плюс переброс сетевых соединений), машина размораживается на целевом хосте и продолжает исполнять операции и использовать хранилище с виртуальным диском уже целевого хоста.
Ну а если вы перемещаете виртуальную машину не между локальными дисками хост-серверов, а между общими хранилищами, к которым имеют доступ оба хоста, то миграция дисков ВМ идет уже по Storage Network, как и в случае с обычным Storage vMotion, чтобы ускорить процесс и не создавать нагрузку на процессоры хостов и сеть vMotion. В этом случае (если возможно) будет использоваться и механизм VAAI для передачи нагрузки по копированию блоков на сторону дискового массива.