oracle solaris day 2013 - oracle db and os solaris
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-cmdTRANSCRIPT
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
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
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
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
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
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
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
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
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
11
Integrita dat
1 2
3 4
možnýsnapshot
mirror
12
3
aktuálníuberblock
poškozenýblok dat
ZFS
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
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
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ě
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
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
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
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
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
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
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
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
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
24
Stav služby
maintenance
degraded
disabled
uninitialized
offline
svcadm disablesvcadm enable
svcadm restartsvcadm refresh
svcadm clearsvcadm mark
online
crossbowdohled
SMF
25
Provázání služebcrossbowdohled
SMF
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
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
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
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
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
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
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
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
34
syscall
Systémový audit
kernel
fronta
appl
auditdaudit
audit_eventaudit_class
auditconfig audit audit_warn
auditreducepraudit
crossbowspráva
systémový
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
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 ...