Импорт Linux-машины в облако Azure
Материал из Xgu.ru
Импорт Linux-машины в облако Azure — процесс переноса существующей Linux-системы в облако IaaS-типа Microsoft Azure. Кроме собственно подготовки образа существующей системы включает в себя дополнительные шаги, такие как инсталляцию и настройку агента Azure.
Аналогичным образом (за исключением специфических операций типа инсталляции агента, которая требуется не везде, а где требуется выполняется чуть-чуть иначе) выполняется миграция и в другие облачные системы IaaS-типа.
Материалы этой страницы дополнены специально подготовленным видео. Для того чтобы лучше разобраться с представленными здесь материалами, обязательно его посмотрите. Суммарная длительность видео: ~1 час 30 минут. |
Содержание |
[править] Подробности
Создаём свежий образ гигабайтного размера для примера:
dd if=/dev/zero of=image1 count=1 seek=999 bs=1024k losetup /dev/loop0 image1 fdisk /dev/loop0 ... mkfs.ext3 /dev/mapper/loop0p1 mount /dev/mapper/loop0p1 /mnt/ debootstrap wheezy /mnt http://mirror.hetzner.de/debian/packages mount --bind /dev /mnt/dev/ mount --bind /proc /mnt/proc/ mount --bind /proc /mnt/sys/ grub-install --grub-mkdevicemap=/mnt/boot/grub/device.map --no-floppy --root /mnt /dev/loop0 dumpe2fs /dev/mapper/loop0p1 | grep UUID vim /mnt/boot/grub/grub.cfg chroot /mnt ## inside chroot: # passwd
Доточка системы для использования в Azure.
Устанавливаем зависимости:
apt-get install git-core python sudo ssh parted
Выполняем инсталляцию агента:
cd /usr/src/ git clone https://github.com/Azure/WALinuxAgent.git cd WALinuxAgent cp waagent /usr/sbin/ chmod 755 /usr/bin/waagent /usr/sbin/waagent -install
Проверить правильность выполнения инсталляции:
less /var/log/waagent.log
umount /mnt/dev umount /mnt/proc umount /mnt/sys kpartx -d /dev/loop0 losetup -d /dev/loop0
Образ сейчас является загрузочным.
Загрузиться с образа:
qemu-system-x86_64 -vnc :0 -m 256 -hda /dev/loop0 -boot c
Дополнительные подготовительные операции, которые можно выполнить с образом перед его загрузкой:
После этого образ можно загружать/импортировать.
Загрузка выполняется в несколько этапов.
- Сконвертировать образ в формат VHD;
- Создать учётную запись для хранения (storage account);
- Загрузить образ.
$ azure storage account keys list igorstorage1 info: Executing command storage account keys list + Getting storage account keys data: Primary GDEc9C+...== data: Secondary O3AxBKD...== info: storage account keys list command OK $ azure vm disk upload image1.vhd http://igorstorage1.blob.core.windows.net/vms/image1.vhd GDEc9C+...== info: Executing command vm disk upload warn: The total size of blocks 1002 Mb is different warn: from declared VHD size 1000.125 Mb info: VHD size : 1002 MB info: Uploading 710656.5 KB Requested: 35.1% Completed: 7.5% Running: 96
Установим конфигурацию
export AZURE_STORAGE_ACCOUNT=igorstorage1 export AZURE_STORAGE_ACCESS_KEY=GDEc9C+...==
Создаём образ виртуальной машины на основе загруженного образа:
azure vm image create image1-2 --os linux -l 'West Europe' --blob-url https://igorstorage1.blob.core.windows.net:443/vms/image1-2.vhd -v
Теперь в списке образов виртуальных машин появился новый:
$ azure vm image list | grep image1-2 data: image1-2 User Linux
Запустить машину на основе нового образа:
$ azure vm create --location 'North Europe' image1-2-test image1-2 azureuser 'R00tp@$$' info: Executing command vm create warn: --vm-size has not been specified. Defaulting to "Small". + Looking up image image1-2 + Looking up cloud service info: cloud service image1-2-test not found. + Creating cloud service + Creating VM info: vm create command OK
Машина работает:
$ azure vm list info: Executing command vm list + Getting virtual machines data: Name Status Location DNS Name IP Address data: ------------- ---------- ------------ -------------------------- -------------- data: image1-2-test CreatingVM North Europe image1-2-test.cloudapp.net 100.86.122.153 info: vm list command OK
Хороший скрипт на эту тему: [1]
[править] Видео
- Миграция Linux-системы в облако. Часть 1
- Миграция Linux-системы в облако. Часть 2
- Миграция Linux-системы в облако. Часть 3
[править] Первая часть, введение
В первой, обзорной части, на примере облака Microsoft Azure рассматриваются общие вопросы миграции Linux-системы в облако IaaS-типа, такие как: устройство образа Linux-системы, таблица разделов, загрузчик и так далее. Рассказывается, какие специальные операции нужно провести с образом, чтобы подготовить его к работе в облаке IaaS: проинсталлировать и настроить агент, перенести своп-раздел и так далее.
Ключевые точки:
- 00:00 Краткий обзор задачи миграции Linux-системы в облако
- 02:00 Устройство Linux-образа
- 03:00 Форматы Linux-образов
- 05:50 Исчтоники образов Linux-систем
- 07:00 Таблица разделов, её создание и редактирование
- 14:00 Загрузка Linux-системы
- 18:00 Особенности поддержки различных дистрибутивов Linux
- 19:40 Особенности миграции Linux в облако Microsoft Azure
- 29:00 Обзор практической задачи выполнямой в части 2
[править] Вторая часть, подготовка образа
Во второй, практической, части показано каким образом подготовить образ с нуля: как создать файл образа, создать на нём таблицу разделов, проинсталлировать загрузчик, установить или скопировать существующую Linux-систему, установить и настроить агент Azure.
Ключевые точки:
- 00:00 Краткий обзор задачи
- 01:00 Создание пустого образа
- 03:00 Создание таблицы разделов
- 06:30 Отражение таблицы разделов образа на блочные устройства
- 07:00 Создание файловой системы образа
- 07:20 Перенесение файловой системы в новый образ
- 15:00 Инсталляция загрузчика
- 21:30 Инсталляция агента Azure
- 27:00 Завершение подготовки образа
- 29:30 Проверка работоспособности образа
[править] Третья часть, загрузка образа в облако
В третьей, практической, части показано, каким образом существующий образ сконвертировать в формат, пригодный для загрузки в облако (VHD в случае Azure), и загрузить в облако. В деталях продемонстрированы все необходимые операции, выполняющиеся при загрузке образа в облако: создание учётной записи хранилища, создание контейнера в хранилище, собственно загрузка образа, регистрация образа в качестве образа виртуальной машины, готовой к использованию. В завершение продемонстрировано каким образом выполнить обратную операцию — существующую виртуальную машины выгрузить из облака для локального запуска.
Ключевые точки:
- 00:00 Редактирование существующего образа
- 02:30 Конвертация RAW-файла в формат VHD
- 04:30 Проверка azure cli tools
- 05:30 Создание учётной записи Azure Storage
- 10:00 Работа с Azure Storage из командной строки
- 18:30 Создание SSL-сертификата для аутентификации при доступе к машине в облаке
- 20:30 Запуск машины с импортированного образа
- 24:50 Подключение к импортированной машине и обзор её изнутри
- 26:40 Миграция Linux-машины из облака