SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
Sun Training Day 2007
sekce Solaris
Martin Červený
M.Cerveny@computer.org
Pokročilé instalace Solarisu
Privilegia programů v kernelu
Administrace a konfigurace služeb (SMF)
DTrace
Kontejner/zóna Solarisu
Zettabyte File System
Vývoj a nové technologie v OpenSolarisu
Pokročilé instalace Solarisu
Možnosti instalace
● podle média
– lokální z CD/DVD
– síťová NFS (jumpstart)
● zabezpečená instalace SST/JASS
– síťová HTTPS (wanboot)
● podle typu
– nová instalace
● z balíků
● z archivu (flash archive, flar)
– upgrade stávající instalace
– live upgrade stávající instalace
instalace
možnosti
Minimalizace a zabezpečení
● Solaris Security Toolkit (SST)
– JumpStart Architecture and Security Scripts (JASS)
● vlastnosti
– konfigurace přístupových práv a vlastnictví
– souborový audit (MD5 kontrolní součty)
– bezpečnostní nastavení
● používání hesel
● aktivace bezpečnostních služeb
● vypnutí nepotřebných síťových a systémových služeb
● filtrace síťové komunikace
● implementace
– připravená architektura pro JumpStart
● minimalizované class definice
● postinstalační secure.driver
– možnost použití na nainstalovné systémy
● install/uninstall/audit
● jass-execute -d|-u|-a secure.driver
instalace
SST
Konfigurace
● nastavení parametrů
– user.init
– user.run
● nastavení rozsahu
– .../Driver/*
– *secure.driver
● varianta souborů „soubor-varianta+os“
● volá config.driver a hardening.driver
– *config.driver a *hardering.driver
● JASS_FILES
– kopírování souborů (.../Files/*) ~ 20
● JASS_SCRIPTS
– spouštění skriptů (.../[Finish|Audit]/*) ~116
instalace
SST
Instalace wanboot
● vlastnosti
– kompletní boot s pomocí http/https
● SPARC OBP>4.14
● ověření obsahu (HMAC SHA1)
● symetrické šifrování obsahu (3DES, AES)
● https pomocí SSL
● informace o bootu z DHCP nebo přímo z OBP
proměnných
– boot zavaděče z CD/DVD nebo JumpStart
● boot cdrom -o prompt -F wanboot - install
– instalace z flar archivů
instalace
wanboot
Sekvence wanboot
instalace
wanboot
● boot
● wanboot
program
● wanboot
konfigurace
● miniroot
● start kernelu
● flar install
● wanboot-cgi
● bootlog-cgi
● JumpStart
přes http
instalovaný klient instalační server
Konfigurace
1) setup_install_server -w …
2) příprava apache2
/var/apache2/htdocs/wanboot/wanboot.s10_sparc
/var/apache2/htdocs/miniroot/miniroot.s10_sparc
/var/apache2/cgi-bin/[wanboot|bootlog]-cgi
3) vytvoření /etc/netboot
/etc/netboot/, /etc/netboot/netip, /etc/netboot/clientid
4) certifikáty pro apache2 (openssl)
5) wanboot konfigurace klienta (bootconfchk)
/etc/netboot/*/system.conf (SsysidCF, SjumpsCF)
/etc/netboot/*/wanboot.conf (boot_file, root_server, root_file,
boot_logger, system_conf, + bezpečnost)
/etc/netboot/*/[keystore|truststore|certstore]
6) konfigurace sysidcfg, rules, flar
7) boot (ickey)
OK set-security-key wanboot-hmac-sha1
OK set-security-key wanboot-3des
OK setenv network-boot-arguments host-ip=mojeip ,router-
ip=mujsubnet,subnet-
mask=mojemaska,hostname=mojejméno,http-
proxy=proxyip:port,file=http://serverip/cgi-bin/wanboot-
cgi
OK boot net [-o prompt,dhcp] - install
instalace
wanboot
Více v kurzech
SA-301-S10 - Personalizing Security on
the Solaris 10 Operating System
SA-225-S10 - Solaris 10 Features for
Experienced Solaris System
Administrators
SA-200-S10 - System Administration
for the Solaris 10 Operating System
Part 1
SA-202-S10 - System Administration
for the Solaris 10 Operating System
Part 2
instalace
kurzy
Privilegia programů v kernelu
Dosavadní možnosti
● privilegovaný stav na úrovni kernelu
– euid==0
● delegace privilegií
– suid bit
– nástroje
● Role Based Access Control (RBAC)
● Solaris Management Console (SMC)
● sudo
privilegia
dříve
Privilegia
● privilegia
– bezpečnostní oprávnění pro kernel, která
nahrazují euid==0
– součástí informací kernelu o procesu
– 68 privilegií ve skupinách (S10U4)
● FILE – oprávnění přístupu k souborům
● IPC – oprávnění přístupu k sdílené paměti,
frontám zpráv a semaforům
● NET – oprávnění přístupu k síti
● PROC - oprávnění přístupu k procesům
● SYS - oprávnění přístupu k systémovým
zdrojům
● DTRACE/CPC
● CONTRACT
● GRAPHICS/WIN – Xwindows systém a TX
– /etc/security/priv_names (+extra_privs)
privilegia
Přehled privilegií (S10FCS)
“contract_event” Process/Request
critical/reliable events
“contract_observer” Obsever events other than
euid
"cpc_cpu” Access to per-CPU perf counters
"dtrace_kernel" DTrace kernel tracing
"dtrace_proc" DTrace process-level tracing
"dtrace_user" DTrace user-level tracing
"file_chown" Change file's owner/group IDs
"file_chown_self" Give away (chown) files
"file_dac_execute" Override file's execute
perms
"file_dac_read" Override file's read perms
"file_dac_search" Override dir's search perms
"file_dac_write" Override (non-root) file's write
perms
"file_link_any" Create hard links to diff uid
files
"file_owner" Non-owner can do misc owner
ops
"file_setid" Set uid/gid (non-root) to diff id
"ipc_dac_read" Override read on IPC, Shared
Mem perms
"ipc_dac_write" Override write on IPC, Shared
Mem perms
"ipc_owner" Override set perms/owner on IPC
"net_icmpaccess" Send/Receive ICMP packets
"net_privaddr" Bind to privilege port
(<1023+extras)
"net_rawaccess” Raw access to IP
"proc_audit” Generate audit records
"proc_chroot” Change root (chroot)
"proc_clock_highres" Allow use of hi-res timers
"proc_exec" Allow use of execve()
"proc_fork" Allow use of fork*() calls
"proc_info" Examine /proc of other processes
"proc_lock_memory" Lock pages in physical
memory
"proc_owner" See/modify other process states
"proc_priocntl" Increase priority/sched class
"proc_session" Signal/trace other session
process
"proc_setid" Set process UID
"proc_taskid" Assign new task ID
“proc_zone” Signal/trace processes in other
zones
“sys_acct” Manage accounting system (acct)
“sys_admin System admin tasks (node/domain
name)
"sys_audit" Control audit system
"sys_config" Manage swap
"sys_devices" Override device restricts (exclusive)
"sys_ipc_config" Increase IPC queue
"sys_linkdir" Link/unlink directories
"sys_mount" Filesystem admin (mount,quota)
"sys_net_config" Config net interfaces, routes,
stack
"sys_nfs" Bind NFS ports and use syscalls
"sys_res_config" Admin processor sets, res pools
"sys_resource" Modify res limits (rlimit)
"sys_suser_compat" 3rd party modules use of
suser
"sys_time" Change system time
privilegia
Privilegia procesu
● informace kernelu o procesu
– Effective 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
– příznak PRIV_AWARE
● spouštění setuid
– pro nepřeprogramované (nejsou PRIV_AWARE)
procesy se v kernelu ověřuje jiné E a P
E' = (euid == 0 ? L : E)
P' = ((euid == 0 || ruid == 0 || suid == 0) ? L : P))
privilegia
implementace
Nastavení privilegií
● RBAC
● nástroj ppriv(1)
– zjištění privilegií u procesu
– nastavení privilegií pro spouštěný proces
– testování potřebných privilegií
● nástroj truss(1)
– testování potřebných privilegií
● nastavení při startu OS (SMF)
– definice v popisu (manifestu) aplikace
– zobrazení nástroji svcprop(1)/svccfg(1)
● ovladače zařízení - add_drv(1m)
– /etc/security/device_policy
● API
– set/getpflags(2), set/getppriv(2)
privilegia
administrace
Více v kurzech
SC-301-S10 - Personalizing Security on
the Solaris 10 Operating System
SA-225-S10 - Solaris 10 Features for
Experienced Solaris System
Administrators
privilegia
kurzy
Administrace a konfigurace služeb (SMF)
Starý model startu služeb
● runlevel
– definované úrovně
● 0,5,6 – vypnutí systému
● s – minimální počet procesů, síť
● 1,2,3 – běžné úrovně, simulovaná hierarchie
– startovací skripty
● /etc/rc#.d/S##service start
● /etc/rc#.d/K##service stop
● /etc/init.d/service
● /sbin/rc#
● vlastnosti
– sekvenční start
– společný kód a konfigurační data
– neřešený dohled nad službami
– „služba“
SMF
dříve
Nový model startu služeb
● charakteristika nového modelu
– jemnější definice vazby služeb (obousměrně)
– paralelní start služeb
– automatický restart
– delegace ovládání na běžné uživatele
– stav údržby
– konfigurační data v databázi
– chybový systém http://sun.com/msg
● definice služby
– Service Management Facility (SMF)
– Fault Management Resource ID (FMRI)
– svc:/typ/název:instance
– XML popisný soubor
– /var/svc/manifest/, (/var/svc/profile/)
– závislosti služby
– parametry
– start/stop/restart příkazy (/lib/svc/method)
SMF
Implementace a administrace
● infrastruktura
– svc.startd(1m), inetd(1m) – restarter
● /etc/svc/volatile/, /var/svc/log/
– svc.configd(1m) – databáze informací
● /etc/svc/repository.db
● nástroje
– svcs(1) – zobrazení (svcs -x)
– svcadm(1m) – administrace
enable, disable, restart, clear, mark, refresh, milestone
– svccfg(1m),svcprop(1) – práce s databází
– inetadm(1m),inetconv(1m)
● svc:/milestone/
– none, single-user, multi-user, multi-
user-server, ..., all
– boot -s, -m milestone=none,verbose
SMF
administrace
Stav služby
maintenance
degraded
disabled
uninitialized
offline
svcadm disable
svcadm enable
svcadm restart
svcadm refresh
svcadm clear
svcadm mark
SMF
administrace
online
Provázání služeb
SMF
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>
SMF
konfigurace
Více v kurzech
SA-200-S10 - System Administration
for the Solaris 10 Operating System
Part 1
SA-225-S10 - Solaris 10 Features for
Experienced Solaris System
Administrators
SMF
kurzy
DTrace
Vlastnosti Dynamic Tracing
● sondy
– dynamické vložení přerušení do funkce
kernelu/programu
● zajímavé pro produkční systémy
● nulové náklady, pokud není sonda aktivní
– pro kernel i uživatelské programy, java,
phyton, PHP, X, posgresql …
– „provider“ sond
● ~ 70000 sond generických (funkce kernelu)
– fbt, pid*
● ~ 2500 sond specifických
– syscall, fsinfo, sysinfo, vminfo, lockstat, sched, io,
proc, (profile-*, tick-*) ...
● akce
– výrazy jazyka DTrace (podobné awk(1))
● nástroj dtrace(1m)
dtrace
Implementace
dtrace
libdtrace(3lib)
lockstat(1m)
dtrace(1m) intrstat(1m)
plockstat(1m)
sondy&akce (DOF) výsledky (DIF)
fbt(7d)
sdt(7d)
syscall(7d)
vmstat(7d)
dtrace(7d), logika a D-interpret
text/code
trap
USR
SYS
implementace
Provider
dtrace – vnitřní sondy DTrace
lockstat - sondy pro zámky a zamykání
profile - pravidelně spouštěné sondy (časovač)
fbt - sondy na vstupu/výstupu všech funkcí kernelu
syscall - sondy na vstupu/výstupu systémových volání
sdt - “staticky definované sondy” explicitně
zakopilované v kódu
sysinfo - sondy statistik kernelu pro mpstat a sysinfo
vminfo - sondy statistik kernelu pro virtuální paměť
proc - sondy vytváření a zánik procesů/LWP
sched - sondy plánovače CPU
io - sondy pro sledování diskových IO
mib - SNMP MIB sondy systémového managementu
fpuinfo - sondy na sledování zpracování v pohyblivé
řádové čárce
pid - sondy sledování funkcí a insrukcí v procesech
plockstat- sondy pro zamykání a synchornozaci v
procesech
fasttrap - přímé vložení sond
dtrace
sondy
Sonda a akce
● popis sondy
– provider:module:function:name
– možnost použití „*“ a prázdné definice
– možnost aktivace více sond najednou
– speciální „BEGIN“ a „END“
● úplný popis sondy a akce
provider:module:function:name
/logický výraz podmínky akce/
{ příkazy akce; … }
● použití
– z příkazové řádky (oneliners)
● dtrace -n 'popis_akce popis_akce...'
– dtrace skript (/usr/demo/dtrace)
● #!/usr/sbin/dtrace -s
dtrace
sondy
D-language
● nedestruktivní a destruktivní funkce
● funkce
– tisk: trace(), printf(), stack(), printa() …
– agregační: count(), quantize(), lquantize(),
max(), avg(), min() … clear(), trunc()
– řídící: exit(), return()
– pro programy: copyin(), copyinstr(), ustack()
● proměnné dtrace
– probeprov, probemod, probefunc, probename
– arg0, arg1, …, args[#]
– execname, timestamp, walltimestamp …
– pid, ppid, tid. uid, gid, cpu, cwd, errno …
– $pid, $target, $1, $2 …
– libovolná proměnná v kernelu
● uživatelsky definované proměnné
– C-stadardní matematika a logika
– X, this->X, self->X, poleX[indexy]
– @agregaceX[indexy]=agregační_funkce(argumenty)
dtrace
akce
Více v kurzech
SA-327-S10 - Dtrace Facility
SA-400 - Solaris System Performance
Management
SA-225-S10 - Solaris 10 Features for
Experienced Solaris System
Administrators
dtrace
kurzy
Kontejner/zóna Solarisu
Principy oddělení běhu aplikací
● důvody
– bezpečnostní oddělení
– rozdělení nebo vyhrazení zdrojů
– redundance a vysoká dostupnost
– horizontální škálovatelnost
● možnosti dokonalého oddělení
– oddělené systémy
– dynamické hw rozdělení výkonných
počítačů (hardware partitioning)
– virtuální (emulovaný) hardware (virtual
hardware monitors)
– rozdělení na úrovni operačního systému
(OS virtualization)
kontejner
možnosti
Kontejner Solarisu
● kontejner
– 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ý kernel)
● izolace softwarových chyb
● bezpečnostní oddělení (méně privilegií)
– řízení zdrojů
● podle procesorů (dynamic resource pools,
processor sets)
● podle výkonu procesorů na nižší úrovni
(resource/workload manager, FSS scheduler
(cpu-shares), projects)
● podle toků na IP úrovni (IP QoS)
kontejner
Zóna v Solarisu
kontejner
hardware systému
Solaris kernel
app
app
konfigurace
globální
zóna
app
app
solaris
zóna
RPC
IPC
app
app
brandz
zóna
(S10U4 lx)
syscall emulátor
syscall
zóna
Zóna Solarisu
● konfigurace - zones(5)
– zonecfg(1m)
● jméno
● kořenový adresář zóny
● souborové systémy
● síťové rozhraní (S10U4 možnost plně oddělit)
● další zařízení
● řízení zdrojů
● instalace, spuštění a vypnutí
– zoneadm(1m)
– stav zóny
● configured, incomplete, installed, ready,
running, shutting_down, down
● zpřístupnění
– zlogin(1), zonename(1)
kontejner
zóna
Konfigurace zóny
zonecfg -z zone1
zonecfg:zone1> create
zonecfg:zone1> set zonepath=/zone1
zonecfg:zone1> set autoboot=true
zonecfg:zone1> add net
zonecfg:zone1:net> set address=192.168.1.100
zonecfg:zone1:net> set physical=bge0
zonecfg:zone1:net> end
zonecfg:zone1 > add fs
zonecfg:zone1:fs> set dir=/usr/local
zonecfg:zone1:fs> set special=/zone1/local
zonecfg:zone1:fs> set type=lofs
zonecfg:zone1:fs> end
zonecfg:zone1> add device
zonecfg:zone1:device> set match=/dev/ecpp0
zonecfg:zone1:device> end
zonecfg:zone1> verify
zonecfg:zone1> commit
zoneadm -z zone1 install
zoneadm -z zone1 boot
zlogin -C zone1
kontejner
zóna
Další vlastnosti zóny
● žádné změny v API aplikací
● možnost připojení citlivých části souborového
systému jen pro čtení
● omezení na zařízeních
● odebraná privilegia
– cpc_cpu, dtrace_kernel, dtrace_proc, dtrace_user, net_rawaccess,
proc_clock_highres, proc_lock_memory, proc_priocntl, proc_zone,
sys_config, sys_devices, sys_ipc_config, sys_linkdir, sys_net_config,
sys_res_config, sys_suser_compat, sys_time ...
● upravené nástroje
– ps(1), prstat(1m), truss(1), iostat(1m),
mpstat(1m), vmstat(1m), psrinfo(1m), sar(1)...
● upravená prezentace z kernelu
– sysconf(3c), getloadavg(3c), kstat(3kstat),
autofs, fd(4), mnttab(4), kill(2), SysV IPC,
streams ...
● instalace aplikací
– pkgmap(4), pkginfo(4), pkg*, patch*
kontejner
zóna
Řízení zdrojů CPU
● konfigurace - dynamic resource pool
– pooladm(1m), poolcfg(1m),
poolbind(1m), poolstat(1m), poold(1m)
– pbind(1m), psrinfo(1m), psradm(1m)
● konfigurace - FSS(7)
– resource_controls(5)
– zonecfg(1m)
● zones.cpu-shares
– rctladm(1m)
– prctl(1)
– projadd(1m), projmod(1m), projdel(1m),
projects(1), project(4), newtask(1)
● project.cpu-shares
kontejner
zdroje
Řízení zdrojů CPU
system 8 cpu
pool1 2-4 cpu pool2 2 cpu
zone3 1 share
zone1 10 shares
zone4 2 shares
zone5 1 share
zone1 20 shares
project1
3 shares
project2
2 share
project3
1 share
task2
proc4
proc3
task1
proc2
proc1
kontejner
zdroje
Minimálně garantované CPU
kontejner
zdroje
4cpu
10
20
1
2
3
cpu pool zone share project share
4 ∗
20
1020
∗
2
123
=
8
9
Více v kurzech
SA-230-S10 - Solaris 10 Containers
ES-431 - Solaris Resource Manager
Administration
SA-225-S10 - Solaris 10 Features for
Experienced Solaris System
Administrators
SA-202-S10 - System Administration
for the Solaris 10 Operating System
Part 2
kontejner
kurzy
Zettabyte File System
Použití fdisk+SVM+UFS
● Unix File systém (UFS)
– postaven na BSD FFS (McKusick, Joy ...)
– svařování požadavků (extent-like perf.),
posix ACL, logging (žurnál změn metadat),
uživatelské kvóty, zvětšování za běhu,
zamykání celého FS, zálohování a obnova,
snapshot (copy-on-write)
● Solaris Volume Manager (SVM)
– RAID-0, RAID-1, RAID-5
– slice-based, softpartition, hotspare, diskset,
hw serial, split-mirror
● vytvoření a zpřístupnění souborového
systému RAID-1:
format,format,metadb,metainit,metainit,
metainit,metattach,newfs,vi,mkdir,mount
ZFS
dříve
Vlastnosti
● cíle
– vysoká integrita dat
● end-to-end kontrolní součty
● transakce
– kapacita (128bit)
– jednoduchá administrace
– storage pool
– NFSv4/NT ACL
– komprimace
– snapshot, clone
– vzdálená replikace
– třídění IO požadavků
– nezávislé na platformě (x86-SPARC)
– online administrace
– RAID-0, RAID-1, RAID-Z, RAID-Z2
ZFS
Porovnání architektury
ZFS
volume
manager
filesystem
dmu
storage
pool alloc.
nezávislý
blokový přístup
ochrana pomocí
žurnálu
synchroní zápis
úplná
resychronizace
po výpadku
transakce
vše-nebo-nic
ve všech bodech
zfs
Integrita dat
ZFS
1 2
3 4
možný
snapshot
mirror
1
2
3
aktuální
uberblock
Administrace
● zpool(1m)
● práce s disky (vytvoření, rozšíření, výměna)
● práce s diskovou skupinou (export/import)
● stav a statistiky
● scrub
● zfs(1m)
● parametry (~20)
● clone, snapshot
● zálohování a replikace (send, receive)
● sdílení (share, unshare, iscsi target (S10U4))
● diskový volume
● web gui
● /etc/zfs/zpool.cache
● vytvoření a zpřístupnění souborového
systému RAID-1:
zpool create name mirror disk1 disk2
ZFS
administrace
Další využití
● využití vfstab
– legacy mount
● zóny
– delegování konfigurace zfs – dataset
– legacy mount
– lofs mount
● bootování
● liveupgrade
– vyvořit snapshot
– vytvořit clone
– upgrade do clone
– reboot do clone
● ACL (chmod(1), ls(1))
ZFS
administrace
Příkazy
# zpool create home mirror c5t40d0 c5t40d1
# zpool scrub home
# zfs create home/user
# zfs create home/www
# zfs create home/user/mail
# zfs set compression=on home/user/mail
# zfs set quota=10g home/user
# zfs snapshot home/user@monday
# zfs rollback home/user@monday
# zfs clone home/user@monday home/home-new
# zfs create -V 10gb home/volume1
# zpool export home
# zpool import home
# zfs send home/user@monday | ssh host zfs
receive pool/received/fs@monday
# zfs send -i monday home/user@tuesday | ssh
host zfs receive pool/received/fs
ZFS
administrace
Více v kurzech
SA-229-S10 - Solaris 10 ZFS
Administration
SA-225-S10 - Solaris 10 Features for
Experienced Solaris System
Administrators
ZFS
kurzy
Vývoj a nové technologie v OpenSolarisu
Definice OpenSolaris komunity
● 06/2005 - postupné otevření zdrojových kódů
Solarisu
– ON (os+network), NWS (network storage),
JDS (gnome), admin/install, man, docs,
i18n, Xorg ...
● 03/2007 - OpenSolaris Governing Board
● otevřený komunitní vývoj (ARC)
● licence CDDL (podobné licencím MPL, BSD)
● 80k registrovaných, 50 komunit , 170 projektů
(50 skupin uživatelů)
OpenSolaris
Model vývoje a distribuce
OpenSolaris
akceptace projektu (ARC)
vývoj a kontrolní procesy
nové vlastnosti
projekty
opravy chyb
nové vlastnosti
projekty
opravy chyb
hg repository
akceptace Sunem
a kritéria kvality
nevada
OpenSolaris
zdrojový
kód
Solaris
zdrojový
kód
kvalifikačnía
sestavovacíprocesy
SolarisExpress/CE (~14d)
SolarisExpress/DE (~3m)
Belenix (x86)
marTux (sparc)
Nexenta (x86,Debian)
Schillix (x86)
Singanix
projekty
přenos zpět
do Sol10u#
uzavřený
kód
komunita sun
Zajímavé projekty
● ZFS – další rozšíření
● XEN (=xVM) – paravirtualizace (hypercall) a
plná virtualizace
● Network Auto-Magic (NWAM) – automatická
aktivace síťových profilů
● Visual Panels – lokální konfigurace přes
GUI/Gnome
● ClearView – sjednocení ovládání sítě na úrovni
L2 (IPMP, GLD3, WiFi...)
● CrossBow – virtualizace sítí
● Duckwater – dynamický přepínač jmenných
služeb
● Caiman – nový instaler
● Tesla – řízení spotřeby
OpenSolaris
CZOSUG
● Czech OpenSolaris User Group
– otevřená komunita a žádné členské
příspěvky
– 21 večerních setkání o technologiích
OpenSolarisu i dalších enterprise
produktech
– 3 celodenní BootCampy
– prezentace na konferencích
(OpenWeekend, LinuxExpo)
– nejen pro vývojáře
– lokální projekty l18n
http://cz.opensolaris.org
http://www.opensolaris.cz
http://www.opensolaris.org/os/project/czosug
OpenSolaris
Internet
● školení
– http://sk.sun.com/training
– http://www.suned.sk
– http://www.sun.com/training/catalog/courses/
● web kurz zdarma
– http://www.sun.com/training/catalog/courses/WS-
245.xml
● informace
– http://docs.sun.com
– http://www.sun.com/bigadmin
– http://www.sun.com/blueprints
– http://sunsolve.sun.com
– http://developers.sun.com
● konference
– http://forum.sun.com
– http://groups.yahoo.com/group/solarisx86/
● komunity
– http://www.opensolaris.org/os/community/sysadmin/
– http://www.opensolaris.cz
● mimo sun
– http://www.sunhelp.org/ (+desítky dalších)
tato prezentace byla připravena s využitím komunitních materiálů z opensolaris.org
Czech and Slovak Sun Training Day 2007 - Solaris

