0% found this document useful (0 votes)
105 views35 pages

OpenSolaris Features and Community

The document discusses OpenSolaris and its key features. It begins with an introduction to Sun's support for open source and the OpenSolaris community. It then describes features of OpenSolaris like the Zettabyte File System (ZFS) which provides data integrity and simple administration compared to traditional file systems, and DTrace for dynamic tracing of systems to identify performance issues and problems. Finally it discusses tools like the Service Management Facility (SMF) that provide predictive self-healing of systems.

Uploaded by

hazim60
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views35 pages

OpenSolaris Features and Community

The document discusses OpenSolaris and its key features. It begins with an introduction to Sun's support for open source and the OpenSolaris community. It then describes features of OpenSolaris like the Zettabyte File System (ZFS) which provides data integrity and simple administration compared to traditional file systems, and DTrace for dynamic tracing of systems to identify performance issues and problems. Finally it discusses tools like the Service Management Facility (SMF) that provide predictive self-healing of systems.

Uploaded by

hazim60
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

USE IMPROVE EVANGELIZE

Open Solaris
Bart Muijzer
Netherlands Open Solaris User Group Host
USE IMPROVE EVANGELIZE

Disclaimers

• I am not a Lawyer (nor do I play one on TV)


• I don't know Linux
• I am not into licensing structures
• Not speaking for Sun (today)
• Here to just show a bit of OpenSolaris

Thanks for the invitation !!


2
USE IMPROVE EVANGELIZE

Agenda
● Sun and OpenSource
● OpenSolaris features
– With demos...
● Solaris Development Process
● OpenSolaris Distributions

3
USE IMPROVE EVANGELIZE

Sun and Open Source

“Every software asset we produce is open


source. If it isn't today, it will be pretty
damn quickly.”
Jonathan Schwartz
CEO, Sun Microsystems
January 2007

4
USE IMPROVE EVANGELIZE

Sun and OpenSource


● Driver and long-term strategy:
Innovation through Sharing
● Build Communities:
– opensolaris.org
– User Groups (NLOSUG)
● Can't do without:
– “You can't hire all the smart people” -- Bill Joy
– Key to Solaris on x86
● Buisiness: How to make money?
 http://blogs.sun.com/bmc/entry/dtrace_leopard_and_the_business
 http://blogs.sun.com/jimlaurent/entry/scott_mcnealy_s_five_reasons
● Licensing (GPL, CDDL) 5
USE IMPROVE EVANGELIZE

NLOSUG Charter

The Netherlands OpenSolaris User Group has


been established to connect members of the
community interested in OpenSolaris and Solaris,
and to grow the OpenSolaris community in the
Netherlands. All are welcome – developers, open
source contributors, systems administrators,
architects, and any other interested parties.

6
USE IMPROVE EVANGELIZE

NLOSUG on the Internet


How to join and keep in touch

www.nlosug.org
Everything important will be on this site

7
USE IMPROVE EVANGELIZE

OpenSolaris and Solaris


Development Release

Closed
Source CDE Source
Consolidation Solaris 9 Patches
Admin Sun-only
s opened by Development Solaris 10 Updates,
Sun (ongoing Install Open Source Patches
since Jan Sun and Solaris Express (Nevada)
ON Community
2005)
X Development Developer Edition

OpenSolaris Community
Distributions (various)

8
USE IMPROVE EVANGELIZE

OpenSolaris
● Goal: allow external collaborations during the
development of Solaris
● Distribution: SolarisExpress Developers Edition
– Quarterly release
– Full Solaris binary distribution
– Source available for: ON, JDS, SFW
– No sources for: closed source bits
– The latest Developer Tools
 Sun Studio 12, gcc, NetBeans 5.5, Java Platform,
Standard Edition 6
 Automatically installed when the OS is installed.
9
USE IMPROVE EVANGELIZE

OpenSolaris Features

10
USE IMPROVE EVANGELIZE

The Zettabyte Filesystem (ZFS)


● Existing file systems
– No defense against data corruption
– Lots of limits
● Size, number of files, etc.
– Difficult to manage
● fsck, /etc/fstab, partitions, volumes
● Too many things to manually tune
● Next wave design principles
– End-to-end data integrity
– Lots of capacity
– Simple to administer
11
USE IMPROVE EVANGELIZE

ZFS: no more of...


