Назад | Перейти на главную страницу

Как перенести Amazon EC2 Windows AMI (или инстансы) из одного региона в другой?

У меня есть Windows EC2 AMI и экземпляр в Вирджинии, но я хочу перенести его в Орегон. Я предполагаю, что миграция экземпляра может быть невозможна, поскольку он жив, но, по крайней мере, поможет перенос тома AMI + EBS!

Кроме того, я знаю, что об этом спрашивали раньше, но на конец 2011 года ни один из ответов не применим.

Старое решение 1,2 @ Можно ли переместить AMI AWS EC2 из одного региона в другой, и если да, то как?. Проблема: Для решения 1 требуется ElastiFox, который больше не поддерживается (не работает ни в одном Firefox с версии 3.6). Решение 2 только для Linux

Старое решение3 @ Миграция Amazon EC2 из одного региона в другой. Проблема: Требуется ElastiFox, который теперь не поддерживается / несовместим

«Частичное» решение4 @ http://blog.taggesell.de/index.php?/archives/85-Amazon-EC2-How-to-migrate-an-EBS-backed-image-from-US-to-EU-or-wherever.html. Проблема: Это работает «вне» системы AWS, создавая изображение и затем отправляя его в виде потока. Также неясно, как поток защищен от повреждения (например, от потери пакетов и т. Д.). Редактировать: netcat работает через TCP / IP, поэтому это надежный транспорт. По-прежнему хорошо, если Windows проверяет диск при загрузке.

Хммм, ответов нет, поэтому я попробовал вариант решения 4. Исходное решение как-то не удалось из-за

  1. неправильное использование netcat
  2. изменения в новых ядрах Linux в том, как они относятся к томам Windows

Итак, я задокументирую, что сработало для меня.

Настройка

Мы собираемся использовать Linux для побайтного копирования тома Windows по сети. На самом деле это очень просто, я только что дал подробные инструкции в помощь новичкам.

1. Сделайте резервную копию вашего тома Windows EBS в исходном регионе.

  1. Выключите свой экземпляр Windows EC2.
  2. Отсоединить том. раздел томов -> том Windows (щелкните правой кнопкой мыши) -> Отсоединить том.
  3. Создать снимок. Щелкните правой кнопкой мыши еще раз -> создать снимок.
  4. Обратите внимание на «зону» объема (например, «us-east-1b») где-нибудь. Вам это понадобится в ближайшее время

2. Создайте экземпляр Linux в исходном регионе, в той же зоне. Я использовал Ubuntu (ищите AMI "ubuntu / images"). Или перейдите к http://alestic.com/ и вы найдете ссылки на последние официальные образы Ubuntu AMI вверху. Я использовал AMI ami-20f97410 в качестве ссылки.

  1. Выберите тип экземпляра, t1.micro у меня сработал. Мой 32-битный экземпляр ubuntu 11.10 был на 40% CPU во время операции чтения с диска.
  2. Установите экземпляр в ОДНОЙ зоне как объем вашего окна (например, «us-east-1b»).
  3. Прикрепите том Windows к вашему экземпляру Linux (щелкните правой кнопкой мыши -> прикрепить -> выберите экземпляр Linux) к чему-то вроде / dev / sdf (в будущем веб-интерфейс может измениться на / dev / xvdf). Если вы не видите свой экземпляр Linux, скорее всего, том Windows и экземпляр Linux находятся в разных «зонах» (например, «us-east-1a» против «us-east-1b»).
  4. Убедитесь, что порт 9999 открыт в группах безопасности.
  5. Загрузите экземпляр Linux
  6. делать НЕ смонтировать том Windows (мы хотим, чтобы к «машине» был подключен только «жесткий диск» Windows, а НЕ ОС Linux для монтирования файловой системы, присутствующей внутри устройства «жесткий диск»)
  7. установить cpipe через sudo apt-get install cpipe

3. Создайте пустой том EBS в регионе назначения.

  1. Целевой регион (вверху слева) -> Тома -> Создать том.
  2. Я использовал тот же размер (30 ГБ), но это шанс увеличить объем.
  3. Запишите зону (например, us-west-2a). Убедитесь, что он находится в том же регионе, что и ваш экземпляр Windows EC2.

