So much news, so little time...

It's a long time since I've posted here, and so many things have happened. I've been remiss in not keeping up, but my excuse is that it's been an eventful (and productive) time since my last blog and I've been busy with Real Work.

Well, what's happened in my interest areas? Lots of big things! In no specific order:

  • The new SPARC T3 chip and servers for the chip multi-threading T-series. It doubles compute density and throughput compared to the prior generation, with up to 512 CPU threads in a 4-socket server.
  • The SPARC64 VII+ chip for the M-series systems, which emphasize single-thread performance. The SPARC64 VII+ has up to a 3.0GHz clock and L2 cache doubled to 12MB. This provides performance substantially more than twice that of the original M-series processors.
  • New core multipliers for these products: 0.25 for the T3 and 0.5 for the SPARC64 VII+. Combined with the performance increases mentioned above, this makes these servers exceptionally competitive platforms for running Oracle software products (and in general).
  • New world record performance results on SPARC, and announcement of the SPARC Supercluster Architecture.
  • New Exadata models and announcement of the Exalogic Elastic Clould system. Exadata has special sauce in hardware and software (eg: Infiniband connectivity, SSD disks, hybrid columnar compression) that provide tremendous performance running Oracle RAC. Exalogic provides similar benefits for the Java middleware tier. What I like about these products is not just that they have tremendous performance, but that they are engineered for scale and integrated so they arrive at the loading dock ready to be deployed, instead of the 6-month science project one often sees when different parts and pieces from multiple vendors have to be assembled on site.
  • A new version of Logical Domains, now renamed to Oracle VM Server for SPARC. Among the new features are the ability to add and remove RAM to a running guest domain without disruption. I don't think there are many virtualization technologies with this ability, which provides operational flexibility under changing load conditions. Adding and removing CPUs for a running domain has been around since at least 2006.
  • New versions of VirtualBox, with support for live migration, multiple-CPU guests, more graphics acceleration and remote display support, and improved exploitation of Intel and AMD virtualization performance extensions.
  • Announcement of Oracle Solaris 11, and delivery of Oracle Solaris 11 Express 2010.11 (which I am now running). It has lots of powerful features, which I plan to discuss in future posts. Among them are:
    • Image Packaging System (IPS) which replaces the aging SVR4 packaging system
    • Automated Installer (AI) which is the modernized network install system
    • enhancements to ZFS that including ZFS encryption and deduplication
    • network virtualization
    • Solaris 10 Containers, which let you migrate and run virtualized Solaris 10 systems under Solaris 11.

These items have been described in official announcements, tech documents, and in excellent blog entries by my colleagues: Jeff Victor, Scott Dickson, Steffen Weiberle, Bob Netherton, as well as many others. I won't duplicate their content - instead, I recommend you visit the above links.

Enough news updates, Jeff. How about some actual content, huh?

While I haven't been blogging, I have been using some of the new technologies, and I'll start by describing how I upgraded my own systems to Oracle Solaris 11 Express (S11E for short.) One of my machines I just "blew away" and did a fresh install from CD media. I also did fresh installs within logical domains. For my daily use desktop and laptop systems I upgraded from OpenSolaris, using the instructions in the release notes. I am extremely in favor of reversible system changes - regardless of OS or vendor - so you can fall back to a "last known good" configuration. I took this route for my own purposes (in case I ran into trouble on the upgraded system), and also so I could illustrate the process for others.

My systems were running an internal build of the OpenSolaris code base, build 142, and I was operating my own software repository in my lab, so my commands may be slightly different from somebody using the public OpenSolaris build at 134b level.

First, I built and booted into a fresh boot environment (BE) without making any software changes. Since alternate boot environments are so "cheap" to create and use, it's a good idea to make a new one before messing about with the system. This lets you easily fall back to the last known "production" environment in case of any difficulty. The few seconds it takes to do a beadm create and the tiny disk space consumed are well worth the protection a new boot environment provides.

Below I have text captured before and just after rebooting the new environment. In this case, I was also replacing an internal-use network package with a new one (not illustrated below) so there really was a change between BE opensolaris-3 and the "prior production environment" opensolaris-2. Note that in some examples I do this work from a non-root userid. You don't have to be 'root' (with all that implies) if you use role based access controls.

away ~ $ pfexec beadm create opensolaris-3
away ~ $ pfexec beadm activate opensolaris-3
away ~ $ beadm list
BE            Active Mountpoint Space Policy Created          
--            ------ ---------- ----- ------ -------          
opensolaris   -      -          7.17M static 2010-08-27 14:55 
opensolaris-1 -      -          9.63M static 2010-08-28 08:43 
opensolaris-2 N      /          33.5K static 2010-11-03 17:18 
opensolaris-3 R      -          6.22G static 2010-11-17 16:54 
away ~ $ pfexec init 6
... a brief pause to reboot and login again ...
away ~ $ beadm list
BE            Active Mountpoint Space Policy Created          
--            ------ ---------- ----- ------ -------          
opensolaris   -      -          7.17M static 2010-08-27 14:55 
opensolaris-1 -      -          9.63M static 2010-08-28 08:43 
opensolaris-2 -      -          8.11M static 2010-11-03 17:18 
opensolaris-3 NR     /          6.23G static 2010-11-17 16:54

