While playing with Kernel Zones on Solaris 11.2 I noticed that once a ZFS volume is shared over iSCSI, while I can create a snapshot of it, I can’t roll it back – I get “volume is busy” error message. I found a way to do it:
# stmfadm delete-lu 600144F0A613C900000054521D550001 # zfs rollback pool/idisk0@snap1 # stmfadm import-lu /dev/zvol/rdsk/pool/idisk0 Logical unit imported: 600144F0A613C900000054521D550001 # stmfadm add-view 600144F0A613C900000054521D550001
Although this should be easier…
The iSCSI lun contains a kernel zone image just after it was installed. However now I couldn’t boot into it:
# zoneadm -z kz1 attach zone 'kz1': error: Encryption key not available. See solaris-kz(5) for configuration migration zone 'kz1': procedure or restore /etc/zones/keys/kz1.
Right, the man page explains it all – there is a host meta data needed to boot a kernel zone, which is encrypted. Since I rolled back the ZFS volume to a previous installation the encryption key stored in the zone’s configuration is no longer valid. I had to re-create it:
# zoneadm -z kz1 attach -x initialize-hostdata # zoneadm -z kz1 boot
And now it booted just fine.