Поймай меня, если сможешь [часть 2]: как мигрировать в облако Huawei Cloud Stack (и другие)

от автора

Привет, постоянные и не очень читатели!

Недавно на Хабре вышел лонгрид «Поймай меня, если сможешь [часть 1]: облако на Huawei Cloud Stack — что это, как используют и лицензирование», в котором я рассказал про платформу Huawei Cloud Stack (HCS) — как она устроена и почему крупные компании вообще смотрят в её сторону, лицензирование и многое другое.

Что ещё было:

Там же было немного про архитектуру и сценарии использования платформы в продакшене: пулы ресурсов, мультиоблачность, варианты отказоустойчивости, высокой доступности и аварийного восстановления, edge-инфраструктура (периферийная), различно ПО, вроде ManageOne (центр управления ЦОДом и облачными ресурсами), и прочие радости корпоративной жизни с Huawei Cloud Stack. В общем, есть что почитать.

Но платформа HCS больше, чем сумма её частей: первый лонгрид (при всех моих стараниях) всё равно получился лишь аннотацией к Сильмариллиону. Той теории достаточно для поверхностного знакомства, теперь же обсудим подготовку к миграции: аудит инфраструктуры, разберёмся с RPO и RTO, посмотрим на совместимость виртуальных машин и образов, а самое главное — обсудим стратегии миграции по методологии AWS, которые можно применить не только к HCS, но и к любому другому облаку.

Дисклеймер! Информации по сабжу очень много, поэтому я собрал только самую важную (по моему мнению) информацию и разбил её на два три лонгрида.

В первой части, доступной по ссылке, я рассказал, что такое Huawei Cloud Stack, почему его выбирают, как применяют в проде (основные сценарии) и как там устроено лицензирование.

Во второй части (то бишь в этой) — про подготовку к миграции рабочих нагрузок на Huawei Cloud Stack. Часть информации, особенно про стратегии миграции, будет полезна при в любых других облаках, а не только для HCS.

В третьей части — практические моменты, как подготовить сеть в HCS, перенести физические серверы и виртуальные машины, организовать миграцию данных и баз данных, а затем — пара слов про тестирование и валидацию.

Если что-то интересующее вас в материал не попало, то задавайте вопросы в комментариях. Я или хабравчане, которые уже работали с Huawei Cloud Stack, дадим ответ. А в крайнем случае всегда можно изучить официальную документацию — у Huawei она более чем подробная.

Миграция на Huawei Cloud Stack

В целом все актуальные облачные платформы, будь то платные или опенсорс, частные, гибридные или публичные, умеют одно и то же: пулы ресурсов, виртуалки, сети, SDS, контейнеры, высокая доступность, аварийное восстановление и т.д. И, разумеется, они предоставляют ресурсы и сервисы по запросу в рамках своих границ, а потому облако — это в неком роде XaaS (Everything-as-a-Service aka всё как услуга). На даже при схожем конечном результате под капотом у разных облаков и конкретных IT-инфраструктур всё по-своему.

Это значит, что миграция между экосистемами облаков — это всегда столкновение двух океанов: разных моделей управления и подходов к автоматизации, сетевых архитектур, гипервизоров, форматов, систем хранения и различного ПО.

Где-то миграция пройдёт легко, пока админ будет попивать сок у себя на квартале. А где-то её вообще нет смысла проводить — дешевле, надёжнее и быстрее поднять сервисы с нуля, чем переносить легаси-хвосты из сомнительных или устаревших решений. Отдельное удовольствие админов и всех причастных — миграция высоконагруженных сред и сред, где простой (не антоним к сложному, а вынужденная остановка работы) даже на несколько минут обходится организациям неприлично дорого: банкам, телекому, промышленности, госам или облачным провайдерам и различным гиперскейлерам. Всё это — целевая аудитория частных/гибридных облаков в целом и Huawei Cloud Stack в частности.

