Saturday, December 19, 2009

I/O data gathering and I/O analysis

I had to do a data gathering for a Storage proposal done by a storage vendor. I was simply doing a passive work instructed by some other party. This makes me thinking how well we can gather I/O data and analyze them. So I start writing down a list of thing which came to my mind. From my old readings, I know I/O analysis and sizing is a tricky subject. There are two contradictory views on the subject as well. Old view is that I/O analysis and sizing is an art, it is interpreted as a mathematical work (not an art) as well.

I have done very few such and most of them are primitive analysis for study purposes, so I really don’t know the subject very well. The lecture notes in http://www.cs.berkeley.edu/~pattrsn/252S98/Lec13-queuing.pdf helps us understanding interesting principles of queuing theory in I/O.
So here are some tips to do an I/O data gathering. I am hoping to write about a practical I/O analysis case as well.

At which points can we track the I/O data? -> "Table 1 : Typical I/O Trip"



By which methods can we start gathering I/O data for a proper analysis ? -> "Table 2 : I/O data gathering"

Monday, November 30, 2009

Ideas on IT (Infrastructure) vendor selection / How to select an IT (Infrastructure) vendor


This post is about a business aspect of IT Infrastructure. IT vendor selection process is becoming more and more complicated with technology advances and stiff competition between vendors.
Here is sample process I used to pick and choose an IT infrastructure vendor while I was working for a Telecom client.

Architecture Suitability Criteria
 Architecture of the Main Solution
 Architecture of the Backup Solution
 Architecture of the DR Solution
 End of Life (EOL) and End of Support (EOS) of systems
 Platform and System Familiarity

Vendor Suitability Criteria
 Technical Support
 Human Resource pool (Technical)
 Reference Sites
 Past experience with us

Commercial Evaluation Criteria
 Hardware and Implementation
 Maintenance (5 years NPV)
 Implementation Time
 Support & Maintenance Mechanism
 Support for Version Upgrades and New Modules

Wednesday, November 18, 2009

SAP IT Infrastructure Landscape – Example Design (Cont.)

IT Landscape designing for SAP gains a good experience in IT Infrastructure designing. We can see how some basic designing concepts (like below) behave and work in practice.
  • N (Eg:- 3) tier architecture

  • N (Eg:- 3) systems landscape

  • Application load balancing

  • High Availability

  • Scalability (Horizontal and Vertical)

  • Seamless upgrades and expansions
SAP is a superior ERP product. It has a clear cut guides and best practices in “IT architecture designing, IT architecture sizing”. This is compared to the many other products with no sizing guides, architecture guides.

Nice thing about the SAP’s architecture is that, if you size correctly with future buffers, expanding a SAP IT landscape is seamless. Such an example scenario is given here in this post – “SAP IT Infrastructure Landscape – Example Design”


SAP IT Infrastructure Landscape – Example Design (Cont.) – SAP HW setup after a new acquisition


SAP IT Infrastructure Landscape – Example Design – SAP HW setup for initial phase


Sun (Solaris) Cluster Compliance

Following is the summary for checking Hardware (Server and Storage) compliance for Solaris Cluster.

Server (Hardware) Compliance:-

Sun Servers:-
Most of the Sun servers (even some models of Sun Blades) are supported -http://www.sun.com/software/solaris/cluster/specs.xml

Third party (non Sun) Servers:-
According to “Solaris Cluster Open Hardware Program” -
http://www.sun.com/software/cluster/ohp/index.jsp
Only a set of “HP ProLiant x64” are supported - http://www.sun.com/software/cluster/ohp/hp_proliant_interop.jsp
In short “Solaris Cluster is currently not supported on IBM, DELL, Intel servers. Only some of the HP ProLiant x64 servers supported” by November 2009.


Storage (Hardware) Compliance:-

http://www.sun.com/software/solaris/cluster/specs.xml

http://www.sun.com/software/cluster/osp/

Saturday, November 14, 2009

Sample set of parameters - Solaris I/O - UFS Tuning

