Nedávno se mi stalo, že jsem potřeboval přesouvat SmartOS zónu z jednoho serveru na druhý. Zóna ale byla vyrobená z obrazu base-64-lts ve verzi 16.4.0. Tuhle verzi kvůli fatální chybě při upgradu stáhli z veřejného repozitáře.
Řešením by bylo dataset zóny povýšit pomocí zfs promote. Co když ale raději chceme origin zóny zachovat a přenést jej na nový server? Nástroj imgadm bohužel nic jako export neposkytuje. Naštěstí si ale můžeme poradit ručně.
Nejprve přeneseme dataset:
$ zfs send -Rep zones/08589eda-d64e-11e6-89a3-0b55371be927@final | ssh cilovy.server.tld zfs recv zones/08589eda-d64e-11e6-89a3-0b55371be927
Poté přesuneme konfiguraci pro imgadm:
$ scp /var/imgadm/images/zones-08589eda-d64e-11e6-89a3-0b55371be927.json cilovy.server.tld:/var/imgadm/images/
Nesmíme zapomenout na lock soubor, který imgadm používá, aby určil, zda je již daný image naimportovaný:
$ scp /var/run/img.08589eda-d64e-11e6-89a3-0b55371be927.import.lock cilovy.server.tld:/var/run/
A to je vše 🙂