solaris 10: the db2 and informix platform of choice for ...€¦ · “the flexibility of solaris...
TRANSCRIPT
Solaris 10: the DB2 and Informix Platform of Choice for Users, DBAs, System Admins and Managers
Phil PhilbinSESun Microsystems, Inc.
Based on:
1. Investment Protection
2. Choice
3. Performance
4. Technologies
1. Investment Protection <<
2. Choice
3. Performance
4. Technologies
Compatibility:
Binary Compatibility: Sun guarantees that your existing applications will continue to run with each new operating system release.
Source Compatibility: SPARC <---> X86/AMD64
“Sun has maintained binary compatibility between operating system releases for nearly a decade, enabling existing Solaris applications to run unmodified on Solaris 10. This means that Solaris applications developed ten years ago will run on Solaris 10 unchanged, taking full advantage of new and advanced Solaris features. With Solaris 10, Sun now guarantees source code compatibility between SPARC and x86 processors, ensuring applications can run across platforms with a simple recompile.”
http://www.sun.com/software/solaris/guarantee.jsp
Thousands of ISVs and Partners
Application Availability
Solaris 10 License Growth
03/05 04/05 05/05 06/05 07/05 08/05 09/05 10/05 11/05 12/05 01/06
1.0
2.0
3.0
4.0
x64/x86
Millions
04/06
HP
IBM
0
.5
1.5
2.5
3.5
4.5M+
• 10 of the top 11 Retailers• 5 of the top 5 Petro companies• 5 of the top 5 Manufacturing companies• 7 of the top 8 Financial Services companies• 3 of the top 3 Shipping companies• 5 of the top 5 IT companies• 5 of the top 5 Insurance companies• 5 of the top 5 Food/Beverage companies• 6 of the top 6 Healthcare/Pharmaceutical companies
Who is Using Solaris 10 Today?
Solaris 10 License Growth
What the world is saying:“The flexibility of Solaris zones becomes almost infectious and the information that can be gleaned from DTrace makes both programming and administration much easier when something goes wrong. Is it a viable alternative to Linux? Absolutely.”LinuxPlanet, September 15, 2005.
“I have just spent three weeks putting Solaris 10 3/05 through its paces and on the whole, it was an impressive display of technological muscle. The developers at Sun deserve huge raises.”OSNews, April 26, 2005
“eWEEK Labs tested the general-availability release of Solaris 10, as well as several of the beta releases that preceded it, and we're convinced that the new Sun operating system has what it takes not only to prove a solid upgrade for current Solaris installations but also to merit consideration at sites where Solaris wasn't previously an option.”eWEEK, March 14, 2005
“Solaris 10 is also a very high performance [OS], and because it's based on the Unix System V kernel, it's proven and rock solid. And while it pains me to say this, Solaris 10 is far more scalable than the current Linux 2.6 kernel.”Linux Magazine, March 31, 2005
.
What the world is saying:
1. Gold Winner-Sun Microsystems (U.S.): DTrace trouble-shooting software2. Silver Winner-HelioVolt (U.S.): Lightweight solar-energy panels3. Bronze Winner-Pfizer and Nektar Therapeutics (U.S.): Powdered, inhalable insulin
http://www.dowjones.com/innovation/ei_winners_2006.html
.
1. Investment Protection
2. Choice <<
3. Performance
4. Technologies
Platform Choice
.
UltraSPARC, Niagara, AMD, X86
http://www.sun.com/bigadmin/hcl - There are 791 systems and 557 components currently listed. (11/9/06)
.
Open Source Software Supported in Solaris 10Network Servers & Clients
ApacheApache2bindMozillancftppppSambasendmailSER (SIP Proxy Server)Tomcatwgetwu-ftpdxntpdZebra
LibrariesGlibGTK+JPEGLibexpatLibusbLibxsltPNGTcl/TkTIFFXML2XPMzlib
Scripting LanguagesPerlPython
Security ToolsSecure Shelltcp_wrappers
Shellsbashtcshzsh
Commandsa2ps MySQLbzip2 patchfootmatic print ppds texinfoghostscript tracerouteghostscript fonts WebminGimp print drivers gzipGNU patch utility GNU tarGNU grep lessImageMagick texi2htmlIPMItool mkisofsOpen Printing APIrpm2cpio.plSystem Management Agent
Compilers & ToolsBinutils gccBison gm4Flex gmake
Fully supported: Sun provides support in the same way as for Sun owned software.Managed: Sun provides existing patches and escalates new bugs to the developer community
Software Choice
Applications / Networking Applications / Utilities Development / Librariesbrltty-3.3.1 cups-1.1.20 afio-2.4.6 mpg123-0.59r bison-1.35 aalib-1.2emacspeak-18.0 ethereal 0.10.5 amanda-2.4.4 mysql-jdbc-3.0.8 gcc-2.95.3 berkley-db 1.85emacspeak-ss-1.9.1 fetchmail 6.2.5 cdrtools-2.01 netpbm-10.3 gcc-3.4.2 berkley-db 4.2.52NCfreetts-1.1.1 hpijs 1.6 cupsddk 1.0 plotutils-2.4.1 libtool 1.5.2 curl-7.10.3screenbrltty-4.02 lynx-2.8.4 diffutils-2.8.1 pnm2ppa-1.12 m4-1.4 (GNU) fltk-1.1.3unwindows-1.1.3 mutt-1.4.2.1 enscript-1.6.1 rpm-4.1 MySQL python API 0.9.2 fnlib-0.5w3-4.0.47 nmap 3.5 expect 5.39 sane 1.0.12 php-4.3.2 GD Graphics library 2.0.15yasr-0.6.4 nmh-1.0.4 file-4.10 screen 4.0.2 ruby-1.6.4 guile-1.3.4
Open LDAP 2.2.17 fileutils-4.1 sgrep-1.92a samp-1.0 imlib-1.9.15Applications / Editors Open SLP 1.0.11 findutils-4.1.20 sh-utils-2.0 tclX-8.2.0 libexpt-1.95.7bluefish 0.12 pine-4.61 Foomatic filters 3.0.2 sharutils-4.2.1 libmpeg-1.3.1emacs 21.3 procmail-3.22 Foomatic-ppds 3.0.1 sudo 1.6.8p5 Development / Tools libpcap-0.8.3gawk-3.0.6 rsync 2.6.3pre1 gcal-3.01 TeTex 2.0.2 autoconf 2.59 libsane 1.0.14joe-3.1 slm-0.9.6.2 gettext-0.10.35 textutils-2.0 automake 1.8.3 linungif-4.1.0sed-3.02 (GNU) snort-2.0.0 gimp-print-4.2.6 tnef 1.1.3 binutils-2.15 ncurses-5.2vim-6.3 tcpdump-3.8.3 gkrellm 2.1.19 top-3.5.1 cvs 1.11.17 Ogglib-1.0xemacs-21.4.15 gnuplot 3.7.3 uudeview-0.5.20 ddd 3.3.8 Perl regex lib 4.5
Applications / Publishing ispell-3.2.06 vorbis-1.0 gdb 6.2.1 qt-3.1.1Desktop / Environment espgs-7.07.1 lxrun 0.9.6.1 wine 20041104 global-4.8 readline-4.2kde-3.1.1a graphviz 1.10 mpack-1.5 xpp-1.1 make-3.80 (GNU) slang-1.4.0KOffice-1.2.1 groff-1.16.1 mpage-2.5.1 SDL-1.2.5XFce-3.8.16 xpdf 3.0 Xaw3d-1.5
X / Applications X / Window ManagersSystem / Daemons asclock-1.0 xcpustate-2.5 afterstep-1.8.8imap2002d (UW) ethereal-0.9.11 xdelta 1.1.3 fvwm2-2.4.3proftpd 1.2.10rc1 gimp-1.2.1 xmcd 3.2.1 WindowMaker-0.80.2squid 2.5.STABLE7 rxvt-2.7.10 xmms 1.2.10
stardic-1.3.1 xterm-196 (XFree86)vnc-3.3.7
Applications / Accessibility
Development / Languages
Open Source Software Bundled with Solaris 10
Open Source Sites:
www.sunfreeware.com
www.blastwave.org
cooltools.sunsource.net (T1 optimization)
www.opensolaris.org
Software Choice
Over 3000 applications listed as available or being ported on:
https://partneradvantage.sun.com/partners/10moves/solutions.html
...including 33 from IBM!
DB2 v8.2 available on Solaris 10 SPARC + X64DB2 v9 available on Solaris 10 SPARC + X64
Application Choice
1. Investment Protection
2. Choice
3. Performance <<
4. Technologies
Performance – 116 World Records to Date
Sep. 2006 Sun Fire T2000 Server World Record SPECjAppServer2004 Two-Node Performance with BEA WebLogic & IBM WebSphereAug. 2006 Sun snatches two World Records in a brand new SPECcpu2006 benchmarkAug. 2006 Lotus NotesBench R6iNotes on Sun Fire V890Aug. 2006 Sun Fire E25K LHS BSCS iX World Record Telco BillingAug. 2006 Sun Fire E25K SPECint_rate2000Aug. 2006 World Record 2-thread performance on SPEC OMPM2001 HPC benchmark for single socket systemsAug. 2006 The fastest single socket x86 system on floating-point throughput suite of SPEC CPU2000 benchmark....More Benchmark Information: http://www.sun.com/software/solaris/benchmarks.jsp
Multi-Page Size Support: http://www.sun.com/blueprints/0304/817-5917.pdf
DB2 Performance Tests
External Benchmarks Using DB2 Published by Sun:
1. 6,662.98 SPECjAppServer2004 JOPS@Standard: DB2 on E6900http://www.spec.org/jAppServer2004/results/res2006q3/jAppServer2004-20060829-00038.html#Database_Server_HW_1
2. 1,000.86 SPECjAppServer2004 JOPS@Standard: DB2 on X4600http://www.spec.org/jAppServer2004/results/res2006q3/jAppServer2004-20060802-00033.html
3. 616.22 SPECjAppServer2004 JOPS@Standard: DB2 on T2000http://www.spec.org/jAppServer2004/results/res2006q3/jAppServer2004-20060801-00032.html
External Articles on DB2 from Sun
Optimizing IBM DB2 for Solaris 10 1/06 OS on Sun Fire T2000 Server - Jignesh K. Shah, August 2006
http://developers.sun.com/solaris/articles/db2_t2000.html
Deploying IBM DB2 UDB V8.2.x in Containers in the Solaris 10 OS - Cherry Shu, October 2006
http://www.sun.com/bigadmin/features/articles/db2_containers.html
1. Investment Protection
2. Choice
3. Performance
4. Technologies <<
3a. Informix – Specific Info <<
Solaris 10 Supported on 9.4 and 10.0 with or without Zones.Sparc - http://www-306.ibm.com/software/data/informix/ids/requirements/sparc.html
Intel - http://www-306.ibm.com/software/data/informix/ids/requirements/solaris-x86.htmlZones support - ftp://ftp.software.ibm.com/software/data/informix/ids/IDS-SunSPARC-reqs.pdf
Solaris 10 on x86-64/AMD-64 (Opteron) for IDS v10.0 has been GA'ed and available via Passport Advantage (PPA) using part # C912CNA
- Customers have begun to put these platforms into production- Will be part of Cheetah release due out mid-year 2007
Sun Cluster 3.x runs on IDS
Sun Solaris is the build and development platform of choice for IDS Development (and has been for many years)
Managing the Data of ProSiebenSat.1 with InformixMarkus Holzbauer ProSiebenSat.1 Produktion
IOD 2006Informix as a service
- Containers <<
- ZFS
- SMF
- DTrace
4. Technologies
Containers = Zones + Resource Management Tools
Virtualized runtime environment
Zones allow applications to be isolated from each other even though they share a singe Solaris OS instance
Fault and security isolation
Lowers system management costs
Increases resource utilization
Flexible configurations and reconfigurations
Containers
Sun's Server Virtualization Offerings
Hard Partitions Virtual Machines OS Virtualization Resource Mgmt.
Server
OS
App
Dynamic System Domains Solaris Containers (Zones + SRM)
Solaris Trusted Extensions
Solaris Containers for Linux Applications
Solaris ResourceManager (SRM)
Logical Domains
Xen
VMware
Microsoft Virtual Server
Multiple OSes Single OS
CalendarServer Database Web
ServerSunRayServer
AppServerDatabaseMail
ServerWeb
ServerFile
ServerIdentityServer
AppServer Database
Collect necessary software
Create zone1 and zone2, monitor system
Consume CPU cycles in one zone, monitor system
Assign resource controls to zones
Install the Fair Share Scheduler (FSS)
Consume CPU cycles in both zones, monitor system
Container example:
Collect necessary softwareSolaris: http://www.sun.com/software/solaris/get.jspnspin: http://www.sun.com/bigadmin/software/nspin/nspin.tar.gzYou will also need 2 available IP addresses.
Create zone1 in the global zone (repeat for zone2)global# zonecfg -z zone1zone1: No such zone configuredUse 'create' to begin configuring a new zone.zonecfg:zone1> createzonecfg:zone1> set zonepath=/export/zones/zone1zonecfg:zone1> set autoboot=truezonecfg:zone1> add netzonecfg:zone1:net> set address=199.0.1.12/24zonecfg:zone1:net> set physical=hme0zonecfg:zone1:net> endzonecfg:zone1>verifyzonecfg:zone1>commitzonecfg:zone1>exitglobal#
Container example:
Install, boot and login to the zones
(from the global zone)
global# zoneadm -z zone1 install(copies necessary files to the new zone)
global# zoneadm -z zone1 boot(standard identification addressed by accessing zone1 console)
global# zlogin -C zone1(begin system identification, ie. boot after sysunconfig)
...repeat for zone2
Container example:
monitor system
global# prstat -cZ
Total: 153 processes, 464 lwps, load averages: 0.02, 0.01, 0.01 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 721 root 69M 44M sleep 59 0 0:04:49 0.2% mixer_applet2/1 19906 root 4864K 4504K cpu0 59 0 0:00:00 0.1% prstat/1 768 root 231M 80M sleep 49 0 0:01:55 0.1% java/18
.
.
.
.ZONEID NPROC SIZE RSS MEMORY TIME CPU ZONE 0 89 1557M 790M 9.7% 0:12:10 0.5% global 4 32 120M 77M 0.9% 0:00:11 0.0% zone1 6 32 121M 78M 0.9% 0:00:12 0.0% zone2Total: 153 processes, 464 lwps, load averages: 0.02, 0.01, 0.01
Container example:
Consume CPU cycles in one zone, monitor system
zone2host# nspin -n 4 &
global# prstat -cZTotal: 157 processes, 467 lwps, load averages: 3.08, 0.98, 0.36 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 19911 root 1168K 696K run 1 0 0:00:46 26% nspins/1 19912 root 1160K 688K run 20 0 0:00:44 24% nspins/1 19909 root 1168K 856K run 21 0 0:00:44 24% nspins/1 19910 root 1168K 712K cpu0 21 0 0:00:42 23% nspins/1 .
.
.
.ZONEID NPROC SIZE RSS MEMORY TIME CPU ZONE 6 36 125M 80M 0.9% 0:03:08 97% zone2 0 89 1557M 790M 9.7% 0:12:10 0.5% global 4 32 120M 77M 0.9% 0:00:11 0.0% zone1Total: 157 processes, 467 lwps, load averages: 3.17, 1.03, 0.38
Container example:
Assign resource controls to zones (from global zone)global# zonecfg -z zone1zonecfg:zone1> add rctlzonecfg:zone1:rctl> set name=zone.cpu-shareszonecfg:zone1:rctl> add value (priv=privileged,limit=20,action=none)zonecfg:zone1:rctl> endzonecfg:zone1> exit
global# zonecfg -z zone2zonecfg:zone2> add rctlzonecfg:zone2:rctl> set name=zone.cpu-shareszonecfg:zone2:rctl> add value (priv=privileged,limit=10,action=none)zonecfg:zone2:rctl> endzonecfg:zone2> exit
Install the Fair Share Scheduler (FSS)global# dispadmin -d FSS
Container example:
Reboot, consume CPU cycles in both zones, and monitorzone1host# nspin -n 4 &
zone2host# nspin -n 4 &
global# prstat -CzTotal: 131 processes, 411 lwps, load averages: 6.29, 2.11, 0.79 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 1582 root 1168K 856K run 1 0 0:00:33 17% nspins/1 1584 root 1168K 696K run 7 0 0:00:32 17% nspins/1 1583 root 1168K 712K run 14 0 0:00:33 16% nspins/1 1585 root 1160K 688K cpu0 17 0 0:00:31 16% nspins/1 1581 root 1160K 688K run 12 0 0:00:20 8.9% nspins/1 1579 root 1168K 712K run 4 0 0:00:20 7.9% nspins/1 1580 root 1168K 696K run 12 0 0:00:21 7.5% nspins/1 1578 root 1168K 856K run 13 0 0:00:22 7.4% nspins/1 1576 root 4848K 4488K cpu1 59 0 0:00:00 0.1% prstat/1
....ZONEID NPROC SIZE RSS MEMORY TIME CPU ZONE 2 36 125M 79M 0.9% 0:02:15 66% zone1 1 36 125M 80M 0.9% 0:01:29 32% zone2 0 59 294M 151M 1.8% 0:00:08 0.1% globalTotal: 131 processes, 410 lwps, load averages: 6.42, 2.20, 0.82
Container example:
Utilize db2osconf and project resource controls
global# cd /export/zones/db2-zone1/root/opt/IBM/db2/V8.1/bin global# ./db2osconf
set msgsys:msginfo_msgmni = 6144 set semsys:seminfo_semmni = 7168 set shmsys:shminfo_shmmax = 9578697523 set shmsys:shminfo_shmmni = 7168
Total kernel space for IPC: 0.98MB (shm) + 1.71MB (sem) + 2.08MB (msg) == 4.77MB (total)
-------
db2-zone1# projmod -s -K "project.max-shm-memory=(privileged,9578697523,deny)" user.db2inst1 db2-zone1# projmod -s -K "project.max-shm-ids=(privileged,7168,deny)" user.db2inst1db2-zone1# projmod -s -K "project.max-msg-ids=(privileged,6144,deny)" user.db2inst1 db2-zone1# projmod -s -K "project.max-sem-ids=(privileged,7168,deny)" user.db2inst1
Containers with DB2:
Benefits to DB2 environments:Maintain isolated DB2 environmentsReallocate system resources to anticipated loadsProvide developers unique environmentsEasily migrate and clone zone configurations
Don't:Install DB2 v8 in the global and local zones (inherit Viper for multiple zones)Use DPF over multiple containers
More details:http://www.sun.com/bigadmin/features/articles/db2_containers.html
Containers
- Containers
- ZFS <<
- SMF
- DTrace
4. Technologies
ZFS: Motivation for a new file system
• Existing file systems:> No defense against data corruption> Lots of Limits: size, # of files, etc.> Difficult to manage:
> fsck, /etc/fstab, partitions, volumes> too many things to tune
• Design Principles:> End-to-End data integrity> Lots of capacity (128-bit)> Simple to administer
ZFS Design Principles• Pooled storage
> Completely eliminates the antique notion of volumes> Does for storage what VM did for memory
• End-to-end data integrity> Historically considered “too expensive”> Turns out, no it isn't> And the alternative is unacceptable
• Everything is transactional> Keeps things always consistent on disk> Removes almost all constraints on I/O order> Allows us to get huge performance wins
UpperUpper
1G1GLowerLower
1G1GEvenEven
1G1GOddOdd
1G1GLeftLeft
1G1GRightRight
1G1G
Background: Why Volumes Exist
In the beginning, each filesystem managed a single disk.
FS
Volume(2G concat)
FS
Volume(2G stripe)
Volume(1G mirror)
FS FS
• Customers wanted more space, bandwidth, reliability> Rewrite filesystems to handle many disks: hard> Insert a little shim (“volume”) to cobble disks together: easy
• An industry grew up around the FS/volume model> Filesystems, volume managers sold as separate products> Inherent problems in FS/volume interface can't be fixed
1G1G
DiskDisk
FS/Volume Model vs. ZFS
FS/Volume I/O Stack
FS
Volume
Block Device Interface
• “Write this block,then that block, ...”
• Loss of power = loss of on-disk consistency
• Workaround: journaling,which is slow & complex
ZFS
StoragePool
Block Device Interface
• Write each block to each disk immediately to keep mirrors in sync
• Loss of power = resync
• Synchronous and slow
Object-Based Transactions
• “Make these 7 changesto these 3 objects”
• All-or-nothing
Transaction Group Batch I/O
• Schedule, aggregate,and issue I/O at will
• No resync if power lost
• Runs at platter speed
ZFS I/O Stack
DMUTransaction Group Commit
• Again, all-or-nothing
• Always consistent on disk
• No journal – not needed
Copy-On-Write Transactions1. Initial block tree 2. COW some blocks
4. Rewrite uberblock (atomic)3. COW indirect blocks
Self-Healing Data in ZFS
Application
ZFS mirror
Application
ZFS mirror
Application
ZFS mirror
1. Application issues a read. ZFS mirror tries the first disk. Checksum reveals that the block is corrupt on disk.
2. ZFS tries the second disk. Checksum indicates that the block is good.
3. ZFS returns good data
to the application andrepairs the damaged block.
ZFS Administation• Pooled storage – no more volumes!
> All storage is shared – no wasted space> Filesystems are cheap: like directories with mount options> Grow and shrink are automatic> No more fsck(1M), format(1M), /etc/vfstab, /etc/dfs/dfstab...
• Unlimited, instantaneous snapshots and clones> Snapshot: read-only point-in-time copy of the data> Clone: writable copy of a snapshot> Lets users recover lost data without sysadmin intervention
• Host-neutral on-disk format> Change server from x86 to SPARC, it just works> Adaptive endianness ensures neither platform pays a tax
• 100% online administration
Ridiculous Comparison Time!
• Claim:
> ZFS pooled storage simplifies administration dramatically.> So... let's consider a simple example.
• Our Task:
> Given two disks, create mirrored filesystems forAnn, Bob, and Sue.
> Later, add more space.
UFS/SVM Administration: Summary# format... (long interactive session omitted)
# metadb -a -f disk1:slice0 disk2:slice0
# metainit d10 1 1 disk1:slice1d10: Concat/Stripe is setup# metainit d11 1 1 disk2:slice1d11: Concat/Stripe is setup# metainit d20 -m d10d20: Mirror is setup# metattach d20 d11d20: submirror d11 is attached
# metainit d12 1 1 disk1:slice2d12: Concat/Stripe is setup# metainit d13 1 1 disk2:slice2d13: Concat/Stripe is setup# metainit d21 -m d12d21: Mirror is setup# metattach d21 d13d21: submirror d13 is attached
# metainit d14 1 1 disk1:slice3d14: Concat/Stripe is setup# metainit d15 1 1 disk2:slice3d15: Concat/Stripe is setup# metainit d22 -m d14d22: Mirror is setup# metattach d22 d15d22: submirror d15 is attached
# newfs /dev/md/rdsk/d20newfs: construct a new file system /dev/md/rdsk/d20: (y/n)? y... (many pages of 'superblock backup' output omitted)# mount /dev/md/dsk/d20 /export/home/ann# vi /etc/vfstab ... while in 'vi', type this exactly:/dev/md/dsk/d20 /dev/md/rdsk/d20 /export/home/ann ufs 2 yes -
# newfs /dev/md/rdsk/d21newfs: construct a new file system /dev/md/rdsk/d21: (y/n)? y... (many pages of 'superblock backup' output omitted)# mount /dev/md/dsk/d21 /export/home/ann# vi /etc/vfstab ... while in 'vi', type this exactly:/dev/md/dsk/d21 /dev/md/rdsk/d21 /export/home/bob ufs 2 yes -
# newfs /dev/md/rdsk/d22newfs: construct a new file system /dev/md/rdsk/d22: (y/n)? y... (many pages of 'superblock backup' output omitted)# mount /dev/md/dsk/d22 /export/home/sue# vi /etc/vfstab ... while in 'vi', type this exactly:/dev/md/dsk/d22 /dev/md/rdsk/d22 /export/home/sue ufs 2 yes -
# format... (long interactive session omitted)# metattach d12 disk3:slice1d12: component is attached# metattach d13 disk4:slice1d13: component is attached# metattach d21# growfs -M /export/home/bob /dev/md/rdsk/d21/dev/md/rdsk/d21:... (many pages of 'superblock backup' output omitted)
ZFS Administration• Create a storage pool named “home” # zpool create home mirror disk1 disk2
• Create filesystems “ann”, “bob”, “sue” # zfs create home/ann
# zfs set mountpoint=/export/home/ann home/ann # zfs create home/bob /export/home/bob
# zfs create home/sue /export/home/sue
• Add more space to the “home” pool # zpool add home mirror disk3 disk4
ZFS Admin: Cool Features
• Turn on compression for Ann's data # zfs set compression=on home/ann
• Limit Bob to a quota of 10G # zfs set quota=10g home/bob
• Guarantee Sue a reservation of 20G # zfs set reservation=20g home/sue
• Take a snapshot of Ann's filesystem # zfs snapshot home/ann@tuesday
ZFS certified with DB2 v8.2.5 on SPARC.
Relative code changes integrated into Viper.
On S10x64, ZFS support is integrated into v8.2.6 release.
Benefits to DB2 environments:Greatly simplified storage management, especially for growing tablespace containers.
Performance:For performance critical applications, stay with raw devices.
ZFS
- Containers
- ZFS
- SMF <<
- Dtrace
4. Technologies
Predictive Self-Healing
Solaris Fault Manager (FMA)> Solaris Fault Manager provides detection and
diagnosis of errors, leading to isolation or deactivation of faulty components and precise, accurate administrative messaging.
Solaris Service Manager (SMF)> smf(5) makes Solaris services self-healing.
Hardware faults which previously caused systemrestart are now isolated to the affected services. Services are also automatically restarted in the faceof hardware and software faults.
What is a Service ?
Definition: A long lived software object with a well-defined state,
error boundary, definition of start and stop, and relationship to other services. A service is often critical to operation of system or fulfillment of business objectives.
• A collection of processes (aka daemons)• A set of configuration files• Management utilities
Services and States
Services:• Application• Device• Milestone• Network• Platform• Site• System
States:• Degraded• Disabled• legacy_run• Maintenance• Offline• Online• Uninitialized
Manifests and Compatibility
• Manifests are XML files describing a service• /var/svc/manifest/*
• legacy_run state• /etc/init.d• /etc/rc*.d
SMF - examples# svcs
STATE STIME FMRI
legacy_run Nov_03 lrc:/etc/rcS_d/S29wrsmcfg
legacy_run Nov_03 lrc:/etc/rcS_d/S51installupdates
legacy_run Nov_03 lrc:/etc/rc2_d/S10lu
legacy_run Nov_03 lrc:/etc/rc2_d/S20sysetup
....
online Nov_03 svc:/system/svc/restarter:default
online Nov_03 svc:/network/pfil:default
online Nov_03 svc:/network/loopback:default
online Nov_03 svc:/system/filesystem/root:default
online Nov_03 svc:/system/boot-archive:default
SMF - examples
# svcs ssh
STATE STIME FMRI
online Nov_03 svc:/network/ssh:default
SMF - examples# svcs -l ssh
fmri svc:/network/ssh:default
name SSH server
enabled true
state online
next_state none
state_time Fri Nov 03 11:43:24 2006
logfile /var/svc/log/network-ssh:default.log
restarter svc:/system/svc/restarter:default
contract_id 51
dependency require_all/none svc:/system/filesystem/local (online)
dependency optional_all/none svc:/system/filesystem/autofs (online)
dependency require_all/none svc:/network/loopback (online)
dependency require_all/none svc:/network/physical (online)
dependency require_all/none svc:/system/cryptosvc (online)
dependency require_all/none svc:/system/utmp (online)
dependency require_all/restart file://localhost/etc/ssh/sshd_config (online)
SMF - examples# svcs -p ssh
STATE STIME FMRI
online Nov_03 svc:/network/ssh:default
Nov_03 359 sshd
# svcs -d ssh
STATE STIME FMRI
online Nov_03 svc:/network/loopback:default
online Nov_03 svc:/network/physical:default
online Nov_03 svc:/system/cryptosvc:default
online Nov_03 svc:/system/filesystem/local:default
online Nov_03 svc:/system/utmp:default
online Nov_03 svc:/system/filesystem/autofs:default
# svcs -D ssh
STATE STIME FMRI
online Nov_03 svc:/milestone/multi-user-server:default
SMF with DB2# svcs -aSTATE STIME FMRI...legacy_run 22:50:48 lrc:/etc/rc2_d/S10lulegacy_run 22:50:49 lrc:/etc/rc2_d/S72autoinstalllegacy_run 22:50:49 lrc:/etc/rc2_d/S89PRESERVE...disabled 22:50:15 svc:/network/dhcp-server:defaultdisabled 22:50:15 svc:/network/nfs/server:default...online 23:09:36 svc:/network/smtp:sendmailonline 18:47:52 svc:/application/db2-fmc:default...
SMF – DB2 Manifest<service_bundle type='manifest' name='DB2:db2-fmc'>...<exec_method type='method' name='start' exec='/opt/IBM/db2/V8.1/bin/db2fmcu -u -p /opt/IBM/db2/V8.1/bin/db2fmcd' timeout_seconds='0' />
<exec_method type='method' name='stop' exec='/opt/IBM/db2/V8.1/bin/db2fmcu -d' timeout_seconds='0' />
SMF and DB2, service relationshipsbash-3.00# svcs -l db2-fmc
fmri svc:/application/db2-fmc:default
name db2 service
enabled true
state online
next_state none
state_time Mon 09 May 2005 11:27:21 AM EDT
logfile /var/svc/log/application-db2-fmc:default.log
restarter svc:/system/svc/restarter:default
dependency require_all/none svc:/system/filesystem/local (online)
SMF and DB2 Status Changes# svcs -p db2-fmc
STATE STIME FMRI
online 18:47:52 svc:/application/db2-fmc:default
18:47:52 614 db2fmcd
18:48:57 646 db2dasrrm
18:49:01 703 db2fmd
# svcadm disable db2-fmc
# svcs db2-fmc
STATE STIME FMRI
disabled 19:03:32 svc:/application/db2-fmc:default
# svcadm enable db2-fmc
- Containers
- ZFS
- SMF
- DTrace <<
4. Technologies
Extreme ObservabilityDTrace is designed for use on
production systems
Problems solved in minutes not days
Instrument every line in every application
Massive performance opportunities
No code changes required
DTrace Results on Production Systems
Source: Sun Microsystems, Inc.
+32%In a
Morning
FinancialDatabase
+35%In an
Afternoon
Online ParcelTrackingSystem
+80%In a Day
FuturesForecastingApplication
+267%In 2 Days
+300%In 5 Hours
MessageHanding
Benchmark
DataRouting
Application
Why Dynamic Tracing?
• Well-defined techniques for debugging fatal, non-reproducible failure:> Obtain core file or crash dump> Debug problem postmortem using mdb(1),
dbx(1)
• Techniques for debugging transient failures are much more ad hoc> Typical techniques push traditional tools (e.g.
truss(1), mdb(1)) beyond their design centers> Many transient problems cannot be debugged at
all using extant techniques
Debugging transient failure
• Historically, we have debugged transient failure using process-centric tools: truss(1), pstack(1), prstat(1), etc.
• These tools were not designed to debug systemic problems
• But the tools designed for systemic problems (i.e., mdb(1)) are designed for postmortem analysis...
DTrace
Solaris Dynamic Tracing – An Observability Revolution
• Seamless, global view of the system from user-level thread to kernel
• Not reliant on pre-determined trace points, but dynamic instrumentation
• Data aggregation at source minimizes postprocessing requirements
• Built for live use on production systems> Completely safe> No loops – so no halting problem!!!!!
DTrace Components• Probes
> A point of instrumentation> Has a name (string), and a unique probe ID (integer)
• Providers> DTrace-specific facilities for managing probes, and the
interaction of collected data with consumers
• Consumers> A process that interacts with dtrace> typically dtrace(1)
• Using dtrace> Command line – dtrace(1)> Scripts written in the 'D' language
DTrace one-liners:# New processes with arguments,dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
CPU ID FUNCTION:NAME 0 3297 exec_common:exec-success man ls 0 3297 exec_common:exec-success sh -c cd /usr/shar... 0 3297 exec_common:exec-success tbl /usr/share... 0 3297 exec_common:exec-success neqn /usr/share/lib/pub/eqnchar - 0 3297 exec_common:exec-success nroff -u0 -Tlp -man - 0 3297 exec_common:exec-success col -x--------
CPU ID FUNCTION:NAME 1 9715 exec_common:exec-success ls -l 0 9715 exec_common:exec-success ps -ef 1 9715 exec_common:exec-success ps -ef 1 9715 exec_common:exec-success INITSH -c exec /opt/IBM/db2/V8.1/bin/db2fmcd #DB2 Fault Monitor Coordinator 1 9715 exec_common:exec-success INITSH -c exec /opt/IBM/db2/V8.1/bin/db2fmcd #DB2 Fault Monitor Coordinator
DTrace one-liners
# Syscall count by program,dtrace -n 'syscall:::entry { @num[execname] = count(); }'
dtrace: description 'syscall:::entry ' matched 228 probes^C snmpd 1 utmpd 2 inetd 2 nscd 7 svc.startd 11 sendmail 31 poold 133 dtrace 1720
DTrace one-liners:
# Read bytes by process,dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'dtrace: description 'sysinfo:::readch ' matched 4 probes^C
utmpd 4 java 20 gnome-netstatus- 128 gconfd-2 2275 Xsun 2868 gnome-panel 7623 mixer_applet2 8743
For more information on DTrace
• Solaris 10 Dynamic Tracing Guide
http://docs.sun.com/app/docs/doc/817-6223
• OpenSolaris Dtrace community> http://opensolaris.org/os/community/dtrace
• Sample scripts
/usr/demo/dtrace
• Brendan Gregg's Dtrace toolkit
http://users.tpg.com.au/adsln4yb/dtrace.html
• http://blogs.sun.com
Questions....?
$0
Want to learn more?• Get Solaris.
> sun.com/solaris/get
• Get Trained. > Free Training: sun.com/solaris/freetraining> Solaris Learning Paths: sun.com/training/solaris
• Get Datasheets & Whitepapers.> sun.com/solaris/reference_materials
• Get started with Solaris How-To Guides.> sun.com/solaris/teachme