SlideShare uma empresa Scribd logo
1 de 43
Oracle RAC and Docker: The Why and How
Seth Miller
Senior Principal Software Engineer
About Me
• Senior Principal Software Engineer at Veritas
• Oracle DBA since 2005
• Independent Oracle Users Group (IOUG) Board of Directors
• Twin Cities Oracle Users Group (TCOUG) Former Board of Directors
Copyright © 2016 Veritas Technologies LLC2
Download
Copyright © 2015 Symantec Corporation3
Why?
Copyright © 2015 Symantec Corporation4
Why Oracle in Containers?
• Resource reduction
–# of VMs
–Memory & disk
• Time reduction
–Provision
–Configure
Copyright © 2016 Veritas Technologies LLC5
• Storage Deduplication
–Operating system
–Oracle Binaries
Considerations
• Bleeding edge
• Lack of vendor support
–Not certified
–Off-label
–No published images
• Automation
Copyright © 2016 Veritas Technologies LLC6
NOT
FOR
PRODUCTION
…at least not yet
Contradictions
• Shared nothing architecture
• Split brain isolation
• High availability
• Full node control
• Privileged access
Copyright © 2016 Veritas Technologies LLC7
Database in container = easy
• Single container
• No privileged access
• No extra networking
• No supporting processes
Copyright © 2016 Veritas Technologies LLC8
Single Instance vs. Cluster
https://github.com/oracle/docker-
images/tree/master/OracleDatabase
Copyright © 2016 Veritas Technologies LLC9
Cluster in containers = hard
• At least 2 containers
• Privileged access
• Multiple networks
• Needs init/systemd
• Runs processes as root
Single Instance vs. Cluster
What are Containers?
• Containers are not VMs
• User space
– Host kernel
– Linux capabilities — capabilities(7)
• CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID,
SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE
• Networking
– Virtual network adapters
• Storage
– Images
– Containers
Copyright © 2016 Veritas Technologies LLC10
Containers vs VMs
11 Copyright © 2016 Veritas Technologies LLC
What are Containers?
• Containers are not VMs
• User space
– Host kernel
– Linux capabilities — capabilities(7)
• CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID,
SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE
• Networking
– Virtual network adapters
• Storage
– Images
– Containers
Copyright © 2016 Veritas Technologies LLC12
Container Process Capabilities
13 Copyright © 2016 Veritas Technologies LLC
ppid pid name command capabilities
10392 5957 root systemd full
5957 815 root init.tfa full
5957 5206 root init.ohasd full
5957 5997 root systemd-journal chown, dac_override, dac_read_search, fowner, setgid, setuid,
sys_ptrace, sys_admin, audit_control, mac_override, syslog,
wake_alarm, block_suspend, audit_read
5957 6042 root systemd-udevd full
5957 6110 root smartd full
5957 6111 81 dbus-daemon audit_write +
5957 6138 root rsyslogd full
5957 6140 root systemd-logind chown, dac_override, dac_read_search, fowner, kill, sys_admin,
sys_tty_config, audit_control, mac_admin, wake_alarm,
block_suspend, audit_read
5957 6159 root gssproxy full
5957 6265 root sshd full
5957 6276 root crond full
5957 6323 root rhnsd full
5957 6392 root ohasd.bin full
...
What are Containers?
• Containers are not VMs
• User space
– Host kernel
– Linux capabilities — capabilities(7)
• CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID,
SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE
• Networking
– Virtual network adapters
• Storage
– Images
– Containers
Copyright © 2016 Veritas Technologies LLC14
Virtual Network Adapters
15 Copyright © 2016 Veritas Technologies LLC
docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> state UP
link/ether 02:42:5d:3b:cc:3e brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
...
vethd67c304@if32: <BROADCAST,MULTICAST,UP,LOWER_UP> master docker0 state UP
link/ether c6:7a:0e:0d:a3:76 brd ff:ff:ff:ff:ff:ff
...
What are Containers?
• Containers are not VMs
• User space
– Host kernel
– Linux capabilities — capabilities(7)
• CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID,
SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE
• Networking
– Virtual network adapters
• Storage
– Images
– Containers
Copyright © 2016 Veritas Technologies LLC16
Storage
17 Copyright © 2016 Veritas Technologies LLC
How?
Copyright © 2015 Symantec Corporation18
Copyright © 2016 Veritas Technologies LLC19
https://github.com/Seth-Miller/12c-rac-docker
Oracle Grid Infrastructure Networking
• 1 public network per node
– 1 public static IP per node
– 1 public virtual IP per node
– 3 public SCAN virtual IPs per cluster
– 1 public GNS virtual IP per cluster
• 1 private network per node
– 1 private static IP per node
•2 node cluster = 10 IPs
Copyright © 2016 Veritas Technologies LLC20
Static vs DHCP
DNS vs GNS
Platform - CoreOS
Copyright © 2016 Veritas Technologies LLC21
• Built for containers
• Built for cloud
• Automated
• Secure
• Lean
• Docker and rkt ready
• Preconfigured
Oracle RAC in Docker
• Host preparation
–Platform
–Storage
• Image preparation
–IPs and DNS
–Virtual Networks
–Storage
–OS
–Clusterware and database binaries
• Containers
–Volumes
–Shared memory
–Networking
–Communication
–Grid infrastructure configuration
22 Copyright © 2016 Veritas Technologies LLC
Cloud Config
23 Copyright © 2016 Veritas Technologies LLC
#cloud-config
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...
coreos:
units:
- name: docker.service
drop-ins:
- name: 10.docker_opts.conf
content: |
[Service]
Environment="DOCKER_OPTS=--storage-driver=devicemapper 
--storage-opt=dm.thinpooldev=/dev/mapper/docker-thinpool 
--storage-opt=dm.use_deferred_removal=true
--storage-opt=dm.basesize=25G"
Storage
• ext4 + overlayfs (previously Btrfs) by default
• Changed to xfs + direct-lvm devicemapper storage
– Uses LVM2 and thin pools
– Configured on first boot with cloud config and systemd
Copyright © 2016 Veritas Technologies LLC24
core@mycoreos ~ $ docker info
…
Storage Driver: devicemapper
Pool Name: docker-thinpool
Pool Blocksize: 524.3 kB
Base Device Size: 26.84 GB
Backing Filesystem: xfs
…
Storage
• Additional storage
– Grid infrastructure and database binaries
• Uses LVM2 and ext4 filesystems
– ASM disk devices
– Configured on first boot with cloud config and systemd
Copyright © 2016 Veritas Technologies LLC25
NAME SIZE TYPE MOUNTPOINT
sdc 100G disk
|-data-oracledata 30G lvm /oracledata
sdd 16G disk
sde 16G disk
sdf 16G disk
Oracle RAC in Docker
• Host preparation
–Platform
–Storage
• Image preparation
–IPs and DNS
–Virtual Networks
–Storage
–OS
–Clusterware and database binaries
• Containers
–Volumes
–Shared memory
–Networking
–Communication
–Grid infrastructure configuration
26 Copyright © 2016 Veritas Technologies LLC
DNS and DHCP
• BIND container for DNS
• DHCPD container for DHCP
• Dynamic DNS updates
• Only bind and dhcpd containers receive static IPs
Copyright © 2016 Veritas Technologies LLC27
core@mycoreos ~ $ dig example.com. @10.10.10.10 axfr
example.com. 86400 IN SOA example.com. root.example.com.
example.com. 86400 IN NS localhost.
rac1.example.com. 3600 IN A 10.10.10.134
rac2.example.com. 3600 IN A 10.10.10.135
...
Virtual Networks
• docker network create --subnet=10.10.10.0/24 pub
• docker network create --subnet=11.11.11.0/24 priv
Copyright © 2016 Veritas Technologies LLC28
Image Preparation
• Install packages
• Create OS users and groups
• Change OS user passwords
• Modify security limits
• Add udev rules for ASM disks
Copyright © 2016 Veritas Technologies LLC29
$ docker exec rac1 ls -l /dev/sd[d-f]
brw-rw----. 1 root oinstall 8, 48 Oct 17 16:49 /dev/sdd
brw-rw----. 1 root oinstall 8, 64 Oct 17 16:49 /dev/sde
brw-rw----. 1 root oinstall 8, 80 Oct 17 16:49 /dev/sdf
$ docker exec rac1 ls -ld /dev/asmdisks/
drwxr-xr-x. 2 root root 100 Oct 17 16:49 /dev/asmdisks/
$ docker exec rac1 ls -l /dev/asmdisks/
total 0
lrwxrwxrwx. 1 root root 6 Oct 17 16:49 asm-clu-121-DATA-disk1 -> ../sdd
lrwxrwxrwx. 1 root root 6 Oct 17 16:49 asm-clu-121-DATA-disk2 -> ../sde
lrwxrwxrwx. 1 root root 6 Oct 17 16:49 asm-clu-121-DATA-disk3 -> ../sdf
Image Preparation
• Install grid infrastructure binaries
• Install database binaries
• Commit container to a new image
Copyright © 2016 Veritas Technologies LLC30
Oracle RAC in Docker
• Host preparation
–Platform
–Storage
• Image preparation
–IPs and DNS
–Virtual Networks
–Storage
–OS
–Clusterware and database binaries
• Containers
–DNS & DHCPD
–Volumes
–Shared memory
–Networking
–Communication
–Grid infrastructure configuration
31 Copyright © 2016 Veritas Technologies LLC
Containers
32 Copyright © 2016 Veritas Technologies LLC
docker create 
--interactive 
--tty 
--name bind 
--hostname bind 
--publish 53:53/tcp 
--publish 53:53/udp 
--volume /srv/docker/bind:/data 
--env WEBMIN_ENABLED=false 
sethmiller/bind 
-4
Create the BIND container
docker network connect 
--ip 10.10.10.10 pub 
bind
docker start bind
Containers
33 Copyright © 2016 Veritas Technologies LLC
docker create 
--interactive 
--tty 
--name dhcpd 
--hostname dhcpd 
--volume /srv/docker/dhcpd:/data 
--volume /srv/docker/bind/bind/etc:/keys 
--dns 10.10.10.10 
networkboot/dhcpd
docker network connect --ip 10.10.10.11 pub dhcpd
docker network connect --ip 11.11.11.11 priv dhcpd
docker start dhcpd
Create the DHCPD container
Containers
34 Copyright © 2016 Veritas Technologies LLC
docker run 
--detach 
--privileged 
--name rac1 
--hostname rac1 
--volume /oracledata/stage:/stage 
--volume /sys/fs/cgroup:/sys/fs/cgroup:ro 
--dns 10.10.10.10 
--shm-size 2048m 
giinstalled 
/usr/lib/systemd/systemd --system --unit=multi-user.target
Create the RAC node container
Docker Networks
35 Copyright © 2016 Veritas Technologies LLC
$ docker network ls
NETWORK ID NAME DRIVER
4ee6f9eb3bf0 bridge bridge
8bc52205f018 host host
eb82d0dad5c6 none null
60e3892778b4 priv bridge
21319f974244 pub bridge
Containers
36 Copyright © 2016 Veritas Technologies LLC
ip link add name rac1-pub type veth peer name eth-pub
ip link set rac1-pub master <docker ‘pub’ network>
ip link set rac1-pub up
ip link set eth-pub netns <rac1 namespace PID>
ip netns exec <rac1 namespace PID> ip link set eth-pub up
ip link add name rac1-priv type veth peer name eth-priv
ip link set rac1-priv master <docker ‘priv’ network>
ip link set rac1-priv up
ip link set eth-priv netns <rac1 namespace PID>
ip netns exec <rac1 namespace PID> ip link set eth-priv up
Add the additional virtual
network adapters
Legend
Host level
Container level
Containers
37 Copyright © 2016 Veritas Technologies LLC
[Service]
ExecStart=dhclient -d -H rac1 
-pf /var/run/dhclient-eth-pub.pid eth-pub
ExecStop=dhclient -x eth-pub
[Service]
ExecStart=dhclient -d -H rac1-priv 
-pf /var/run/dhclient-eth-priv.pid eth-priv
ExecStop=dhclient -x eth-priv
Create dhcp systemd services
Containers
38 Copyright © 2016 Veritas Technologies LLC
docker exec rac1 systemctl start dhclient-rac1-eth-pub.service
docker exec rac1 systemctl start dhclient-rac1-eth-priv.service
Start dhcp systemd services
Containers
39 Copyright © 2016 Veritas Technologies LLC
docker run 
--detach 
--privileged 
--name rac2 
--hostname rac2 
--volume /oracledata/stage:/stage 
--volume /sys/fs/cgroup:/sys/fs/cgroup:ro 
--dns 10.10.10.10 
--shm-size 2048m 
giinstalled 
/usr/lib/systemd/systemd --system --unit=multi-user.target
sudo /srv/docker/scripts/networks-rac2.sh
Create the second RAC node
container
Configure Grid Infrastructure
• Establish cluster communication
• Start clusterware processes
• Set up GNS
• Assign IPs
• Set up ASM and create first disk group
• Set up SCAN and local listeners
• Set up Grid Infrastructure Management Repository (GIMR) (optional)
Copyright © 2016 Veritas Technologies LLC41
Create Database
42 Copyright © 2016 Veritas Technologies LLC
docker exec rac1 su - oracle -c ' 
/u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca -createDatabase -silent 
-templateName General_Purpose.dbc 
-gdbName orcl 
-sysPassword <sys password> 
-systemPassword <system password> 
-storageType ASM 
-diskGroupName DATA 
-recoveryGroupName DATA 
-characterSet AL32UTF8 
-nationalCharacterSet UTF8 
-totalMemory 1024 
-emConfiguration none 
-nodelist rac1,rac2 
-createAsContainerDatabase True'
Future Plans
• Fully Automated
• Kubernetes
• Support NFS files for ASM (ganesha NFS)
• Run RAC nodes non-privileged
• Lean out RAC node images
• Install fests (RAC Attack)
Copyright © 2016 Veritas Technologies LLC43
Thank you!
Seth Miller
sethmiller.sm@gmail.com
github.com/Seth-Miller/12c-rac-docker