4. Создайте экземпляр Linux в целевом регионе, в той же зоне. Прочтите раздел выше (№2) об экземпляре Linux. Еще раз убедитесь, что зоны томов Linux и Windows совпадают в целевой зоне. Мой экземпляр t1.micro 32-битного «сервера» Ubuntu 11.10 загружал 80% ЦП во время этой операции записи на диск.

  1. Загрузите экземпляр.
  2. * НЕ ** монтируйте том Windows
  3. Присоедините пустой целевой том Windows к этому экземпляру Linux.

Начать процесс копирования

1. Место назначения Войдите в экземпляр Linux EC2 и введите

sudo sh -c 'netcat -p 9999 -l > /dev/xvdf'

2. Источник Войдите в экземпляр Linux EC2 и введите

sudo sh -c 'cpipe -vt -b 1024 < /dev/xvdf | netcat -q 1 dest-aws-ip-dns-address.com 9999'

нота : Более новые / текущие ядра будут использовать / dev / xvdf для тома Windows. Старые ядра называют его / dev / sdf.

заметка 2 netcat иногда имеет псевдоним nc, если вы используете другой дистрибутив Linux. cpipe просто дает ваш отзыв о прогрессе и ставках переводов. netcat работает через TCP / IP, поэтому он устойчив к отброшенным / поврежденным пакетам. Вы все равно захотите выполнить проверку диска Windows в месте назначения после завершения передачи.

3. Подождите Я получал ровные 3,00 МБ / с (мегабайты, а не мегабиты) во время этой операции от восточного до западного побережья. Мой образ 30 ГБ занял 2 часа 50 минут.

4. Создайте новый экземпляр Windows EC2. У нас есть том, но для загрузки чего-либо требуется экземпляр / машина EC2. Если вы выберете графический интерфейс консоли AWS, чтобы перейти к Volume-> Snapshot-> AMI, AWS неправильно создает Linux (?!?) ВМ, которая не загружается, потому что конфигурация EC2 теперь мусор. Мы работаем над этим

  1. Создайте новый экземпляр Windows EC2 в той же зоне, что и ваш том. Вы выберете стандартные образы Windows AMI, но выберете тот, который ближе всего к вашему фактическому объему Windows. Моим исходным образом был Windows 2003 R2, 32-битный, с поддержкой EBS, поэтому я также запустил (общий) Windows 2003 R2, 32-битный AMI с поддержкой EBS.
  2. Загрузите этот экземпляр полностью. Подтвердите, войдя в систему через RDP.
  3. Выключить этот экземпляр
  4. Отсоедините том EBS, созданный в # 1 непосредственно перед
  5. Прикрепите скопированный том EBS как / dev / sda1 (НЕ по умолчанию / dev / xvdf в диалоговом окне веб-интерфейса)
  6. Перезагрузка.
  7. Мера безопасности: Проверить полученный системный диск (chkdsk).
  8. Наслаждайтесь!

5. Очистка Помните, что вы сделали ТОЛЬКО следующее

  1. Перенесли том
  2. Воссоздан экземпляр EC2

Если вы прекратите вышеописанное, он исчезнет навсегда, AMI не сможет его перезапустить. Итак, я очень рекомендую

  1. Создайте AMI из текущего рабочего экземпляра (щелкните правой кнопкой мыши экземпляр -> создать образ AMI). Теперь это ваша новая контрольная точка «дня 0».
  2. Сделайте также снимок тома. Да, я знаю, что приведенное выше резервное копирование AMI помогает, но я храню резервные копии еженедельно, так что на следующей неделе у меня все равно будет справочник "дня 7". Плюс, поскольку снимки разностные, я сделал это сразу.

Вывод Это ДЛИННАЯ рецензия, но я не оставил подробностей для новичков. Вышеупомянутое сработало на 100% для меня, мигрирующего с Востока США (Вирджиния) на Запад США (Орегон). Я нахожусь в Калифорнии и сделал это, чтобы приблизить виртуальную машину ко мне, не затрагивая более высокие расходы северной Калифорнии.