Category Archives: Solaris 11

Learning Oracle ZFS Storage using Appliance simulator

In OVM environment maximum customers are using zfs storage.

If you guys are not familiar with GUI interface of zfs storage then no worries. You can download the simulator which provides the same kind of experience as the original zfs storage interface.

Below is the link to download.

http://www.oracle.com/webapps/dialogue/ns/dlgwelcome.jsp?p_ext=Y&p_dlg_id=10521841&src=7299332&Act=45

You may need the Oracle portal credential to download it.

After importing this template into OVB (Oracle Virtual Box) you can assign IP address to it. Then put the same address in browser to start working on it.

Advertisements

Solaris 11 pkg commands advance usage

Some questions came into my mind; hope in your as well, regarding the package uninstallation and installation, that which packages and files will get affected due to actions. Kindly find the below commands to address those question.

Some of the outputs are truncated to keep the article precise.

To list all the packages present in group package compress/bzip2.

root@Node1:~# pkg contents -Hro fmri -t depend -a type=group solaris-small-server compress/bzip2

compress/gzip

compress/p7zip

If we want to see the summary of installed package from particular group, as well, then we can add spice using below option. In this case package is installed hence IFO showing the i option.

root@Node1:~# pkg list `pkg contents -Hro fmri -t depend -a type=group solaris-small-server compress/bzip2`

NAME (PUBLISHER)                                  VERSION                    IFO

compress/bzip2 (solaris)                          1.0.6-0.175.1.0.0.24.0     i–

compress/gzip (solaris)                           1.4-0.175.1.0.0.24.0       i–

compress/p7zip (solaris)                          9.20.1-0.175.1.0.0.24.0    i–

compress/unzip (solaris)                          6.0-0.175.1.0.0.24.0       i—

In similar way we can also check for the info regarding packages.

To see which files are going to be added during the installation of package.

root@Node1:~# pkg contents -r -t file -o owner,group,pkg.size,path zip

OWNER GROUP PKG.SIZE PATH

root  bin   228600 usr/bin/zip

root  bin     107944 usr/bin/zipcloak

root  bin     101856 usr/bin/zipnote

root  bin     106252 usr/bin/zipsplit

root  bin      86036 usr/share/man/man1/zip.1

root  bin       2548 usr/share/man/man1/zipcloak.1

root  bin       2239 usr/share/man/man1/zipnote.1

root  bin       1680 usr/share/man/man1/zipsplit.1

To see the information that how much space is required to install the package.

root@Node1:~# pkg info -r zip

          Name: compress/zip

       Summary: Info-Zip (zip)

   Description: The Info-Zip (zip) compression utility

      Category: Applications/System Utilities

         State: Installed

     Publisher: solaris

       Version: 3.0

Build Release: 5.11

        Branch: 0.175.1.0.0.24.0

Packaging Date: September  4, 2012 05:06:11 PM

          Size: 631.01 kB

          FMRI: pkg://solaris/compress/zip@3.0,5.11-0.175.1.0.0.24.0:20120904T170611Z

To show which package is providing the particular file or in this case I can say library.

root@Node1:~# pkg search -lo path,pkg.name libpower.so.1

PATH              PKG.NAME

lib/libpower.so.1 system/kernel/power

Suppose I am planning to uninstall one package I want to know which packages on my system depend on the package which I am going to uninstall.

root@Node1:~# pkg search -lo pkg.name require:system/kernel/power

PKG.NAME

system/kernel/dynamic-reconfiguration/i86pc

system/hal

Another way to do the same thing

root@Node1:~# pkg search -l -o pkg.name ‘depend:require:library/libxml2’

PKG.NAME

print/cups/filter/foomatic-db-engine

system/library/libdbus-glib

system/core-os

system/library

system/resource-mgmt/resource-pools

system/fault-management

To see which packages are required to install the package.

root@Node1:~# pkg contents -r -o fmri,type -t depend php-52

FMRI                                                          TYPE

pkg:/compress/bzip2@1.0.6-0.175.1.0.0.23.0                    require

pkg:/image/library/libjpeg@6.0.2-0.175.0.0.0.0.0              require

