Облако — это сервис, предоставляющий доступ к определенному набору ресурсов, которые можно дистанционно задействовать под конкретные задачи. Различают следующие виды облачных услуг: IaaS (Infrastructure as a Service) — инфраструктура как услуга, PaaS (Platform as a Service) — платформа как услуга, и SaaS (Software as a Service) — программное обеспечение как услуга. Большинство крупных компаний уже пользуются ими для своих нужд, постепенно перенося бизнес-процессы в облака. Давайте рассмотрим процесс миграции в облако на примере услуги IaaS.
Планирование миграции
Первое, что необходимо сделать после принятия решения о миграции — оценить мощность и инфраструктуру, которые вам потребуются. Для этого составьте список сервисов, которые необходимо перенести, и узнайте какие вычислительные мощности понадобятся для работы каждого из них. Мы советуем оценивать мощности с небольшим запасом.
Затем определите каким образом вы будете переносить данные и конвертировать виртуальные машины (если они есть) в формат гипервизора в облаке. Далее, в зависимости от средств миграции, запланируйте удобное время перемещения сервисов. Учитывайте, что проще всего переносить те сервисы, которые допускают остановку на несколько часов. Тяжелее, если на время миграции необходима полная доступность сервиса.
Важен и порядок миграции. Бывает так, что один из сервисов нужен для работы другой службы. Поэтому предварительно составьте схемы зависимостей сервисов между собой.
Также при переносе сервисов с железных платформ в облако часто требуется делать апгрейд операционных систем исходных серверов, и на это тоже нужно время. Учитывайте это при планировании.
И не забывайте, что есть системы, которые не стоит переносить в облако:
- Программы, для работы которых требуется физическое оборудование.
- Ключи электронной защиты, т.к. оборудование, используемое для защиты от несанкционированного копирования, невозможно виртуализовать. Как вариант, можно просто перейти на электронный ключ.
- Системы, которым требуется очень высокая производительность.
- Приложения и устройства, которые грузят оперативную память, жесткий диск, процессор и видеокарту.
- Программное обеспечение с лицензионными ограничениями на виртуализацию.
- Некоторые продукты, в лицензионных соглашениях которых сказано, что их запрещено использовать в виртуальной среде.
- Важные для организации сервисы без предварительного тестирования.
- IT-системы, требующие повышенной безопасности.
- Виртуализацию любой системы, содержащую конфиденциальные данные, которые могут представлять угрозу IT-безопасности.
Виды миграции
При переносе IT-инфраструктуры в облако, приложения, сервисы и данные можно переносить частично, службу за службой, или полностью. Поэтому выделяют частичную и полную миграцию.
Частичная миграция
Частичную миграцию обычно выбирают крупные компании с большим количеством сервисов и разветвленной инфраструктурой. Сначала переносятся некритичные сервисы (чаще всего это тестовые среды и виртуальные машины пользователей), а после них и все остальное.
Полная миграция
Полная миграция — это перенос всей инфраструктуры за несколько дней. Такой способ обычно выбирает малый и средний бизнес, IT-структура которого достаточно проста.
Миграция физических серверов в виртуальные
Физические серверы можно превратить в виртуальные при помощи различных специализированных инструментов:
- команды dd в Linux;
- программы Clonezilla, которая загружается с CD или USB;
- программа disk2vhd в Windows;
- программы VMware Converter Standalone или StarWind V2V Converter;
- специализированных коммерческих продуктов.
Миграция из одного гипервизора в другой
Для конвертирования виртуальной машины из формата Hyper-V в формат VMware можно воспользоваться программой VMware vCenter Converter Standalone, но ее можно применять когда есть канал связи между гипервизором в облаке и конвертируемой виртуальной машиной. Если такого канала нет, можно использовать сценарий PowerShell HypervOVAConverter.
Чтобы перенести виртуальную машину из VMware Workstation, VMware Fusion или из имеющейся виртуальной инфраструктуры на основе VMware vShere или ESXi, можно воспользоваться функцией экспорта виртуальной машины в OVF-файл. OVF (Open Virtualization Format) — это стандарт для хранения и распространения виртуальных машин. А формат OVA является TAR-архивом каталога с пакетом OVF.
Требования к OVF/OVA-файлам:
- Тип дисков SCSI.
- Hardware-version не выше 11.
Перед экспортом необходимо убедиться, что виртуальная машина не зашифрована и выключена. При миграции из Proxmox можно использовать утилиту quemu-img для получения образа диска в формате VMDK. Эта же утилита поможет при переходе с гипервизоров KVM или Xen.
Миграция из одного облака в другое
Чтобы перенести виртуальную машину из Amazon EC2, необходимо создать корзину (bucket) Amazon S3 для хранения экспортируемой виртуальной машины и предоставить разрешение VM Import/Export на доступ к корзине. Затем можно воспользоваться командой ec2-create-instance-export-task из комплекта утилит Amazon EC2 CLI.
Чтобы перенести виртуальную машину из Microsoft Azure необходимо установить Azure PowerShell на саму виртуальную машину или на другую машину с операционной системой Windows. Самый простой способ выгрузки виртуальной машины из облака Microsoft Azure — использование команды Save-AzureVhd в Asure PowerShell. После сохранения VHD-файла его требуется преобразовать в формат VMDK. Для этого можно воспользоваться инструментом StarWind V2V Converter.
Файлы с виртуальными машинами необходимо перенести в облако безопасным способом: с помощью VPN-канала или выделенных линий к дата-центру провайдера облачных услуг. Если провайдер находится недалеко, а необходимо достаточно быстро отправить очень много данных, можно передать провайдеру жесткие диски с образами или данными лично.
Описанные способы миграции подразумевают выключение виртуальных машин и перенос образа с виртуальной машиной в облако провайдера IaaS-услуги.
Онлайн-миграция
Если работающий сервис невозможно остановить, можно воспользоваться онлайн-миграцией. Многие переносимые в облако приложения имеют собственные средства репликации. Например, отличная репликация есть у серверов баз данных. Также сравнительно просто можно перенести почтовый сервер Microsoft Exchange, но его перенос имеет свои особенности. Перенос Exchange в облако происходит следующим образом:
- устанавливается новый экземпляр в облаке;
- переносятся ящики;
- переносятся общие папки (если они есть);
- переключаются коннекторы;
- удаляется старый сервер.
Если общая адресная книга распространяется через общие папки, необходимо отключить распространение общих папок. В случае, когда база общих папок ассоциирована с какой-либо базой данных почтовых ящиков, необходимо перенастроить ее на другую базу общих папок.
После этих действий при помощи командлета Get-PublicFolderStatistics необходимо проверить содержимое общих папок на обоих серверах:
- Get-PublicFolderStatistics -Server OLD_SERVER;
- Get-PublicFolderStatistics -Server NEW_SERVER;
- OLD_SERVER — это сервер, который мы переносим в облако;
- NEW_SERVER — это новый облачный сервер.
Если на сервере OLD_SERVER содержатся реплики, их необходимо перенести специальным скриптом:
C:Program FilesMicrosoftExchange ServerV14>.ScriptsMoveAllReplicas.ps1 -Server OLD_SERVER -NewServer NEW_SERVER
После переноса реплик необходимо перенести с сервера OLD_SERVER базу общих папок. Серверы, у которых нет встроенных средств репликации, можно перенести целиком при помощи утилиты VMware vCenter Converter Standalone.
На момент написания статьи без остановки самого сервера можно переносить следующие виртуальные и физические машины:
- физический сервер Windows;
- физический сервер Linux;
- виртуальные машины на сервере виртуальных машин VMware Sphere/ESXi;
- виртуальные машины на сервере виртуальных машин Hyper-V Server;
- виртуальные машины на сервере виртуальных машин Red Hat KVM или RHEL XEN.
Если ваша виртуальная инфраструктура находится под управлением VMware vSphere и провайдер облачных услуг также использует продукты VMware и поддерживает vCloud Connector, то миграцию в облако можно осуществить при помощи vCloud Connector.
При этом на стороне клиента устанавливаются два компонента этого продукта: vCloud Connector Server и vCloud Connector Node.
vCloud Connector Server — это сервер управления, который координирует активность vCloud Connector и контролирует узлы vCloud Connector Nodes. Как правило, требуется наличие одного vCloud Connector Server для связки нескольких облачных инфраструктур.
vCloud Connector Node — это инструмент, с помощью которого выполняется обработка перенаправляемого потока данных из одного облака в другое. Кроме того, с помощью него происходит подключение к конечной инфраструктуре. Поэтому данный инструмент обязательно устанавливается и на стороне клиента и на стороне провайдера.
Настройка vCloud Connector на стороне клиента требует регистрации vCloud Connector Node в облаке провайдера, поскольку без такой связки будет невозможна дальнейшая конфигурация. После регистрации необходимо перейти в панель управления облаками, в которой можно подключить зарегистрированную виртуальную инфраструктуру и выполнить миграцию.
Бесплатный инструмент VMware vCloud Extender, который входит в состав vCloud Director 9.0, упрощает задачи миграции между разными облачными системами.
При использовании VMware vCloud Extender на стороне клиента устанавливается три компонента:
- Extender Connector appliance — соединяется с Extender Manager на стороне провайдера IaaS.
- Replicator — реплицирует информацию о состоянии виртуальных машин на vCloud Director.
- NSX Edge Appliance — компонент, который требуется для онлайн-миграции виртуальных машин. Предоставляет VPN-соединение между клиентом и провайдером.