▶️
Transfer 2.0 — как мы перестали бояться и полюбили миграции облачных серверовПредставьте: виртуальная машина клиента. Принимает запросы, пишет в базу, держит кэш, меняет данные на диске. А теперь её нужно перевезти на другую физическую ноду так, чтобы клиент ничего не заметил.
Звучит просто — пока не вспомнишь про память, снапшоты, сетевые настройки, форматы хранилищ, вендоров CPU и состояния в БД. Любая мелочь — и вместо автоматики ручная операция с окном обслуживания и нервным инженером в три часа ночи.
Мы переписали модуль миграции VDS так, чтобы все эти детали стали частью единого алгоритма.
В статье тимлид нашей инфраструктурной Core-команды разбирает, как мы сделали живые миграции на libvirt: зачем оставили rsync, почему для активных дисков перешли на NBD и как выбираем между RDMA и TCP. А ещё — про флаги, которые отвечают за скорость и надежность переноса.
Будет полезно инженерам и тем, кто хочет заглянуть под капот нашего облака.
Как вам тема живых миграций:
😎 — нужно больше таких статей
👀 — почитаю на досуге
🍓 — слишком хардкорно