pkg:/image/library/libpng@1.4.11-0.175.1.0.0.16.0             require

pkg:/library/libtool/libltdl@2.4.2-0.175.1.0.0.23.0           require

pkg:/library/libxml2@2.7.6-0.175.1.0.0.23.0                   require

pkg:/library/libxslt@1.1.26-0.175.1.0.0.23.0                  require

Another way to look the same thing, but this is more useful. In the quotes we can add other options to filter out the things, in the third place we can add the keywords like require,optional,conditional to filter out the packages according to dependency.

root@Node1:~# pkg search -o search.match,search.match_type ‘web/php-52@:depend::’

SEARCH.MATCH                                        SEARCH.MATCH_TYPE

pkg:/compress/bzip2@1.0.6-0.175.1.0.0.23.0          require

pkg:/image/library/libjpeg@6.0.2-0.175.0.0.0.0.0    require

pkg:/image/library/libpng@1.4.11-0.175.1.0.0.16.0   require

pkg:/library/libtool/libltdl@2.4.2-0.175.1.0.0.23.0 require

Example to add optional parameter to show the optional packages required to install the package.

root@Node1:~# pkg search -o search.match,search.match_type ‘web/php-52@:depend:optional:’

SEARCH.MATCH                  SEARCH.MATCH_TYPE

pkg:/web/php-52/documentation optional

I left to you guys to dig further on another parameters of pkg search command.

Thanks for reading !!

Usage of flowadm in Solaris 11

In this post I am going to show the usage of flowadm to limit the network BW(bandwidth).  I am going to show you the difference in speed and time, which will occur while we are transferring the file from one zone to another zone when flowadm is not implemented and when it’s implemented.

My Lab setup I have created two non-global zones. I am copying one large file from one zone to another. Without the use of flow administration it will try to take the whole bandwidth to copy the file. We can limit that BW using flowadm

Without using flowadm in non-global zone.

root@n2zone1:/# scp procmy.tar root@192.168.120.163:/tmp

Password:

procmy.tar           100% |*********************************************************************************************************************|   319 MB    00:40

 

Now adding flow limitation. Here I am adding flow limitation for destination IP where I want to copy the file.

root@n2zone1:/# flowadm add-flow -l vnic1 -a remote_ip=192.168.120.163 n2zone2

root@n2zone1:/# flowadm show-flow

FLOW        LINK                IPADDR                   PROTO  LPORT   RPORT   DSFLD

n2zone2     vnic1               RMT:192.168.120.163/32   —     —      —      —

root@n2zone1:/# flowadm show-flowprop

FLOW         PROPERTY        VALUE          DEFAULT        POSSIBLE

n2zone2      maxbw           —             —             —

 

Setting the BW to 1Mbps for transfer, by editing the propery of added flow.

 

root@n2zone1:/# flowadm set-flowprop -p maxbw=1 n2zone2

root@n2zone1:/# flowadm show-flowprop

FLOW         PROPERTY        VALUE          DEFAULT        POSSIBLE

n2zone2      maxbw               1          —             —

Now to see the time taken by copy. It is taking more time becase now BW is limited. So in this way we want to perform task for which we don’t want to consume the whole BW we can use this procedure.

root@n2zone1:/# scp procmy.tar root@192.168.120.163:/tmp

Password:

procmy.tar           100% |*********************************************************************************************************************|   319 MB    47:09

 

This flowadm will be applicable only to one specified remote IP, not to all. In the below scenario copy will again take less time and more BW if we are using different IP address.

 

root@n2zone1:/# scp procmy.tar root@192.168.120.155:/tmp

The authenticity of host ‘192.168.120.155 (192.168.120.155)’ can’t be established.

RSA key fingerprint is e3:ec:e4:6f:01:9a:f6:c7:6d:68:66:68:11:c5:18:5d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘192.168.120.155’ (RSA) to the list of known hosts.

Password:

procmy.tar           100% |**********************************************************************|   319 MB    02:13

 

Thanks for reading !!

 

Solaris 10 non-global zone migration to Solaris 11 NGZ– V2V migration

