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 и загрузил его с первого взгляда.
Несколько советов:
вам понадобится cloud-init или скрипт /etc/rc.local или аналогичный для извлечения метаданных экземпляра (ключи ssh, IP-адрес, имя хоста, данные пользователя и т. д.) из
http://169.254.169.254/
и настроить виртуальную машину с ним.cloud-init лучше всего работает на Ubuntu, но был перенесен на Debian, и я даже видел порт для RH.
Очистка образа (стирание журналов и истории оболочки, отключение паролей, удаление /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