Archive
Posts in Solaris
Running commands across multiple servers with clusterssh
I periodically need to perform repetitive maintenance operations (e.g., patching systems) on groups of servers, which typically requires me to run a similar set of commands on multiple hosts. To make my life easier, I use the super useful clusterssh utility to interactively run commands across a group of servers. Cluster SSH is super easy to configure, and uses the concept of a "cluster" to define a group of similar nodes. To get up and running with clusterssh, you will first need to run cssh with the "-u" option to generate a configuration file (this step is optional, but creating a config file reduces start up time): Once the configuration file is created, you can open the file in a text editor, and change the settings to fit your administration preferences…
$ read more →Limiting the size of Solaris tmpfs file systems
I had an application go nuts a week or two ago, and it filled up /tmp on one of my Solaris 10 hosts. Since /tmp is an in memory file system, you can only imagine the chaos this caused. :( To ensure that this never happens again, I modified the tmpfs entry in /etc/vfstab to limit tmpfs to 1GB in size: swap - /tmp tmpfs - yes size=1024m That will teach that pesky application. :)
$ read more →Using the Solaris coreadm utility to control core file generation
Solaris has shipped with the coreadm utiltiy for quite some time, and this nifty little utility allows you to control every facet of core file generation. This includes the ability to control where core files are written, the name of core files, which portions of the processes address space will be written to the core file, and my favorite option, whether or not to generate a syslog entry indicating that a core file was generated. To begin using coreadm, you will first need to run it wit the "-g" option to specify where core files should be stored, and the pattern that should be used when creating the core file: Once a directory and file pattern are specified, you can optionally adjust which portions of the processes address space (e.g., text segment, heap, ISM, etc.) will be written to the core file. To ease debugging, I like to configure coreadm to dump everything with the"-G all" option: Since core files are typically created at odd working hours, I also like to configure coreadm to log messages to syslog indicating that a core file was created…
$ read more →Locating disk drives in a sea of A5200s
I manage about a dozen Sun A5200 storage arrays, and periodically need to replace failed disk drives in these arrays. To ensure that I replace the correct device, I first use the format utility to locate the physical device path to the faulted drive: < ..... > 43. c7t22d0 /sbus@3,0/SUNW,socal@0,0/sf@0,0/ssd@w22000004cf995f6c,0 Once I know which device to replace, I use the luxadm "remove_device" option to remove the drive for replacement, and then run luxadm with the "led_blink" option to turn an amber LED on and off next to the faulted drive: Once I enable the led_blink option, I wander down to the data center, locate the drive with the blinking light, and swap out the failed disk with a new disk…
$ read more →Getting live upgrade to work with a separate /var
While performing a live upgrade from Nevada build 54 to Nevada build 57, I bumped into the following error: Discovering physical storage devices Discovering logical storage devices Cross referencing storage devices with boot environment configurations Determining types of file systems supported Validating file system requests Preparing logical storage devices Preparing physical storage devices Configuring physical storage devices Configuring logical storage devices Analyzing system configuration. Comparing source boot environment file systems with the file system(s) you specified for the new boot environment. Determining which file systems should be in the new boot environment. Updating boot environment description database on all BEs…
$ read more →