Kindly find the below article showing how to migrate Solaris 10 non-global zone  to Solaris 11 non-global zone. This is v2v migration. We can also convert Solaris 10 physical server into Solaris 11 non-global zone(p2v migration). But if  Solaris 10 physical server is having non-global zones then we have to first migrate non-global zone from Solaris 10 to Solaris 11(v2v) then we can proceed with p2v conversion. Only one type of conversion can take place at single time.

Source Machine Solaris 10:

Step1 : Check the zones running on Solaris 10 server. We found that one non-global zone is running on that.

Solaris-10# zoneadm list -cv

  ID NAME             STATUS     PATH                           BRAND    IP

   0 global           running    /                              native   shared

   1 s10zonev2v       running    /pool2                         native   shared

Step 2: Before migration we have to halt and make it in ready state.

bash-3.2# zoneadm -z s10zonev2v halt

bash-3.2# zoneadm -z s10zonev2v ready

Step 3: copy the version release information from global zone to non-global zone.

bash-3.2# cp /var/sadm/system/admin/INST_RELEASE /pool2/root/var/sadm/system/admin/

Step 4: Make the archive copy of non-global zone.

bash-3.2# find root -print | cpio -ocP@ | gzip > /pool2/s10zonev2v.cpio.gz

6971471 blocks

Step 5: Copy that archive copy to destination Solaris 11 Server.

bash-3.2# scp /pool2/s10zonev2v.cpio.gz  root@192.168.120.159:/var/tmp/

Password:

s10zonev2v.cpio.gz   100% |*******************************************************|  1251 MB    03:53

bash-3.2# zoneadm list -cv

  ID NAME             STATUS     PATH                           BRAND    IP

   0 global           running    /                              native   shared

   2 s10zonev2v       ready      /pool2                         native   shared

Destination machine Solaris 11:

Step 1: Check the already present zones in that server.

root@Solaris11:~# zoneadm list -cv

  ID NAME             STATUS     PATH                           BRAND    IP

   0 global           running    /                              solaris  shared

   – s10-zone1        installed  /pool2/s10zone1/s10-zone1      solaris10 excl

   – s10-zone2        configured /pool2/s10zone1/s10-zone2      solaris10 excl

Step 2: Create configuration for new zone.

root@Solaris11:~# zonecfg -z s10zonev2v

Use ‘create’ to begin configuring a new zone.

zonecfg:s10zonev2v> create -t SYSsolaris10

zonecfg:s10zonev2v> set zonepath=/pool2/s10zone1/s10zonev2v

zonecfg:s10zonev2v> commit

zonecfg:s10zonev2v> verify

zonecfg:s10zonev2v> exit

Step 3: Start the installation of newly created zone with help of the file which we copied from Solaris 10 machine.

root@Solaris11:~# zoneadm -z s10zonev2v install -p -a /var/tmp/s10zonev2v.cpio.gz                                                                                       

The following ZFS file system(s) have been created:

    pool2/s10zone1/s10zonev2v

Progress being logged to /var/log/zones/zoneadm.20140401T185533Z.s10zonev2v.insta                                                                                       ll

    Installing: This may take several minutes…

Postprocessing: This may take a while…

   Postprocess: Updating the image to run within a zone

        Result: Installation completed successfully.

Log saved in non-global zone as /pool2/s10zone1/s10zonev2v/root/var/log/zones/zoneadm.20140401T185533Z.s10zonev2v.install

Step 4: After the successful installation we can see that new zone is in installed state.

root@Solaris11:~# zoneadm list -cv

  ID NAME             STATUS     PATH                           BRAND    IP

   0 global           running    /                              solaris  shared

   – s10-zone1        installed  /pool2/s10zone1/s10-zone1      solaris10 excl

   – s10-zone2        configured /pool2/s10zone1/s10-zone2      solaris10 excl

   – s10zonev2v       installed  /pool2/s10zone1/s10zonev2v     solaris10 excl

root@Solaris11:~# zoneadm -z s10zonev2v boot

root@Solaris11:~# zoneadm list -cv

  ID NAME             STATUS     PATH                           BRAND    IP

   0 global           running    /                              solaris  shared

   2 s10zonev2v       running    /pool2/s10zone1/s10zonev2v     solaris10 excl

   – s10-zone1        installed  /pool2/s10zone1/s10-zone1      solaris10 excl

   – s10-zone2        configured /pool2/s10zone1/s10-zone2      solaris10 excl

