В настоящее время я настраиваю динамический кластер высокопроизводительных вычислений в Azure и подумываю основать его на Ubuntu.
В документации Microsoft рекомендуется создавать образ Ubuntu на основе протестированных облачных образов Ubuntu для Azure (например, https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64 -azure.vhd.zip )
Проблема в том, что эти образы уже имеют размер 30 ГБ, даже если фактически используется только часть пространства. Чтобы ускорить развертывание узлов кластера в Azure, я хотел бы иметь образ меньшего размера (например, 10 ГБ).
Что было бы наиболее эффективным способом уменьшить размер вышеупомянутого изображения? Есть ли какой-нибудь эффективный способ, или мне нужно создавать меньшее изображение с нуля?
Я был бы полностью счастлив, если бы кто-нибудь мог мне помочь с этой темой.
Вы не можете напрямую сжимать управляемые диски в Azure. Однако вы можете использовать другую виртуальную машину (или на своем компьютере) для обработки образа: скачать, сжать, отправить в свою учетную запись хранения как блочный BLOB-объект, а затем создать образ.
Используя Hyper-V:
gdisk
или sgdisk
)fsck
(*)Обратите внимание, что для импорта управляемого диска из блочного BLOB-объекта (если вы хотите обрабатывать образ с локального компьютера, затем загрузите его в свою учетную запись хранения), образ должен быть выделен в МБ, а образ должен быть фиксированным на VHD. В противном случае импорт не удастся.Некоторые инструменты, такие как qemu-img (и даже дисковая утилита Hyper-V), добавляют дополнительные 512 байтов в конец результирующего образа.
Еще один (быстрый и грязный) подход — использование Azure:
qemu-utils
qemu-img convert -f vpc -O raw bionic.vhd bionic.img
sudo lostup -f bionic.img
fsck
раньше)sudo losstup -d /dev/loop0
dd
(быстро и грязно)
dd if /dev/loop0 of=/dev/sdb bs=4096
gdisk
или sgdisk
)fsck
наконец, НИКОГДА не усекайте образ, не сжимая последний раздел первым! В противном случае образ будет потерян (или, по крайней мере, трудно восстановить; лучше начать сначала).