Upgrading a Solaris 10 ZFS Boot Installation : General

With Solaris 10u8 aka Solaris 10 10/09 due any day now I've been planning to upgrade my installations. When I originally installed Solaris 10u6 with ZFS boot I assumed that the upgrade process to 10u7 would be about the same as it has been for UFS boot installations. It turns out, unfortunately, that the Solaris 10 installer doesn't offer direct upgrades for ZFS.

After a few days of fruitlessly searching the Internet for a procedure to upgrade my ZFS boot installation from 10u6 to 10u7 I contacted my Solaris oracle, Dave Clack and, of course he knew exactly how to do it. Since lots of people will undoubtedly need this procedure in the next couple of weeks, here it is. This procedure also works for OpenSolaris. Dave's instructions mount the DVD ISO using lofi loopback. If, like me, you are running you Solaris installations in VirtualBox then you can just mount the image as a virtual DVD. The procedure remains the same with a few path changes.

Upgrade a Solaris 10 ZFS Boot Installation from one "u" level to another
lofiadm -a /share/iso/solaris_dvd.iso

mount -F hsfs /dev/lofi/1 /mnt

pkgrm SUNWlur SUNWluu SUNWluzone SUNWlucfg

cd /mnt/Solaris_10/Product

pkgadd -d . SUNWlucfg SUNWlur SUNWluu SUNWluzone 

10uX is currently installed version

10uY is the version number of the one you downloaded

lucreate -c 10uX -n 10uY

lustatus

luupgrade -u -n 10uY -s /mnt

luactivate 10uY

init 6

EDIT: removed un-needed SUNWrmvolmgrr step.


 

Second Order : Programming

I had "that argument" with someone again recently. You know, the one about Java performance vs. C code. It's an argument I am very tired of having and I'm tempted to go "Barney Frank" on the next person to suggest there's a difference that matters.

One of the supposed C advantages is supposed to be that it offers greater opportunity for optimization. Maybe I have been looking at the wrong code lately but I see very little code these days that instruction-wise optimization, inline assembly or hand tweaking makes better. The biggest problem is not that careful optimization of small functions doesn't produce speed improvements but that those speed improvements are, overall, of marginal benefit. Here's some really bad code:

StinkoCode.java
static void main(String[] args) {

    List sortedArgs = new LinkedList();

    for(String arg : args) {
        sortedArgs.add(arg);
        Collections.sort(sortedArgs);
    }

    System.out.println(sortedArgs);
}

Even though this is just a contrived example, yes, I do regularly see code this inefficient. Would optimizing the sort() operation have much impact on the overall behaviour of this program? How about the choice of LinkedList? Would using a bulk insertion strategy such as addAll() help? If there are many arguments passed in the biggest gains would almost certainly come from sorting the arguments only once and possibly using a different data structure to store the strings. Let's try that again:

BetterCode.java
static void main(String[] args) {

    String[] sortedArgs = Arrays.copyOf(args, args.length);
    Arrays.sort(sortedArgs);

    System.out.println(Arrays.asList(sortedArgs));
}

As cautions against premature optimization suggest, is critical to carefully examine the causes your hot code is burning so many cycles before optimizing. Frequently the real problem is with the calling code and not the exact piece of code which shows up in the profiler as your hot spot. When planning optimizations it's usually best to look "up the stack" and evaluate the usage pattern for the bottleneck code being called before diving in to make a targeted fix. Most likely, at best, you'll only get a marginal improvement by making a local optimization. For the really big wins you should be focusing on the higher order causes.


 

Raw Oysters don't need sauce : Food

Cocktail sauce, lemon, Tabasco, Tapatio, mignonette... all are commonly offered as accompaniments to raw oysters. I say phooey to them all. A good raw oyster is perfect just by itself. Well almost... a fine Sazerac cocktail and oysters are a great combination.

 

Tom was Right : Music

Tom Waits has always refused to have his music used in commercials. He has successfully sued those who have used his music without his authorization and also successfully sued companies who used sound-alike songs or singers. Reading about these lawsuits on Wikipedia a couple of years ago I felt that he was certainly within his rights to control how his music is used but he was perhaps a bit too hardline about restricting their use. Look what "Bombastic" did for Shaggy, etc. Having enjoyed Tom's music for more than 25 years I wish more people knew his music. Commercials seemed to me to be a fine way introduce people.

A couple of weeks ago I heard Tom Waits' distinctive voice over a commercial on Hulu and immediately drew my attention because it was entirely unexpected. The commercial is a PSA for Feeding America. I now understand why Tom has chosen not to dilute the effect he gives the commercial by also shilling for Pepsi and Chrysler.

In the deep dark past there was this one commercial for Purina though. I find his intonation hilarious.


 

alt Text : General

You want to know how to frustrate a web accessibility architect? Suggest you are adding alt tags to your images for the SEO benefits rather than for accessibility. It's true that image alt tags do increase page search rankings and the resulting tags are useful for those using non-visual browsers, but wasn't making your pages accessible reason enough?

If that doesn't work you can suggest that you'll continue to use tables for formatting even after you convert to CSS or include multiple invisible iframes on every page.


 


« December 2009
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
31
  
       
Today



subscribe in a reader
GeoURL




Today's Page Hits: 114