Mais conteúdo relacionado

Semelhante a Czech and Slovak Sun Training Day 2007 - Solaris

Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)Martin Cerveny
 
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)Martin Zeman
 
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)Péhápkaři
 
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Martin Cerveny
 
Kurz přežití na Jira Serveru - podpora pro serverové produkty Atlassian skonč...
Kurz přežití na Jira Serveru - podpora pro serverové produkty Atlassian skonč...Kurz přežití na Jira Serveru - podpora pro serverové produkty Atlassian skonč...
Kurz přežití na Jira Serveru - podpora pro serverové produkty Atlassian skonč...Onlio
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Bezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNETBezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNETCESNET
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
 
2010 JBoss Application Server
2010 JBoss Application Server2010 JBoss Application Server
2010 JBoss Application ServerMartin Ptáček
 
SmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatformSmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatformOKsystem
 
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...LTP-portal-cz
 
Přechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítíchPřechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítíchMarketingArrowECS_CZ
 
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizaceMartin Ptáček
 
OpenStack Technical Overview
OpenStack Technical OverviewOpenStack Technical Overview
OpenStack Technical OverviewLukas Korous
 
Webinář: Oracle DBA - RAC - Úvod do problematiky
Webinář: Oracle DBA - RAC - Úvod do problematikyWebinář: Oracle DBA - RAC - Úvod do problematiky
Webinář: Oracle DBA - RAC - Úvod do problematikyTomas Solar
 