Some of I/O related /etc/system parameters are listed below, This system is a 32GB Solrais x86 server, Always refer to the "SolarisTunable Parameters ReferenceManual" before applying to the systems.
  • set maxusers=2048 <- Number of concurrent users on the system determining the amount of physical memory allocated to the kernel (lot of memory and relatively few running processes can save system memory when the default value of maxusers is reduced)
  • set ncsize=12000000 <- Defines the number of entries in the directory name look-up cache(DNLC) , use the kstat -n dnlcstats command to determine when entries have been removed from theDNLC because it was too small
  • set maxphys=8388608 <- the maximum size of physical I/O requests. If a driver encounters a request larger than this size, the driver breaks the request into maxphys sized chunks
  • set pt_cnt=4096 <- When you want to explicitly control the number of users who can remotely log in to the system.
  • set npty=176 <- npty limits the number of BSD ptys
  • set sadcnt=8192 <- nautopush should be set to twice sadcnt
  • set nautopush=4096 <- Set to twice the value of pt_cnt
  • set rlim_fd_max=1048576 <- Hard limit on the open file descripters for a single process
  • set autoup=600 <- Controls the frequency in seconds of entire physical memory to be scanned for dirty pages
  • set tune_t_fsflushr=1 <-Reduces fsflush daemon overhead
  • set ufs <-ufs_HW=67108864 <- Limit the amount of I/O that may be outstanding to a single file on a system-wide basis
  • set ufs <-ufs_LW=4194304 <- When ufs_HW bytes are outstanding, I/O requests will sleep until less than ufs_LW bytes are outstanding
  • set rlim_fd_cur=524288 <- the "soft" limit on file descriptors that a single process can have open
  • set segspt_minfree=12500 <- Identifies pages of system memory that cannot be allocated for ISM shared memory
  • set maxpgio=65536 <-maximum number of page I/O requests that can be queued by the paging system
  • set fastscan=65536 <- maximum number of pages per second that the system looks at when memory pressure is highest
  • set segmap_percent=32 <- Amount of memory used, to hold file system pages, % from the physical memory

Friday, July 31, 2009

Solaris Cluster and Zones

Read http://blogs.sun.com/Maddy/entry/making_sense_of_zones_in for details,

Summary to remember,

FAILOVER ZONE/HA ZONE:
- zone failover from one cluster node to the other
- application running inside the zone has to switch with the zone
- application monitoring has to be done by SMF inside the zone, Sun Cluster agents are not monitoring the applications (more appropriate for legacy applications with no proven cluster agents)
- It supports branded zones (Solaris 8, Solaris 9 and lx branded zones (Linux branded)) apart from native zone (Solaris 10)
- Read more -
http://docs.sun.com/app/docs/doc/819-2664/6n4uhp5gq?a=view
- Example - http://www.sun.com/bigadmin/content/submitted/ha_containers_zfs.jsp

ZONE NODE:
- zones to be treated like physical nodes to be part of Resource Groups
- It is best for applications which are supported with containers and have a Sun Cluster agent
- application running inside the zone can failover to other zone or physical node
- It supports only native zone as a zone node
- it is more useful,
o applications which are scalable and have to hosted exclusively in zones
o application running in a combination of physical nodes and zones
- Read more -
http://docs.sun.com/app/docs/doc/819-2969/gcbkf?a=view

ZONE CLUSTER:
- introduces a new brand of zone called "cluster”
- A single physical cluster can be partitioned and many virtual clusters can be created for hosting different applications/isolate the application and data
- Still have a specific usage for
Deploying Oracle RAC in Zone Clusters.
- clzonecluster is the utility for configurations
- Read more -
http://docs.sun.com/app/docs/doc/820-4677/ghcoa?a=view

Monday, July 27, 2009

LDAP Failover for Messaging Server / Calendar Server / Multi-Plexor / Access Manager / Communications Express / Instant Messaging / Sun Convergence

This is an extract from wikis.sun.com and some other web sites and configurations are verified in practice.

LDAP Failover Messaging Server 6.x

----------------------------------
Change following parameters,
/opt/SUNWmsgsr/sbin
/opt/SUNWmsgsr/sbin/configutil -o local.ugldaphost -v "ldap1.example.com ldap2.example.com:389"
/opt/SUNWmsgsr/sbin/configutil -o local.service.pab.ldaphost -v "ldap1.example.com ldap2.example.com:389"
/opt/SUNWmsgsr/sbin/configutil -o local.service.pab.alwaysusedefaulthost -v "yes"
/opt/SUNWmsgsr/sbin/imsimta cnbuild
/opt/SUNWmsgsr/sbin/stop-msg
/opt/SUNWmsgsr/sbin/start-msg

LDAP Failover for Calendar Server 6.x

