Wednesday Nov 25, 2009

Firefox 3.6 is just around the corner, due to be delivered later this year.

In testing I found out that the old java plugin version (libjavaplugin_oji.so) on opensolaris was no longer recognised and hence java apps didn't work :-(

So what's the deal?

Since Java 6 update 10, there is a new implementation of the java plugin which means java applets are run in separate Java Virtual Machine instances which are launched by the plug-in's code.  Currently they are executed in a JVM instance embedded in the web browser's process.

So what do OpenSolaris/Solaris users need to do?

Install Java 6 update 10 (at least), currently update 17 is available.

Remove the current java plugin from firefox/plugins directory:

rm /export/home/tadpole/firefox/plugins/libjavaplugin_oji.so

Add a symbolic link to the new plugin:

ln -s /usr/java/jre/lib/i386/libnpjp2.so  /export/home/tadpole/firefox/plugins

you should also check the system plugin directory: /usr/lib/firefox/plugins/

More info can be found on the java.com pages here and here.

Tuesday Nov 03, 2009

When asked about Sun Microsystems, one word will always spring to the top of my mind: innovation

There is such a fantastic DNA in this company that looks to push boundaries and make things better - ok, we often do not got the message across well but the effort and dedication shown by employees always makes me proud.

To emphasis this point again there is great news as told by Jeff Bonwick earlier this week: "ZFS now has built-in deduplication"

Deduplication is a process to remove duplicate copies of data, whether it's files, blocks or bytes.

It's probably easier to explain with an example: suppose you have a database with company addresses, the location 'London' will exist for quite a few customers, so instead of having this entry 100 times, there will be one entry and the other 99 references to the original entry. So it saves space and lookup time as it's likely that the reference will already be loaded in cache.

How easy is it to set up?

Assuming you have a storage pool named 'tank' and you want to use dedup, just type this:

zfs set dedup=on tank

There is more to it, so read Jeffs blog for the whole story.

I'm guess this should appear shortly in the OpenSolaris /Dev builds, which will feed into the next OpenSolaris release (2010.02) and in Solaris 10 Update 9. Once it's released, I'll try and run some tests to see the savings I get.

This should also feed into the FreeBSD project. Such a shame OSX has dumped their ZFS project.

Friday Oct 09, 2009

Hot on the heals of recent announcements comes the latest update to Solaris 10, Update 8 also know as 10/09:

Here's some key new features:

  • Patching enhancements: Turbo Patching and Parallel Patching for Containers
  • New ZFS features: Quotas, Flash Archives and Cache devices
  • Support for disks over 1TB - this is limited to systems running 64 bit kernel
  • Software Updates: PostgreSQL 8.37, NTP 4.2.5, Samba 3.0.35
  • Numerous other system performance, driver and device enhancements.

Further information:

Documents

Download Solaris 10, U8

What's now EOF (Software no longer supported) 

Gentlemen (and women) start your downloads ;-) 

There has been a few announcements recently (and more to come) and here's one that can really be a game changer and enabler for future tech advances:

Hybrid Storage Pools (HSP) are a new innovation designed to provide superior storage through the integration of flash with disk and DRAM. Sun and Intel have teamed up to combine their technologies of ZFS and high performance, flash-based solid state drives (SSDs) to offer enterprises cutting-edge HSP innovation that can reduce the risk, cost, complexity, and deployment time of multitiered storage environments.

Sun's ZFS

Sun's ZFS file system transparently manages data placement, holding copies of frequently used data in fast SSDs while less-frequently used data is stored in slower, less expensive mechanical disks. The application data set can be completely isolated from slower mechanical disk drives, unlocking new levels of performance and higher ROI. This ‘Hybrid Storage Pool’ approach provides the benefits of high performance SSDs while still saving money with low cost high capacity disk drives.

Solaris ZFS can easily be combined with Intel's SSDs by simply adding Intel Enterprise SSDs into the server’s disk bays. ZFS is designed to dynamically recognize and add new drives, so SSDs can be configured as a cache disk without dismounting a file system that is in use. Once this is done, ZFS automatically optimizes the file system to use the SSDs as high-speed disks that improve read and write throughput for frequently accessed data, and safely cache data that will ultimately be written out to mechanical disk drives.

Intel's SSDs