Novinky Oracle db 12c
Novinky Oracle db 12cNovinky Oracle db 12c
Novinky Oracle db 12cTomas Solar
 
Vizuální regresní testy
Vizuální regresní testyVizuální regresní testy
Vizuální regresní testyMartin Krištof
 

Semelhante a Czech and Slovak Sun Training Day 2007 - Solaris (20)

Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
 
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
 
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
 
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
 
Kurz přežití na Jira Serveru - podpora pro serverové produkty Atlassian skonč...
Kurz přežití na Jira Serveru - podpora pro serverové produkty Atlassian skonč...Kurz přežití na Jira Serveru - podpora pro serverové produkty Atlassian skonč...
Kurz přežití na Jira Serveru - podpora pro serverové produkty Atlassian skonč...
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Lotus Notes 7
Lotus Notes 7Lotus Notes 7
Lotus Notes 7
 
Bezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNETBezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNET
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
2010 JBoss Application Server
2010 JBoss Application Server2010 JBoss Application Server
2010 JBoss Application Server
 
SmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatformSmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatform
 
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
 
Přechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítíchPřechod na Windows 10 - jak na to ve firemních sítích
Přechod na Windows 10 - jak na to ve firemních sítích
 
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
2011 X33EJA Výkonové Aspekty JEE Monitoring a optimalizace
 