Step 5: Finally we can login into that zone.

root@Solaris11:~# zlogin s10zonev2v

[Connected to zone ‘s10zonev2v’ pts/1]

 Thanks for reading!!

How to configure Solaris 10 as Branded zone in Solaris 11

In this article I am going to explain how to create branded zone in Solaris 11. Sometimes our applications are specific to run on particular version of OS in those cases branded zones come into picture.

In case of Solaris 11 only Solaris 10 can be implemented as branded zone. Below is the procedure to implement the Solaris 10 as branded zone in Solaris 11.

Step 1 : First we need to check that package which support the branded zone feature is installed on server.

root@Solaris11:~# pkg list /system/zones/brand/brand-solaris10

NAME (PUBLISHER)                                  VERSION                    IFO

system/zones/brand/brand-solaris10                0.5.11-0.175.1.0.0.24.2    i—

Step 2: After that we need to create one zfs file system which can act as zonepath for zone. Here I have created new pool and then zfs file system named as s10zone1.

root@Solaris11:/pool1/zfs1# zpool create pool2 c8t2d0

root@Solaris11:/pool1/zfs1# zfs create pool2/s10zone1

Step 3: After the creation of pool we need to download the Solaris 10 template from Oracle site. This is binary file we can run this as script by giving the parameters shown below.

Link to download the Solaris 10 template http://www.oracle.com/technetwork/server-storage/solaris11/vmtemplates-zones-1949718.html

root@Solaris11:/pool1/zfs1# chmod 777 solaris-10u11-x86.bin

root@Solaris11:/pool1/zfs1# ./solaris-10u11-x86.bin -p /pool2/s10zone1 -a 192.168.120.156 -i net0 -z s10-zone1

       This is an Oracle VM Template for Oracle Solaris Zones.

Copyright © 2011, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license

agreement  containing  restrictions  on use  and  disclosure and are

protected  by  intellectual  property  laws.   Except  as  expressly

permitted in  your license agreement  or allowed by law, you may not

use,  copy,   reproduce,   translate,  broadcast,  modify,  license,

transmit,  distribute,  exhibit,  perform,  publish,  or display any

part,   in  any  form,   or  by  any  means.   Reverse  engineering,

disassembly,  or decompilation of this software,  unless required by

law for interoperability, is prohibited.

  Info: could not find a defaultrouter

  Zone won’t have any defaultrouter configured

IMAGE:      ./solaris-10u11-x86.bin

ZONE:       s10-zone1

ZONEPATH:   /pool2/s10zone1/s10-zone1

VNIC:       vnicZBI96683569

IP ADDR:    192.168.120.156

NETMASK:    255.255.255.0

DEFROUTER:  NONE

TIMEZONE:   Asia/Kolkata

Checking disk-space for extraction

  Ok

Extracting in /pool1/zfs1/bootimage.OvaGCd …

100% [===============================>]

Checking data integrity

  Ok

Checking platform compatibility

      The host  and  the image  do not have  the same Solaris release:

        host  Solaris release:   5.11

        image Solaris release:   5.10

      Will create a Solaris 10 branded zone.

Checking disk-space for installation

  Ok

Installing in /pool2/s10zone1/s10-zone1 …

100% [===============================>]

Attaching s10-zone1

  Ok

Booting s10-zone1

  waiting for boot to complete

  local file systems mounted

  booting…

  booting…

  booting…

Zone s10-zone1 booted

The zone’s root password has been set with the one of  the global zone.

To harden the zone’s security you can change this password: being root,

connect   to   the  zone  from   the  global  zone  with   the  command

‘zlogin s10-zone1’.

Once  logged in,  change the root password  with  the command ‘passwd’.

 Step 4 : We have to wait for approx 20-25 minutes for the completion of above script. Then we can issue the below commands to check the status of newly created zone.

root@Solaris11:/pool1/zfs1# zoneadm list -cv

  ID NAME             STATUS     PATH                           BRAND    IP

   0 global           running    /                              solaris  shared

   3 s10-zone1        running    /pool2/s10zone1/s10-zone1      solaris10 excl