Mais conteúdo relacionado

Mais procurados

QCT Fact Sheet-English
QCT Fact Sheet-EnglishQCT Fact Sheet-English
QCT Fact Sheet-EnglishPeggy Ho
 
My personal journey through the World of Open Source! How What Was Old Beco...
My personal journey through  the World of Open Source!  How What Was Old Beco...My personal journey through  the World of Open Source!  How What Was Old Beco...
My personal journey through the World of Open Source! How What Was Old Beco...Ceph Community
 
Oracle Database on Docker
Oracle Database on DockerOracle Database on Docker
Oracle Database on DockerFranck Pachot
 
Red Hat Storage Day New York - What's New in Red Hat Ceph Storage
Red Hat Storage Day New York - What's New in Red Hat Ceph StorageRed Hat Storage Day New York - What's New in Red Hat Ceph Storage
Red Hat Storage Day New York - What's New in Red Hat Ceph StorageRed_Hat_Storage
 
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...OpenStack Korea Community
 
Operate your hadoop cluster like a high eff goldmine
Operate your hadoop cluster like a high eff goldmineOperate your hadoop cluster like a high eff goldmine
Operate your hadoop cluster like a high eff goldmineDataWorks Summit
 
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red HatThe Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red HatOpenStack
 
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStackGPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStackBrian Schott
 