SVN základy
SVN základySVN základy
SVN základy
 
OpenStack Technical Overview
OpenStack Technical OverviewOpenStack Technical Overview
OpenStack Technical Overview
 
Policy Compliance Testing (2011)
Policy Compliance Testing (2011)Policy Compliance Testing (2011)
Policy Compliance Testing (2011)
 
Webinář: Oracle DBA - RAC - Úvod do problematiky
Webinář: Oracle DBA - RAC - Úvod do problematikyWebinář: Oracle DBA - RAC - Úvod do problematiky
Webinář: Oracle DBA - RAC - Úvod do problematiky
 
Novinky Oracle db 12c
Novinky Oracle db 12cNovinky Oracle db 12c
Novinky Oracle db 12c
 
Vizuální regresní testy
Vizuální regresní testyVizuální regresní testy
Vizuální regresní testy
 

Czech and Slovak Sun Training Day 2007 - Solaris

  • 1. Sun Training Day 2007 sekce Solaris Martin Červený M.Cerveny@computer.org
  • 2. Pokročilé instalace Solarisu Privilegia programů v kernelu Administrace a konfigurace služeb (SMF) DTrace Kontejner/zóna Solarisu Zettabyte File System Vývoj a nové technologie v OpenSolarisu
  • 4. Možnosti instalace ● podle média – lokální z CD/DVD – síťová NFS (jumpstart) ● zabezpečená instalace SST/JASS – síťová HTTPS (wanboot) ● podle typu – nová instalace ● z balíků ● z archivu (flash archive, flar) – upgrade stávající instalace – live upgrade stávající instalace instalace možnosti
  • 5. Minimalizace a zabezpečení ● Solaris Security Toolkit (SST) – JumpStart Architecture and Security Scripts (JASS) ● vlastnosti – konfigurace přístupových práv a vlastnictví – souborový audit (MD5 kontrolní součty) – bezpečnostní nastavení ● používání hesel ● aktivace bezpečnostních služeb ● vypnutí nepotřebných síťových a systémových služeb ● filtrace síťové komunikace ● implementace – připravená architektura pro JumpStart ● minimalizované class definice ● postinstalační secure.driver – možnost použití na nainstalovné systémy ● install/uninstall/audit ● jass-execute -d|-u|-a secure.driver instalace SST
  • 6. Konfigurace ● nastavení parametrů – user.init – user.run ● nastavení rozsahu – .../Driver/* – *secure.driver ● varianta souborů „soubor-varianta+os“ ● volá config.driver a hardening.driver – *config.driver a *hardering.driver ● JASS_FILES – kopírování souborů (.../Files/*) ~ 20 ● JASS_SCRIPTS – spouštění skriptů (.../[Finish|Audit]/*) ~116 instalace SST
  • 7. Instalace wanboot ● vlastnosti – kompletní boot s pomocí http/https ● SPARC OBP>4.14 ● ověření obsahu (HMAC SHA1) ● symetrické šifrování obsahu (3DES, AES) ● https pomocí SSL ● informace o bootu z DHCP nebo přímo z OBP proměnných – boot zavaděče z CD/DVD nebo JumpStart ● boot cdrom -o prompt -F wanboot - install – instalace z flar archivů instalace wanboot
  • 8. Sekvence wanboot instalace wanboot ● boot ● wanboot program ● wanboot konfigurace ● miniroot ● start kernelu ● flar install ● wanboot-cgi ● bootlog-cgi ● JumpStart přes http instalovaný klient instalační server
  • 9. Konfigurace 1) setup_install_server -w … 2) příprava apache2 /var/apache2/htdocs/wanboot/wanboot.s10_sparc /var/apache2/htdocs/miniroot/miniroot.s10_sparc /var/apache2/cgi-bin/[wanboot|bootlog]-cgi 3) vytvoření /etc/netboot /etc/netboot/, /etc/netboot/netip, /etc/netboot/clientid 4) certifikáty pro apache2 (openssl) 5) wanboot konfigurace klienta (bootconfchk) /etc/netboot/*/system.conf (SsysidCF, SjumpsCF) /etc/netboot/*/wanboot.conf (boot_file, root_server, root_file, boot_logger, system_conf, + bezpečnost) /etc/netboot/*/[keystore|truststore|certstore] 6) konfigurace sysidcfg, rules, flar 7) boot (ickey) OK set-security-key wanboot-hmac-sha1 OK set-security-key wanboot-3des OK setenv network-boot-arguments host-ip=mojeip ,router- ip=mujsubnet,subnet- mask=mojemaska,hostname=mojejméno,http- proxy=proxyip:port,file=http://serverip/cgi-bin/wanboot- cgi OK boot net [-o prompt,dhcp] - install instalace wanboot
  • 10. Více v kurzech SA-301-S10 - Personalizing Security on the Solaris 10 Operating System SA-225-S10 - Solaris 10 Features for Experienced Solaris System Administrators SA-200-S10 - System Administration for the Solaris 10 Operating System Part 1 SA-202-S10 - System Administration for the Solaris 10 Operating System Part 2 instalace kurzy
  • 12. Dosavadní možnosti ● privilegovaný stav na úrovni kernelu – euid==0 ● delegace privilegií – suid bit – nástroje ● Role Based Access Control (RBAC) ● Solaris Management Console (SMC) ● sudo privilegia dříve
  • 13. Privilegia ● privilegia – bezpečnostní oprávnění pro kernel, která nahrazují euid==0 – součástí informací kernelu o procesu – 68 privilegií ve skupinách (S10U4) ● FILE – oprávnění přístupu k souborům ● IPC – oprávnění přístupu k sdílené paměti, frontám zpráv a semaforům ● NET – oprávnění přístupu k síti ● PROC - oprávnění přístupu k procesům ● SYS - oprávnění přístupu k systémovým zdrojům ● DTRACE/CPC ● CONTRACT ● GRAPHICS/WIN – Xwindows systém a TX – /etc/security/priv_names (+extra_privs) privilegia
  • 14. Přehled privilegií (S10FCS) “contract_event” Process/Request critical/reliable events “contract_observer” Obsever events other than euid "cpc_cpu” Access to per-CPU perf counters "dtrace_kernel" DTrace kernel tracing "dtrace_proc" DTrace process-level tracing "dtrace_user" DTrace user-level tracing "file_chown" Change file's owner/group IDs "file_chown_self" Give away (chown) files "file_dac_execute" Override file's execute perms "file_dac_read" Override file's read perms "file_dac_search" Override dir's search perms "file_dac_write" Override (non-root) file's write perms "file_link_any" Create hard links to diff uid files "file_owner" Non-owner can do misc owner ops "file_setid" Set uid/gid (non-root) to diff id "ipc_dac_read" Override read on IPC, Shared Mem perms "ipc_dac_write" Override write on IPC, Shared Mem perms "ipc_owner" Override set perms/owner on IPC "net_icmpaccess" Send/Receive ICMP packets "net_privaddr" Bind to privilege port (<1023+extras) "net_rawaccess” Raw access to IP "proc_audit” Generate audit records "proc_chroot” Change root (chroot) "proc_clock_highres" Allow use of hi-res timers "proc_exec" Allow use of execve() "proc_fork" Allow use of fork*() calls "proc_info" Examine /proc of other processes "proc_lock_memory" Lock pages in physical memory "proc_owner" See/modify other process states "proc_priocntl" Increase priority/sched class "proc_session" Signal/trace other session process "proc_setid" Set process UID "proc_taskid" Assign new task ID “proc_zone” Signal/trace processes in other zones “sys_acct” Manage accounting system (acct) “sys_admin System admin tasks (node/domain name) "sys_audit" Control audit system "sys_config" Manage swap "sys_devices" Override device restricts (exclusive) "sys_ipc_config" Increase IPC queue "sys_linkdir" Link/unlink directories "sys_mount" Filesystem admin (mount,quota) "sys_net_config" Config net interfaces, routes, stack "sys_nfs" Bind NFS ports and use syscalls "sys_res_config" Admin processor sets, res pools "sys_resource" Modify res limits (rlimit) "sys_suser_compat" 3rd party modules use of suser "sys_time" Change system time privilegia
  • 15. Privilegia procesu ● informace kernelu o procesu – Effective 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 – příznak PRIV_AWARE ● spouštění setuid – pro nepřeprogramované (nejsou PRIV_AWARE) procesy se v kernelu ověřuje jiné E a P E' = (euid == 0 ? L : E) P' = ((euid == 0 || ruid == 0 || suid == 0) ? L : P)) privilegia implementace
  • 16. Nastavení privilegií ● RBAC ● nástroj ppriv(1) – zjištění privilegií u procesu – nastavení privilegií pro spouštěný proces – testování potřebných privilegií ● nástroj truss(1) – testování potřebných privilegií ● nastavení při startu OS (SMF) – definice v popisu (manifestu) aplikace – zobrazení nástroji svcprop(1)/svccfg(1) ● ovladače zařízení - add_drv(1m) – /etc/security/device_policy ● API – set/getpflags(2), set/getppriv(2) privilegia administrace
  • 17. Více v kurzech SC-301-S10 - Personalizing Security on the Solaris 10 Operating System SA-225-S10 - Solaris 10 Features for Experienced Solaris System Administrators privilegia kurzy
  • 18. Administrace a konfigurace služeb (SMF)
  • 19. Starý model startu služeb ● runlevel – definované úrovně ● 0,5,6 – vypnutí systému ● s – minimální počet procesů, síť ● 1,2,3 – běžné úrovně, simulovaná hierarchie – startovací skripty ● /etc/rc#.d/S##service start ● /etc/rc#.d/K##service stop ● /etc/init.d/service ● /sbin/rc# ● vlastnosti – sekvenční start – společný kód a konfigurační data – neřešený dohled nad službami – „služba“ SMF dříve
  • 20. Nový model startu služeb ● charakteristika nového modelu – jemnější definice vazby služeb (obousměrně) – paralelní start služeb – automatický restart – delegace ovládání na běžné uživatele – stav údržby – konfigurační data v databázi – chybový systém http://sun.com/msg ● definice služby – Service Management Facility (SMF) – Fault Management Resource ID (FMRI) – svc:/typ/název:instance – XML popisný soubor – /var/svc/manifest/, (/var/svc/profile/) – závislosti služby – parametry – start/stop/restart příkazy (/lib/svc/method) SMF
  • 21. Implementace a administrace ● infrastruktura – svc.startd(1m), inetd(1m) – restarter ● /etc/svc/volatile/, /var/svc/log/ – svc.configd(1m) – databáze informací ● /etc/svc/repository.db ● nástroje – svcs(1) – zobrazení (svcs -x) – svcadm(1m) – administrace enable, disable, restart, clear, mark, refresh, milestone – svccfg(1m),svcprop(1) – práce s databází – inetadm(1m),inetconv(1m) ● svc:/milestone/ – none, single-user, multi-user, multi- user-server, ..., all – boot -s, -m milestone=none,verbose SMF administrace
  • 22. Stav služby maintenance degraded disabled uninitialized offline svcadm disable svcadm enable svcadm restart svcadm refresh svcadm clear svcadm mark SMF administrace online
  • 24. 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> SMF konfigurace
  • 25. Více v kurzech SA-200-S10 - System Administration for the Solaris 10 Operating System Part 1 SA-225-S10 - Solaris 10 Features for Experienced Solaris System Administrators SMF kurzy
  • 27. Vlastnosti Dynamic Tracing ● sondy – dynamické vložení přerušení do funkce kernelu/programu ● zajímavé pro produkční systémy ● nulové náklady, pokud není sonda aktivní – pro kernel i uživatelské programy, java, phyton, PHP, X, posgresql … – „provider“ sond ● ~ 70000 sond generických (funkce kernelu) – fbt, pid* ● ~ 2500 sond specifických – syscall, fsinfo, sysinfo, vminfo, lockstat, sched, io, proc, (profile-*, tick-*) ... ● akce – výrazy jazyka DTrace (podobné awk(1)) ● nástroj dtrace(1m) dtrace
  • 28. Implementace dtrace libdtrace(3lib) lockstat(1m) dtrace(1m) intrstat(1m) plockstat(1m) sondy&akce (DOF) výsledky (DIF) fbt(7d) sdt(7d) syscall(7d) vmstat(7d) dtrace(7d), logika a D-interpret text/code trap USR SYS implementace
  • 29. Provider dtrace – vnitřní sondy DTrace lockstat - sondy pro zámky a zamykání profile - pravidelně spouštěné sondy (časovač) fbt - sondy na vstupu/výstupu všech funkcí kernelu syscall - sondy na vstupu/výstupu systémových volání sdt - “staticky definované sondy” explicitně zakopilované v kódu sysinfo - sondy statistik kernelu pro mpstat a sysinfo vminfo - sondy statistik kernelu pro virtuální paměť proc - sondy vytváření a zánik procesů/LWP sched - sondy plánovače CPU io - sondy pro sledování diskových IO mib - SNMP MIB sondy systémového managementu fpuinfo - sondy na sledování zpracování v pohyblivé řádové čárce pid - sondy sledování funkcí a insrukcí v procesech plockstat- sondy pro zamykání a synchornozaci v procesech fasttrap - přímé vložení sond dtrace sondy
  • 30. Sonda a akce ● popis sondy – provider:module:function:name – možnost použití „*“ a prázdné definice – možnost aktivace více sond najednou – speciální „BEGIN“ a „END“ ● úplný popis sondy a akce provider:module:function:name /logický výraz podmínky akce/ { příkazy akce; … } ● použití – z příkazové řádky (oneliners) ● dtrace -n 'popis_akce popis_akce...' – dtrace skript (/usr/demo/dtrace) ● #!/usr/sbin/dtrace -s dtrace sondy
  • 31. D-language ● nedestruktivní a destruktivní funkce ● funkce – tisk: trace(), printf(), stack(), printa() … – agregační: count(), quantize(), lquantize(), max(), avg(), min() … clear(), trunc() – řídící: exit(), return() – pro programy: copyin(), copyinstr(), ustack() ● proměnné dtrace – probeprov, probemod, probefunc, probename – arg0, arg1, …, args[#] – execname, timestamp, walltimestamp … – pid, ppid, tid. uid, gid, cpu, cwd, errno … – $pid, $target, $1, $2 … – libovolná proměnná v kernelu ● uživatelsky definované proměnné – C-stadardní matematika a logika – X, this->X, self->X, poleX[indexy] – @agregaceX[indexy]=agregační_funkce(argumenty) dtrace akce
  • 32. Více v kurzech SA-327-S10 - Dtrace Facility SA-400 - Solaris System Performance Management SA-225-S10 - Solaris 10 Features for Experienced Solaris System Administrators dtrace kurzy
  • 34. Principy oddělení běhu aplikací ● důvody – bezpečnostní oddělení – rozdělení nebo vyhrazení zdrojů – redundance a vysoká dostupnost – horizontální škálovatelnost ● možnosti dokonalého oddělení – oddělené systémy – dynamické hw rozdělení výkonných počítačů (hardware partitioning) – virtuální (emulovaný) hardware (virtual hardware monitors) – rozdělení na úrovni operačního systému (OS virtualization) kontejner možnosti
  • 35. Kontejner Solarisu ● kontejner – 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ý kernel) ● izolace softwarových chyb ● bezpečnostní oddělení (méně privilegií) – řízení zdrojů ● podle procesorů (dynamic resource pools, processor sets) ● podle výkonu procesorů na nižší úrovni (resource/workload manager, FSS scheduler (cpu-shares), projects) ● podle toků na IP úrovni (IP QoS) kontejner
  • 36. Zóna v Solarisu kontejner hardware systému Solaris kernel app app konfigurace globální zóna app app solaris zóna RPC IPC app app brandz zóna (S10U4 lx) syscall emulátor syscall zóna
  • 37. Zóna Solarisu ● konfigurace - zones(5) – zonecfg(1m) ● jméno ● kořenový adresář zóny ● souborové systémy ● síťové rozhraní (S10U4 možnost plně oddělit) ● další zařízení ● řízení zdrojů ● instalace, spuštění a vypnutí – zoneadm(1m) – stav zóny ● configured, incomplete, installed, ready, running, shutting_down, down ● zpřístupnění – zlogin(1), zonename(1) kontejner zóna
  • 38. Konfigurace zóny zonecfg -z zone1 zonecfg:zone1> create zonecfg:zone1> set zonepath=/zone1 zonecfg:zone1> set autoboot=true zonecfg:zone1> add net zonecfg:zone1:net> set address=192.168.1.100 zonecfg:zone1:net> set physical=bge0 zonecfg:zone1:net> end zonecfg:zone1 > add fs zonecfg:zone1:fs> set dir=/usr/local zonecfg:zone1:fs> set special=/zone1/local zonecfg:zone1:fs> set type=lofs zonecfg:zone1:fs> end zonecfg:zone1> add device zonecfg:zone1:device> set match=/dev/ecpp0 zonecfg:zone1:device> end zonecfg:zone1> verify zonecfg:zone1> commit zoneadm -z zone1 install zoneadm -z zone1 boot zlogin -C zone1 kontejner zóna
  • 39. Další vlastnosti zóny ● žádné změny v API aplikací ● možnost připojení citlivých části souborového systému jen pro čtení ● omezení na zařízeních ● odebraná privilegia – cpc_cpu, dtrace_kernel, dtrace_proc, dtrace_user, net_rawaccess, proc_clock_highres, proc_lock_memory, proc_priocntl, proc_zone, sys_config, sys_devices, sys_ipc_config, sys_linkdir, sys_net_config, sys_res_config, sys_suser_compat, sys_time ... ● upravené nástroje – ps(1), prstat(1m), truss(1), iostat(1m), mpstat(1m), vmstat(1m), psrinfo(1m), sar(1)... ● upravená prezentace z kernelu – sysconf(3c), getloadavg(3c), kstat(3kstat), autofs, fd(4), mnttab(4), kill(2), SysV IPC, streams ... ● instalace aplikací – pkgmap(4), pkginfo(4), pkg*, patch* kontejner zóna
  • 40. Řízení zdrojů CPU ● konfigurace - dynamic resource pool – pooladm(1m), poolcfg(1m), poolbind(1m), poolstat(1m), poold(1m) – pbind(1m), psrinfo(1m), psradm(1m) ● konfigurace - FSS(7) – resource_controls(5) – zonecfg(1m) ● zones.cpu-shares – rctladm(1m) – prctl(1) – projadd(1m), projmod(1m), projdel(1m), projects(1), project(4), newtask(1) ● project.cpu-shares kontejner zdroje
  • 41. Řízení zdrojů CPU system 8 cpu pool1 2-4 cpu pool2 2 cpu zone3 1 share zone1 10 shares zone4 2 shares zone5 1 share zone1 20 shares project1 3 shares project2 2 share project3 1 share task2 proc4 proc3 task1 proc2 proc1 kontejner zdroje
  • 42. Minimálně garantované CPU kontejner zdroje 4cpu 10 20 1 2 3 cpu pool zone share project share 4 ∗ 20 1020 ∗ 2 123 = 8 9
  • 43. Více v kurzech SA-230-S10 - Solaris 10 Containers ES-431 - Solaris Resource Manager Administration SA-225-S10 - Solaris 10 Features for Experienced Solaris System Administrators SA-202-S10 - System Administration for the Solaris 10 Operating System Part 2 kontejner kurzy
  • 45. Použití fdisk+SVM+UFS ● Unix File systém (UFS) – postaven na BSD FFS (McKusick, Joy ...) – svařování požadavků (extent-like perf.), posix ACL, logging (žurnál změn metadat), uživatelské kvóty, zvětšování za běhu, zamykání celého FS, zálohování a obnova, snapshot (copy-on-write) ● Solaris Volume Manager (SVM) – RAID-0, RAID-1, RAID-5 – slice-based, softpartition, hotspare, diskset, hw serial, split-mirror ● vytvoření a zpřístupnění souborového systému RAID-1: format,format,metadb,metainit,metainit, metainit,metattach,newfs,vi,mkdir,mount ZFS dříve
  • 46. Vlastnosti ● cíle – vysoká integrita dat ● end-to-end kontrolní součty ● transakce – kapacita (128bit) – jednoduchá administrace – storage pool – NFSv4/NT ACL – komprimace – snapshot, clone – vzdálená replikace – třídění IO požadavků – nezávislé na platformě (x86-SPARC) – online administrace – RAID-0, RAID-1, RAID-Z, RAID-Z2 ZFS
  • 47. Porovnání architektury ZFS volume manager filesystem dmu storage pool alloc. nezávislý blokový přístup ochrana pomocí žurnálu synchroní zápis úplná resychronizace po výpadku transakce vše-nebo-nic ve všech bodech zfs
  • 48. Integrita dat ZFS 1 2 3 4 možný snapshot mirror 1 2 3 aktuální uberblock
  • 49. Administrace ● zpool(1m) ● práce s disky (vytvoření, rozšíření, výměna) ● práce s diskovou skupinou (export/import) ● stav a statistiky ● scrub ● zfs(1m) ● parametry (~20) ● clone, snapshot ● zálohování a replikace (send, receive) ● sdílení (share, unshare, iscsi target (S10U4)) ● diskový volume ● web gui ● /etc/zfs/zpool.cache ● vytvoření a zpřístupnění souborového systému RAID-1: zpool create name mirror disk1 disk2 ZFS administrace
  • 50. Další využití ● využití vfstab – legacy mount ● zóny – delegování konfigurace zfs – dataset – legacy mount – lofs mount ● bootování ● liveupgrade – vyvořit snapshot – vytvořit clone – upgrade do clone – reboot do clone ● ACL (chmod(1), ls(1)) ZFS administrace
  • 51. Příkazy # zpool create home mirror c5t40d0 c5t40d1 # zpool scrub home # zfs create home/user # zfs create home/www # zfs create home/user/mail # zfs set compression=on home/user/mail # zfs set quota=10g home/user # zfs snapshot home/user@monday # zfs rollback home/user@monday # zfs clone home/user@monday home/home-new # zfs create -V 10gb home/volume1 # zpool export home # zpool import home # zfs send home/user@monday | ssh host zfs receive pool/received/fs@monday # zfs send -i monday home/user@tuesday | ssh host zfs receive pool/received/fs ZFS administrace
  • 52. Více v kurzech SA-229-S10 - Solaris 10 ZFS Administration SA-225-S10 - Solaris 10 Features for Experienced Solaris System Administrators ZFS kurzy
  • 53. Vývoj a nové technologie v OpenSolarisu
  • 54. Definice OpenSolaris komunity ● 06/2005 - postupné otevření zdrojových kódů Solarisu – ON (os+network), NWS (network storage), JDS (gnome), admin/install, man, docs, i18n, Xorg ... ● 03/2007 - OpenSolaris Governing Board ● otevřený komunitní vývoj (ARC) ● licence CDDL (podobné licencím MPL, BSD) ● 80k registrovaných, 50 komunit , 170 projektů (50 skupin uživatelů) OpenSolaris
  • 55. Model vývoje a distribuce OpenSolaris akceptace projektu (ARC) vývoj a kontrolní procesy nové vlastnosti projekty opravy chyb nové vlastnosti projekty opravy chyb hg repository akceptace Sunem a kritéria kvality nevada OpenSolaris zdrojový kód Solaris zdrojový kód kvalifikačnía sestavovacíprocesy SolarisExpress/CE (~14d) SolarisExpress/DE (~3m) Belenix (x86) marTux (sparc) Nexenta (x86,Debian) Schillix (x86) Singanix projekty přenos zpět do Sol10u# uzavřený kód komunita sun
  • 56. Zajímavé projekty ● ZFS – další rozšíření ● XEN (=xVM) – paravirtualizace (hypercall) a plná virtualizace ● Network Auto-Magic (NWAM) – automatická aktivace síťových profilů ● Visual Panels – lokální konfigurace přes GUI/Gnome ● ClearView – sjednocení ovládání sítě na úrovni L2 (IPMP, GLD3, WiFi...) ● CrossBow – virtualizace sítí ● Duckwater – dynamický přepínač jmenných služeb ● Caiman – nový instaler ● Tesla – řízení spotřeby OpenSolaris
  • 57. CZOSUG ● Czech OpenSolaris User Group – otevřená komunita a žádné členské příspěvky – 21 večerních setkání o technologiích OpenSolarisu i dalších enterprise produktech – 3 celodenní BootCampy – prezentace na konferencích (OpenWeekend, LinuxExpo) – nejen pro vývojáře – lokální projekty l18n http://cz.opensolaris.org http://www.opensolaris.cz http://www.opensolaris.org/os/project/czosug OpenSolaris
  • 58. Internet ● školení – http://sk.sun.com/training – http://www.suned.sk – http://www.sun.com/training/catalog/courses/ ● web kurz zdarma – http://www.sun.com/training/catalog/courses/WS- 245.xml ● informace – http://docs.sun.com – http://www.sun.com/bigadmin – http://www.sun.com/blueprints – http://sunsolve.sun.com – http://developers.sun.com ● konference – http://forum.sun.com – http://groups.yahoo.com/group/solarisx86/ ● komunity – http://www.opensolaris.org/os/community/sysadmin/ – http://www.opensolaris.cz ● mimo sun – http://www.sunhelp.org/ (+desítky dalších)
  • 59. tato prezentace byla připravena s využitím komunitních materiálů z opensolaris.org