root@Solaris11:/pool1/zfs1# zlogin s10-zone1

[Connected to zone ‘s10-zone1’ pts/2]

Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

# uname -a

SunOS s10-zone1 5.10 Generic_Virtual i86pc i386 i86pc

# more /etc/release

                    Oracle Solaris 10 1/13 s10x_u11wos_24a X86

  Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved.

                            Assembled 17 January 2013

# pkgcond -n is_what

can_add_driver=1

can_remove_driver=1

can_update_driver=1

is_alternative_root=0

is_boot_environment=0

is_diskless_client=0

is_global_zone=0

is_mounted_miniroot=0

is_netinstall_image=0

is_nonglobal_zone=1

is_path_writable=1

is_running_system=0

is_sparse_root_nonglobal_zone=0

is_whole_root_nonglobal_zone=1

Reference Link:

http://www.oracle.com/technetwork/articles/servers-storage-admin/zones-containers-virtualization-1880908.html

How to migrate non-global zone from one server to another.

In this article I am going to show you how to migrate non-global zone from one server to another when non-global zone is present on shared storage.

Most of the times we are doing this when we want to perform acitivity on server.

  • My Lab Set up
    VMware Workstation
    Node1 and Node2 Solaris 10 (Virtual Machines)
    Openfiler to provide the iSCSI LUN (192.168.120.134)

Kindly follow the below step by step approach to complete the activity succesfully.

Step 1 : Common step for both nodes. We are preparing our nodes to scan the LUN from ISCSI target making them as initiator. Before scanning I am having only disk on both servers.

bash-3.2# svcadm enable iscsitgt

bash-3.2# iscsiadm add static-config iqn.2006-01.com.openfiler:tsn.6cd2d6221dcd,192.168.120.134:3260
bash-3.2# echo | format
Searching for disks…done

AVAILABLE DISK SELECTIONS:
0. c1t0d0 <VMware,-VMware Virtual -1.0 cyl 2085 alt 2 hd 255 sec 63>
/pci@0,0/pci15ad,1976@10/sd@0,0
Specify disk (enter its number): Specify disk (enter its number):

Node2# iscsiadm modify discovery -s enable

Step 2 : After making both nodes as ISCSI intiator we can scan the LUN in both nodes using “devfsadm”. New LUN will appear in output of “echo | format” compare it with step 1.

Node2# devfsadm -i iscsi -v

Node2# echo | format
Searching for disks…done

AVAILABLE DISK SELECTIONS:
0. c1t0d0 <VMware,-VMware Virtual -1.0 cyl 2085 alt 2 hd 255 sec 63>
/pci@0,0/pci15ad,1976@10/sd@0,0
1. c2t2d0 <OPNFILE-VIRTUAL-DISK -0 cyl 1560 alt 2 hd 255 sec 63>
/iscsi/disk@0000iqn.2006-01.com.openfiler%3Atsn.6cd2d6221dcd0001,0
Specify disk (enter its number): Specify disk (enter its number):

Node1# echo | format
Searching for disks…done

AVAILABLE DISK SELECTIONS:
0. c1t0d0 <VMware,-VMware Virtual -1.0 cyl 2085 alt 2 hd 255 sec 63>
/pci@0,0/pci15ad,1976@10/sd@0,0
1. c2t2d0 <OPNFILE-VIRTUAL-DISK -0 cyl 1560 alt 2 hd 255 sec 63>
/iscsi/disk@0000iqn.2006-01.com.openfiler%3Atsn.6cd2d6221dcd0001,0
Specify disk (enter its number): Specify disk (enter its number):

Step 3 : I am going to configure the non-global zone named sharedzone1 on shared storage this needs to be done on only one node. I have create pool named zonepool1 on shared disk to use it as root for non-global zone.

Node2# zpool create zonepool1 c2t2d0

Node2# zonecfg -z sharedzone1
sharedzone1: No such zone configured
Use ‘create’ to begin configuring a new zone.
zonecfg:sharedzone1> create -b
zonecfg:sharedzone1> set zonepath=/zonepool1/sharedzone1
zonecfg:sharedzone1> verify
zonecfg:sharedzone1> commit
zonecfg:sharedzone1> exit

