Category: Solaris

Testing Solaris IPMP failover

In an IPMP configuration, you set the IP addresses at the configuration file named after your network card. One of the configuration files you insert two IP addresses and one of them will be the one that can be failover to the other card in case of network failure.

root@solaris10:~ # cat /etc/hostname.ce0
solaris-ce0 netmask + broadcast + group asm_ipmp -failover deprecated up \
addif solaris netmask + broadcast + up

root@solaris10:~ # cat /etc/hostname.ce4
solaris-ce4 netmask + broadcast + group asm_ipmp deprecated -failover standby up

root@solaris10:~ # grep solaris /etc/hosts
130.175.216.183 solaris-ce4
130.175.216.184 solaris-ce0
130.175.216.155 solaris

root@solaris10:~ # ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
ce0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2
inet 130.175.216.184 netmask ffffff80 broadcast 130.175.216.255
groupname asm_ipmp
ether 0:14:4f:43:94:2c
ce0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 130.175.216.155 netmask ffffff80 broadcast 130.175.216.255
ce2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.102.20 netmask ffffff00 broadcast 192.168.102.255
ether 0:14:4f:43:94:2e
ce4: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE> mtu 1500 index 4
inet 130.175.216.183 netmask ffffff80 broadcast 130.175.216.255
groupname asm_ipmp
ether 0:14:4f:3b:51:62

This command I will test the failover of the IP 130.175.216.155 to ce4.

root@solaris10:~ # if_mpadm -d ce0
Feb 13 06:24:57 solaris10 in.mpathd[428]: Successfully failed over from NIC ce0 to NIC ce4

root@solaris10:~ # ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
ce0: flags=89040842<BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,OFFLINE> mtu 1500 index 2
inet 130.175.216.184 netmask ffffff80 broadcast 130.175.216.255
groupname asm_ipmp
ether 0:14:4f:43:94:2c
ce2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.102.20 netmask ffffff00 broadcast 192.168.102.255
ether 0:14:4f:43:94:2e
ce4: flags=29040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY> mtu 1500 index 4
inet 130.175.216.183 netmask ffffff80 broadcast 130.175.216.255
groupname asm_ipmp
ether 0:14:4f:3b:51:62
ce4:1: flags=21000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,STANDBY> mtu 1500 index 4
inet 130.175.216.155 netmask ffffff80 broadcast 130.175.216.255

Returning the IP to ce0

root@solaris10:~ # if_mpadm -r ce0
Feb 13 06:25:35 solaris10 in.mpathd[428]: Successfully failed back to NIC ce0

root@solaris10:~ # ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
ce0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2
inet 130.175.216.184 netmask ffffff80 broadcast 130.175.216.255
groupname asm_ipmp
ether 0:14:4f:43:94:2c
ce0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 130.175.216.155 netmask ffffff80 broadcast 130.175.216.255
ce2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.102.20 netmask ffffff00 broadcast 192.168.102.255
ether 0:14:4f:43:94:2e
ce4: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE> mtu 1500 index 4
inet 130.175.216.183 netmask ffffff80 broadcast 130.175.216.255
groupname asm_ipmp
ether 0:14:4f:3b:51:62

Fujitsu hardware running Solaris

Fujitsu made some SPARC machines sold under the brand PRIMEPOWER. It runs Solaris but to see the hardware information you need to use some specific tools that Fujitsu developed.

How to list hardware status

root@solaris8-fujistu:/ # /opt/FJSVmadm/sbin/hrdconf -l

Machine Administration tool is an interactive tool that can also be used to display hardware status

root@solaris8-fujistu:/ # /opt/FJSVmadm/sbin/madmin

If you need to run the equivalent of the Sun Explorer, you’re looking for fjsnap. First, check if you have it installed.

root@solaris8-fujistu:/ # pkginfo -l FJSVsnap
PKGINST:  FJSVsnap
NAME:  System Information Output Tool
CATEGORY:  application
ARCH:  all
VERSION:  2.5,REV=2005.01.1100
BASEDIR:  /
VENDOR:  FUJITSU/PFU LIMITED
DESC:  System Extensive Data & Information Output Tool
PSTAMP:  flicker120050419161312
INSTDATE:  Nov 27 2006 18:22
STATUS:  completely installed
FILES:      182 installed pathnames
3 shared pathnames
14 directories
147 executables
1437 blocks used (approx)

Then run it with /opt/FJSVsnap/bin/fjsnap -a <filename>