Huawei, конечно, пишет в маркетинговых буклетах и документации про бесшовную миграцию, но это касается лишь редких частных случаев. Глобальная миграция всего и вся — это вопрос критичный и крайне сложный. На один лишь аудит зависимостей могут уйти месяцы, а ещё нужна подготовка, планирование, тесты, закупка решений и инструментов, найм/обучение персонала и много другое.

Ремарка! 

В этой статье я не буду затрагивать ТЭО (технико-экономическое обоснование) таких проектов. Тема миграции и без этого огромна, а если ещё и экономику добавить, то можно сразу методичку страниц на 100-200 расписывать. Также в статье не будет расчётов совокупной стоимости владения (TCO) облака на базе HCS.

Я буду исходить из того, что вы уже проделали домашнюю работу и расписали предпроектный документ, который доказывает финансовую выгоду и целесообразность миграции в облако. А я помогу вам с частью про техническую реализацию такого проекта.

P.S. Удачи в защите проекта 🙂

То, насколько сложно или гладко всё пройдет, зависит от качества предварительного аудита.

Давайте этим и займёмся.

1. Аудит и сбор данных — ваше всё

Без аудита миграцию начинать нельзя — и провести его нужно по всей строгости регламентов IT-инфраструктуре и всему контуру администрирования.

Вам предстоит весёлая работа по инвентаризации всех виртуалок и аппаратных серверов, по описанию лицензий, сервисов и их зависимостей, сетевых конфигов и конфигов хранилищ, различных проблем и рисков. Вы должны четко знать, на каких локалках и подсетях работают сервисы, какие бэкапы уже настроены, какие версии ОС и приложений используют виртуалки, насколько длинный софтовый и аппаратный легаси-хвост у вашей инфраструктуры и с каких годов он тянется. Без этого не получится определить, какие сервисы можно перенести сразу (или нельзя в принципе), а какие позже — после адаптации.

А контур администрирования — это все системы, отвечающие за управление, мониторинг, резервное копирование, безопасность, аварийное восстановление и работу инфраструктуры: Active Directory, DNS, DHCP, PKI, системы мониторинга, логирования, наблюдаемости, SIEM, CMDB, резервное копирование, сервисы автоматизации, средства управления виртуализацией, системы удалённого низкоуровневого доступа к серверам (iLOiDRACIMM, IPMI), а также различные внутренние порталы, скрипты и интеграции. Вы же не хотите получить несовместимости и коллизии?

Другой момент — если раньше у вас не было требований по RPO (Recovery Point Objective, сколько данных можно потерять) и RTO (Recovery Time Objective, сколько времени допускается на восстановление) хотя бы для критичных сервисов, то самое время этим заняться, так как от них напрямую зависят сроки и методы миграции.

ПРИМЕР! 

Бывает инкрементальная миграция с репликацией данных для околонулевого RPO (Recovery Point Objective) и минимального RTO (Recovery Time Objective). Допустим, у компании есть производственная база данных объёмом 20 ТБ. Её копируют в Huawei Cloud Stack несколько дней, а пока идёт перенос, пользователи продолжают работать в штатном режиме. Все новые изменения — транзакции, записи и файлы — непрерывно реплицируются в целевую среду. Поэтому во время финального переключения остаётся синхронизировать лишь последние секунды или минуты изменений. Профит: потеря данных стремится к нулю, а простой сервиса не превысит пары минут.

Другой сценарий — миграция внутреннего файлового архива или тестовой среды разработки, где требований как таковых может и не быть (сделайте когда-нибудь, главное — не забудьте). Например, компания переносит в Huawei Cloud Stack старый архив проектной документации объёмом 5 ТБ. В таком сценарии не нужно усложнять перенос непрерывной репликацией и дорогими механизмами переключения: данные можно перенести элементарным пакетным копированием — дёшево и сердито.

То есть перед миграцией надо оценить скорость изменения данных. От этого зависит стратегия (холодная, горячая или живая миграция) и требования к сети.