--------------------------------------
Edit the ics.conf file (Eg: /etc/opt/SUNWics5/config/ics.conf)
Change following parameters,
local.authldaphost="ldap1.example.com ldap2.example.com:389"
local.ugldaphost="ldap1.example.com ldap2.example.com:389"
Restart Calendar services:
/opt/SUNWics5/cal/sbin/stop-cal
/opt/SUNWics5/cal/sbin/start-cal

LDAP Failover for Messaging Multi-Plexor 6.x

---------------------------------------------
vi /var/opt/SUNWmsgsr/config/ImapProxyAService.cfg
Change following parameters,
default:LdapUrl "ldap://ldap1.example.com:389 ldap2.example.com:389/o=internet"
vi /var/opt/SUNWmsgsr/config/PopProxyAService.cfg
Change following parameters,
default:LdapUrl "ldap://ldap1.example.com:389 ldap2.example.com:389/o=internet"
/opt/SUNWmsgsr/sbin/stop-msg mmp
/opt/SUNWmsgsr/sbin/start-msg mmp

LDAP Failover for Access Manager 7.x

--------------------------------------
vi /etc/opt/SUNWam/config/serverconfig.xml
Add a line like this after 'Server1' line in the name="default" ServerGroup:

Stop and start the web container
1. Log into amconsole (http:///amconsole) as the "amadmin" user
2. Click on "Service Configuration" tab
3. Click on the triangle next to the "LDAP" Service name
4. Scroll down to "Secondary LDAP Server:" in the right-hand pane
5. Add the server ldap2.example.com:389, click add, then scroll up and click 'Save'
6. Click on the "Identity Management" tab
7. From the drop-down box in the left-hand menu, select "Services"
8. Click on the triangle next to the "LDAP" Service name
9. Scroll down to "Secondary LDAP Server:" in the right-hand pane
10. Add the server ldap2.example.com:389, click add, then scroll up and click 'Save'

LDAP Failover for Communications Express (UWC)

-----------------------------------------------
vi /var/opt/SUNWuwc/WEB-INF/config/uwcauth.properties
Change following parameters,
ldapusersession.ldaphost = ldap1.example.com,ldap2.example.com:389
Stop and start the web container
Communications Express (UWC) - Addressbook
Edit /var/opt/SUNWuwc/WEB-INF/config/corp-dir/db_config.properties
Change following parameters,
defaultserver.ldaphost=ldap1.example.com,ldap2.example.com:389
Edit /var/opt/SUNWuwc/WEB-INF/config/ldappstore/db_config.properties
Change following parameters,
defaultserver.ldaphost=ldap1.example.com,ldap2.example.com:389

LDAP Failover for Instant Messaging 7.x

----------------------------------------
No changes needed if Access Manager is configured for Authentication and Configuration storage.
Note: User and Group lookup functionality will be non-operational whilst the primary LDAP server is unavailable.
If direct LDAP authentication and local storage of configuration is used, then LDAP fail-over support is not available. LDAP fail-over support is scheduled for the next release.

LDAP Failover for Delegated Administrator 6.x

----------------------------------------------
Delegated Administrator 6.x does not support LDAP failover.

LDAP Failover for Sun Convergence 6.x

--------------------------------------
To configure Convergence for LDAP failover, type the following command:
iwcadmin -u -w -o ugldap.host -v ldap1.example.com:389,ldap1.example.com:389
If your LDAP hosts are configured for SSL, all the failover LDAP servers in the failover mechanism are also in SSL mode.
Each host does not have a separate SSL flag. All the LDAP servers should have the same privileged userid and password.
All the LDAP servers should run in Master-Master replication mode.

HA Zpool in Sun Cluster

Create the zpool
----------------
zpool create store-zpool /dev/did/dsk/d5s2
(d5 is the did number of the disk device to use in zpool)


Create file systems required in the above pool, set all settings like size, compression ..etc (zfs properties, see man zfs)
---------------------------------------------------------------------------------------------------------------------------
zfs create store-zpool/msg-config
zfs set mountpoint=/jes/mail/config store-zpool/msg-config
zfs create store-zpool/cal-config
zfs set mountpoint=/jes/cal/config store-zpool/cal-config


Create the resource group
---------------------------
clresourcegroup create store-rg
(store-rg is the name of the resource group)


Register the resource type for Highly Available Storge into Sun Cluster
-----------------------------------------------------------------------
clresourcetype register SUNW.HAStoragePlus


Create the resource
---------------------
clresource create -g store-rg -t SUNW.HAStoragePlus -p Zpools=store-zpool store-fs-rs
(store-fs-rs is the resource name)


Online the resource/resource group
-----------------------------------
clresourcegroup manage store-rg
clresourcegroup online store-rg

Wednesday, July 8, 2009

Tuning UFS

Tuning UFS
----------------
All the tuning parameters must be verified against tuning parameter guides of respective OS versions.


Look for “Solaris Tunable Parameters” in docs.sun.com for details, following are some of the tips for UFS.

• forcedirectio — File systems were mounted with forcedirectio enabled.
The use of direct I/O is appropriate for sequential I/O on very large files, especially
files that are significantly larger than an operating system’s RAM file cache. This can
improve performance by reducing the overhead of a file cache. Direct I/O is not
recommended for all workloads, for instance operations with random I/O patterns
(such as sorts) for the most part are much faster with a file cache. A file cache is a
primary mechanism to hide disk latency, so by default it is always on.

forcedirectio

• maxphys —The maxphys parameter in the /etc/system file, which controls
the maximum number of bytes that a device driver read or writes at any one time
was modified from the default value of 128K to 8 MB by adding the following line:

set maxphys=0x800000


• ssd_max_xfer_size — The Fibre Channel disk maximum transfer parameter
was modified to 8 MB to reflect the change in maxphys. The ssd driver enables
large transfers for a specific file by checking the ssd_max_xfer_size definition
in the /kernel/drv/ssd.conf file. If this definition does not exist, the driver
uses the default value, which is 1024 x 1024 bytes. The following line needs to added
to the /kernel/drv/ssd.conf file.

ssd_max_xfer_size=0x800000;


• sd_max-xfer_size — The SCSI disk maximum transfer parameter was modified
to 8 MB to correspond with maxphys. This parameter works similarly to the Fibre
Channel disk maximum transfer parameter. The following line needs to be added to
the /kernel/drv/sd.conf file.

sd_max_xfer_size=0x800000;


• To increases about n% of RAM available for file system buffer cache instead of the default of 12%.

segmap_percent=n

• If ufs_WRITES is non-zero, the number of bytes outstanding for writes on a file is checked.
See ufs_HW subsequently to determine whether the write should be issued or should be deferred
until only ufs_LW bytes are outstanding. The total number of bytes outstanding is tracked
on a per-file basis so that if the limit is passed for one file, it won't affect writes to other files.

ufs:ufs_WRITES=0

• In order to put the full contents of the large into the filesystem cache,
we need to make sure the filesystem cache is large enough to hold the file and we need to adjust
freebehind to allow ungoverned population of the filesystem cache

ufs:freebehind=0

OS is 64-bit or 32-bit ? , Kernel Compliant ?

Solaris
--------
# isainfo -v
64-bit sparcv9 applications
32-bit sparc applications

Which Architecture is booted ?
--------------------------------------
# isainfo -kv

64-bit sparcv9 kernel modules

# isalist - display the native instruction sets executable on this platform

# uname -a

UltraSparc processors are capable of 64-bit computing, the OS release level may be the limiting factor
SunOS5.7 or greater is 64-bit compliant
Solaris 2.7 or greater is 64-bit compliant

AIX
----

# getconf -a grep KERN

KERNEL_BITMODE: 64


or

# file /usr/lib/boot/unix*

/usr/lib/boot/unix_64


Linux
------

# uname -a

x86_64 x86_64 x86_64 GNU/Linux or ia64 ia64 ia64 GNU/Linux
------ -----

Windows
-------

Start -> Run, and type dxdiag

x64_edition


Mac OS
-------

select About This Mac from the Apple menu

Mac OS X 10.4 offers 64-bit support to console applications


Thursday, June 4, 2009

detailed statistics on the HBA

shows some detailed statistics on the HBA.

New fcinfo
--------------

(root)> fcinfo hba-port -l
HBA Port WWN: 210100e08ba0147a
OS Device Name: /dev/cfg/c4
Manufacturer: QLogic Corp.
Model: 375-3108-xx
Firmware Version: 3.3.26
FCode/BIOS Version: fcode: 1.13;
Type: N-port
State: online
Supported Speeds: 1Gb 2Gb
Current Speed: 2Gb
Node WWN: 200100e08ba0147a
Link Error Statistics:
Link Failure Count: 0
Loss of Sync Count: 0
Loss of Signal Count: 0
Primitive Seq Protocol Error Count: 0
Invalid Tx Word Count: 0
Invalid CRC Count: 0

With the WWN of the HBA, we can query the remote port information…

(root)> fcinfo remote-port -p 210100e08ba0147a
Remote Port WWN: 50060482d52d2e76
Active FC4 Types: SCSI
SCSI Target: yes
Node WWN: 50060482d52d2e76
Remote Port WWN: 50060e8004769000
Active FC4 Types: SCSI
SCSI Target: yes
Node WWN: 50060e8004769000

Check it out! Its the same 50060482d52d2e76 we saw twice before with the WWN of the port we’re plugged into the fabric with.

Throw in a -s, and it’ll return all SCSI targets with their LUN Number.

(root)> fcinfo remote-port -p 210100e08ba0147a -s
Remote Port WWN: 50060482d52d2e76
Active FC4 Types: SCSI
SCSI Target: yes
Node WWN: 50060482d52d2e76
LUN: 0
Vendor: EMC
Product: SYMMETRIX
OS Device Name: /dev/rdsk/c4t50060482D52D2E76d0s2
LUN: 69
Vendor: EMC
Product: SYMMETRIX
OS Device Name: /dev/rdsk/c20t60060480000190100665533030344539d0s2
LUN: 70
Vendor: EMC
Product: SYMMETRIX
OS Device Name: /dev/rdsk/c20t60060480000190100665533030344639d0s2
LUN: 71
Vendor: EMC
Product: SYMMETRIX
OS Device Name: /dev/rdsk/c20t60060480000190100665533030353039d0s2
LUN: 72
Vendor: EMC
Product: SYMMETRIX
OS Device Name: /dev/rdsk/c20t60060480000190100665533030353139d0s2
LUN: 73
Vendor: EMC
Product: SYMMETRIX
OS Device Name: /dev/rdsk/c20t60060480000190100665533030353239d0s2


Old commands
--------------

To find HBA WWPN/WWN:
1) luxadm –e port
2) luxadm –e dump_map /dev/pci@6,400/SUNW,qlc@2/fp@0,0:devctl
3) grep qlc /etc/path_to_instgrep 6,400
4) cfgadm –al
5) cfgadm –al –o show_FCP_dev