root@solaris8-fujistu:/ # /opt/FJSVsnap/bin/fjsnap -a /tmp/`hostname`.tar
<<< fjsnap * START !! >>>
<<< Path-name check * START !! >>>
<<< Path-name check *  END  !! >>>
<<< File-size check * START !! >>>
<<< File-size check *  END  !! >>>
<<<  needed tmp-space size  >>>
12806 MB is left in /var/tmp
143 MB is needed
<<< Copy to tmp-dir * START !! >>>
<<< Copy to tmp-dir *  END  !! >>>
<<< Output * START !! >>>
/usr/sbin/tar cfb /tmp/solaris8-fujistu.tar
<<< Output *  END  !! >>>
<<< fjsnap *  END  !! >>>

To get the machine model you can check

root@solaris8-fujistu:/ # /opt/FJSVhwr/sbin/prtdiag
System Configuration:  Fujitsu  sun4us Fujitsu PRIMEPOWER650 1-slot 4x SPARC64 V

root@solaris8-fujistu:/ # /opt/FJSVhwr/sbin/getmodelcode
650

How to get Primepower server serial number from the system console:
For PRIMEPOWER 250, PRIMEPOWER 450, PRIMEPOWER 650 and PRIMEPOWER 850

root@solaris8-fujitsu:/ # /opt/FJSVmadm/sbin/serialid -a
serialid: 6J123456,123456

For PRIMEPOWER 900, PRIMEPOWER 1500 and PRIMEPOWER 2500

root@solaris8-fujitsu:/ # /opt/FJSVcsl/bin/serialid -m machine_name -a
serialid: 6J123456,123456

The serial number starts with 6J or 6B

Discovering new disks in a Solaris server with QLogic HBA

This server is using the QLogic’s FC driver and not the usual Sun’s driver.

root@solaris9:~ # modinfo | grep ql
25  12beb8f  83803 281   1  qla2300 (QLogic FC Driver v4.18)
307 7876c000  17e6f 280   1  qlog (VxQLOG 4.1_REV-4.1B18_sol_GA_s1)

To discover the new LUNs attached, use the qlreconfig utility

root@solaris9:~ # /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig -d qla2300 -v

*****                     *****
*****    W A R N I N G    *****
*****                     *****

PLEASE READ THE DOCUMENTATION BEFORE USING THIS UTILITY

This utility updates the driver configuration parameters
on an live system.  Extreme care MUST be taken to insure
that the specified parameters are correct for this system.
Failure to do so may render this system unusable, and/or
panic the system.

This utility utilizes the devfsadm utility, which depending on
the system and the number of devices, may take some time to
complete.

Do you wish to continue (y/n)? y
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: starting execution
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: utility verson is: 1.01
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: driver version: 4.18
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: os level is: 9
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: system call checks done
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: Found qla2300 driver ioctl device path at: ‘/devices/pci@1e,600000/SUNW,qlc@2:devctl’
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: buffer allocated and populated
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: finished with /usr/bin/pkill call
Dec 16 14:50:47  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: calling driver ioctl
Dec 16 14:50:48  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: ioctl OK — status is: 0; detail status is 0
Dec 16 14:50:48  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: finished with driver call
Dec 16 14:50:48  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: starting /usr/sbin/devfsadm call
Dec 16 14:51:15  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: finished with /usr/sbin/devfsadm call
Dec 16 14:51:15  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: starting /usr/sbin/update_drv call
Dec 16 14:51:25  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: finished with /usr/sbin/update_drv call
Dec 16 14:51:25  /opt/QLogic_Corporation/drvutil/qla2300/qlreconfig: finished

Resetting a RSC / ALOM Card from Solaris

Here an RSC card wasn’t responding so my colleague decided to reboot the card.

root@solaris9:/ # /usr/platform/`uname -i`/rsc/rscadm shownetwork
rscadm: RSC firmware not responding~

When you pass the flag -s you try a soft reset in the card.

root@solaris9:/ # /usr/platform/`uname -i`/rsc/rscadm resetrsc -s
Are you sure you want to reboot RSC (y/n)?  y
rscadm: RSC firmware not responding

Here is the how to perform the hard reset

root@solaris9:/ # /usr/platform/`uname -i`/rsc/rscadm resetrsc
Are you sure you want to reboot RSC (y/n)?  y

If you need to reset the ALOM card, use scadm with the same parameters as above