После этого можно разбить перенос системы на этапы — их называют миграционными волнами. Очевидно, что начинать надо не с ERP или CRM. Сначала разворачивают базовую инфраструктуру в целевой среде (сети, каналы, VPN, бэкапирование, площадку виртуализации или облако и т.д.), а уже потом переносят изолированные (или наименее зависимые) и самые простые системы, чтобы проверить сети, процессы миграции, резервное копирование: у команды будет время протестировать новую платформу, внести правки или, если надо, откатить изменения. Только после этого переходят к среднекритичным сервисам. И если всё хорошо — к критичным бизнес-системам, вроде ERP, CRM и т.п.

Шаги аудита перед миграцией в облако:

  1. Проводим инвентаризацию физической инфраструктуры + контура администрирования;

  2. Составляем карту зависимостей;

  3. Определяем RPO/RTO (хотя бы для критичных систем);

  4. Определяем этапы миграции (миграционные волны);

  5. Разрабатываем план отката с тестами (он же rollback);

  6. Оцениваем совместимость старого с новым (опционально — про это дальше).

И помните: для любого переключения нужно заранее подготовить и протестировать план отката на исходную платформу (это не на время тестов, а на первое время после миграции, когда уже весь прод работает в новом облаке). Даже если вы продумали и протестировали миграцию 10 раз (и тестовая среда работала без сбоев несколько недель). Когда речь о бизнес-процессах, простоях, финансовых и репутационных потерях, нужно учитывать закон подлости Мёрфи, который гласит: если что-то может пойти не так, то оно пойдёт не так. В аудит это не входит — скорее в управление рисками.

В конце аудита у вас должна получится карта зависимостей (её лучше нарисовать), требования по RPO/RTO, очередность миграционных волн. Я приведу таблицу для примера, но ваш документ должен получится ещё подробнее.

Система / сервис

Где работает сейчас

Критичность

RPO / RTO

Зависимости

Проблемы и риски

План/стратегия миграции (расскажу про это отдельно дальше)

Active Directory

VMware ESXi cluster A

Критичная

RPO: 0-15 мин / RTO: 30 мин

DNS, DHCP, файловые сервисы

Старые Windows Server 2012, легаси GPO (Group Policy Object)

Репликация, перенос в первую волну

1С + MSSQL

VMware + SAN FC

Критичная

RPO: 15 мин / RTO: 1 час

SQL Cluster, резервные копии, лицензии HASP

Жёсткая привязка к сетевым путям и FC-хранилищу

Пилотный перенос, тесты производительности

CRM-система

Hyper-V

Высокая

RPO: 1 час / RTO: 2 часа

Почта, LDAP, API телефония

Неизвестные зависимости со старыми API

Перенос после аудита интеграций

Почтовый сервер

VMware

Критичная

RPO: 0 / RTO: 15 мин

AD, DNS, антиспам-шлюзы

Требуется непрерывная синхронизация

Репликация + поэтапная миграция

Dev/Test контур

Локальные серверы

Низкая

RPO: 24 часа / RTO: 1 день

GitLab, CI/CD

Нет документации

Перенос без приоритета

Сервер видеонаблюдения

Физический сервер

Средняя

RPO не критичен / RTO: 4 часа

NAS, VLAN видеокамер

Старые драйверы и PCIe-карты

Можно оставить локально

Система резервного копирования

VMware

Критичная

RPO: 0 / RTO: 1 час

Все ключевые сервисы

Несовместимость резервного прокси с новой средой

Перенос до основных сервисов

ERP

VMware + Oracle

Критичная

RPO: 15 мин / RTO: 1 час

Oracle DB, API складов, LDAP

Не поддерживается текущая версия ОС

Сначала обновление, потом миграция

Тут-то вы и увидите, что одна маленькая виртуалка на Windows Server 2008, развёрнутая бывшим админом в лохматых годах, отвечает за авторизацию половины сервисов компании, а старый резервный прокси вообще не умеет работать с новой платформой. Поэтому аудит перед миграцией в Huawei Cloud Stack (да и в любое другое облако) — штука архиважная.

ВАЖНО! Если вы уже работаете с виртуализацией (локально или в облаке: VMware, Hyper-V, Proxmox, OpenStack и т.д.), то в аудит должна входить оценка совместимости виртуальных машин, образов и приложений с целевой платформой, в нашем случае — с Huawei Cloud Stack.

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

