flash_install JumpStarts with ZFS root
I was excited when I saw that Solaris 10 10/09 was to support ZFS rooted flash JumpStarts.
From the What's New document:
ZFS Features and Changes
The following section summarizes new features in the ZFS file system.
ZFS and Flash installation support – In the Solaris 10 10/09 release, you can set up a JumpStart profile to identify a flash archive of a ZFS root pool. For more information, see the Solaris ZFS Administration Guide.
Awesome.
So I hopped over to the JumpStart and Advanced Installations doc; I can never remember the profile syntax for a zpool. I browsed to the install_type section, and found:
install_type Keyword (ZFS and UFS)
The install_type keyword is required in every profile. For a UFS installation, Several options are available. The only option available for a ZFS installation is the initial_install keyword. This option installs a new Solaris OS on a system. The profile syntax is the following:
install_type initial_install
Note –The following UFS options are not available for a ZFS installation.
upgrade - You must use Solaris Live Upgrade to upgrade ZFS root pool. See Chapter 11, Solaris Live Upgrade and ZFS (Overview), in Solaris 10 10/09 Installation Guide: Solaris Live Upgrade and Upgrade Planning.
flash_install - A Solaris Flash archive cannot be installed.
flash_update - A Solaris Flash archive cannot be installed.
Cannot be installed!? Things were looking dim.
Following the link from the What's New doc, I check out the ZFS Admin Guide. All the way at the bottom of the Installing a ZFS Root File System (Flash Archive Installation) section I found:
Example 5–2 Installing a System with a ZFS Flash Archive
After the master system is installed or upgraded to the Solaris 10 10/09 release, create a Flash archive of the ZFS root pool. For example:
# flarcreate -n zfs10u8BE zfs10u8flar Full Flash Checking integrity... Integrity OK. Running precreation scripts... Precreation scripts done. Determining the size of the archive... The archive will be approximately 4.94GB. Creating the archive... Archive creation complete. Running postcreation scripts... Postcreation scripts done. Running pre-exit scripts... Pre-exit scripts done.
On the system that will be used as the installation server, create a JumpStart profile as you would for installing any system. For example, the following profile is used to install the zfs10u8flar archive.
install_type flash_install archive_location nfs system:/export/jump/zfs10u8flar partitioning explicit pool rpool auto auto auto mirror c0t1d0s0 c0t0d0s0
Now I'm getting hopeful again. Maybe the Advanced Installations doc has a misprint.
After testing it, sure enough, ZFS rooted flash_install works! If you do a lot of provisioning, this is huge.
A quick note -- my profile syntax was just a shade different and it still worked -- which was good, because we're using a 3rd-party provisioning tool which might have been hard to fix.
My profile:
install_type flash_install
archive_location nfs://10.1.1.1/usr/local/flars/sol10-1009.flar
partitioning explicit
pool rpool auto auto auto c0d0s0
Keep in mind that this was to install a flar that was generated on a system that was already ZFS rooted. That system was jumped (initial_install) with this profile:
install_type initial_install
system_type server
cluster SUNWCuser
pool rpool auto auto auto c0d0s0
bootenv installbe bename zfsroot dataset /var
The differences are subtle, but enough to bomb the jump if you get it wrong.