Regular UFS to UFS LiveUpgrade used to take a while to create the boot environment, etc. Complicated :-).
As of Solaris Express Community Edition 90, you can use LiveUpgrade with ZFS. You can also LU a UFS system to ZFS.
One of the benefits of ZFS root is the ZFS clone command (lucreate -n happens in a second):
# lucreate -n sxce91
Checking GRUB menu...
Analyzing system configuration.
No name for current boot environment.
INFORMATION: The current boot environment is not named - assigning name 
Current boot environment is named 
Creating initial configuration for primary boot environment 
The device 
PBE configuration successful: PBE name 
Comparing source boot environment 
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment 
Source boot environment is 
Creating boot environment 
Cloning file systems from boot environment 
Creating snapshot for 
Creating clone for 
Setting canmount=noauto for 
Creating snapshot for 
Creating clone for 
No entry for BE 
Population of boot environment 
Creation of boot environment 
Mount the DVD image loopback:
# mkdir /mnt/iso
# lofiadm -a /export/home/cmihai/Desktop/SunDownloads/sol-nv-b91-x86-dvd.iso
/dev/lofi/1
# mount -F hsfs /dev/lofi/1 /mnt/iso
Liveupgrade:
# luupgrade -u -n sxce91 -s /mnt/iso/
No entry for BE 
Copying failsafe kernel from media.
Uncompressing miniroot
Uncompressing miniroot archive (Part2)
13371 blocks
Creating miniroot device
miniroot filesystem is 
Mounting miniroot at 
Mounting miniroot Part 2 at 
Validating the contents of the media 
The media is a standard Solaris media.
The media contains an operating system upgrade image.
The media contains 
Constructing upgrade profile to use.
Locating the operating system upgrade program.
Checking for existence of previously scheduled Live Upgrade requests.
Creating upgrade profile for BE 
Checking for GRUB menu on ABE 
Saving GRUB menu on ABE 
Checking for x86 boot partition on ABE.
Determining packages to install or upgrade for BE 
Performing the operating system upgrade of the BE 
CAUTION: Interrupting this process may leave the boot environment unstable
or unbootable.
Upgrading Solaris: 100% completed
Installation of the packages from this media is complete.
Restoring GRUB menu on ABE 
Adding operating system patches to the BE 
The operating system patch installation is complete.
ABE boot partition backing deleted.
Configuring failsafe for system.
Failsafe configuration is complete.
INFORMATION: The file  on boot
environment 
INFORMATION: The file  on boot
environment 
INFORMATION: Review the files listed above. Remember that all of the files
are located on boot environment 
environment 
required or if additional media of the software distribution must be
installed.
The Solaris upgrade of the boot environment 
Installing failsafe
Failsafe install is complete.
# luactivate sxce91
System has findroot enabled GRUB
Generating boot-sign, partition and slice information for PBE 
Saving existing file  in top level dataset for BE 
Generating boot-sign for ABE 
Saving existing file  in top level dataset for BE 
Generating partition and slice information for ABE 
Boot menu exists.
Generating direct boot menu entries for PBE.
Generating xVM menu entries for PBE.
Generating direct boot menu entries for ABE.
Generating xVM menu entries for ABE.
GRUB menu has no default setting
No more bootadm entries. Deletion of bootadm entries is complete.
GRUB menu default setting is unchanged
Done eliding bootadm entries.
**********************************************************************
The target boot environment has been activated. It will be used when you
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You
MUST USE either the init or the shutdown command when you reboot. If you
do not use either init or shutdown, the system will not boot using the
target BE.
**********************************************************************
In case of a failure while booting to the target BE, the following process
needs to be followed to fallback to the currently working boot environment:
1. Boot from Solaris failsafe or boot in single user mode from the Solaris
Install CD or Network.
2. Mount the Parent boot environment root slice to some directory (like
/mnt). You can use the following command to mount:
     mount -Fzfs /dev/dsk/c1t0d0s0 /mnt
3. Run 
environment root slice, as shown below:
     /mnt/sbin/luactivate
4. luactivate, activates the previous working boot environment and
indicates the result.
5. Exit Single User mode and reboot the machine.
**********************************************************************
Modifying boot archive service
Activation of boot environment 
# init 6
Friday, June 20, 2008
Solaris ZFS to ZFS LiveUpgrade
Posted by
cmihai
at
9:45 AM
 
Labels: OpenSolaris, Solaris
Subscribe to:
Post Comments (Atom)


8 comments:
Did you do these steps on a SXCE, or a OpenSolaris 2008.05 (Indiana) version?
If on a previous SXCE, since when does SXCE support ZFS root?
Roman.
On SXCE.
SXCE has ZFS root support since ZFS 90, but you need to use the textmode installer or JumpStart to deploy on ZFS.
You can also use LiveUpgrade to upgrade from UFS to ZFS.
See here:
http://unixsadm.blogspot.com/2008/06/zfs-root-in-solaris-express-community.html
Is it possible to do the zfs to zfs liveupgrade while you have zones up and running?
I've tried it in 91->92 or something like that and it killed my zones. They say it's been fixed in SXCE 93 or 94 or something, but I haven't tried it yet. Bottom line: try it in VMware or something first.
Thanks for the information. I am going to use live upgrade from B90 to B94 but I want to create the BE in a separate disk. When using the lucreate command would it suffice to say the following without any options?
#lucreate -n sxce94 -m /:c0t1d0s0
Do I need to put a zfs option in the above command if I have z zfs boot environment? For example:
#lucreate -n sxce94 -m /:c0t1d0s0:zfs
Thanks again..
Why not add the disk to the ZFS pool and just let ZFS create and
additional filesystem automagically? Or do you want to remove a disk
from the pool via ZFS upgrade tricks?
I actually just tried that, but I think I made a mistake.
#zpool add -f rpool c2t0d0
I have more disk space now but I can't remove the disk from the pool.
#zpool remove rpool c2t0d0
returned:
cannot remove c2t0d0: only inactive hot spares or cache devices can be removed.
I think I made the mistake of adding the device to the top level vdev.
I am not sure how to remove the disk from the pool after doing the upgrade :)
You can't remove disks from a pool :-). That's one of the downsides of
ZFS. You can only remove inactive hotspares and cache devices, like
that error sates :-).
You can add the empty to a new pool and LU to that I guess.
Could be a pretty neat experiment for removing disks from a pool.
Post a Comment