# format # newfs /dev/md/rdsk/d20
... (long interactive session omitted) newfs: construct a new file system /dev/md/rdsk/d20: (y/n)? y
... (many pages of 'superblock backup' output omitted)
# metadb -a -f disk1:slice0 disk2:slice0 # mount /dev/md/dsk/d20 /export/home/ann
# vi /etc/vfstab ... while in 'vi', type this exactly:
# metainit d10 1 1 disk1:slice1 /dev/md/dsk/d20 /dev/md/rdsk/d20 /export/home/ann ufs 2 yes -
d10: Concat/Stripe is setup
# metainit d11 1 1 disk2:slice1 # newfs /dev/md/rdsk/d21
d11: Concat/Stripe is setup newfs: construct a new file system /dev/md/rdsk/d21: (y/n)? y
# metainit d20 -m d10 ... (many pages of 'superblock backup' output omitted)
d20: Mirror is setup # mount /dev/md/dsk/d21 /export/home/ann
# metattach d20 d11 # vi /etc/vfstab ... while in 'vi', type this exactly:
d20: submirror d11 is attached /dev/md/dsk/d21 /dev/md/rdsk/d21 /export/home/bob ufs 2 yes -

# metainit d12 1 1 disk1:slice2 # newfs /dev/md/rdsk/d22


d12: Concat/Stripe is setup newfs: construct a new file system /dev/md/rdsk/d22: (y/n)? y
# metainit d13 1 1 disk2:slice2 ... (many pages of 'superblock backup' output omitted)
d13: Concat/Stripe is setup # mount /dev/md/dsk/d22 /export/home/sue
# metainit d21 -m d12 # vi /etc/vfstab ... while in 'vi', type this exactly:
d21: Mirror is setup /dev/md/dsk/d22 /dev/md/rdsk/d22 /export/home/sue ufs 2 yes -
# metattach d21 d13
d21: submirror d13 is attached # format
... (long interactive session omitted)
# metainit d14 1 1 disk1:slice3 # metattach d12 disk3:slice1
d14: Concat/Stripe is setup d12: component is attached
# metainit d15 1 1 disk2:slice3 # metattach d13 disk4:slice1
d15: Concat/Stripe is setup d13: component is attached
# metainit d22 -m d14 # metattach d21
d22: Mirror is setup # growfs -M /export/home/bob /dev/md/rdsk/d21
# metattach d22 d15 /dev/md/rdsk/d21:
d22: submirror d15 is attached ... (many pages of 'superblock backup' output omitted)

12
USE IMPROVE EVANGELIZE

but:
● Create a storage pool named “home”
# zpool create -m /export/home home mirror c0t3d0 c0t4d0

● Create filesystems “ann”, “bob”, “sue”


# zfs create home/ann
# zfs create home/bob
# zfs create home/sue

● Later, add space to the “home” pool


# zpool add home mirror c0t8d0 c0t9d0

13
USE IMPROVE EVANGELIZE

ZFS Data Integrity Model


● Pooled Storage model
● Everything is copy-on-write
 Never overwrite live data
 On-disk state always valid – no “windows of vulnerability”
 No need for fsck(1M)
 Snapshots are free
● Everything is transactional
 Related changes succeed or fail as a whole
 No need for journaling
● Everything is checksummed
 No silent data corruption
 No panics due to silently corrupted metadata 14
I USE IMPROVE EVANGELIZE

Predictive Self Healing


● Components:
– Fault Management Architecture (FMA)
– Service Management Facility (SMF)
● SMF: Manage running services
– Replace ancient “rc files”
– Maintain:
•Dependencies
• Snapshots

• Status

– Functions: enable, disable, rollback, restart


– See:
http://www.sun.com/bigadmin/content/selfheal/smf-
quickstart.html 15
USE IMPROVE EVANGELIZE

SMF bootgraph

16
USE IMPROVE EVANGELIZE

Dtrace – Dynamic Tracing


What is causing all the cross calls?
The X server
What are the X servers doing?
They're mapping and unmapping /dev/null
Why are they doing that?
They're creating and destroying pixmaps
Who's asking them to do that?
Several instances of a stock-ticker application
How often is each stock-ticker making this request?
100 times per second
Why is the application doing that?
It was written by 10000 monkeys at 10000 keyboards

17
USE IMPROVE EVANGELIZE

Dtrace (2)

C C dtrace(1M)

User
DTrace Framework
Kernel

P P P P P