Node2# zonecfg -z sharedzone1 info
zonename: sharedzone1
zonepath: /zonepool1/sharedzone1
brand: native
autoboot: false
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
hostid:

Step 4 : After completing the configuration part starting with installation of zone on Node2. After the successful installation booting the zone to check whether installation went fine.

Node2# zoneadm -z sharedzone1 install
A ZFS file system has been created for this zone.
Preparing to install zone <sharedzone1>.
Creating list of files to copy from the global zone.

Node2# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
– sharedzone1 installed /zonepool1/sharedzone1 native shared

Node2# zoneadm -z sharedzone1 boot

Node2# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
1 sharedzone1 running /zonepool1/sharedzone1 native shared

I login into zone and issue the poweroff command to bring the zone down.

Node2# zlogin sharedzone1
[Connected to zone ‘sharedzone1’ pts/2]
Last login: Sun Jul 27 04:48:08 on pts/2
Oracle Corporation SunOS 5.10 Generic Patch January 2005
# poweroff

[Connection to zone ‘sharedzone1’ pts/2 closed]
Node2# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
– sharedzone1 installed /zonepool1/sharedzone1 native shared

Step 5: Now we need to copy the configuration(/etc/zones/sharedzone1.xml) from Node2 to Node1 at same location.

Node2# scp -p /etc/zones/sharedzone1.xml root@Node1:/etc/zones/

Step 6 : Detach the zone from Node2. After detaching it export the pool as well.

Node2# zoneadm -z sharedzone1 detach

Node2# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
– sharedzone1 configured /zonepool1/sharedzone1 native shared

Node2# zpool export zonepool1
Node2# zpool list
no pools available

Step 7 : Now from here we will work on Node1. Check whether pool is available for import.

Node1# zpool import
pool: zonepool1
id: 13929165486904082896
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

zonepool1 ONLINE
c2t2d0 ONLINE

Step 8 : Now import the pool and attached the non-global zone.

Node1# zpool import zonepool1

(I am surprised to see the warning message during attach because I made clone copy of Node2 from Node1 strange but it will work)

Node1# zoneadm -z sharedzone1 attach
These packages installed on this system were not installed on the source system:
SUNWocmu (11.11,REV=2012.11.13.16.42)
SUNWperl-xml-parser (2.34,REV=10.0.3.2004.12.16.14.43)

On Node1 zone has come into installed state.

Node1# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
– sharedzone1 installed /zonepool1/sharedzone1 native shared

Step 9 : Able to successfully boot the non-global zone on second node 🙂

Node1# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
3 sharedzone1 running /zonepool1/sharedzone1 native shared

Oracle Tips : Here my environment was virtualized but in production environment sometime some kernel packages will be at different version on servers. In order to attach the non-global zones in such
situation we have below methods.

Solaris 10 10/08: Attach the zone with a validation check and update the zone to match a host running later versions of the dependent packages or having a different machine class upon attach.

zoneadm -z <zonename> attach -u

Solaris 10 9/10: Attach the zone with a validation check and update all of the packages for the zone, so that these packages match what would be seen with a newly installed non-global zone on this host.
Any packages installed inside the zone but not installed in the global zone are ignored and left as-is.

zoneadm -z <zonename> attach -U

Force attach of zones without performing validation check. This is dangerous one.

zoneadm -z <zonename> attach -F

 

How to Pull console information from server

Couple of times I got trapped in situation in which we are not having ILO information handy with us. We can pull the ILO information from server.

IPMI helps us the manage the Intelligent Platform Management Interface functions of either local
system or of remote system using IPMI v1.5 or v1.2

We can print FRU, LAN configuration, sensor reading, and remote chassis power control information. It is available in most of servers running Linux and Solaris.

Issued these commands on X4270M2 machine.

How to get IP address of ILO ?

[root@Node1 /]# ipmitool -I bmc lan print | grep -w “IP Address”
IP Address Source : Static Address
IP Address : 10.192.168.12

How to check the status of chassis ?