Intel's SSDs provide 100x I/O performance improvement over mechanical disk drives with twice the reliability:

  • One Intel Extreme SATA SSD (X25-E) can provide the same IOPS as up to 50 high-RPM hard disk drives (HDDs) -- handling the same server workload in less space, with no cooling requirements and lower power consumption.
  • Intel High-Performance SATA SSDs deliver higher IOPS and throughput performance than other SSDs while drastically outperforming traditional hard disk drives. Intel SATA SSDs feature the latest-generation native SATA interface with an advanced architecture employing 10 parallel NAND Flash channels equipped the latest generation (50nm) of NAND Flash memory. With powerful Native Command Queuing to enable up to 32 concurrent operations, Intel SATA SSDs deliver the performance needed for multicore, multi-socket servers while minimizing acquisition and operating costs.
  • Intel High-Performance SATA SSDs feature sophisticated “wear leveling” algorithms that maximizes SSD lifespan, evening out write activity to avoid flash memory hot spot failures. These Intel drives also feature low write amplification and a unique wearleveling design for higher reliability, meaning Intel drives not only perform better, they last longer. The result translates to a tangible reduction in your TCO and dramatic improvements to system performance

Benefits of HSP

Architectures based on HSP can consume 1/5 the power and 1/3 the cost of standard monolithic storage pools while providing maximum performance.

For example, if an application environment with a 350 GB working set needs 30,000 IOPS to meet service level agreements, 100 15K RPM HDDs would be needed. If the drives are 300GB, consume 17.5 watts, and cost $750 each, this traditional environment provides the IOPS needed, has 30TB capacity, costs $75,000 to buy, and consumes 1.75 kWh of electricity.

Using a Hybrid Storage Pool, six 64 GB SSDs (at $1,000 each) provide the 30,000 IOPS required, and hold the 350GB working set. Lower cost, high-capacity drives can be used to store the rest of the data; 30 1TB 7200 RPM drives, at $689 each ($20,670) and consuming 13 watts, provide cost-effective HDD storage. The savings are dramatic:

  • Purchase cost is $26,670, a 64-percent savings
  • Electricity consumed is 0.392 kWh, a 77-percent savings

Link to docs:

Solaris ZFS Enables Hybrid Storage Pools - Shatters Economic and Performance Barriers

UPDATE: Brendon from the Fishwork team has posted some speed and performance notes here

Thursday Jul 30, 2009

For those not in the know, Sun Ray is a thin client technology provided by Sun, with no local disk storage and they are totally stateless.

These very smart, very low power consuming machines (4 watts!) or integrated monitors allow you to keep a session (Solaris, Windows, Linux) running on the server and access at each machine you insert your java card. 

This allows you to do some work, pull out your card, walk over to a colleagues desk or meeting room and insert your card and pull up the same session.

Now that the intro is done . . . Microsoft have embraced this technology at their Enterprise Engineering Center (EEC). More info here.

Now the other piece of cool news:  Sun Ray Soft Client is now available as part of the Sun Ray Software 5 Early Access program:

The Sun Ray Soft Client is a software application that easily installs on common client operating systems and provides the ability to connect to a Sun Ray server and initiate a Sun Ray desktop session from a Windows laptop or desktop computer. The Sun Ray Soft Client also provides the flexibility to 'hotdesk' to and from your Sun Ray thin client and any supported Sun Ray Soft Client enabled PC. Currently available for Windows only.

Wednesday Jul 01, 2009

I have my main computer as Solaris dual boot with Windows 2008, to keep it updated I recently booted into Windows to install SP2.

After some time downloading, asking me to quit everything and rebooting a few times the installation failed at 100% at Stage 3 with the following message:

Installation was not successful 
Unspecified error 
Error: E_FAIL(0x80004005)

Sigh, how hard is it to write in English or to check for certain parameters before installation?   This is one reason why I love Solaris/OpenSolaris, you can have multiple boot environments and update them while using another one.  Then the only downtime is a reboot to enable and switch to the new boot environment.

At work they have implemented it and it has reduced the possible downtime from 6 - 8 hours down to 2 - they still allow this much time in case of any issues.

After much searching, I finally found our that for SP2 to install on Windows 2008, it needs to be on the active partition . . . so after a quick change with Disk Management SP2 successfully installed.

Then it was a quick boot into failsafe Solaris to make the Solaris partition active again. 

All updated!

Thursday May 28, 2009

2 reasons for having a look at VirtualBox:

I've removed my linux slice as it's no longer used and plus I needed to extra space to move from ufs root to zfs root, but I still want to be able to load and use linux, just not waste a partition doing so.

I need to migrate from the current solaris version to the OpenSolaris code base, which uses a package manager (very much like linux).

See the notes here how the migration should occur, thanks to Bob for posting this.

Unfortunately there is a critical bugs in using VirtualBox on the latest release of the Solaris Next release i.e. it crashes the whole system!

UPDATE: This has been fixed, kudo to the VirtualBox developers, download 2.2.4 here.

So while I had been using it, to investigate VirtualBox, I can't anymore - so I decided to remove it, easy just remove the package.

However, there's always a however then next time I used liveupgrade to upgrade the system it booted ok to the console, then ran about 100 lines telling me of xVM and Network failures:

svc.startd[7]: svc:/system/xvm/ipagent:default: Method 
"/lib/svc/method/svc-ipagent start 60" failed with exit status 1.

The machine then went into maintenance mode :-(

I finally twigged that VirtualBox does some magic to the kernel and this could be causing the issue, so I reinstalled VirtualBox and then used liveupgrade.

Hey Presto a working system :-D

Tuesday Feb 17, 2009

No, I'm not getting any crazy cravings, I'm talking about the old adage of a company "eating it's own dogfood" - in other terms using what it makes.

Working for Sun definitely has it's privileges, with early access to new software releases although that does have it's downside too. I discovered one recently when playing around with OpenSolaris 2008.11.

OpenSolaris is built around a packaging system, however for StarOffice 9, it's not available as a pkg yet, so I need to install via the .sh script. If it was a pkg, it would tell you about dependencies and automatically prompt to install them.

So in my case after a seemingly successful install, staroffice fails to start and crashes almost straight away:

bash-3.2$ cat /etc/release
                        OpenSolaris 2009.06 snv_106 X86
          Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
                       Use is subject to license terms.
                           Assembled 28 January 2009
bash-3.2$
bash-3.2$ /opt/staroffice9/program/soffice &
[1] 4454
bash-3.2$ ld.so.1: soffice.bin: fatal: libicuuc.so.3: open failed: No
such file or directory
ld.so.1: soffice.bin: fatal: relocation error:
file /opt/openoffice.org/basis3.1/program/libvclsi.so: symbol
__1cHicu_4_0OLEFontInstanceRgetDynamicClassID6kM_pv_: referenced symbol
not found
ld.so.1: soffice.bin: fatal: relocation error:
file /opt/openoffice.org/basis3.1/program/libtksi.so: symbol
__1cDvclJPDFWriterJAnyWidgetG__vtbl_: referenced symbol not found
ld.so.1: soffice.bin: fatal: relocation error:
file /opt/openoffice.org/basis3.1/program/libsvtsi.so: symbol
__1cRVCLXImageConsumerLsetProperty6MrknDrtlIOUString_rknDcomDsunEstarDunoDAny__v_: referenced symbol not found
ld.so.1: soffice.bin: fatal: relocation error:
file /opt/staroffice9/program/../basis-link/program/libsofficeapp.so:
symbol __1cDsvtNRoadmapWizardGResize6M_v_: referenced symbol not found
ld.so.1: soffice.bin: fatal: relocation error:
file /opt/staroffice9/program/soffice.bin: symbol soffice_main:
referenced symbol not found
/opt/staroffice9/program/soffice[134]: wait: 4461: Killed

[1]+  Done                    /opt/staroffice9/program/soffice
bash-3.2$


A quick search on libicuuc.so tells me that it's delivered in pkg SUNWicu, which is International Components for Unicode User Files, so all I need to do is fire up the package manager and install. No more staroffice crashes and I've learned something along the way!

Tuesday Nov 18, 2008

Now that I'm successfully running a zfs root, I don't need my old usf root anymore, so it should be a simple matter of removing the old usf boot environment and increasing the size of the new zfs root pool. 

Right?  Well no actually, there seems to be a bug or 3.

# lustatus
Boot Environment           Is       Active Active    Can    Copy     
Name                       Complete Now    On Reboot Delete Status   
-------------------------- -------- ------ --------- ------ ----------
snv_98                     yes      no     no        yes    -        
snv_102                    yes      yes    yes       no     -        
# ludelete snv_98
System has findroot enabled GRUB
Checking if last BE on any disk...
BE <snv_98> is not the last BE on any disk.
Updating GRUB menu default setting
Changing GRUB menu default setting to <3>
ERROR: Failed to copy file </boot/grub/menu.lst> to top level dataset for BE <snv_98>
ERROR: Unable to delete GRUB menu entry for deleted boot environment <snv_98>.
Unable to delete boot environment.

This is CR6718038/CR6715220/CR6743529. A quick workaround would be to edit /usr/lib/lu/lulib and replace the following in line 2937:
lulib_copy_to_top_dataset "$BE_NAME" "$ldme_menu" "/${BOOT_MENU}"
with
lulib_copy_to_top_dataset `/usr/sbin/lucurr` "$ldme_menu" "/${BOOT_MENU}"

then rerun the ludelete:

# ludelete snv_98
System has findroot enabled GRUB
Checking if last BE on any disk...
BE <snv_98> is not the last BE on any disk.
Updating GRUB menu default setting
Changing GRUB menu default setting to <3>
Saving existing file </boot/grub/menu.lst> in top level dataset for BE <snv_102> as <mount-point>//boot/grub/menu.lst.prev.
File </boot/grub/menu.lst> propagation successful
File </etc/lu/GRUB_backup_menu> propagation successful
Successfully deleted entry from GRUB menu
Determining the devices to be marked free.
Updating boot environment configuration database.
Updating boot environment description database on all BEs.
Updating all boot environment configuration databases.
Boot environment <snv_98> deleted.
#

Then I needed to remove the old usf boot and swap slices, old and new layout:

partition> print
Current partition table (original):
Total disk cylinders available: 12047 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       3 -  1962       15.01GB    (1960/0/0)   31487400
  1       swap    wu    1963 -  2224        2.01GB    (262/0/0)     4209030
  2     backup    wm       0 - 12046       92.28GB    (12047/0/0) 193535055
  3 unassigned    wm    2225 -  4182       15.00GB    (1958/0/0)   31455270
  4 unassigned    wu       0                0         (0/0/0)             0
  5 unassigned    wu       0                0         (0/0/0)             0
  6 unassigned    wm    4183 -  6793       20.00GB    (2611/0/0)   41945715
  7       home    wm    6794 - 12046       40.24GB    (5253/0/0)   84389445
  8       boot    wu       0 -     0        7.84MB    (1/0/0)         16065
  9 alternates    wu       1 -     2       15.69MB    (2/0/0)         32130

partition>

partition> print
Current partition table (original):
Total disk cylinders available: 12047 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       3 -  4182       32.02GB    (4180/0/0)   67151700
  1 unassigned    wu       0                0         (0/0/0)             0
  2     backup    wm       0 - 12046       92.28GB    (12047/0/0) 193535055
  3 unassigned    wu       0                0         (0/0/0)             0
  4 unassigned    wu       0                0         (0/0/0)             0
  5 unassigned    wu       0                0         (0/0/0)             0
  6 unassigned    wm    4183 -  6793       20.00GB    (2611/0/0)   41945715
  7       home    wm    6794 - 12046       40.24GB    (5253/0/0)   84389445
  8       boot    wu       0 -     0        7.84MB    (1/0/0)         16065
  9 alternates    wu       1 -     2       15.69MB    (2/0/0)         32130

partition>

The size of my pools before:

# zpool list
NAME       SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rootpool    15G  8.54G  6.46G    56%  ONLINE  -
tank        40G  5.65G  34.3G    14%  ONLINE  -
tank2     19.9G   652K  19.9G     0%  ONLINE  -
#

Then reboot, oops!!!

It just defaults to >grub prompt, because my old ufs slice held all the boot info and I just deleted that so it can't find any  . . . but this is a simple process to restore (as long as you have a recent dvd image handy (so it can recongnise and mount the zfs pool).

Insert and boot from the dvd image, select single user mode.

Mount the rootpool as r/w on /a (it should prompt automatically for this).

At the command prompt, type:

installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c2t1d0s0

then reboot.  I love it when a plan comes together, pool sizes after the reboot:

# zpool list
NAME       SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rootpool    32G  8.54G  23.5G    26%  ONLINE  -
tank        40G  5.54G  34.5G    13%  ONLINE  -
tank2     19.9G   722K  19.9G     0%  ONLINE  -
#

This blog copyright 2009 by Thin Slice