Tuesday, May 12, 2009

steps to resize vxfs,ufs file systems on Veritas volumes

You resize a Veritas File System by using the fsadm command
-----------------------------------------------------------
fsadm -F vxfs [-b newsize] [-r rawdev] mount_point


1. Verify free space on underlying device:
# vxdg -g "datavol" free
2. Expand the volume using vxassist:
# vxassist -g "datadg" growto "myvol" "newsize"
example: #vxassist -g testdg growto datavol 1024000
3. Expand the file system using fsadm:
# fsadm -F vxfs -b "newsize" \-r /dev/vx/rdsk/testdg/datavol /datavol
4. Verify that the file system was resized by using df:
# df -k /datavol

for ufs: file system growing

-------------------------------------------------------
# vxresize -b -F ufs -g "name_dg" "volume" +"MB"


example:
# vxresize -b -F ufs -g rootdg rootvol1 +20000m
# vxresize -g mitdg -F ufs myvol1 +1g

Tuesday, March 24, 2009

Steps to configure SSL for Sun Java Enterprise System (messaging and web servers)

Make SSL for pop/imap - Sun Java Messaging Server ###################################################
Generate CSR for messaging server
--------------------------------------------------------------------------------------------
/jes/opt/SUNWmsgsr/sbin/msgcert request-cert --name netra.millenniumit.com --org millenniumit --org-unit eng_dept --city colombo --country LK -F ascii -o /tmp/27-06-08-request-cert