18
USE IMPROVE EVANGELIZE

Demo: DTrace

19
USE IMPROVE EVANGELIZE

Least Privilege (1)


● Running with as few privileges as
needed to get the job done and no more
● No more “all or nothing” proposition
● So: check for privilege, not for euid=0
● Rule: a process can NEVER obtain more
privileges than it already has

20
USE IMPROVE EVANGELIZE

Least Privilege (2)


● Each process has 4 privilege sets:
– E – Effective set
 Privileges in effect
– P – Permitted set
 Privs the application is allowed to put into effect
 Upperbound of E
– I – Inheritable set
 Privileges that are inherited by exec'd process
– L – Limit set
 Limit of privs a process or its childs can obtain
 Not enforced until exec-time
 Typically the set of all privileges
21
USE IMPROVE EVANGELIZE

Least Privilege(3)
contract_event contract_observer cpc_cpu
dtrace_kernel dtrace_proc dtrace_user
file_chown file_chown_self file_dac_execute
file_dac_read file_dac_search file_dac_write
file_downgrade_sl file_link_any file_owner
file_setid file_upgrade_sl graphics_access
graphics_map ipc_dac_read ipc_dac_write
ipc_owner net_bindmlp net_icmpaccess
net_mac_aware net_privaddr net_rawaccess
proc_audit proc_chroot proc_clock_highres
proc_exec proc_fork proc_info
proc_lock_memory proc_owner proc_priocntl
proc_session proc_setid proc_taskid
proc_zone sys_acct sys_admin
sys_audit sys_config sys_devices
sys_ipc_config sys_linkdir sys_mount
sys_net_config sys_nfs sys_res_config
sys_resource sys_suser_compat sys_time
sys_trans_label win_colormap win_config
win_dac_read win_dac_write win_devices
win_dga win_downgrade_sl win_fontpath
win_mac_read win_mac_write win_selection
win_upgrade_sl

22
USE IMPROVE EVANGELIZE

Demo: Least Privileges

23
USE IMPROVE EVANGELIZE

Zones
● Single Solaris instance
– Appearance of many OS instances
– Minimal performance impact

Container Container Container


Container
Zone
Container
Zone
Container
Zone Zone

OS OS

CPU CPU CPU CPU CPU CPU CPU CPU

Memory Memory

24
USE IMPROVE EVANGELIZE

Resource sets

OS S OS

CPU Memory SWAP

Hardware
25
USE IMPROVE EVANGELIZE

Resource Pools

Resource
OS S ResourceOS
Pool Pool

CPU Memory SWAP

Hardware
26
USE IMPROVE EVANGELIZE

Projects

Project Project
[10] [50] Project

Resource
OS S ResourceOS
Pool Pool

CPU Memory SWAP

Hardware
27
USE IMPROVE EVANGELIZE

Zones and Resource Mgt


Solaris Zones
+
Solaris Resource Manager

Solaris Containers

28
USE IMPROVE EVANGELIZE

Resource Management

ZONE ZONE

Project
Project
Project

Resource
OS S ResourceOS
Pool Pool

CPU Memory SWAP

Hardware
29
USE IMPROVE EVANGELIZE

Can I join?
● Sign contributor agreement
● Start project on www.opensolaris.org, or
● Pick bugs from http://bugs.opensolaris.org/
(start with keyword “oss-bite-size”) (>500)
● Ask for sponsor on
[email protected]
● Work with sponsor to get code integrated
● Large projects require approvals from
community and review by Architecture
Committies
30
USE IMPROVE EVANGELIZE

Current projects on opensolaris.org


Some 200
● ZFS boot
● Network Virtualization (Crossbow)
● Revamped package management (Indiana)
● In-kernel CIFS, iSCSI
● ZFS crypto

31
USE IMPROVE EVANGELIZE

Can I fork()?
OpenSolaris Distributions
● SchilliX
● MartUX
● BeleniX
● Nexenta
● Solaris Express, Developers Edition
● Indiana

Yes, you can fork() !!


32
USE IMPROVE EVANGELIZE

NLOSUG on the Internet


How to join and keep in touch

www.nlosug.org
Everything important will be on this site

33
USE IMPROVE EVANGELIZE

Thank you!

Bart Muijzer
[email protected]

“open” artwork and icons by chandan:


http://blogs.sun.com/chandan
USE IMPROVE EVANGELIZE

35

You might also like