1.1 Категоризация и оценка совместимости виртуальных дисков и конфигураций виртуалок (если у вас нет виртуализации, переходите сразу ко 2 пункту)

Чтобы мигрировать с VMware или Hyper-V на Huawei Cloud Stack, нужно привести виртуальные диски и конфигурации виртуалок к форматам целевой платформы. Для этого в HCS есть служба управления образами IMS (Image Management Service), через которую можно импортировать внешние образы, а следом сделать из них шаблонные private image для массового развёртывания сервисов ECS (Elastic Cloud Server). Дальше эти шаблоны уже подключаются к Auto Scaling, DR-сценариям и автоматизации инфраструктуры.

Ремарка! Private image — это пользовательский шаблон виртуальной машины, доступный только конкретному проекту, тенанту (изолированное логическое пространство внутри облака) или организации. Что-то вроде золотого образа преднастроенной виртуалки, из которого потом можно за минуты развернуть сотни серверов или DR-инфраструктуру.

Итак, VMware и ESXi использует VMDK формат файлов виртуального жесткого диска, а гипервизор Hyper-V — VHD/VHDX. Ну а поскольку HCS основан на архитектуре виртуализации OpenStack/KVM (ныне сильно модифицированной), то основными форматами в нём исторически были QCOW2 и RAW. В ранних версиях HCS образы из VMware или Hyper-V обычно приходилось сначала конвертировать руками, а уже потом импортировать в IMS/ECS.

Ремарка! Ранние версии HCS плохо дружили с прямым импортом образов из этих платформ. Для ручной конвертации виртуальных дисков VHD или VHDX в RAW/QCOW2 и VMDK в QCOW2 использовали утилиту qemu-img — она и сейчас подходит для любого KVM-облака: Huawei Cloud Stack, OpenStack или Yandex Cloud.

Но в крупных проектах редко занимаются ручной конвертацией образов. Чаще, если установка с чистого листа невозможна и нужен именно перенос — используют миграционные инструменты, которые автоматически считывают данные с исходной платформы, либо выполняют перенос через резервные копии и последующее восстановление в целевой среде (про это ещё будет дальше) — одинаково работает как для виртуалок, так и для физических серверов. А переносить можно не только содержимое дисков, но и часть конфигураций приложений, что снижает риск ошибок ручной конвертации.

Особенно весело было со старыми Windows Server 2008/2012. VMware использовала свои SCSI-контроллеры и драйверы паравиртуализации, а KVM/OpenStack хотел VirtIO или IDE/SATA. Если внутри гостевой ОС нужного драйвера не было, то виртуалка просто не видела системный диск после переноса. А это что? Правильно — гарантированный синий экран смерти.

Оффтоп: старая добрая игра в счастливом детстве без интернета — сколько файлов из каталога Windows можно удалить до синего экрана.

Оффтоп: старая добрая игра в счастливом детстве без интернета — сколько файлов из каталога Windows можно удалить до синего экрана.

Миграция на современные версии HCS стала в разы удобнее. Особенно после развития IMS, появления Rainbow (про него будет позже), HCC, автоматизированных инструментов и перехода многих инсталляций на OBS (Object Storage Service).

Сейчас Huawei Cloud Stack поддерживает гораздо больше форматов внешних образов.

Тип хранилища

Поддерживаемые форматы

Swift

QCOW2, ZVHD, OVF

OBS

VMDK, VHD, QCOW2, ZVHD, ZVHD2, OVF

Учтите, что ZVHD (а также ZVHD2) — это проприетарные форматы образов виртуальных жестких дисков от Huawei. И вдобавок они не взаимозаменяемы при импорте. ZVHD не поддерживает ленивую загрузку (lazy loading), поэтому для быстрого импорта больших файлов (до 1 ТБ) нужен ZVHD2. Если файл в формате ZVHD и больше 128 ГБ — его всё равно придётся конвертировать в ZVHD2 или RAW с bitmap.

