36
Oracle Solaris Day 2013 Oracle DB a OS Solaris 26.6.2013 Martin Červený [email protected]

Oracle Solaris Day 2013 - Oracle DB and OS Solaris

Embed Size (px)

DESCRIPTION

Presentation from training day for Oracle Solaris customers to explain advantages of running Oracle Database on Oracle Solaris. Presentation covers following themes: - system and network virtualization - filesystem ZFS - security with RBAC - running with SMF - tuning with DTrace Demo labs: http://www.slideshare.net/m_cerveny/osd2013-cmd

Citation preview

Page 1: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

Oracle Solaris Day 2013Oracle DB a OS Solaris

26.6.2013

Martin Červený[email protected]

Page 2: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

virtualizace zónou v Solarisu

souborový systém ZFS

virtualizace sítí

role a uživatelé RBAC

dohled nad službami SMF

bezpečnostní audit

funkční a výkonnostní analýza DTrace

Page 3: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

virtualizace zónou v Solarisu

souborový systém ZFS

virtualizace sítí

role a uživatelé RBAC

dohled nad službami SMF

bezpečnostní audit

funkční a výkonnostní analýza DTrace

Page 4: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

4

Virtualizace systémů

● důvody a požadavky virtualizace– bezpečné oddělení a ochrana– rozdělení nebo vyhrazení zdrojů,

přebytek výkonu – redundance a vysoká dostupnost– spravovatelnost

● dostupné virtualizace– paravirtualizace (PVM, kooperativní)

(Oracle VM for SPARC = LDom)– rozdělení na úrovni operačního systému

(zóny)

systém

Page 5: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

5

Zóna Solarisu

● rozdělení na úrovni operačního systému (zóny)– nezávislý běh instance operačního

systému od procesu init (sdílené jádro Solarisu)

– izolace softwarových chyb aplikací– bezpečnostní oddělení (méně privilegií)– možnost připojení citlivých části

souborového systému jen pro čtení– žádné změny v API aplikací– branding - emulace chování jiného jádra

operačního systému (solaris 10)– zonecfg(1m), zoneadm(1m), zlogin(1), zonename(1)

systém

zóna

Page 6: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

6

Zóna v Solarisu

zóna

hardware systému

Solaris kernel

app

app

konfigurace

globálnízóna

app

app

Solariszóna

RPC

IPCapp

app

brandzzóna sol10

syscall emulátorsyscall

systém

Page 7: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

7

Kontejner Solarisu

● kontejner = zóna + řízení zdrojů● řízení zdrojů

– podle procesorů (dynamic resource pools, processor sets)

● pooladm(1m), poolcfg(1m), poolbind(1m), poolstat(1m), poold(1m), pbind(1m), psrinfo(1m), psradm(1m), zonecfg(1m)

– přiřazení poměrného výkonu procesorů (resource/workload manager, FSS plánovač procesů (cpu-shares), projects)

● resource_controls(5), zonecfg(1m), rctladm(1m), prctl(1), projadd(1m), projmod(1m), projdel(1m), projects(1), project(4), newtask(1)

– limit přiřazení fyzické paměti● rcapadm(1m), rcapstat(1), rcapd(1m)

systém

zdroje

Page 8: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

8

Řízení zdrojů CPU

system 8 cpupool1 2-4 cpu pool2 2 cpu

zone3 1 share

zone2 10 shares

zone4 2 shares

zone5 1 share

zone1 20 shares

project13 shares

project22 share

project31 share

task2

proc4

proc3task1

proc2

proc1

zdroje

4 ∗20

1020∗

2123

=89

systém

Page 9: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

virtualizace zónou v Solarisu

souborový systém ZFS

virtualizace sítí

role a uživatelé RBAC

dohled nad službami SMF

bezpečnostní audit

funkční a výkonnostní analýza DTrace

Page 10: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

10

Vlastnosti● vysoká integrita dat

– end-to-end kontrolní součty– transakce

● kapacita (128bit)● storage pool