Linux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and OutlookLinux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and OutlookDanny Al-Gaaf
 
Ceph Introduction 2017
Ceph Introduction 2017  Ceph Introduction 2017
Ceph Introduction 2017 Karan Singh
 
Introduction into Ceph storage for OpenStack
Introduction into Ceph storage for OpenStackIntroduction into Ceph storage for OpenStack
Introduction into Ceph storage for OpenStackOpenStack_Online
 
Red Hat Storage Day Boston - Supermicro Super Storage
Red Hat Storage Day Boston - Supermicro Super StorageRed Hat Storage Day Boston - Supermicro Super Storage
Red Hat Storage Day Boston - Supermicro Super StorageRed_Hat_Storage
 
Red Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
Red Hat® Ceph Storage and Network Solutions for Software Defined InfrastructureRed Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
Red Hat® Ceph Storage and Network Solutions for Software Defined InfrastructureIntel® Software
 
Ceph and OpenStack - Feb 2014
Ceph and OpenStack - Feb 2014Ceph and OpenStack - Feb 2014
Ceph and OpenStack - Feb 2014Ian Colle
 
Introduction to Stacki - World's fastest Linux server provisioning Tool
Introduction to Stacki - World's fastest Linux server provisioning ToolIntroduction to Stacki - World's fastest Linux server provisioning Tool
Introduction to Stacki - World's fastest Linux server provisioning ToolSuresh Paulraj
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overviewindevlab
 