root@solaris9:/ # /usr/platform/`uname -i`/sbin/scadm resetrsc -s

Unfortunately, resetting the card didn’t solve the problem.

Discovering what library is necessary to run an application

I needed to install rsync in a Solaris 9 so I headed to Sunfreeware and download the package. It had the following description:

Rsync is a replacement for rcp that has many more features – installs in /usr/local. Dependencies: popt, libiconv, libintl, and having libgcc_s.so.1 in /usr/local/lib is required. This can be done by installing libgcc-3.4.6 or gcc-3.4.6 or higher, packages also. There are some new features of version 3 that may require your attention of you have used rsync in the past. See the Details link below for more information.

After you install the package, there is a big probability that it won’t work because it will need the libraries listed in the description. Let’s install and find what my system is missing.

root@solaris9:/tmp/rsync # pkgadd -d rsync-3.0.6-sol9-sparc-local

The following packages are available:
1  SMCrsync     rsync
(sparc) 3.0.6

Select package(s) you wish to process (or ‘all’ to process
all packages). (default: all) [?,??,q]: 1

Processing package instance <SMCrsync> from </tmp/rsync/rsync-3.0.6-sol9-sparc-local>

rsync
(sparc) 3.0.6
The Rsync Group
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
2 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing rsync as <SMCrsync>

## Installing part 1 of 1.
/usr/local/bin/rsync
/usr/local/doc/rsync/COPYING
/usr/local/doc/rsync/INSTALL
/usr/local/doc/rsync/NEWS
/usr/local/doc/rsync/OLDNEWS
/usr/local/doc/rsync/README
/usr/local/doc/rsync/TODO
/usr/local/doc/rsync/csprotocol.txt
/usr/local/doc/rsync/doc/README-SGML
/usr/local/doc/rsync/doc/profile.txt
/usr/local/doc/rsync/doc/rsync.sgml
/usr/local/doc/rsync/rsync3.txt
/usr/local/doc/rsync/rsyncsh.txt
/usr/local/doc/rsync/tech_report.tex
/usr/local/doc/rsync/wildtest.txt
/usr/local/share/man/man1/rsync.1
/usr/local/share/man/man5/rsyncd.conf.5
[ verifying class <none> ]

Installation of <SMCrsync> was successful.

Here I invoke ldd to see what my system is missing. It reported libiconv.so.2, so I need to download the libiconv package as said before.

root@solaris9:/tmp/rsync # ldd /usr/local/bin/rsync
libpopt.so.0 =>  /usr/lib/libpopt.so.0
libsec.so.1 =>   /usr/lib/libsec.so.1
libsocket.so.1 =>        /usr/lib/libsocket.so.1
libnsl.so.1 =>   /usr/lib/libnsl.so.1
libiconv.so.2 =>         (file not found)
libc.so.1 =>     /usr/lib/libc.so.1
libdl.so.1 =>    /usr/lib/libdl.so.1
libmp.so.2 =>    /usr/lib/libmp.so.2
/usr/platform/SUNW,Sun-Fire-V440/lib/libc_psr.so.1

root@solaris9:/tmp/rsync # pkgadd -d libiconv-1.11-sol9-sparc-local

The following packages are available:
1  SMCliconv     libiconv
(sparc) 1.11

Select package(s) you wish to process (or ‘all’ to process
all packages). (default: all) [?,??,q]: 1

Processing package instance <SMCliconv> from </tmp/rsync/libiconv-1.11-sol9-sparc-local>

libiconv
(sparc) 1.11
Bruno Haible
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
5 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing libiconv as <SMCliconv>

