Sunday, November 13, 2011

Oracle RAC installation in Solaris 11 Container

Here are the steps to create a containers on Solaris 11 to install Oracle RAC:


  • If the Servers do not enough physical NICs
    • Virtualize the NICs
  •  Create VNICs for public and private interface
    • dladm create-vnic -l igb0 vnic5
    •  dladm create-vnic -l igb2 priv5
  •  Create an exclusive IP container with these interfaces
    • set ip-type=exclusive
    •  add net set physical=vnic5 end
    •  add net set physical= priv5 end
  •     Setup private and public interface
    •  Ipadm show-if
    •  Ipadm create-ip priv5
    •  Ipadm create-addr -T static -a 199.6.6.6/24 priv5/v4addr
    •  Ipadm show-addr
  •  No need to update any /etc files with hostname if ipadm command is used
  •  Configure shared memory
    •  Set max-shm-memory=50G
  • Add ASM device/s to the zone
    • Add Device:
      • Set match: <device name>
      • Set allow-partition=true
      • Set allow-raw-io=true
    • End
  •  Provide right privileges to the container
    •  Set limitpriv=default,proc_priocntl
  •  Install RAC as you install in global container



Suppose you need to create a container that uses  igb0 as public interface and igb2 as private interface for Oracle RAC installation. It uses a pool with one CPU in it and mounts 2 FS. This blog summarizes the steps to create such a container.
  • Create the VNICs for public and private interface
From the global container create VNICs from public interface igb0 and for  private interface igb2
  • # dladm create-vnic -l igb0 vnic5
  • # dladm create-vnic -l igb2 priv5

  •  Create a pool with one CPU in it:
poolcfg -c 'create pset rac5_set(uint pset.min=1;uint pset.max=1)'
poolcfg -c ' create pool rac5Pool'
poolcfg -c 'associate pool rac5Pool (pset rac1_set)'
 poolcfg -c 'transfer to pset rac5_set(cpu 4)'
pooladm -c
pooladm

Check out http://ritukamboj.blogspot.com/search/label/ResourcePool for more info.
  • Create a zone:
Create racZone5 directory under /zonepools/zones and issue the following command:
  • zonecfg -z racZone5 -f zonetemplate.cfg
where zonetemplate.cfg is as under

create
set zonepath=/zonepools/zones/racZone5
set autoboot=false
set limitpriv=default,proc_priocntl
set ip-type=exclusive
add net
set physical=vnic5
end
add net
set physical= priv5
end
set max-shm-memory=50G
add fs
set dir=/u05
set special=/u05
set type=lofs
end
add fs
set dir=/installer
set special=/installer
set type=lofs
end
set pool=rac5Pool
Run
  • zoneadm -z racZone5 install
  • zoneadm -z racZone5 boot
  • zlogin -C racZone5 (for inital configuration)


  • Verify that you can see the VNICS in the container
root@etchst8-zone22:~# dladm show-link
LINK                CLASS     MTU    STATE    OVER
vnic5               vnic      1500   up       ?
priv5               vnic      1500   up       ?
root@etchst8-zone22:~# ^C
  • Verify that public interface NIC is plumped up (through initial configuration)
root@etchst8-zone23:~# ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    --
vnic6      ip       ok       yes    --
  • Plump the private interface

  • ipadm show-if
  •  ipadm create-ip priv6
  • ipadm create-addr -T static -a 199.6.6.6/24 priv6/v4addr
root@etchst8-zone23:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
vnic6/v4          static   ok           10.6.138.55/24
priv6/v4addr      static   duplicate    199.6.6.6/24
lo0/v6            static   ok           ::1/128
vnic6/v6          addrconf ok           fe80::8:20ff:fe31:49c4/10
 Create Oracle user and required directories for Oracle installation