– RAID-0, RAID-1, RAID-Z, -Z2, -Z3● NFSv4/NT ACL● deduplikace, komprimace, šifrování● snapshot, clone● vzdálená replikace● nezávislé na platformě (x86-SPARC)● jednoduchá online administrace

– zpool(1m), zfs(1m)

ZFS

Page 11: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

11

Integrita dat

1 2

3 4

možnýsnapshot

mirror

12

3

aktuálníuberblock

poškozenýblok dat

ZFS

Page 12: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

12

ZFS pro Oracle DB● separace dat a redo, archivních logů● klonování databáze

– Database Cloning using Oracle Sun ZFS Storage Appliance and Oracle Data Guard

● použití hybrid-storage– ZEUSRam (~8GB RAM + flash) pro ZIL

● vyladění ZFS– velikost ARC cache

● set zfs:zfs_arc_max = #– ZFS recordsize == DB db_block_size– ZFS prefetch

● set zfs:zfs_prefetch_disable = 1 ● set zfs:zfs_vdev_cache_bshift = 13

– omezení ZIL pro pole (s NVRAM)● set zfs:zfs_immediate_write_sz = 8191

ZFS

Page 13: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

virtualizace zónou v Solarisu

souborový systém ZFS

virtualizace sítí

role a uživatelé RBAC

dohled nad službami SMF

bezpečnostní audit

funkční a výkonnostní analýza DTrace

Page 14: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

14

Administrace a vlastnosti sítí

● L2 (datalink layer) - dladm(1m),dlstat(1m)– volitelná jména (rename-link)– zobrazení, nastavení a smazání doplňujících

informací (show-ether,show-phys,delete-phys,show-link,show-linkprop,set-linkprop,reset-linkprop)

– automatické VNIC do zón (zonecfg/anet)– Virtual Router Redundancy Protocol (VRRP)– Link Layer Discovery Prot.(LLDP)-lldpadm(1m)– řízení toků L3 - flowadm(1m),flowstat(1m)

● L3 (ip network layer) - ipadm(1m)– autokonfigurace - netadm(1m),netcfg(1m)

● network automagic (NWAM)– IP multipathing (IPMP)– konfigurace v SMF(5) - dns, nss ...

● L4 - integrovaný "loadbalancer" - ilbadm(1m)

sítě

Page 15: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

15

Sítě L2sítě

L2

GLDv3aggrnic

nic nicnicnicnic nic

etherstubvnitřní L2 síť

nicnicnicnic

aggrvíce spojení k jednomupřepínači ⇒ LACP, A/A

podle L2,L3,L4

bridgevíce spojení

k více přepínačům⇒ STP, A/P L2 na cestu

nic

nicnic

nic

vnicvíce vNIC z jednéNIC ⇒ každá vNICmá vlastní L2 addr

vlanvíce vNIC z jedné NIC

⇒ každá vNICmá vlastní

VLAN id

Page 16: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

16

chytrá NIC hloupá NICetherstub

tcp/ip tcp/iptcp/ip

Virtualizace sítísítě ● komponenty pro virtualizaci

– virtuální síťové rozhraní (VNIC)● část kapacity (maxbw) a priorita (priority)

– řízení toků podle port,transport,ip,ds (flow)● hardwarová podpora VNIC a flow

– některé bge, e1000g, igb, ixgbe, nxge, nge

tcp/ip

vnic

ip flow

vnic

ringbufringbuf

hw flow

tcp/ip

vnic

ip flow

vnic

ringbufringbuf

sw flow

tcp/ip

vnic

ip flow

vnic

ringbufringbuf

sw flow

L2

Page 17: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

virtualizace zónou v Solarisu

souborový systém ZFS

virtualizace sítí

role a uživatelé RBAC

dohled nad službami SMF

bezpečnostní audit

funkční a výkonnostní analýza DTrace

Page 18: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

18

Role Based Acces Control● cíl

– umožnit delegaci administrace systému– definice programových autorizací– snížit počet „setuid“ programů– princip minimálních oprávnění

● komponenty RBAC– administrativní role (administrative roles)