## Installing part 1 of 1.
/usr/local/bin/iconv
/usr/local/doc/libiconv/ABOUT-NLS
/usr/local/doc/libiconv/AUTHORS
/usr/local/doc/libiconv/COPYING.LIB
/usr/local/doc/libiconv/ChangeLog
/usr/local/doc/libiconv/DESIGN
/usr/local/doc/libiconv/INSTALL.generic
/usr/local/doc/libiconv/NEWS
/usr/local/doc/libiconv/NOTES
/usr/local/doc/libiconv/PORTS
/usr/local/doc/libiconv/README
/usr/local/doc/libiconv/README.djgpp
/usr/local/doc/libiconv/README.os2
/usr/local/doc/libiconv/README.woe32
/usr/local/doc/libiconv/THANKS
/usr/local/include/iconv.h
/usr/local/include/libcharset.h
/usr/local/include/localcharset.h
/usr/local/lib/libcharset.a
/usr/local/lib/libcharset.la
/usr/local/lib/libcharset.so <symbolic link>
/usr/local/lib/libcharset.so.1 <symbolic link>
/usr/local/lib/libcharset.so.1.0.0
/usr/local/lib/libiconv.la
/usr/local/lib/libiconv.so <symbolic link>
/usr/local/lib/libiconv.so.2 <symbolic link>
/usr/local/lib/libiconv.so.2.4.0
/usr/local/lib/preloadable_libiconv.so
/usr/local/man/man1/iconv.1
/usr/local/man/man3/iconv.3
/usr/local/man/man3/iconv_close.3
/usr/local/man/man3/iconv_open.3
/usr/local/man/man3/iconvctl.3
/usr/local/share/doc/iconv.1.html
/usr/local/share/doc/iconv.3.html
/usr/local/share/doc/iconv_close.3.html
/usr/local/share/doc/iconv_open.3.html
/usr/local/share/doc/iconvctl.3.html
[ verifying class <none> ]

Installation of <SMCliconv> was successful.

Invoking ldd again to see if all dependencies are met. Now I need to install libgcc.

root@solaris9:/tmp/rsync # ldd /usr/local/bin/rsync
libpopt.so.0 =>  /usr/lib/libpopt.so.0
libsec.so.1 =>   /usr/lib/libsec.so.1
libsocket.so.1 =>        /usr/lib/libsocket.so.1
libnsl.so.1 =>   /usr/lib/libnsl.so.1
libiconv.so.2 =>         /usr/local/lib/libiconv.so.2
libc.so.1 =>     /usr/lib/libc.so.1
libdl.so.1 =>    /usr/lib/libdl.so.1
libmp.so.2 =>    /usr/lib/libmp.so.2
libgcc_s.so.1 =>        (file not found)
/usr/platform/SUNW,Sun-Fire-V440/lib/libc_psr.so.1

root@solaris9:/tmp/rsync # pkgadd -d libgcc-3.4.6-sol9-sparc-local

The following packages are available:
1  SMClgcc346     libgcc
(sparc) 3.4.6

Select package(s) you wish to process (or ‘all’ to process
all packages). (default: all) [?,??,q]: 1

Processing package instance <SMClgcc346> from </tmp/rsync/libgcc-3.4.6-sol9-sparc-local>

libgcc
(sparc) 3.4.6
FSF
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing libgcc as <SMClgcc346>

## Installing part 1 of 1.
/usr/local/lib/libg2c.so <symbolic link>
/usr/local/lib/libg2c.so.0 <symbolic link>
/usr/local/lib/libg2c.so.0.0.0
/usr/local/lib/libgcc_s.so <symbolic link>
/usr/local/lib/libgcc_s.so.1
/usr/local/lib/libstdc++.so.6 <symbolic link>
/usr/local/lib/libstdc++.so.6.0.3
[ verifying class <none> ]

Installation of <SMClgcc346> was successful.

No more messages saying that some file is missing. The application is running as expected.

root@solaris9:/tmp/rsync # ldd /usr/local/bin/rsync
libpopt.so.0 =>  /usr/lib/libpopt.so.0
libsec.so.1 =>   /usr/lib/libsec.so.1
libsocket.so.1 =>        /usr/lib/libsocket.so.1
libnsl.so.1 =>   /usr/lib/libnsl.so.1
libiconv.so.2 =>         /usr/local/lib/libiconv.so.2
libc.so.1 =>     /usr/lib/libc.so.1
libdl.so.1 =>    /usr/lib/libdl.so.1
libmp.so.2 =>    /usr/lib/libmp.so.2
libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
/usr/platform/SUNW,Sun-Fire-V440/lib/libc_psr.so.1

root@solaris9 # rsync
rsync  version 3.0.6  protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, no IPv6, batchfiles, inplace,
append, ACLs, no xattrs, iconv, no symtimes

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.

How to perform a Sun SC Failover

Check if there is any data synchronization running between the System Controllers. The File Propagation State must be set as active and there must not show any file in Active File or Queued Files.

e20k-sc0:sms-svc> showdatasync
File Propagation State: ACTIVE
Active File:            –
Queued Files:           0

Each system controller must not have any status different from Good to prevent the failover. The failover must be active.