[root@Node1 /]# ipmitool -I bmc chassis status
System Power : on
Power Overload : false
Power Interlock : inactive
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : always-off
Last Power Event :
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false

How to show the sensor information ?

[root@Node1 /]# ipmitool -I bmc sdr list
PWRBS | 0 unspecified | nc
ACPI | 0 unspecified | nc
P0/PRSNT | 0x02 | ok
P1/PRSNT | 0x02 | ok
P0/D0/PRSNT | 0x01 | ok
P0/D1/PRSNT | 0x02 | ok
P0/D2/PRSNT | 0x02 | ok

Output truncated.

How to check Available sensor types ?

[root@Node1 /]# ipmitool -I bmc sdr type list
Sensor Types:
Temperature Voltage
Current Fan
Physical Security Platform Security
Processor Power Supply
Power Unit Cooling Device
Other Memory

How to check the temperature?

[root@Node1 /]# ipmitool -I bmc sdr type Temperature
T_OUT0 | 47h | ok | 7.0 | 27 degrees C
T_OUT1 | 48h | ok | 7.0 | 31 degrees C
T_OUT2 | 49h | ok | 7.0 | 33 degrees C
T_AMB | A5h | ok | 23.0 | 22 degrees C

How to check the Fan status ?

[root@Node1 /]# ipmitool -I bmc sdr type Fan
FB/FM0/F0/TACH | AAh | ok | 29.10 | 3300 RPM
FB/FM0/F1/TACH | ABh | ok | 29.11 | 2500 RPM
FB/FM1/F0/TACH | ACh | ok | 29.12 | 3200 RPM
FB/FM1/F1/TACH | ADh | ok | 29.13 | 2500 RPM
FB/FM2/F0/TACH | AEh | ok | 29.14 | 2900 RPM
FB/FM2/F1/TACH | AFh | ok | 29.15 | 2500 RPM
FB/FM3/F0/TACH | BEh | ok | 29.16 | 5300 RPM
FB/FM3/F1/TACH | BFh | ok | 29.17 | 4500 RPM
FB/FM4/F0/TACH | C0h | ok | 29.18 | 5200 RPM
FB/FM4/F1/TACH | C1h | ok | 29.19 | 4500 RPM
FB/FM5/F0/TACH | C2h | ok | 29.20 | 5200 RPM
FB/FM5/F1/TACH | C3h | ok | 29.21 | 4300 RPM

How to check the FRU unit on server ?

[root@Node1 /]# ipmitool -I bmc fru print
FRU Device Description : Builtin FRU Device (ID 0)
Product Manufacturer : Oracle Corporation
Product Name : ILOM INTEGRATED SP

FRU Device Description : /SYS (ID 3)
Board Mfg Date : Sun Dec 31 18:00:00 1995
Board Product : ASSY,MOTHERBOARD,X4170/X4270,M2

How to check the FW version of ILO ?

[root@Node1 /]# ipmitool -I bmc mc info
Device ID : 32
Device Revision : 1
Firmware Revision : 3.0
IPMI Version : 2.0

How to check the logs ?

[root@Node1 /]# ipmitool -I bmc sel list | more
1 | 03/17/2011 | 18:26:10 | System Boot Initiated | System Restart | Asserted
2 | 03/17/2011 | 18:26:11 | System Boot Initiated | Initiated by warm reset | Asserted
3 | 03/17/2011 | 18:26:11 | System Firmware Progress | Memory initialization | Asserted
4 | 03/17/2011 | 18:26:11 | System Firmware Progress | Primary CPU initialization | Asserted
5 | 03/17/2011 | 18:26:59 | System Firmware Progress | Management controller initialization | Asserted
6 | 03/17/2011 | 18:26:59 | System Firmware Progress | Secondary CPU Initialization | Assert

Getting the same information for HP ILO FW server from Console ?

ipmitool was not available on server hence used below command to check the status of ILO firmware.

[root@Node2~]# hponcfg -g
Firmware Revision = 1.70 Device type = iLO 3 Driver name = hpilo
Host Information:
Server Name: node2
Server Number:

If we want to get the information for Dell HW we can use “racadm” command. I left to you guys to explore it.