Mais procurados (20)

QCT Fact Sheet-English
QCT Fact Sheet-EnglishQCT Fact Sheet-English
QCT Fact Sheet-English
 
Rh436 pdf
Rh436 pdfRh436 pdf
Rh436 pdf
 
My personal journey through the World of Open Source! How What Was Old Beco...
My personal journey through  the World of Open Source!  How What Was Old Beco...My personal journey through  the World of Open Source!  How What Was Old Beco...
My personal journey through the World of Open Source! How What Was Old Beco...
 
Oracle Database on Docker
Oracle Database on DockerOracle Database on Docker
Oracle Database on Docker
 
librados
libradoslibrados
librados
 
Red Hat Storage Day New York - What's New in Red Hat Ceph Storage
Red Hat Storage Day New York - What's New in Red Hat Ceph StorageRed Hat Storage Day New York - What's New in Red Hat Ceph Storage
Red Hat Storage Day New York - What's New in Red Hat Ceph Storage
 
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
 
Operate your hadoop cluster like a high eff goldmine
Operate your hadoop cluster like a high eff goldmineOperate your hadoop cluster like a high eff goldmine
Operate your hadoop cluster like a high eff goldmine
 
Block Storage For VMs With Ceph
Block Storage For VMs With CephBlock Storage For VMs With Ceph
Block Storage For VMs With Ceph
 
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red HatThe Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
The Future of Cloud Software Defined Storage with Ceph: Andrew Hatfield, Red Hat
 
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStackGPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
 
Linux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and OutlookLinux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
 
Ceph Introduction 2017
Ceph Introduction 2017  Ceph Introduction 2017
Ceph Introduction 2017
 
Introduction into Ceph storage for OpenStack
Introduction into Ceph storage for OpenStackIntroduction into Ceph storage for OpenStack
Introduction into Ceph storage for OpenStack
 
Red Hat Storage Day Boston - Supermicro Super Storage
Red Hat Storage Day Boston - Supermicro Super StorageRed Hat Storage Day Boston - Supermicro Super Storage
Red Hat Storage Day Boston - Supermicro Super Storage
 
Red Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
Red Hat® Ceph Storage and Network Solutions for Software Defined InfrastructureRed Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
Red Hat® Ceph Storage and Network Solutions for Software Defined Infrastructure
 
Ceph as software define storage
Ceph as software define storageCeph as software define storage
Ceph as software define storage
 
Ceph and OpenStack - Feb 2014
Ceph and OpenStack - Feb 2014Ceph and OpenStack - Feb 2014
Ceph and OpenStack - Feb 2014
 
Introduction to Stacki - World's fastest Linux server provisioning Tool
Introduction to Stacki - World's fastest Linux server provisioning ToolIntroduction to Stacki - World's fastest Linux server provisioning Tool
Introduction to Stacki - World's fastest Linux server provisioning Tool
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overview
 

Semelhante a Oracle RAC and Docker: The Why and How

DevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on ExadataDevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on ExadataMarketingArrowECS_CZ
 
01282016 Aerospike-Docker webinar
01282016 Aerospike-Docker webinar01282016 Aerospike-Docker webinar
01282016 Aerospike-Docker webinarAerospike, Inc.
 
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Patrick Chanezon
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzurePatrick Chanezon
 
