VM template (шаблон виртуальной машины) — готовый образ виртуальной машины, сохранённый как «золотой мастер» для тиражирования. На основе шаблона создаются новые VM за 10–30 секунд методом клонирования — без прохождения процедуры установки ОС (которая занимает 5–15 минут). В облачном хостинге шаблоны — основа механизма мгновенного развёртывания серверов.
Как работает
Процесс создания шаблона: 1) устанавливают ОС на VM, 2) устанавливают необходимые пакеты и агенты, 3) запускают cloud-init или sysprep (Windows) для сброса уникальных идентификаторов (hostname, SSH host keys, MAC-адрес), 4) останавливают VM и конвертируют в шаблон. Клонирование из шаблона: либо полное копирование (занимает время пропорционально размеру диска), либо связанный клон (linked clone) через снапшот-технологию — новая VM использует диск шаблона как базу и хранит только отличия (diff-диск).
В Proxmox шаблоны создаются через GUI или командой qm template. В VMware vSphere шаблоны — отдельный тип объекта в vCenter. В облаках (AWS, DigitalOcean) шаблоны называются AMI (Amazon Machine Image) или снапшотами.
История
Концепция образов ОС для массового развёртывания (disk imaging) существует с 1990-х годов — Ghost (Symantec, 1998), Clonezilla (2007). VM-шаблоны как функция гипервизора появились с VMware vSphere в 2001–2003 годах. Cloud-init, стандартизирующий инициализацию VM из шаблонов, создан в 2009–2010 годах командой Canonical для Ubuntu Cloud.
Типы клонирования из шаблона
- Full clone — полная независимая копия, занимает столько же места на диске
- Linked clone — только diff-данные, экономит место, но зависит от шаблона
- Instant clone (VMware) — копирование работающей VM на лету
На что обращать внимание
При использовании linked clone все клоны зависят от шаблона — повреждение шаблона уничтожает все клоны. Шаблоны требуют регулярного обновления (security patches): устаревший шаблон приводит к массовому развёртыванию уязвимых VM. При клонировании не забудьте о сбросе MAC-адреса и SSH host keys — иначе все клоны будут идентичны и возникнут конфликты.
Шаблоны ВМ в практике
Шаблон ВМ — это «замороженный» образ виртуальной машины, из которого можно создавать клоны за секунды. В Proxmox VE шаблон создаётся командой qm template <vmid>. Из одного шаблона Ubuntu 22.04 с Nginx и PHP-FPM можно за 30 секунд развернуть 10 одинаковых серверов. Шаблоны на базе облачных образов (cloud-init) поддерживают параметризацию: при создании ВМ автоматически задаётся hostname, SSH-ключ, сетевые настройки через cloud-init. Гипервизор обычно создаёт thin-provisioned клоны — они занимают только реально используемое дисковое пространство.
Отличие от снапшота
Шаблон статичен — он создаётся один раз и не изменяется. Снапшот — это точка восстановления работающей ВМ с её текущим состоянием RAM и диска. Шаблон используется для массового деплоя, снапшот — для отката после неудачного обновления. В KVM-окружении шаблоны хранятся в форматах qcow2 или VMDK.