Add New Cert [ Eg:- Take netscape --> apache from the go-daddy or Thawate or any other CA ]
--------------------------------------------------------------------------------------------
/jes/opt/SUNWmsgsr/sbin/msgcert add-cert -C Server-Cert /mit/do_config_here/SSL_Certs_Godaddy/msg/2008/netra.millenniumit.com.crt

Make SSL for Sun Java Webserver
###################################################
Go to the admin-server http://host.domain.com:

then renew cert there oR you can add new cert matching old CSR OR you can generate a new CSR for new cert and then install it

Thursday, February 12, 2009

Create a global file system using SVM in Sun cluster 3.2

Create a global file system using SVM in Sun cluster 3.2:
--------------------------------------------------------------
--------------------------------------------------------------
01 Create the metaset

--------------------------------------------------------
# metaset -s -a -h
Eg:-
# metaset -s app-dg -a -h phys-schost-1 phys-schost-2
# metaset -s
Eg:-
# metaset -s app-dg


02 Identify the disk device to add to metaset
--------------------------------------------------------
# cldevice show grep Device (or use # didadm -L)
Eg:-
# cldevice show grep Device
DID Device Name: /dev/did/rdsk/d1
Full Device Path: app-dg:/dev/rdsk/c0t0d0DID Device Name: /dev/did/rdsk/d2
Full Device Path: app-dg:/dev/rdsk/c0t6d0DID Device Name: /dev/did/rdsk/d3