Storage as a service OpenStack
Storage as a service OpenStackStorage as a service OpenStack
Storage as a service OpenStackopenstackindia
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Patrick Chanezon
 
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on AzureDocker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on AzurePatrick Chanezon
 
NVMe over Fabrics and Composable Infrastructure - What Do They Mean for Softw...
NVMe over Fabrics and Composable Infrastructure - What Do They Mean for Softw...NVMe over Fabrics and Composable Infrastructure - What Do They Mean for Softw...
NVMe over Fabrics and Composable Infrastructure - What Do They Mean for Softw...Ceph Community
 
Containers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container ServicesContainers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container ServicesNEXTtour
 
Postgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuitePostgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuiteEDB
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)Simon Haslam
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1makker_nl
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshiftMamathaBusi
 
Big Data in Container; Hadoop Spark in Docker and Mesos
Big Data in Container; Hadoop Spark in Docker and MesosBig Data in Container; Hadoop Spark in Docker and Mesos
Big Data in Container; Hadoop Spark in Docker and MesosHeiko Loewe
 
VMworld 2013: Virtualizing Mission Critical Oracle RAC with vSphere and vCOPS
VMworld 2013: Virtualizing Mission Critical Oracle RAC with vSphere and vCOPSVMworld 2013: Virtualizing Mission Critical Oracle RAC with vSphere and vCOPS
VMworld 2013: Virtualizing Mission Critical Oracle RAC with vSphere and vCOPSVMworld
 
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...VMworld
 
Software Defined Storage, Big Data and Ceph - What Is all the Fuss About?
Software Defined Storage, Big Data and Ceph - What Is all the Fuss About?Software Defined Storage, Big Data and Ceph - What Is all the Fuss About?
Software Defined Storage, Big Data and Ceph - What Is all the Fuss About?Red_Hat_Storage
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Patrick Chanezon
 

Semelhante a Oracle RAC and Docker: The Why and How (20)

DevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on ExadataDevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on Exadata
 
01282016 Aerospike-Docker webinar
01282016 Aerospike-Docker webinar01282016 Aerospike-Docker webinar
01282016 Aerospike-Docker webinar
 
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
 
Storage as a service OpenStack
Storage as a service OpenStackStorage as a service OpenStack
Storage as a service OpenStack
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
 
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on AzureDocker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
 
NVMe over Fabrics and Composable Infrastructure - What Do They Mean for Softw...
NVMe over Fabrics and Composable Infrastructure - What Do They Mean for Softw...NVMe over Fabrics and Composable Infrastructure - What Do They Mean for Softw...
NVMe over Fabrics and Composable Infrastructure - What Do They Mean for Softw...
 
Containers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container ServicesContainers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container Services
 
Postgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuitePostgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster Suite
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
 
Core os dna_automacon
Core os dna_automaconCore os dna_automacon
Core os dna_automacon
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshift
 
Big Data in Container; Hadoop Spark in Docker and Mesos
Big Data in Container; Hadoop Spark in Docker and MesosBig Data in Container; Hadoop Spark in Docker and Mesos
Big Data in Container; Hadoop Spark in Docker and Mesos
 
VMworld 2013: Virtualizing Mission Critical Oracle RAC with vSphere and vCOPS
VMworld 2013: Virtualizing Mission Critical Oracle RAC with vSphere and vCOPSVMworld 2013: Virtualizing Mission Critical Oracle RAC with vSphere and vCOPS
VMworld 2013: Virtualizing Mission Critical Oracle RAC with vSphere and vCOPS
 
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
 
Core os dna_oscon
Core os dna_osconCore os dna_oscon
Core os dna_oscon
 
Software Defined Storage, Big Data and Ceph - What Is all the Fuss About?
Software Defined Storage, Big Data and Ceph - What Is all the Fuss About?Software Defined Storage, Big Data and Ceph - What Is all the Fuss About?
Software Defined Storage, Big Data and Ceph - What Is all the Fuss About?
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 

Último

Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 

Último (20)

Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 