● nelze se přímo přihlásit, jen pomocí „su“ z autorizovaných kont

– programové autorizace (authorizations)– profily (profiles, rights), profily pro spuštění

programů včetně bezpečnostních privilegií jádra (exec attributes, privileges)

● nástroje– useradd(1m),usermod(1m),userdel(1m),roleadd(1m),rolemod(1m),roledel(1m),user_attr(4),auth_attr(4),exec_attr(4),prof_attr(4)

crossbowRBAC

Page 19: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

19

Privilegia● bezpečnostní oprávnění pro jádro Solarisu,

která nahrazují privilegovaný test „euid==0“

● součástí informací jádra o procesu– Effektive set (E) – aktuální oprávnění, dají se přidávat a

odebírat shora omezené podle (P)– Permitted set (P) – horní omezení pro oprávnění (E) a (I),

dají se pouze odebírat– Inheritable set (I) – nastavení výchozích oprávnění (nové E

a P) pro synovský proces– Limited set (L) – horní omezení pro dědičná oprávnění (I)

a nemůže nikdy růst● 84 privilegií

● "file_dac_read" Override file's read perms● "net_privaddr" Bind to privilege port (<1023+extras)● "proc_exec" Allow use of execve()● "proc_fork" Allow use of fork*() calls● "proc_info" Examine /proc of other processes

crossbowRBAC

privilegia

Page 20: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

20

Příklad profilu● passwd

– jack:x:100:1:InsideJack:/home/jack:/bin/sh– killer:x:200:1:Killer:/home/killer:/bin/pfsh

● user_attr– jack:::type=normal;roles=killer– killer:::type=role;profiles=Killer

● prof_attr– Killer:::Process killer:

● exec_attr– Killer::solaris:cmd:::/usr/bin/kill:privs=proc_owner

crossbowRBAC

role

Page 21: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

virtualizace zónou v Solarisu

souborový systém ZFS

virtualizace sítí

role a uživatelé RBAC

dohled nad službami SMF

bezpečnostní audit

funkční a výkonnostní analýza DTrace

Page 22: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

22

Dohled nad hardware a software

● Predictive Self-Healing (PSH)– správa HW systému

● Fault Management Architecture (FMA)– správa SW služeb

● Service Management Facility (SMF)● databáze s popisem chyb

– http://www.sun.com/msg/idchyby

crossbowdohled

Page 23: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

23

Start softwarových služeb● Service Management Facility (SMF)

– XML popisný soubor● jemnější definice vazby služeb

– konfigurační data v databázi - svc.configd(1m) – restarter - svc.startd(1m), inetd(1m)

● paralelní start služeb● automatický restart● delegace ovládání na běžné uživatele● stav údržby

● nástroje– svcadm(1m), svcs(1), svccfg(1m),svcprop(1) inetadm(1m),inetconv(1m)

● Fault Management Resource ID (FMRI)– svc:/typ/název:instance– svc:/milestone/

● none, single-user, multi-user, multi-user-server, ..., all

crossbowdohled

SMF

Page 24: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

24

Stav služby

maintenance

degraded

disabled

uninitialized

offline

svcadm disablesvcadm enable

svcadm restartsvcadm refresh

svcadm clearsvcadm mark

online

crossbowdohled

SMF

Page 25: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

25

Provázání služebcrossbowdohled

SMF

Page 26: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

26

XML manifest<?xml version="1.0"?><!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<service_bundle type='manifest' name='osdevcon'>

<service name='site/mojesluzba' type='service' version='1'> <create_default_instance enabled='false'> <single_instance /> <dependency ...>...</dependency> <dependent ...>...</dependent> <exec_method ...>...</exec_method> <property_group ...>

...</property_group> <template>...</template> </service></service_bundle>

crossbowdohled

SMF

Page 27: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

virtualizace zónou v Solarisu

souborový systém ZFS

virtualizace sítí

role a uživatelé RBAC

dohled nad službami SMF

bezpečnostní audit

funkční a výkonnostní analýza DTrace

Page 28: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

28

DTrace● DTrace je instrumentace pro dynamickou