e20k-sc0:sms-svc> showfailover -v
SC Failover Status:     ACTIVE
Status of Shared Memory:
HASRAM (CSB at CS0):     …………………………………Good
HASRAM (CSB at CS1):     …………………………………Good

Status of e20k-sc0:
Role:                    …………………………………MAIN
SMS Daemons:             …………………………………Good
System Clock:            …………………………………Good
Private I2 Network:      …………………………………Good
Private HASRAM Network:  …………………………………Good
Public Network:
Group “C1”:      …………………………………..Up
eri0:              …………………………………..Up
eri3:              …………………………………..Up
Logical IP Addr. – C1:…………………………………..Up
System Memory:           ………………………………….4.9%
Disk Status:
/:                   ………………………………….3.6%
Console Bus Status:
EXB at EX0:          …………………………………Good
EXB at EX1:          …………………………………Good
EXB at EX2:          …………………………………Good
EXB at EX3:          …………………………………Good
EXB at EX4:          …………………………………Good
EXB at EX5:          …………………………………Good
EXB at EX6:          …………………………………Good
EXB at EX8:          …………………………………Good
EXB at EX9:          …………………………………Good
EXB at EX10:         …………………………………Good
EXB at EX11:         …………………………………Good
EXB at EX12:         …………………………………Good
EXB at EX13:         …………………………………Good
EXB at EX14:         …………………………………Good
EXB at EX15:         …………………………………Good
EXB at EX16:         …………………………………Good
EXB at EX17:         …………………………………Good

Status of e20k-sc1:
Role:                    ………………………………..SPARE
SMS Daemons:             …………………………………Good
System Clock:            …………………………………Good
Private I2 Network:      …………………………………Good
Private HASRAM Network:  …………………………………Good
Public Network:
Group “C1”:      …………………………………..Up
eri0:              …………………………………..Up
eri3:              …………………………………..Up
Logical IP Addr. – C1:……………………………..Inactive
System Memory:           ………………………………….4.6%
Disk Status:
/:                   ………………………………….3.5%
Console Bus Status:
EXB at EX0:          …………………………………Good
EXB at EX1:          …………………………………Good
EXB at EX2:          …………………………………Good
EXB at EX3:          …………………………………Good
EXB at EX4:          …………………………………Good
EXB at EX5:          …………………………………Good
EXB at EX6:          …………………………………Good
EXB at EX8:          …………………………………Good
EXB at EX9:          …………………………………Good
EXB at EX10:         …………………………………Good
EXB at EX11:         …………………………………Good
EXB at EX12:         …………………………………Good
EXB at EX13:         …………………………………Good
EXB at EX14:         …………………………………Good
EXB at EX15:         …………………………………Good
EXB at EX16:         …………………………………Good
EXB at EX17:         …………………………………Good

You run setfailover force to perform the failover. If there is a problem on the spare clock input, it can cause a domain stop (it is going to power off all the domains)

e20k-sc0:sms-svc> setfailover force
Forcing failover. Do you want to continue (yes/no)? yes
The spare clock input on some boards might be bad. Forcing a failover now is likely to cause the affected domains to domain stop (Dstop).
Do you want to continue (yes/no)? yes

Checking service status

e20k-sc0:sms-svc> showfailover -r
SPARE

When you manually failover, the automatic failover is disabled

e20k-sc0:sms-svc> showfailover –v | grep “SC Failover Status”
SC Failover Status:     DISABLED

You need to manually activate the automatic failover again to return to the previous status

e20k-sc0:sms-svc> setfailover on
e20k-sc0:sms-svc> showfailover -v | grep “SC Failover Status”
SC Failover Status:     ACTIVATING

e20k-sc1:sms-svc> showfailover -v | grep “SC Failover Status”
SC Failover Status:     ACTIVE

Sun System Management Services – Error: Exclusive session is in use, disconnecting.

You need to connect to a System Controller (SC) to manage a domain in a Sun Fire E12K, E15K, E20K or E25K. It has the System Management Services (SMS) software that allows you to control the domains.

To view the console, you use /opt/SUNWSMS/bin/console -d <domain letter or domain name> but I was having the error message “Exclusive session is in use, disconnecting”.

sms-svc@sc0:/ $ console -d domain06
Trying to connect…
Connected to Domain Server.

Exclusive session is in use, disconnecting.

I asked to a friend why I was having this problem and he said that I needed to kill the other session.