The "N" flag indicates which boot environment is active now, and "R" indicates which will become active on the next reboot. If necessary, I could safely fall back by activating an older BE. You can see that inactive boot environments take up very little disk space. The disk footprint represents the difference in contents between boot environments.

I then followed steps in the release guide for upgrading to Oracle Solaris 11 Express 2010.11. The first step is to change repository publishers from my personal lab (at the build 142 level) to the official repository (at 151a level). I removed "contributions" repositories I decided I didn't need any more. I also pointed to an OpenSolaris repository to see if there's anything I need for the current image. Unsurprisingly I didn't, since I'm already at a later level. The tool prevents down-revving software components. (I also admit to simply playing with the publisher settings just to see what happens. Note that the raw IP address is a machine in my lab.)

root@away:~# pkg publisher
PUBLISHER                             TYPE     STATUS   URI
opensolaris.org          (preferred)  origin   online   http://192.168.1.3/
contrib.opensolaris.org               origin   online   http://pkg.opensolaris.org/contrib/
software-packages.org    (disabled)   origin   online   http://ips.software-packages.org/
root@away:~# pkg set-publisher -P -O http://pkg.opensolaris.org/release/ opensolaris.org
root@away:~# pkg publisher
PUBLISHER                             TYPE     STATUS   URI
opensolaris.org          (preferred)  origin   online   http://pkg.opensolaris.org/release/
contrib.opensolaris.org               origin   online   http://pkg.opensolaris.org/contrib/
software-packages.org    (disabled)   origin   online   http://ips.software-packages.org/
root@away:~# pkg image-update
No updates available for this image.
root@away:~# pkg set-publisher --non-sticky opensolaris.org
root@away:~# pkg set-publisher --non-sticky contrib
root@away:~# pkg publisher
PUBLISHER                             TYPE     STATUS   URI
opensolaris.org          (non-sticky, preferred) origin   online   http://pkg.opensolaris.org/release/
contrib.opensolaris.org  (non-sticky) origin   online   http://pkg.opensolaris.org/contrib/
software-packages.org    (disabled)   origin   online   http://ips.software-packages.org/
root@away:~# pkg set-publisher -P -g http://pkg.oracle.com/solaris/release/ solaris
root@away:~# pkg publisher
PUBLISHER                             TYPE     STATUS   URI
solaris                  (preferred)  origin   online   http://pkg.oracle.com/solaris/release/
opensolaris.org          (non-sticky) origin   online   http://pkg.opensolaris.org/release/
contrib.opensolaris.org  (non-sticky) origin   online   http://pkg.opensolaris.org/contrib/
software-packages.org    (disabled)   origin   online   http://ips.software-packages.org/
root@away:~# pkg unset-publisher contrib
root@away:~# pkg unset-publisher software-packages.org       
root@away:~# pkg unset-publisher opensolaris.org
root@away:~# pkg publisher
PUBLISHER                             TYPE     STATUS   URI
solaris                  (preferred)  origin   online   http://pkg.oracle.com/solaris/release/

Then I started the upgrade, which downloaded new package contents and put them in a new BE.

root@away:~# pkg image-update --accept -f
------------------------------------------------------------
Package: pkg://solaris/consolidation/osnet/osnet-incorporation@0.5.11,5.11-0.151.0.1:20101104T230646Z
License: usr/src/pkg/license_files/lic_OTN

Oracle Technology Network Developer License Agreement

Oracle Solaris, Oracle Solaris Cluster and Oracle Solaris Express
... many other lines with license and export control stuff...

DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                              985/985 27598/27598  708.6/708.6

PHASE                                        ACTIONS
Removal Phase                            10438/10438 
Install Phase                            18266/18266 
Update Phase                             31125/31125 

A clone of opensolaris-3 exists and has been updated and activated.
On the next boot the Boot Environment opensolaris-4 will be mounted on '/'.
Reboot when ready to switch to this updated BE.

Deleting content cache

---------------------------------------------------------------------------
NOTE: Please review release notes posted at:

http://docs.sun.com/doc/821-1479
---------------------------------------------------------------------------

The update is complete now, with a brand new boot environment. The new BE name opensolaris-4 is misleading (derived, I suppose, from the current BE name) but contains Oracle Solaris 11 Express.

