OpenStack: можно ли преобразовать том в изображение?

Я пытаюсь выяснить путь наименьшего сопротивления в OpenStack для перехода с live CD на образ диска, который можно использовать для развертывания новых гостевых экземпляров.

Если вы загружаете экземпляр OpenStack с живого компакт-диска, вы можете установить ОС на "временный" диск (который в данном случае будет /dev/vda)...

... это здорово, но нет способа создать образ с этого диска; image-create Команда попытается (и не удастся) сделать снимок самого live CD (потому что это загрузочный том).

Вы можете создать и прикрепить новый том (используя volume-create а также volume-attach), а затем установите ОС на этом, но нет никакого способа преобразовать этот том в образ, размещенный на Glance, для использования другими экземплярами.

Как администратор, я, очевидно, могу войти в систему хоста хранилища и создать новый образ взгляда прямо с блочного устройства тома, но это недоступно никому, кто взаимодействует через API или веб-интерфейс.

Есть ли другие доступные варианты?

4 ответа

Решение

В Icehouse и более поздних версиях вы можете преобразовать том Cinder в изображение Glance с помощью команды upload-to-image:

cinder upload-to-image <volume> <image-name>

Это старый вопрос, но вы хотите использовать kvm для создания необработанного образа диска, используя iso-файл cdrom и пустой том. Затем вы можете загрузить необработанный диск и использовать его для загрузки других.

Например, вы создаете базовый Debian, Ubuntu или другой Linux-хост.

Я успешно создал образы для openstack, используя KVM на моей локальной машине с Linux, используя локальный файл образа диска (raw или qcow2), преобразовал файл образа в сжатый файл qcow2 и загрузил его с первого взгляда.

Несколько советов:

  1. вам понадобится cloud-init или скрипт /etc/rc.local или аналогичный для извлечения метаданных экземпляра (ключи ssh, IP-адрес, имя хоста, данные пользователя и т. д.) из http://169.254.169.254/ и настроить виртуальную машину с ним.

    cloud-init лучше всего работает на Ubuntu, но был перенесен на Debian, и я даже видел порт для RH.

  2. Очистка образа (стирание журналов и истории оболочки, отключение паролей, удаление /etc/udev/rules.d/70-persistent-net.rules и т. Д.) И заполнение нулями образа диска перед созданием сжатого qcow2 для загрузки хорошая идея Вы можете довольно легко сжать образ виртуальной машины с 10 ГБ диском до 300-500 МБ, что быстрее загружается и быстрее копируется, когда openstack запускает экземпляр.

Самый простой способ обнуления диска - это что-то вроде 'dd if = / dev / zero of = / root / junk; rm -f / root / junk '. Кроме того, вы можете выключить виртуальную машину, смонтировать ее петлёй (вы можете использовать qemu-nbd, если образ уже qcow2), а затем заполнить нулями. Если файловая система - ext2/3/4, вы можете использовать инструмент под названием zerofree, чтобы обнулить ее (должен быть размонтирован или смонтирован RO). Если это какой-то другой fs, вы можете использовать sfill из безопасного удаления (домашняя страница безопасного удаления исчезла).

Кстати, даже если ваше "исходное" изображение уже сжато qcow2, все же стоит "преобразовать" его в новый сжатый qcow2 перед загрузкой. Это избавляет от старых данных, оставленных после копирования файла при записи.

Простой способ преобразования тома гари в глянец изображения Преобразование раздела LVM в формат qcow2 с помощью qemu-img.

Пример:

sudo qemu-img convert -c -f raw -O qcow2 /dev/stack-volumes/volume-6e4eb1d5-71fa-45a1-9178-ac6611351404 test.img

Следующий шаг добавить изображение к виду:

glance image-create --name test_converted --disk-format qcow2 --container-format bare < test.img
Другие вопросы по тегам