Skip to content, navigation.
Configuration example of Oracle ASM in Solaris Container.
In this post I will give you a tip on how to setup Oracle ASM in Solaris Container. The main point of container's configuration is to set proper privileges. Your container should have proc_priocntl (must) and proc_lock_memory (highly recommended) privileges in order to function properly with ASM in it. Use the following as an configuration example when creating container and adjust it for your needs. Please read comments inlined:
create
# container will be named zone1
# make sure that directory /zones exist and have permissions 700
set zonepath=/zones/zone1
set autoboot=true
set limitpriv=default,proc_priocntl,proc_lock_memory
set scheduling-class="FSS"
set max-shm-memory=16G
# use ip-type exclusive at your wish, non-exclusive is also possible
set ip-type=exclusive
add net
set physical=e1000g1
end
add fs
set dir=/usr/local
# make sure /opt/zone1/local exist
set special=/opt/zone1/local
set type=lofs
end
add fs
# mount /distro from global zone into container.
# I have Oracle distribution files there
set dir=/distro
set special=/distro
set type=lofs
add options [ro]
end
# this device will be used for ASM inside container
add device
set match=/dev/rdsk/c4t600A0B8000562790000005D04998C446d0s0
end
# permit to use 16 cpu within container
add dedicated-cpu
set ncpus=16-16
end
verify
commit
Put this confing into zone1.txt and edit this file to adjust your configuration. Then create, install and boot container.
# zonecfg -z zone1 -f zone1.txt
# zoneadm -z zone1 install
# zoneadm -z zone1 boot
When you are done login to newly created container and proceed with installing Oracle and configuring ASM.
Tips:
Since I have dual-FC connected 6140 array I have it configured with Solaris I/O multipathing feature enabled
# stmsboot -D fp -e
I really like to use VNC to access my lab remotely
“Best Practices for Running Oracle Databases in Solaris Containers” now available on Sun/BluePrints site. This document describes Solaris Containers features for using with Oracle databases. You will learn how to setup Container and assign resources to it (scheduler, CPU and memory capping). It tells you which privilege gives you ability to use Dynamic Intimate Shared Memory (DISM) with Oracle. You may find how to setup Container so it will have it's own IP stack. Mounting UFS and ZFS filesystems, devices in Containers and System V Resource Controls also covered.
Summary
Solaris Containers provide a very flexible and secure method of managing multiple applications on a single Solaris OS instance. Solaris Containers use Solaris Zones software partitioning technology to virtualize the operating system and provide isolated and secure runtime environments for applications. Solaris Resource Manager can be used to control resource usage, such as capping memory and CPU usage,helping to ensure workloads get required system resources. By utilizing Solaris containers, multiple applications, or even multiple instances of the same application, can securely coexist on a single system, providing potential server consolidation savings.
Oracle 9i R2 and 10g R2 databases have been certified to run in a Solaris container. This paper provides step-by-step directions for creating a non-global zone in a Solaris container that is appropriate for running a non-RAC Oracle database. In addition, it describes special considerations that apply when running an Oracle database within a Solaris container.
This blog copyright 2009 by Roman Ivanov