root@away:~#  beadm list
BE            Active Mountpoint Space Policy Created          
--            ------ ---------- ----- ------ -------          
opensolaris   -      -          7.17M static 2010-08-27 14:55 
opensolaris-1 -      -          9.63M static 2010-08-28 08:43 
opensolaris-2 -      -          8.11M static 2010-11-03 17:18 
opensolaris-3 N      /          9.62M static 2010-11-17 16:54 
opensolaris-4 R      -          8.34G static 2010-11-17 19:01 
root@away:~#  init 6
updating //platform/i86pc/boot_archive
updating //platform/i86pc/amd64/boot_archive

After I reboot under Oracle Solaris 11 Express, I create a new BE called s11-2. That's not necessary, but I like to keep a pristine copy of the original environment in case I need to fall back to it in case of a future problem, or simply for comparison purposes. Note that the new zfs diff command makes it easy to compare snapshots and filesystems.

away ~ $ pfexec beadm create s11-2
away ~ $ beadm list
BE            Active Mountpoint Space  Policy Created          
--            ------ ---------- -----  ------ -------          
opensolaris   -      -          7.17M  static 2010-08-27 14:55 
opensolaris-1 -      -          9.63M  static 2010-08-28 08:43 
opensolaris-2 -      -          8.11M  static 2010-11-03 17:18 
opensolaris-3 -      -          13.86M static 2010-11-17 16:54 
opensolaris-4 NR     /          8.39G  static 2010-11-17 19:01 
s11-2         -      -          95.0K  static 2010-11-18 13:34 
away ~ $ pfexec beadm activate s11-2

At this point I simply booted into s11-2, and once there renamed the opensolaris-4 BE to s11-1 so the name indicates what it contains.

That's it - this machine is now running Oracle Solaris 11 Express. If needed (and I haven't needed to) I can reactive an older boot environment with OpenSolaris.

Which reminds me: with later versions of Solaris you often get later versions of ZFS pool on-disk data formats. ZFS data is upwards compatible, but you may see messages like the following:

away ~ $ zpool status rpool
  pool: rpool
 state: ONLINE
status: The pool is formatted using an older on-disk format.  The pool can
	still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
	pool will no longer be accessible on older software versions.
 scan: scrub repaired 0 in 2h51m with 0 errors on Fri Dec 24 19:16:38 2010
config:

	NAME        STATE     READ WRITE CKSUM
	rpool       ONLINE       0     0     0
	  c7d0s0    ONLINE       0     0     0

errors: No known data errors

You can check the version of a current pool and see what the OS supports with the following commands:

away ~ $ zpool upgrade
This system is currently running ZFS pool version 31.

The following pools are out of date, and can be upgraded.  After being
upgraded, these pools will no longer be accessible by older software versions.

VER  POOL
---  ------------
26   rpool

Use 'zpool upgrade -v' for a list of available versions and their associated
features.
away ~ $ zpool upgrade -v
This system is currently running ZFS pool version 31.

The following versions are supported:

VER  DESCRIPTION
---  --------------------------------------------------------
 1   Initial ZFS version
 2   Ditto blocks (replicated metadata)
 3   Hot spares and double parity RAID-Z
 4   zpool history
 5   Compression using the gzip algorithm
 6   bootfs pool property
 7   Separate intent log devices
 8   Delegated administration
 9   refquota and refreservation properties
 10  Cache devices
 11  Improved scrub performance
 12  Snapshot properties
 13  snapused property
 14  passthrough-x aclinherit
 15  user/group space accounting
 16  stmf property support
 17  Triple-parity RAID-Z
 18  Snapshot user holds
 19  Log device removal
 20  Compression using zle (zero-length encoding)
 21  Deduplication
 22  Received properties
 23  Slim ZIL
 24  System attributes
 25  Improved scrub stats
 26  Improved snapshot deletion performance
 27  Improved snapshot creation performance
 28  Multiple vdev replacements
 29  RAID-Z/mirror hybrid allocator
 30  Encryption
 31  Improved 'zfs list' performance

For more information on a particular version, including supported releases,
see the ZFS Administration Guide.

Upgrading to S11E has added levels 27 through 31. 30 is the one I really want to play with! However, the system runs just fine with previously existing features, and you can still fall back to the older version of Solaris that understands the older ZFS pool version. When you are sure you will never need to fall back to the older OS version you can issue the zpool upgrade command to enable new functionality, and use beadm destroy to remove obsolete boot environments.

Summary

A lot of things have happened since my blog post - this entry describes just a few of the highlight items, and shows how to smoothly upgrade an existing OpenSolaris system to Oracle Solaris 11 Express. I recommend that people download and try out S11E to get familiar with the many new features. Later, I'll blog on some of the new functionality delivered with this OS release.
Comments:

Post a Comment:
Comments are closed for this entry.
About

jsavit

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today