Oracle RAC and Docker: The Why and How

  • 1. Oracle RAC and Docker: The Why and How Seth Miller Senior Principal Software Engineer
  • 2. About Me • Senior Principal Software Engineer at Veritas • Oracle DBA since 2005 • Independent Oracle Users Group (IOUG) Board of Directors • Twin Cities Oracle Users Group (TCOUG) Former Board of Directors Copyright © 2016 Veritas Technologies LLC2
  • 3. Download Copyright © 2015 Symantec Corporation3
  • 4. Why? Copyright © 2015 Symantec Corporation4
  • 5. Why Oracle in Containers? • Resource reduction –# of VMs –Memory & disk • Time reduction –Provision –Configure Copyright © 2016 Veritas Technologies LLC5 • Storage Deduplication –Operating system –Oracle Binaries
  • 6. Considerations • Bleeding edge • Lack of vendor support –Not certified –Off-label –No published images • Automation Copyright © 2016 Veritas Technologies LLC6 NOT FOR PRODUCTION …at least not yet
  • 7. Contradictions • Shared nothing architecture • Split brain isolation • High availability • Full node control • Privileged access Copyright © 2016 Veritas Technologies LLC7
  • 8. Database in container = easy • Single container • No privileged access • No extra networking • No supporting processes Copyright © 2016 Veritas Technologies LLC8 Single Instance vs. Cluster https://github.com/oracle/docker- images/tree/master/OracleDatabase
  • 9. Copyright © 2016 Veritas Technologies LLC9 Cluster in containers = hard • At least 2 containers • Privileged access • Multiple networks • Needs init/systemd • Runs processes as root Single Instance vs. Cluster
  • 10. What are Containers? • Containers are not VMs • User space – Host kernel – Linux capabilities — capabilities(7) • CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID, SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE • Networking – Virtual network adapters • Storage – Images – Containers Copyright © 2016 Veritas Technologies LLC10
  • 11. Containers vs VMs 11 Copyright © 2016 Veritas Technologies LLC
  • 12. What are Containers? • Containers are not VMs • User space – Host kernel – Linux capabilities — capabilities(7) • CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID, SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE • Networking – Virtual network adapters • Storage – Images – Containers Copyright © 2016 Veritas Technologies LLC12
  • 13. Container Process Capabilities 13 Copyright © 2016 Veritas Technologies LLC ppid pid name command capabilities 10392 5957 root systemd full 5957 815 root init.tfa full 5957 5206 root init.ohasd full 5957 5997 root systemd-journal chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, wake_alarm, block_suspend, audit_read 5957 6042 root systemd-udevd full 5957 6110 root smartd full 5957 6111 81 dbus-daemon audit_write + 5957 6138 root rsyslogd full 5957 6140 root systemd-logind chown, dac_override, dac_read_search, fowner, kill, sys_admin, sys_tty_config, audit_control, mac_admin, wake_alarm, block_suspend, audit_read 5957 6159 root gssproxy full 5957 6265 root sshd full 5957 6276 root crond full 5957 6323 root rhnsd full 5957 6392 root ohasd.bin full ...
  • 14. What are Containers? • Containers are not VMs • User space – Host kernel – Linux capabilities — capabilities(7) • CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID, SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE • Networking – Virtual network adapters • Storage – Images – Containers Copyright © 2016 Veritas Technologies LLC14
  • 15. Virtual Network Adapters 15 Copyright © 2016 Veritas Technologies LLC docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> state UP link/ether 02:42:5d:3b:cc:3e brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 scope global docker0 ... vethd67c304@if32: <BROADCAST,MULTICAST,UP,LOWER_UP> master docker0 state UP link/ether c6:7a:0e:0d:a3:76 brd ff:ff:ff:ff:ff:ff ...
  • 16. What are Containers? • Containers are not VMs • User space – Host kernel – Linux capabilities — capabilities(7) • CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID, SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE • Networking – Virtual network adapters • Storage – Images – Containers Copyright © 2016 Veritas Technologies LLC16
  • 17. Storage 17 Copyright © 2016 Veritas Technologies LLC
  • 18. How? Copyright © 2015 Symantec Corporation18
  • 19. Copyright © 2016 Veritas Technologies LLC19 https://github.com/Seth-Miller/12c-rac-docker
  • 20. Oracle Grid Infrastructure Networking • 1 public network per node – 1 public static IP per node – 1 public virtual IP per node – 3 public SCAN virtual IPs per cluster – 1 public GNS virtual IP per cluster • 1 private network per node – 1 private static IP per node •2 node cluster = 10 IPs Copyright © 2016 Veritas Technologies LLC20 Static vs DHCP DNS vs GNS
  • 21. Platform - CoreOS Copyright © 2016 Veritas Technologies LLC21 • Built for containers • Built for cloud • Automated • Secure • Lean • Docker and rkt ready • Preconfigured
  • 22. Oracle RAC in Docker • Host preparation –Platform –Storage • Image preparation –IPs and DNS –Virtual Networks –Storage –OS –Clusterware and database binaries • Containers –Volumes –Shared memory –Networking –Communication –Grid infrastructure configuration 22 Copyright © 2016 Veritas Technologies LLC
  • 23. Cloud Config 23 Copyright © 2016 Veritas Technologies LLC #cloud-config ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA... coreos: units: - name: docker.service drop-ins: - name: 10.docker_opts.conf content: | [Service] Environment="DOCKER_OPTS=--storage-driver=devicemapper --storage-opt=dm.thinpooldev=/dev/mapper/docker-thinpool --storage-opt=dm.use_deferred_removal=true --storage-opt=dm.basesize=25G"
  • 24. Storage • ext4 + overlayfs (previously Btrfs) by default • Changed to xfs + direct-lvm devicemapper storage – Uses LVM2 and thin pools – Configured on first boot with cloud config and systemd Copyright © 2016 Veritas Technologies LLC24 core@mycoreos ~ $ docker info … Storage Driver: devicemapper Pool Name: docker-thinpool Pool Blocksize: 524.3 kB Base Device Size: 26.84 GB Backing Filesystem: xfs …
  • 25. Storage • Additional storage – Grid infrastructure and database binaries • Uses LVM2 and ext4 filesystems – ASM disk devices – Configured on first boot with cloud config and systemd Copyright © 2016 Veritas Technologies LLC25 NAME SIZE TYPE MOUNTPOINT sdc 100G disk |-data-oracledata 30G lvm /oracledata sdd 16G disk sde 16G disk sdf 16G disk
  • 26. Oracle RAC in Docker • Host preparation –Platform –Storage • Image preparation –IPs and DNS –Virtual Networks –Storage –OS –Clusterware and database binaries • Containers –Volumes –Shared memory –Networking –Communication –Grid infrastructure configuration 26 Copyright © 2016 Veritas Technologies LLC
  • 27. DNS and DHCP • BIND container for DNS • DHCPD container for DHCP • Dynamic DNS updates • Only bind and dhcpd containers receive static IPs Copyright © 2016 Veritas Technologies LLC27 core@mycoreos ~ $ dig example.com. @10.10.10.10 axfr example.com. 86400 IN SOA example.com. root.example.com. example.com. 86400 IN NS localhost. rac1.example.com. 3600 IN A 10.10.10.134 rac2.example.com. 3600 IN A 10.10.10.135 ...
  • 28. Virtual Networks • docker network create --subnet=10.10.10.0/24 pub • docker network create --subnet=11.11.11.0/24 priv Copyright © 2016 Veritas Technologies LLC28
  • 29. Image Preparation • Install packages • Create OS users and groups • Change OS user passwords • Modify security limits • Add udev rules for ASM disks Copyright © 2016 Veritas Technologies LLC29 $ docker exec rac1 ls -l /dev/sd[d-f] brw-rw----. 1 root oinstall 8, 48 Oct 17 16:49 /dev/sdd brw-rw----. 1 root oinstall 8, 64 Oct 17 16:49 /dev/sde brw-rw----. 1 root oinstall 8, 80 Oct 17 16:49 /dev/sdf $ docker exec rac1 ls -ld /dev/asmdisks/ drwxr-xr-x. 2 root root 100 Oct 17 16:49 /dev/asmdisks/ $ docker exec rac1 ls -l /dev/asmdisks/ total 0 lrwxrwxrwx. 1 root root 6 Oct 17 16:49 asm-clu-121-DATA-disk1 -> ../sdd lrwxrwxrwx. 1 root root 6 Oct 17 16:49 asm-clu-121-DATA-disk2 -> ../sde lrwxrwxrwx. 1 root root 6 Oct 17 16:49 asm-clu-121-DATA-disk3 -> ../sdf
  • 30. Image Preparation • Install grid infrastructure binaries • Install database binaries • Commit container to a new image Copyright © 2016 Veritas Technologies LLC30
  • 31. Oracle RAC in Docker • Host preparation –Platform –Storage • Image preparation –IPs and DNS –Virtual Networks –Storage –OS –Clusterware and database binaries • Containers –DNS & DHCPD –Volumes –Shared memory –Networking –Communication –Grid infrastructure configuration 31 Copyright © 2016 Veritas Technologies LLC
  • 32. Containers 32 Copyright © 2016 Veritas Technologies LLC docker create --interactive --tty --name bind --hostname bind --publish 53:53/tcp --publish 53:53/udp --volume /srv/docker/bind:/data --env WEBMIN_ENABLED=false sethmiller/bind -4 Create the BIND container docker network connect --ip 10.10.10.10 pub bind docker start bind
  • 33. Containers 33 Copyright © 2016 Veritas Technologies LLC docker create --interactive --tty --name dhcpd --hostname dhcpd --volume /srv/docker/dhcpd:/data --volume /srv/docker/bind/bind/etc:/keys --dns 10.10.10.10 networkboot/dhcpd docker network connect --ip 10.10.10.11 pub dhcpd docker network connect --ip 11.11.11.11 priv dhcpd docker start dhcpd Create the DHCPD container
  • 34. Containers 34 Copyright © 2016 Veritas Technologies LLC docker run --detach --privileged --name rac1 --hostname rac1 --volume /oracledata/stage:/stage --volume /sys/fs/cgroup:/sys/fs/cgroup:ro --dns 10.10.10.10 --shm-size 2048m giinstalled /usr/lib/systemd/systemd --system --unit=multi-user.target Create the RAC node container
  • 35. Docker Networks 35 Copyright © 2016 Veritas Technologies LLC $ docker network ls NETWORK ID NAME DRIVER 4ee6f9eb3bf0 bridge bridge 8bc52205f018 host host eb82d0dad5c6 none null 60e3892778b4 priv bridge 21319f974244 pub bridge
  • 36. Containers 36 Copyright © 2016 Veritas Technologies LLC ip link add name rac1-pub type veth peer name eth-pub ip link set rac1-pub master <docker ‘pub’ network> ip link set rac1-pub up ip link set eth-pub netns <rac1 namespace PID> ip netns exec <rac1 namespace PID> ip link set eth-pub up ip link add name rac1-priv type veth peer name eth-priv ip link set rac1-priv master <docker ‘priv’ network> ip link set rac1-priv up ip link set eth-priv netns <rac1 namespace PID> ip netns exec <rac1 namespace PID> ip link set eth-priv up Add the additional virtual network adapters Legend Host level Container level
  • 37. Containers 37 Copyright © 2016 Veritas Technologies LLC [Service] ExecStart=dhclient -d -H rac1 -pf /var/run/dhclient-eth-pub.pid eth-pub ExecStop=dhclient -x eth-pub [Service] ExecStart=dhclient -d -H rac1-priv -pf /var/run/dhclient-eth-priv.pid eth-priv ExecStop=dhclient -x eth-priv Create dhcp systemd services
  • 38. Containers 38 Copyright © 2016 Veritas Technologies LLC docker exec rac1 systemctl start dhclient-rac1-eth-pub.service docker exec rac1 systemctl start dhclient-rac1-eth-priv.service Start dhcp systemd services
  • 39. Containers 39 Copyright © 2016 Veritas Technologies LLC docker run --detach --privileged --name rac2 --hostname rac2 --volume /oracledata/stage:/stage --volume /sys/fs/cgroup:/sys/fs/cgroup:ro --dns 10.10.10.10 --shm-size 2048m giinstalled /usr/lib/systemd/systemd --system --unit=multi-user.target sudo /srv/docker/scripts/networks-rac2.sh Create the second RAC node container
  • 40. Configure Grid Infrastructure • Establish cluster communication • Start clusterware processes • Set up GNS • Assign IPs • Set up ASM and create first disk group • Set up SCAN and local listeners • Set up Grid Infrastructure Management Repository (GIMR) (optional) Copyright © 2016 Veritas Technologies LLC41
  • 41. Create Database 42 Copyright © 2016 Veritas Technologies LLC docker exec rac1 su - oracle -c ' /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca -createDatabase -silent -templateName General_Purpose.dbc -gdbName orcl -sysPassword <sys password> -systemPassword <system password> -storageType ASM -diskGroupName DATA -recoveryGroupName DATA -characterSet AL32UTF8 -nationalCharacterSet UTF8 -totalMemory 1024 -emConfiguration none -nodelist rac1,rac2 -createAsContainerDatabase True'
  • 42. Future Plans • Fully Automated • Kubernetes • Support NFS files for ASM (ganesha NFS) • Run RAC nodes non-privileged • Lean out RAC node images • Install fests (RAC Attack) Copyright © 2016 Veritas Technologies LLC43