sms-svc@sc0:/ $ w
9:24am  up 76 day(s),  3:53,  2 users,  load average: 0.91, 2.04, 1.52
User     tty           login@  idle   JCPU   PCPU  what
root     pts/1         9:08am     9                console -d domain06
root     pts/2         9:19am                      w

I found out which PID is running the console, then killed it.

sms-svc@sc0:/ $ ps -ef | grep consol
root  3127     1  0   Sep 19 console  0:00 /usr/lib/saf/ttymon -g -h -p sc0-01-vix console login:  -T sun -d /dev/console
sms-svc 11229 11182  0 09:24:18 pts/2    0:00 grep consol
sms-svc  5492 5398  0 09:09:23 pts/1    0:00 console -d domain06

sms-svc@sc0:/ $ kill 5492

Worked as expected:

sms-svc@sc0:/ $ /opt/SUNWSMS/bin/console -d domain06
Trying to connect…
Connected to Domain Server.
Your console is in exclusive mode now.

Check OBP variables without rebooting Solaris or going to the ok prompt

To check the OBP variables in your Solaris SPARC server and leaving Solaris up and running, you’ll need to use the eeprom command

root@solaris:/ # eeprom
asr-policy=normal
test-args: data not available.
diag-passes=1
local-mac-address?=true
fcode-debug?=false
scsi-initiator-id=7
oem-logo: data not available.
oem-logo?=false
oem-banner: data not available.
oem-banner?=false
ansi-terminal?=true
screen-#columns=80
screen-#rows=34
ttyb-rts-dtr-off=false
ttyb-ignore-cd=true
ttya-rts-dtr-off=false
ttya-ignore-cd=true
ttyb-mode=9600,8,n,1,-
ttya-mode=9600,8,n,1,-
output-device=ttya
input-device=ttya
auto-boot-on-error?=true
error-reset-recovery=sync
load-base=16384
auto-boot?=true
network-boot-arguments: data not available.
boot-command=boot
diag-file: data not available.
diag-device=disk0:a
boot-file: data not available.
boot-device=vx-rootdisk vx-rootmirr
use-nvramrc?=false
nvramrc=devalias vx-rootdisk /pci@1c,600000/scsi@2/disk@0,0:a
devalias vx-rootmirr /pci@1c,600000/scsi@2/disk@3,0:a
security-mode=none
security-password: data not available.
security-#badlogins=0
verbosity=normal
diag-trigger=error-reset power-on-reset
service-mode?=false
diag-script=normal
diag-level=max
diag-switch?=false

OpenSolaris 2008.05 failed to update

This is the error message that appeared when I tried to update my installation.

root@setalaptop:~ # pkg image-update
Creating Plan \Traceback (most recent call last):
File “/usr/bin/pkg”, line 1440, in ?
ret = main_func()
File “/usr/bin/pkg”, line 1404, in main_func
return image_update(img, pargs)
File “/usr/bin/pkg”, line 366, in image_update
noexecute = noexecute)
File “/usr/lib/python2.4/vendor-packages/pkg/client/image.py”, line 1282, in make_install_plan
ip.evaluate()
File “/usr/lib/python2.4/vendor-packages/pkg/client/imageplan.py”, line 344, in evaluate
self.evaluate_fmri(f)
File “/usr/lib/python2.4/vendor-packages/pkg/client/imageplan.py”, line 187, in evaluate_fmri
m = self.image.get_manifest(pfmri)
File “/usr/lib/python2.4/vendor-packages/pkg/client/image.py”, line 516, in get_manifest
m = self._fetch_manifest(fmri)
File “/usr/lib/python2.4/vendor-packages/pkg/client/image.py”, line 468, in _fetch_manifest
mcontent = retrieve.get_manifest(self, fmri)
File “/usr/lib/python2.4/vendor-packages/pkg/client/retrieve.py”, line 87, in get_manifest
return m.read()
File “/usr/lib/python2.4/socket.py”, line 277, in read
data = self._sock.recv(recv_size)
File “/usr/lib/python2.4/httplib.py”, line 480, in read
s = self.fp.read(amt)
File “/usr/lib/python2.4/socket.py”, line 295, in read
data = self._sock.recv(recv_size)
timeout: timed out

I’ll research another day why I can’t update it.

OpenSolaris 2008.05

Ian Murdock and the volunters from OpenSolaris.org released the new distro-like distribution of Solaris. It’s called OpenSolaris.

I’m downloading the OpenSolaris Live CD right now to replace the Fedora Linux partition that I have.