![image](https://habrastorage.org/storage/habraeffect/2c/53/2c534a7b0f09ec16f1ad79e62f652a5f.png)
В этой статье я попытаюсь рассказать о новой фиче, появившейся в System Center Virtual Machine Manager 2008 R2 – Quick Storage Migration (QSM). Были использованы материалы статьи от Edwin Yuen.
Вкратце о QSM.
Технология Quick Storage Migration, появившаяся в System Center Virtual Machine Manager R2, позволяет переносить виртуальные машины с одного хранилища на другое с минимальным временем простоя. Допустим, виртуальные машины хранятся на СХД, которую в ближайшее время планируется заменить на новую. QSM позволит перенести виртуальные машины на новую СХД легко и максимально быстро – с минимальным downtime.
QSM поддерживается гипервизором Windows Server 2008 R2 Hyper-V и основывается на службе фонового интеллектуального копирования (BITS).
Посмотрим, какие вообще имеются способы перемещения виртуальных машин между серверами и хранилищами у MS и VMware:
![image](https://habrastorage.org/storage/habraeffect/a4/d3/a4d3fe3478c4a4de5cff10aaa497d554.gif)
![image](https://habrastorage.org/storage/habraeffect/0b/2d/0b2d70a56347956965fb82efd88ccd55.gif)
Примечание: Для миграции виртуальных машин между хостами с разными моделями процессоров необходимо использовать режим процессорной совместимости (Processor Compatibility Mode, PCM). Этот режим «скрывает» от виртуальной машины функции, специфичные для определенных версий процессора, и не требует поддержки процессорами каких-либо особых функций, таких, как Intel VT Flex Migration или AMD-V Extended Migration. Тем не менее, даже при использовании PCM миграция между хостами с процессорами разных вендоров невозможна.
Как это работает
QSM использует нативные технологии платформы Windows Server: Hyper-V и BITS. Рассмотрим два сценария миграции.
Сценарий 1: Виртуальная машина остается работать на том же самом сервере, а виртуальные диски перемещаются с одного хранилища данных на другое.
1. В консоли SCVMM доступно новое действие (Migrate Storage):
![image](https://habrastorage.org/storage/habraeffect/da/24/da24471ab93efb608edb2374f1faafea.jpg)
2. При выборе Migrate Storage запускается визард, предлагающий администратору выбрать новое место для хранения файлов виртуальных дисков (VHD). Если у виртуальной машины их несколько – то можно задать новое расположение отдельно для каждого VHD:
![image](https://habrastorage.org/storage/habraeffect/92/52/92526004b3230b702aea7ad6617b774f.jpg)
3. SCVMM создает моментальный снимок виртуальной машины. При этом создаются файлы дельт для каждого VHD (AVHD), и все операции записи перенаправляются в них. Сами VHD-файлы остаются доступными только для чтения. Более подробно о работе моментальных снимков в Hyper-V см. соответствующую статью.
4. Начинается процесс копирования самих VHD-файлов в новое место хранения с использованием службы BITS. В это время виртуальная машина продолжает работать.
5. Сразу по окончании копирования виртуальная машина переводится в состяние Save State
6. Теперь SCVMM может перенести дельты дисков и файлы содержимого памяти, что он и делает.
7. Как только процесс копирования завершается – SCVMM производит операцию экспорта, а затем импорта виртуальной машины на том же самом хосте.
8. Cнапшот, созданный в п.3 удаляется и производится слияние дельта-дисков с оригинальными файлами VHD (подробнее о работе снапшотов см. мою статью).
9. Виртуальная машина восстанавливается из состояния Save State, и процесс миграции завершается.
Сценарий 2: Миграция – виртуальная машина перемещается на новый сервер И на новое хранилище данных.
1. Для начала нужно выбрать функцию Migrate (именно Migrate, а не Migrate Storage) – это позволит осуществить перемещение виртуальной машины на другой сервер с перемещением виртуальных дисков на другое хранилище.
![image](https://habrastorage.org/storage/habraeffect/d3/94/d394646b1a01b1416c59b5a6d0090ff2.jpg)
2. Вначале визард предложит выбрать хост, на который будет осуществлена миграция. Далее будет предложено выбрать место для хранения файлов конфирурации и файлов виртуальных дисков. По умолчанию все виртуальные диски будут складываться в ту же папку, что и конфигурационный файл, но все это можно изменить.
![image](https://habrastorage.org/storage/habraeffect/6d/fc/6dfc7f73117c8ab88e3ebe5a649f026f.jpg)
3. SCVMM создает пустую виртуальную машину с тем же именем на хосте, куда будет осуществлена миграция. Поскольку эта пустая виртуальная машина не запускается – память и ресурсы процессора под нее не резервируются.
4. Создается снапшот виртуальной машины, и соответственно – дельта-диски.
5. Начинается процесс копирования файлов VHD посредством BITS. QSM абсолютно независим от протоколов и типов хранилища, и может осуществлять миграцию на любое хранилище, подключенное к хосту.
6. По окончании копирования VHD, виртуальная машина переводится в состояние Save State, и затем содержимое памяти (файлы Save State) и файлы дельта-дисков копируются на новый хост посредством той же BITS.
7. По окончании копирования производится экспорт виртуальной машины на старом узле и импорт на новом.
8. Снапшот, созданный в п.4, удаляется и происходит слияние дельт с VHD.
9. Виртуальная машина восстанавливается из Save State и миграция завершается.
Заключение
На этом я, пожалуй, закончу. Мы посмотрели, что такое Quick Storage Migration и увидели, чем это отличается от аналогичной технологии у VMware. Надеюсь, что моя статья была вам интересна.
P.S. Цикл статей про Memory overcommit и динамическую память, к сожалению, пришлось прервать по независящим от меня причинам. Надеюсь, удастся продолжить в конце месяца. Благодарю за понимание.