OS opensource: non solo Linux Torino Linux day Alessandro Peppino Sun Microsystems, Inc.
Qualche nome e qualche data Richard Stallmann Mit '75 scrive Emacs (macro per Teco ) '84 lascia il MIT: nasce il progetto GNU ed in seguito la licenza GPL James Gosling Carnegie Mellon University '81 nel dottorato riscrive emacs in C, lo distribuisce e sara' la base del primo GNU Emacs. Unipress Emacs '70 '75 Unix di AT&T viene licenziato gratuitamente nelle universita' Bill Joy '75 Bill joy comincia a Berkley a lavorare alla versione 7 ( editor ex ) in seguito: csh memoria virtuale ed estensioni di rete ( Berkely socket ) ( nasce la versione BSD ed a seguire la licenza BSD ) 2
Informazioni storiche UNIX/Solaris la storia di UNIX/Solaris riflette l'impegno nell'innovazione e nello sviluppo della comunità Opensource > 1969-1971: Thompson & Ritchie develop UNIX at Bell Labs > 1970's: AT&T licenses UNIX source code to universities > 1975-1978: Bill Joy develops open source BSD UNIX > 1982: Sun founded by Khosla, McNealy, Joy, Bechtolsheim, > SunOS 1.0 1983 ( BSD ) > SunOS 4.1.3 1992 ( BSD ) > SunOS 5.x 1992 ( Solaris ) SVR4 > Solaris 2.5,2.6, 7,8,9 1992-2002 > Solaris 10 January 2005 U1,U2,U3,U4... > Opensolaris June 14, 2005 ( 2008.05, 2008.11,2009.06) 3
OpenSolaris Jan Murdock padre di Debian e' dipendente Sun da oltre due anni http://ianmurdock.com/sun/joining-sun/ http://www.sun.com/aboutsun/media/ceo/bio.jsp? name=ian%20murdock La governance di opensolaris e' coordinata dalla Opensolaris Governing Board ( da tre a sette persone ) che viene eletta dai membri della comunità http://www.opensolaris.org/os/community/ogb/governance Esempi di contributi italiani indipendenti http://www.morettoni.net/2008/12/il-mio-primo-commit/ http://opensolaris.org/jive/thread.jspamessageid=315880 4
La licenza CDDL Approvata dall'osi, basata sulla MPL Garanzia contro protezione dei brevetti Il codice sorgente deve essere disponibile sotto licenza CDDL per qualsiasi codice anche se distribuito come eseguibile (copy left) I contributori devono identificare le modifiche E' una licenza file based e questa definizione consente di di mescolare codice CDDL con codice proprietario e di definire dei confini chiari tra tipi di codice senza effetti virali Consente alla comunità di distribuire gli eseguibili anche con licenze differenti 5
OpenSPARC First 64-bit, 32 Thread Architecture RTL code available under GPLv2 license Community-driven ports of GNU/Linux to OpenSPARC, including Ubuntu Inclusion of OpenSPARC as the textbook chip design at many universities Broad support from Design Houses, Fab Companies and Tools companies 3 rd Parties are discounting software to OpenSPARC members Sun's decision to release Verilog source code for the UltraSPARC hardware design under a free software license is an historic step - Sun is showing its profound understanding of the forces shaping our technological future in making this decision. Eben Moglen Software Freedom Law Centre 6
Spunti tecnologici: Virtualizzazione OS: zone e containers Virtualizzazione rete: progetto crossbow File system ZFS Osservabilità: DTRACE Sicurezza 7
Virtualizzazione OS: Zone/Containers Le zone offrono agli utenti ed alle applicazioni un ambiente operativo virtuale assimilabile ad una istanza di solaris I nome containers e' legato alle gestione delle risorse di sistema Funzionalità : > Virtualizzazione, Isolamento > Granularità, Transparenza Zona 2 Zona 2 Zona 1 Solaris 10 Global zone 8
Virtualizzazione OS: Zone/Containers Ambiente solaris completo ( fs,i/o,password, processi, console, boot, reboot ) non sono obbligatori device fisici ma possono essere dedicati ad una zona o condivisi tra piu' zone Il kernel e' unico Global zone, local zone Granularità: una singola cpu puo' ospitare decine di zone Gestione delle risorse ( cpu e memoria ) Migrazioni, cloni, boot, reboot 9
Virtualizzazione del FS: ZFS End-to End Data Integrity Con check-summing and transazioni di tipo copy-on-write Easier Administration Modello pooled storage Non necessita di volume manager ZFS root file system un nuovo modo di gestire i sistemi operativi Immense Software Data Developer Capacity Il primo file system a 128 bit Data Services Snapshots Cloni Replica remota Compressione Migrazione Thin provisioning e in futuro molto altro 10
Copy-on-Write transazionale Non sovrascrivi mai i dati esistenti uber-block Original Data New Data 11
Come si e' certi che quello che si legge e' quello che e' stato scritto? End-to-End Checksums Checksums are separated from the data Prevents: > Corruzione silenziosa dei dati > Problemi di metadati corrotti > Scritture fantasma > Errori di parita' DMA > Errori dovuti a bachi del driver Entire I/O path is self-validating (uber-block) 12
Non c'e' piu' necessità di volume manager Si aggiunge automaticamente capacità allo storage pool File system 1 File system 1 File system 3 ZFS ZFS Storage Pool 13
Dynamic Striping Distribuzione automatica del carico su tutti i device Scritture distribuite su tutti e 4 i mirror La policy di allocazione blocchi considera: > Capacita prestazioni ecc. ZFS ZFS ZFS Scritture distribuite su tutti e 5 i mirror Non necessita di migrate I dati esistenti > Vecchi dati distribuiti su 1-4 > Nuovi dati distribuiti su 1-5 > COW rialloca I vecchi dati in una lenta modalita trasparente ZFS ZFS ZFS Storage Pool Add Mirror 5 Storage Pool 1 2 3 4 1 2 3 4 5 14
Redundant Copies of Data Software RAID Protection RAID=Redundant Array of Inexpensive Disks ZFS supporta > Stripes (RAID-0) > Mirroring (RAID-1) > RAID-Z (Similar to RAID-5) > RAID-Z2 e RAID-Z3 (Doppia e tripla parità ) Il disegno transazionale di ZFS significa assenza del buco di scrittura di RAID-5 15
Riassunto funzionalità storage presenti in opensolaris http://www.opensolaris.org/os/community/storage/ Protocolli di rete > NFS v3 and v4, CIFS ( no samba ma reimplementazione completa ) Progetto COMSTAR COmmon Multiprotocol Scsi TARget ( ogni server opensolaris è uno storage array ) > SCSI, iscsi, iser, SRP, FCOe Funzionalità legate a ZFS > Write Flash Acceleration, Read Flash Acceleration > RAID e RAID-Z2 e 3 > Replica remota Snapshots e cloni (r/o, r/w, unlimited) > Compressione > Migrazione storage pool ( import export ) Endian-ness adattativa > Altre a breve 16
Virtualizzazione del network:progetto crossbow Set di tecnologie che offrono virtualizzazione del network e migliorano le prestazioni, il controllo delle risorse e l'utilizzo del network per ottenere una vera virtualizzazione del sistema operativo Network stack completamente riscritto Crossbow prevede moltepolici componenti: > Virtual NICs (VNICs) > Virtual switches > Flow Management
Virtual NIC (VNIC) & Virtual Switches Virtual NICs > Funzionalmente analoghi a NIC fisici possono essere creati direttamente sui NIC fisici ( senza ncessità di virtual switch ) oppure collegati a virtual switch : > Indirizzi IP assegnati sticamente o via DHCP > Appaiono nel MIB come interfacce separate > Possono essere creati su un link aggregato o possono essere assegnati a gruppi di multipathing per load balancing e failover > VNICs hanno una velocità del link configurabile e CPU e priorità assegnabile Virtual Switches > Possono essere creati per offrire connettività privata tra Virtual Machines
Crossbow Flows Crossbow Flows sono basati su: > Services (protocol + remote/local ports) > Transport (TCP, UDP, SCTP, ICMP) > Remote and local IP addresses > Remote IP Subnets Attributi possibili per ogni Flow > B/W limits > Priorities > CPUs # flowadm create-flow -l bge0 transport=tcp,local_port=443 -p maxbw=50m http-1 # flowadm set-flowprop -l bge0 -p maxbw=100m http-1
Virtual Network esempio:
Crossbow vs altre soluzioni di virtualizzazione HOST Virtual Machine (Guest) OS IP stack Virtual Machine (Guest) OS IP stack HOST Solaris Zone Solaris Zone VNIC 1 VNIC VM VNIC VM nxge0 VNIC 1 VNIC 2 Switch VMNet1 S/W Switching 100 Mbps BRIDGE PNIC Physical NIC H/W Switching
Dtrace DTrace è un framework per il tracciamento dinamico delle attività svolte dal sistema operativo Solaris 10. Il framework è composto da tre componenti principali: > una serie di sonde (probe) introdotte nel kernel di Solaris 10 OS > alcuni comandi utente che permettono di accedere ai dati forniti dalle sonde ed un linguaggio di script denominato D simile all'awk del tipo "pattern action", dove il pattern è un modo per selezionare alcune sonde e/o alcuni risultati particolari delle sonde, mentre con l'action si identificano le attività necessarie per elaborare le informazioni reperite. > una libreria di interfacciamento per accedere dallo spazio utente alle funzionalità del framework
DTrace vantaggi Potentissimo ( piu di 30.000 sonde molte delle quali specifiche per determinati ambienti ) Leggerissimo Non intrusivo e utilizzabile in produzione!!!! Non e' necessario instrumentare le applicazioni ne' fermarle Tempi di risoluzione dei problemi ridotti di ordini di grandezza Dtrace toolkit 23
Opensolaris security Role Based Access Control User Rights Management Process Rights Management Roles,profiles,privileges,authorization 24
Thank You! Alessandro Peppino Sun Microsystems, Inc.