03 Make sure just created metaset switches between nodes
---------------------------------------------------------
# cldegivegroup switch -n
Eg:-
# cldegivegroup switch -n phys-schost-1 app-dg
# cldegivegroup switch -n phys-schost-2 app-dg


04 Add just identified disk device to metaset
---------------------------------------------------------
# metaset -s -a
Eg:-
# metaset -s app-dg -a /dev/did/rdsk/d1 /dev/did/rdsk/d2
# metaset -s
Eg:-
# metaset -s app-dg


05 Add disk configuration for recording/creating purpose
----------------------------------------------------------
Eg:-
# vi /etc/lvm/md.tab (Edit in all nodes)
app-dg/d0 -m app-dg/d10 app-dg/d20app-dg/d10 1 1 /dev/did/rdsk/d1s0app-dg/d20 1 1 /dev/did/rdsk/d2s0


06 Create meta devices in the metaset
----------------------------------------------------------
Eg:-
# metainit -s app-dg -a


07 Add mediator hosts (if mediators required only)
----------------------------------------------------------
Eg:-
phys-schost# metaset -s app-dg -a -m phys-schost-1

phys-schost# metaset -s app-dg -a -m phys-schost-2

08 Create pxfs file system and mount
----------------------------------------------------------
Eg:-
phys-schost# newfs /dev/md/app-dg/rdsk/d1

...
phys-schost# mkdir -p /global/oracle (Make in all the nodes)
phys-schost# vi /etc/vfstab (Edit in all nodes)
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
/dev/md/app-dg/dsk/d1 /dev/md/app-dg/rdsk/d1 /global/oracle ufs 2 no global,logging
...
phys-schost# sccheck
phys-schost# mount /global/oracle
phys-schost# mount

Friday, January 23, 2009

Cluster Interconnect redundancy for Oracle RAC - Unix/Solaris OS

If the RAC nodes are also Sun Cluster nodes,

clprivnet0 interface can be used for RAC interconnects as well with inbuilt redundancy.

Eg:-

clprivnet0: flags=1009843 mtu 1500 index 9 inet 172.16.4.1 netmask fffffe00 broadcast 172.16.5.255

ether 0:0:0:0:0:1

# cat /etc/hosts

# Internet host table

#

::1 localhost

127.0.0.1 localhost

192.168.2.125 node1 node1.domain.lk loghost

192.168.2.126 node2 node2.domain.lk

# Oracle RAC Public

192.168.2.129 ora-vip-1

192.168.2.130 ora-vip-2

# Oracle RAC Interconnects

172.16.4.1 ora-prip-1

172.16.4.2 ora-prip-2

Else we have to use Solaris level network redundancy.


Simple rules for switches between interconnects

- Interconnect switches should be in a single fabric
- Dedicated VLAN for interconnects links
- Port fast should be enabled for all interconnect ports
Eg: -
Switch -A> (enable) set spantree portfast 2/1 enable

Configuration options for Solaris 10

- Option 1 : Link based IPMP
# cat /etc/hostname.e1000g0
ora-prip-1 group sc_ipmp0 up

# cat /etc/hostname.e1000g4
group sc_ipmp0 standby up

- Option 2 : Link aggregation (All links (below: - e1000g0 and e1000g4) of an aggregation should connect to a single switch)

# dladm show-dev
# dladm create-aggr -d e1000g0 -d e1000g4 1
# dladm show-aggr 1

Port Grouping and LCAP should be enabled in the switch

Eg:-

Switch Config:
# = Insert Integer
Configure a Port Group:
interface Port-channel#
switchport access vlan #
switchport mode access
exit
port-channel load-balance src-dst-ip
Please configure the ports you want in the channel (4 max) required as following:
# = Insert Integer
config term
interface INTERFACE
channel-group # mode passive
channel-protocol lacp
switchport access vlan #
switchport mode access
exit
end
show run (to verify)