27 January 2015

Solaris 11 Package History

The pkg operations install, update, list, search, etc are well known.
Another excellent feature is the history. Using history you can
take a look back and see what happened on your image.

When did we update our Solaris System?

-bash-4.1$ pkg history |grep " update " | grep Succeeded
2012-02-06T15:48:44      update                   pkg                Succeeded
2012-05-25T13:35:03      update                   pkg                Succeeded
2012-05-25T16:41:11      update                   pkg                Succeeded
2012-05-25T17:35:09      update                   pkg                Succeeded
2012-07-09T08:38:47      update                   pkg                Succeeded
2013-01-15T15:19:06      update                   pkg                Succeeded
2013-01-15T16:41:27      update                   pkg                Succeeded
2013-02-26T15:11:37      update                   pkg                Succeeded
2013-08-29T19:34:46      update                   pkg                Succeeded
2013-08-29T19:59:57      update                   pkg                Succeeded
2013-10-22T10:59:03      update                   pkg                Succeeded
2014-05-26T08:14:23      update                   pkg                Succeeded
2015-01-08T09:37:11      update                   pkg                Succeeded

More details using -t (time) and -l (long).
Who did the update ? Which command was used?

-bash-4.1$ pkg history -t 2015-01-08T09:37:11 -l | more
         Operation: update
           Outcome: Succeeded
            Reason: None
            Client: pkg
           Version: 73408dc40dc9
              User: marcel (200)
         Boot Env.: solaris-11
    Boot Env. UUID: b18ee04e-4690-e158-fe02-a718d06b3091
     New Boot Env.: solaris-12
New Boot Env. UUID: e54c5e16-13b8-6247-b33e-98e7b83de734
          Snapshot: (None)
        Start Time: 2015-01-08T09:37:11
          End Time: 2015-01-08T10:17:31
        Total Time: 0:40:20
           Command: /usr/bin/pkg update --accept
     Release Notes: No
       Start State:
Solver: [ Variables: 1400 Clauses: 19846 Iterations: 1 State: Succeeded]
Timings: [phase 1:  0.794, phase 2:  0.043, phase 3:  3.946, phase 4:  2.748, phase 5:  0.014, phase 6:  0.094]
Maintained incorporations: None

Package version changes:
None -> pkg://solaris/install/archive@0.5.11,5.11-
pkg://solaris/driver/storage/mpt@0.5.11,5.11- -> pkg://solaris/driver/storage/mpt@0.5.11,5.11-
pkg://solaris/library/libtool/libltdl@2.4.2,5.11- -> pkg://solaris/library/libtool/libltdl@2.4.2,5.11-

For failed actions the error messages are available

-bash-4.1$ pkg history -t 2013-05-02T10:30:56 -l
         Operation: update
           Outcome: Failed
            Reason: Unknown
            Client: pkg
           Version: 93c2e5a1fc89
              User: root (0)
         Boot Env.: solaris-7
    Boot Env. UUID: f0b23efb-a7ca-c98b-fb35-d6f592d192f3
     New Boot Env.: None
New Boot Env. UUID: (None)
          Snapshot: (None)
        Start Time: 2013-05-02T10:30:56
          End Time: 2013-05-02T10:30:57
        Total Time: 0:00:01
           Command: /usr/bin/pkg update pkg:/support/explorer
     Release Notes: No
       Start State:
         End State:
Traceback (most recent call last):
  File "/usr/lib/python2.6/vendor-packages/pkg/client/api.py", line 1058, in __plan_op
  File "/usr/lib/python2.6/vendor-packages/pkg/client/api.py", line 1228, in __linked_pubcheck
  File "/usr/lib/python2.6/vendor-packages/pkg/client/linkedimage/common.py", line 2111, in api_recurse_pubcheck
  File "/usr/lib/python2.6/vendor-packages/pkg/client/linkedimage/common.py", line 182, in _li_rvdict_raise_exceptions
    raise exceptions[0]
A 'pubcheck-linked' operation failed for child 'zone:v0131' with an unexpected
<ProtocolError for localhost/RPC2: -1 >

The child generated the following output:
pkg: No image rooted at '/zones/v0131/root'

02 January 2015

Use both LDoms and Solaris Zones combined

On current SPARC Systems you can choose to use LDoms and/or Zones.
Using LDoms you are able to run independent Solaris Versions on the same SPARC Server.
Dedicated Memory and CPUs makes LDom very efficient (Zero Overhead). LDoms can be live migrated to other SPARC Servers.

Solaris Zones are Application Environments running on a Solaris OS. Using Solaris Zones you run your Applications in different Versions and different configurations on the same Solaris OS.

If you are still using older SPARC Hardware, like M3/4/5000/... run your Applications always in Zones. When you upgrade to newer SPARC Systems in the future, you are able to migrate the Zones to the new Hardware in Minutes. And of course you can migrate the Zones into LDoms as well.
We have done such migration projects very successful at customer sites the last two years.

I recommend to use both technologies together to improve the flexibility in your data centre.
LDoms as your OS Platform (multiple LDoms per SPARC Server) and Zones to run the Applications.

Checkout my interview with Rick Ramsey at Oracle OpenWorld 2013