Notas do Editor

  1. 1
  2. http://www.solidfire.com/blog/containers-vs-vms
  3. https://github.com/Seth-Miller/12c-rac-docker/blob/master/viewcap.sh
  4. https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/
  5. https://github.com/Seth-Miller/12c-rac-docker
  6. https://coreos.com/why/
  7. https://github.com/Seth-Miller/12c-rac-docker
  8. https://github.com/coreos/coreos-cloudinit/blob/master/Documentation/cloud-config.md https://github.com/Seth-Miller/12c-rac-docker/blob/master/COREOS.md https://github.com/Seth-Miller/12c-rac-docker/blob/master/cloud-config
  9. https://coreos.com/releases/#561.0.0 https://lwn.net/Articles/627232/
  10. lsblk | awk '{printf "%-20s %-5s %-5s %s\n", $1, $4, $6, $7}'
  11. https://github.com/Seth-Miller/12c-rac-docker
  12. https://github.com/Seth-Miller/12c-rac-docker/tree/master/Dockerfile-bind https://github.com/Seth-Miller/12c-rac-docker/blob/master/dhcpd.conf
  13. https://github.com/Seth-Miller/12c-rac-docker/tree/master/Dockerfile-racnode https://github.com/Seth-Miller/12c-rac-docker/blob/master/99-asm-disks.rules
  14. https://github.com/Seth-Miller/12c-rac-docker
  15. https://github.com/Seth-Miller/12c-rac-docker/tree/master/Dockerfile-bind
  16. https://opsbot.com/advanced-docker-networking-pipework https://github.com/jpetazzo/pipework
  17. https://github.com/Seth-Miller/12c-rac-docker/blob/master/networks-rac1.sh
  18. https://github.com/Seth-Miller/12c-rac-docker/blob/master/dhclient-rac1-eth-pub.service https://github.com/Seth-Miller/12c-rac-docker/blob/master/dhclient-rac1-eth-priv.service
  19. https://github.com/Seth-Miller/12c-rac-docker/blob/master/networks-rac1.sh
  20. https://github.com/Seth-Miller/12c-rac-docker/blob/master/dhclient-rac2-eth-pub.service https://github.com/Seth-Miller/12c-rac-docker/blob/master/dhclient-rac2-eth-priv.service https://github.com/Seth-Miller/12c-rac-docker/blob/master/networks-rac2.sh
  21. https://github.com/Seth-Miller/12c-rac-docker/blob/master/fixssh.sh