В общем, жизнь новый HCS (8.x) облегчил, но форматы виртуальных дисков — это полбеды. Вам всё ещё нужно учитывать версии гостевых ОС, специфическое ПО (всякие антивирусы и EDR-агенты), поддержку виртуальных адаптеров (например, отсутствие драйверов VirtIO в старых Windows), формат загрузки (UEFI/BIOS), BitLocker и прочее шифрование, OEM-драйверы, привязку лицензий к железу, старые VMware Tools/Hyper-V Integration Services, разметку GPT/MBR, наличие VirtIO-драйверов и другое.

ВАЖНО! Перед миграцией нужно проверить поддержку операционных систем, СУБД, middleware, систем резервного копирования, мониторинга и безопасности в целевой среде.

Важно (для вашего бюджета) проверить и лицензии. В первой части я рассказывал, что HCS поддерживает BYOL (Bring Your Own License) для части сценариев и сервисов. То есть вы можете перенести и использовать купленные лицензии (например, базы данных, операционные системы, СУБД, и сторонний софт) на выделенные физические серверы или виртуальные инстансы в контуре облака.

Отдельно проверяйте сетевые зависимости, требования к производительности и интеграциям с Active Directory, LDAP, DNS, PKI и другими корпоративными сервисами. Дело в том, что виртуалка может нормально запускаться в новой среде, но бизнес-приложение внутри неё работать не будет из-за старой/несовместимой версии ОС, нехватки драйверов, перелопаченной сетевой архитектуры или вендорских ограничений. Например, Huawei не проверяет ваши внутренние лицензии, но вот какая-нибудь Oracle может запретить перенос лицензий в облако HCS.

И Huawei отдельно напоминает, что образ не должен быть зашифрован; загрузочный и системный разделы должны лежать (физически или логически) на одном диске; базовая ОС должна поддерживать полную аппаратную виртуализацию; OEM-образы сторонних производителей могут не работать в принципе, гетерогенные хранилища (объединение накопителей с радикально разными характеристиками или интерфейсами) не поддерживаются.

А кто говорил, что тащить легаси добро в другое облако легко? Но раньше, с ручной конвертацией образов и импортом в IMS, было ещё сложнее. Перекрестились, свечку поставили, идём дальше.

2. Стратегии миграции в облако — у вас должна быть какая-то тактика

RTO и PRO подскажут вам, как лучше выполнять миграцию: с остановкой сервиса, с минимальным простоем или практически без него.

  • Cold migration (холодная миграция) — сервис полностью останавливается на время переноса;

  • Warm migration (горячая миграция) — данные предварительно реплицируются, а на переключение требуется короткое окно простоя;

  • Live migration (живая миграция) — перенос выполняется практически незаметно для пользователей.

Эти сценарии идеально бы дополнить отраслевым стандартом 6R (а лучше 7R). Например, одну систему можно мигрировать по стратегии Rehosting (дальше расскажу) через cold migration, а другую — по той же стратегии, но уже через warm migration с репликацией и коротким окном переключения.

6R — это модель миграции IT-инфраструктур, систем и приложений в облако, которую разработала AWS (Amazon Web Services) на основе пяти принципов от Gartner (ведущая мировая исследовательская и консалтинговая компания). У AWS даже проприетарный фреймворк есть — AWS 6Rs, который помогает компании оценить портфель своего ПО и выбрать лучший путь переноса каждой отдельной системы.

Итак, что за Rehosting и 6R такие?

Стратегия

Суть

Подход

Пример миграции

Rehosting (1R)

Перенос без изменений (Lift and Shift).

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

Перенос виртуальных машин из VMware или Hyper-V в сервис ECS (Elastic Cloud Server) Huawei Cloud Stack с сохранением существующей архитектуры приложения.

Replatforming (2R)

Перенос с минимальной модернизацией (Lift, Tinker, and Shift).

Приложение адаптируется к отдельным облачным сервисам, но без серьёзной переработки архитектуры и бизнес-логики.

Перенос приложения на ECS с переводом базы данных на управляемый сервис Huawei Cloud Stack или перенос данных в объектное хранилище OBS.