analýzu problémů v systému a aplikacích v celém rozsahu

● dynamické vložení sondy -> aktivace průchodem kódu -> interpretovaná akce– D jazyk

● úplný popis sondy a akce provider:module:function:name /logická podmínka (predicate)/ { příkaz akce; … }● nástroje

– dtrace(1m)● chime, dtrace toolkit, dexpolorer, netbeans plugin,

sunstudio dlight– knihovna libdtrace(3lib)

● lockstat(1m)/plockstat(1m), intrstat(1m) ...– vložené explicitní sondy do programů

● interprtetry, Xserver, databáze …

crossbowdtrace

Page 29: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

29

Systémová implementace sondy

libdtrace(3lib)

lockstat(1m)

dtrace(1m) intrstat(1m)

plockstat(1m)

sondy&akce (DOF)

fbt(7d)

sdt(7d)

syscall(7d)

vmstat(7d)

dtrace(7d), logika a D-interpret

text/code

trap

USRSYS

crossbowdtrace

Page 30: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

30

Analýza uživatelských procesů ● standardní provider

– pid*, plockstat*– sledování prakticky omezeno na

entry/return– hlavní program (a.out) a knihovny– nutná znalost vnitřní architektury programu

● User-Level Statically Defined Tracing (USDT)– mysql*, postgresql*, Xserver*, apache*,

php*, phyton*, (perl*), ruby*, javascript*, hotspot*, hotspot_jni*, (sh*), (gtk*/glib*) ...

– doplněné sondy "DTRACE_PROBE*()"– zakompilované a popsané v ELF (využívá

linker)– "exportuje" důležité události

● start/stop, begin/end, entry/exit ...

crossbowdtrace

procesy

Page 31: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

31

Analýza Oracle DB● využití standardních providerů

– Oracle8i Internal Services for Waits, Latches, Locks, and Memory – Oracle Core: Essential Internals for DBAs and Developers– http://www.orafaq.com/wiki/Oracle_database_Internals_FAQ

crossbowdtrace

procesy

Page 32: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

virtualizace zónou v Solarisu

souborový systém ZFS

virtualizace sítí

role a uživatelé RBAC

dohled nad službami SMF

bezpečnostní audit

funkční a výkonnostní analýza DTrace

Page 33: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

33

Možnosti auditu

● aplikace– vlastní logovací soubory - logadm(1m)– systémový log - syslogd(1m)

● kernel– účtování běhu procesů - acct(1m)– systémový audit v kernelu

● 283 událostí kernelu● 609 událostí aplikací● audit(1m), auditconfig(1m), praudit(1m), auditreduce(1m)

● souborový systém– digitální podpisy souborů - elfsign(1m)– změny v souborech - bart(1m)

crossbowaudit

Page 34: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

34

syscall

Systémový audit

kernel

fronta

appl

auditdaudit

audit_eventaudit_class

auditconfig audit audit_warn

auditreducepraudit

crossbowspráva

systémový

Page 35: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

35

Kurzy kde Vás to naučíme● Oracle Solaris 11 System Administration ● Oracle Solaris 11 Advanced System Administration ● Transition to Oracle Solaris 11 ● Oracle VM Server for SPARC: Installation and

Configuration ● Oracle Solaris 11 Zones Administration ● Oracle Solaris 11 ZFS Administration ● Oracle Solaris 11 Network Administration● Oracle Solaris 11 Security Administration● Oracle Solaris 11 Performance Management● Oracle Solaris DTrace for System Administrators● Developing and Deploying Applications on Oracle

Solaris 11 http://www.edumaster.cz

Page 36: Oracle Solaris Day 2013 - Oracle DB and OS Solaris

36

Dotazy?pro prezentaci byly použity inspirace z volně dostupných materiálů a prezentací, z dokumentace docs.oracle.com a dalších zdrojů mezi jinýmiblogs.oracle.com, solarisinternals.com, illumos.org, oss.oracle.com, wikipedia.org, alexanderanokhin.wordpress.com, blog.tanelpoder.com ...