DTrace: predicates

May 1, 2009 · Filed Under General Solaris topics · Comment 

You don’t have conditional statements like if..then..else in DTrace, instead of them predicates are used.

Predicates are slash (/) wrapped conditions which are put right after the lines of probe definitions, defining whether DTrace should or should not executre the code of such probes.

Here’s an example. The following script will print the list of all system calls, excluding write, for all the processes currently running on our system. Since DTrace tracks events on a thread-level, you can see in this example that some PIDs are the same. This is because these lines were printed by probes fired for different threads of the same process:

Read more

Be careful with Jumpstart miniroot

May 1, 2009 · Filed Under General Solaris topics · 1 Comment 

Last few days I’m working on debugging the Solaris 10 Jumpstart install for some old desktops (Ultra 10, Ultra 60).

Among few well-known problems, I’ve noticed such an anomaly: the whole Jumpstart session happens just fine, all the packages are installed, but at the very end I see the errors and the installation fails:

SUNWspnego.......................done.    1.30 Mbytes remaining.
SUNWsra..........................done.    1.18 Mbytes remaining.
SUNWsrh..........................done.    1.00 Mbytes remaining.

Completed software installation
Solaris 10 software installation succeeded
Customizing system files

- Mount points table (/etc/vfstab)
- Unselected disk mount points (/var/sadm/system/data/vfstab.unselected)
- Network host addresses (/etc/hosts)

ERROR: Could not open file (/etc/hosts)
ERROR: Could not set up the remote host file (/etc/hosts)
ERROR: System installation failed

Read more

NVidia OpenGL driver for Solaris x64/x86

May 1, 2009 · Filed Under General Solaris topics, News · Comment 

Wonderful news! Finally, we have an OpenGL driver for x86!

As Alan already said, NVidia has finally released an OpenGL driver. This driver will work only in Solaris 10 and newer Solaris releases. Everything works just fine, and just like Sean had mentioned, we’ve already tried it with Quake II! :)

Solaris x86 driver page on NVidia’s website can be found here.

ZFS features: RAID-Z

May 1, 2009 · Filed Under General Solaris topics · Comment 

I started slowly building up my knowledge of ZFS, and have decided to start with the most tasty things. One of them is a RAID-Z approach.

Jeff Bonwick – a ZFS author and one of newly created OpenSolaris ZFS community leaders, wrote a wonderful article on RAID-Z where he thoroughly explains what’s new and cool about RAID-Z compared to RAID-5. Please read this masterpiece here.

Cool things about RAID-Z

  1. A traditional weakness of parity-based RAID schemes – write hole – is fixed
  2. There’s quite a performance improvement because now we have dynamic length stripes – any small amount of data will be treated as a data block of a full-stripe size, and therefore it will be immediately and fully written onto disks.
  3. Data integrity improved – in addition to traditional XORs to validate data based on parity knowledge, each RAID-Z block is validated with a 256-bit checksum.
  4. ZFS has a self-healing functionality built-in. If one of data disks returns corrupted data, ZFS restores the correct data with parity, compares checksums to validate the result, returns this correct data to the disk operation which requested it, and fixes corrupted data on the disk which gave us the corrupted data. Must be really useful!

That’s all for now. Soon there will be new ZFS presentations – and I hope they will have even more information on RAID-Z.

Did you know: root shell in Solaris 10

May 1, 2009 · Filed Under General Solaris topics · Comment 

As you know, traditionally with older Solaris versions you had to leave /sbin/sh as the default root shell. In Solaris 8 and 9, you’re supposed to do this because all the libraries for dynamic linking are in /usr/lib, which could well be on a separate /usr filesystem. This filesystem may not be accessible during the maintenance boot, and therefore it is regarded as a very bad practice to change the root shell.

To make sure the superuser is always going to be able to log in, you have a /sbin/sh assigned to root, and it’s a statically built binary, so it doesn’t need any of the external libraries:

solaris$ file /sbin/sh
/sbin/sh:       ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
solaris$ ldd /sbin/sh
ldd: /sbin/sh: file is not a dynamic executable or shared object

Read more

What is Solaris Express

May 1, 2009 · Filed Under General Solaris topics · 2 Comments 

I can see quite a few visitors come to my blog asking this question shown in the title of this post. I believe this blog entry will be useful specifically for those of you who only started getting to know Solaris.

Solaris Express is the first publicly available part of the new concept of Sun Microsystems, called Sun Software Express Program. The idea is to give an early public access to the latest software from Sun.

Read more

How-To: Installing Solaris with PXE/DHCP

May 1, 2009 · Filed Under Solaris How-To · 5 Comments 

Next Solaris Express build will probably contain one of the long awaited features: Solaris NewBoot architecture for x86 systems. Among other boot architecture improvements, NewBoot introduces GRUB with ufs support, and a pxegrub for PXE booting. Casper Dik describes it here: The End Of Realmode Boot.

In this entry I’ll try and explain how to set up an install server to allow you do a network install of Solaris with PXE.

Solaris PXE/DHCP server howto

The procedure described below describes steps necessary for PXE booting and installing a client with Grub bootloader, which is the default one in Solaris since Nevada b14. Obviously, the very first requirement is that you absolutely must have a PXE-enabled network card installed in the client machine you’re about to install.

Read more

ZFS: filesystem properties

May 1, 2009 · Filed Under General Solaris topics · 1 Comment 

There is quite a number of ZFS filesystems properties, and I will cover most useful ones today.

I’ll begin with refreshing your knowledge a bit. As I’ve told before, I’m going to create a number of ZFS filesystems on my server for the next few blog entires on ZFS. So, right now I have the following:

solaris# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
stock                 2.40G  31.1G  8.50K  /stock
stock/oracle          2.32G   693M  2.32G  /stock/oracle
stock/try                8K   512M     8K  /try

Read more

DTrace: pid provider

May 1, 2009 · Filed Under General Solaris topics · 6 Comments 

Quite ofter we’d like to know what happens to a particular process on a system, and if we’re using DTrace for our investigation, we’d probably use the $target variable (I’ve already spoken about it in the past) or simply specify the process identifier (pid) in some predicates of our probes, thus pointing to DTrace that we’re after only a certain process. $target variable still can and should be used when creating our probes with pid provider.

For DTrace beginners it’s quite a common and good practice. But there is a better way: using the pid provider.

pid provider in DTrace

As it’s explained in the official DTrace guide, pid provider isn’t just a provider, but in fact is a whole class of providers. And, as the name suggests, it provides us with probes related to a certain process.

Read more

Sun Cluster 3.2 is available for download

May 1, 2009 · Filed Under General Solaris topics, News · Comment 

I’ve just read at Ilya Voronin’s blog (blog.curthread.org), that for all the Sun Cluster fans, today is definitely a lucky day, because the new version of Sun Cluster – 3.2 – is already available for download.

By the way, looks like from this version on the clustering solution from Sun is called Solaris Cluster, and includes the following components:

  • Sun Cluster
  • Sun Cluster Geographic Edition
  • Sun Cluster Agents

Read more

« Previous PageNext Page »