Repurchasing (3R)

Замена решения на SaaS-сервис (Drop and Shop).

Существующее приложение выводится из эксплуатации и заменяется готовым облачным сервисом.

Отказ от локального почтового сервера Exchange в пользу корпоративного SaaS-сервиса или переход с собственной CRM на облачную CRM-платформу.

Refactoring / Re-architecting (4R)

Переработка архитектуры приложения.

Приложение существенно модернизируется для использования облачно-ориентированной архитектуры и сервисов платформы.

Преобразование монолитного приложения в набор микросервисов, развёрнутых в Cloud Container Engine (CCE) Kubernetes-кластере Huawei Cloud Stack.

Retire (5R)

Отказ от ненужного решения.

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

Во время аудита инфраструктуры выводится из эксплуатации старая система отчётности или архивный портал, которыми больше никто не пользуется.

Retain (6R)

Оставляем как есть.

Приложение остаётся в старой инфраструктуре и не участвует в миграции из-за технических, финансовых или комплаенс-политик. А иногда просто берут время на подумать (что с этим делать вообще).

Критичная производственная система или АСУ ТП продолжает работать на локальных серверах предприятия, а остальные сервисы мигрируют в HCS.

А мы ещё и седьмой вариант прикрутим (7R) — Relocate, он же быстрый перенос из кофейни на Патриарших в кофейню в Тбилиси платформы виртуализации целиком. Виртуалки/контейнеры в таком сценарии перемещают без изменений и переустановки. Например, массовая миграция виртуальных машин из VMware vSphere в среду Huawei Cloud Stack с использованием инструментов миграции и конвертации образов. Тот самый частный случай с, цитирую, «бесшовной миграцией».

Когда разрешили перенести любимые виртуалки на новую платформу

Когда разрешили перенести любимые виртуалки на новую платформу

Седьмое и другие правила отлично накладывается на таблицу, что я приводил — выше в разделе про аудит. Так что в правом столбце к плану миграции можно добавить и стратегию (например, 6R, если пронумеруете и не забудете, что есть что). Или выделить в отдельный столбец — по желанию.

Система / сервис

Где работает сейчас

Критичность

RPO / RTO

Зависимости

Проблемы и риски

План миграции

Сервер видеонаблюдения

Физический сервер

Средняя

RPO не критичен / RTO: 4 часа

NAS, VLAN видеокамер

Старые драйверы и PCIe-карты

Можно оставить локально — Retain (или 6R)

ERP

VMware + Oracle

Критичная

RPO: 15 мин / RTO: 1 час

Oracle DB, API складов, LDAP

Не поддерживается текущая версия ОС

Сначала обновление, потом миграция — Replatforming (или 2R)

Выбирайте одну из семи стратегий для каждого сервиса с учётом бизнес-требований. Их можно (и нужно) совмещать, исходя из RPO и RTO каждого — в этом и есть смысл. Например, часть виртуалок перемещают по стратегии Rehosting, бизнес-критичные приложения модернизируют через стратегии Replatforming или Refactoring, от древних систем отказываются (Retire), а отдельные сервисы оставляют как есть на локальных серверах (Retain).

Кстати, если вы ещё не занимались ТЭО и пока только читаете статьи, изучаете платформу, то после аудита, выбора стратегий, оценки и категоризации, самое время заняться этим.

Краткий подытог

Миграция в Huawei Cloud Stack не ограничивается переносом виртуальных машин. Если вы уже работаете с PaaS облачными сервисами, то часть систем можно вообще не переносить.

Например, базы данных можно перенести из собственных виртуальных машин в управляемые сервисы БД Huawei Cloud Stack, а контейнеризированные приложения — в Kubernetes-кластеры с помощью сервиса Cloud Container Engine (CCE). Это уже не просто перенос образов виртуальных машин, а миграция данных, конфигураций и приложений между сервисами разных платформ.

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

Спасибо, что дочитали до конца и ожидайте в ближайшее время третью статью из цикла.

ссылка на оригинал статьи https://habr.com/ru/articles/1048042/