33
Detlef Drewanz Senior Systems Engineer Sun Microsystems GmbH Solaris heute und morgen

Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

Detlef DrewanzSenior Systems EngineerSun Microsystems GmbH

Solaris heute und morgen

Page 2: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

2

Sun Solaris Strategie

Offen, Open Sourceund kostenfrei

InnovativeTechnologie

Multi-PlattformSun / non-Sunx86 / SPARC

Page 3: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

3

“In our opinion, Sun Solaris is by far the best Unix operating system in the business. ”

Larry Ellison, 20.04.2009CEO

Oracle(Source: http://blogs.wsj.com/digits/2009/04/20/live-blogging-the-oracle-conference-call/)

Page 4: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

4

Page 5: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

5

Das Solaris 10 Betriebssystem

● Multiplattform (SPARC, x86)● Garantierte Kompatibilität (S8-S10)● Virtualisierung

(Solaris Container, LDom)● Datenhaltung (ZFS, NFS, iSCSI)● Security (RBAC, Privilegien, Tx)● Predictive Self-Healing (FMA, SMF)● Dynamic Tracing (DTrace)● Langfristiger Support (10+ Jahre)

Page 6: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

6

Solaris ZFS

HugePerformance Gains

BestFileSystem

• Immense Kapazität durch 128bit-Filesystem• Einfache Administration durch Pooled Storage• Sicher durch 64bit-Prüfsummen und Transaktionsarbeit• Performance by Design

• - Dateisystem

durch integrierte Snapshots

Page 7: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

7

Solaris 10 Update Highlights

• Solaris 10 10/08 (Update 6)> Newboot SPARC> ZFS Root & Boot> Diverse weitere ZFS Erweiterungen

– ZIL Separierung– Delegated Administration– Failmode Behandlungen

> Integration ZFS und LiveUpgrade> Zones: Update-on-attach

Page 8: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

8

ZFS Hybrid Storage PoolDer Turbolader für Applikationen

• Fast Writes im ZIL Pool

• Fast Reads aus dem L2ARC Pool

• Neue Daten im ZIL Pool werden mit großen Blöcken im L2Archkombiniert und höchst effektiv auf den Platten Pool geschrieben

• Wenn der ZIL Bereich überläuft, werden neue Daten auf den Platten Pool geschrieben

Page 9: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

9

ZFS Schreibkonzept

Wie schreibt eine ZFS?

asynchron Schreiben...

Data Management Unit

ZFS Posix Layer

ZFS Intent Log Storage Pool Allocator

synchron Schreiben(nur: fsync)

Page 10: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

10

ZFS Hybrid Storage PoolDer Turbolader für Applikationen

• Fast Writes im ZIL Pool

• Fast Reads aus dem L2ARC Pool

• Neue Daten im ZIL Pool werden mit großen Blöcken im L2Archkombiniert und höchst effektiv auf den Platten Pool geschrieben

• Wenn der ZIL Bereich überläuft, werden neue Daten auf den Platten Pool geschrieben

Page 11: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

11

Solaris 10 Update Highlights

• Solaris 10 5/09 (Update 7)> Einige Optimierungen für den Xeon 5500 “Nehalem”> Überarbeitete iSCSI Target Implementierung> Zones clone durch ZFS clone> Neue Treiber etc.

• Siehe auch: What's New– docs.sun.com > Solaris 10 > Solaris 10 What's New Collection

Page 12: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

12

Nächster Update

• Integrierte Bugfixes• Unterstützung neuer Plattformen, Treiber, Optimierungen

– Intel Xeon 5500, AMD Shanghai– FCoE, IB Performance

• ZFS Technology Refresh> ZFS Refresh> L2ARC> ZFS User Quota

• Install> Flash Support für ZFS Root> Container Parallel Patch

• ...

Page 13: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

13

Page 14: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

14

Innovation in Solaris über OpenSolaris

Alle 6 MonateSolaris 105/08, 10/08, 5/09, ...

Alle 6 MonateOpenSolaris2008.05, 2008.11,2009.06

.org14.06.2006

Spezifisch für Appliances

Alle 2 WochenSX:CEsnv_123,snv_124, ...

Solaris Express

Page 15: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

15

Solaris Release> 3-5 Jahre Release Interval> Updates (●)

> Fehlerbeseitigung> Neue Hardware unterstützt

> Langer (10+ Jahre) Support Zyklus

OpenSolaris Release> 6 Monate Release Interval> Grundlage für das nächste Solaris „Long Term

Support Release“

Solaris Release Model

OpenSolaris

OpenSolaris

Solaris 10

Solaris LTS

2005

20 Jahre Erfahrung, Eine Entwicklungsbasis20032002

Solaris 8 support

OpenSolaris

Solaris 9

OpenSolaris

OpenSolaris

2007 2010

Page 16: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

16

OpenSolaris-Neuerungen

• Sehr einfache Installation

• Distribution auf einer CD

• Netzwerk-basierte Software-Paketverwaltung

• ZFS als Standard-Dateisystem

• Initial nur auf x86, mit 2009.06 auch für SPARC

Page 17: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

17

Einfach zu installieren

• Installation durch lokalisierten grafischen Installer

Page 18: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

18

Einfache Paketverwaltung und Upgrade

Page 19: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

19

Netzwerkvirtualisierung und Netzwerkressourcemanagement

mit OpenSolaris

Page 20: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

20

Projekt CrossbowNetzwerk Virtualisierung and Ressource Management

• OpenSolaris wird zu einer Plattform für Open Networking– Virtualisierung, Ressourcemanagement, einfaches Management

• Gesamtheitlicher Ansatz– Interface Hardware, Treiber, verschiedene Protokollschichten, CPU

• Implementation von– Dynamisches Polling und H/W Klassifikation von Netzwerkverkehr– Separate Nutzung von CPU-Cores zur Netzwerkverarbeitung– Parallelisierung des Netzwerkstack von der H/W– IP Instanzen– NIC Virtualisierung - VNICs und Vswitches (H/W und S/W basiert)– Service Virtualisierung - Flows– Resourcemanagement für Verbindungen und Verbindungsklassen

Page 21: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

21

Projekt CrossbowNetzwerk Virtualisierung and Ressource Management

• Virtual Wire TM

> “Network in a Box”> Ethernet Stubs (virtuelle Switches)

– $ dladm create-etherstub switch0

> VNICs (virtuelle NICs)– $ dladm create-vnic –l e1000g0 vnic1– $ dladm create-vnic –l switch0 vnic2

> Quality of Service mit VNICs und Network Flows– $ dladm set-linkprop -p maxbw=10m vnic0– $ flowadm add-flow -l vnic0 transport=tcp,local_port=80 httpflow– $ flowadm set-flowprop -p maxbw=5M httpflow

> Monitoring und Accounting– $ flowadm show-flow -s -i 1FLOW IPACKETS RBYTES IERRORS OPACKETS OBYTES OERRORShttpflow 278891 19754223 0 232390 29558178 0httpflow 5551 393179 0 4626 588354 0httpflow 5616 397800 0 4680 595296 0

– $ acctadm -e extended -f /var/log/net.log net– $ flowadm show-usage -f /var/log/net.logFLOW DURATION IPACKETS RBYTES OPACKETS OBYTES BANDWIDTHhttpflow 1620 513064 36337108 427407 54349626 0.447 Mbps

Page 22: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

22

Solaris Kern-Netzwerk-Funktionalität

ScalableVirtualized

TCP/IPStack

Crossbow: Network Virtualization

VirtualNICs

VirtualSwitches

VirtualWire

Flows QoSObserv-ability

L2 Classification, Filtering

Kernel Sockets

L2Bridge

L3/L4Load Balancer

IPFilter(Firewall)

IPTunnels

Kernel

Generic LAN Driver – GLDv3Aggr, SR-IOV, Vanity Names

1gigE/10gigE(Neptune, Niantic, etc) FCOE IPoIB

Driver

RoutingProtocols(Quagga)

Developer Tools and Management Interfaces

UserVRRP

(RoutingHA)

IP MultiPathing

PerfDiagTools

> Netzwerk Services

> Skalierbarer und virtualisierter Netzwerkstack

> Crossbow: Virtual Networking– VNICs, VSwitches, VWire– Service Virtualization (Flows)– L2 Services: Classification, Filtering

> Generic LAN Driver v3 – GLDv3– Aggregation– Vanity Names– Drivers (1GbE and 10GbE, FCoE, IPoIB)

SYS

APIs

KernelSocket

API

MACClientAPI

MACDriverAPI

IPHooks

API

Page 23: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

23

Crossbow - Für Cores und Threads

Parallelisierter Stack für Performance

Network

1000's of Logical Connections

NIC Kernel CPU Application

Neptune 2x10 Gbe and/or 4x1Gbe

Crossbow VirtualizedNetwork Lanes & VNICs

Multi-CoreProcessor

App Threads,Containers,

or VMs

DedicatedLane

Rx/Tx DMA

Rx/Tx DMA

Rx/Tx DMA

Kernel Qsand Threads

Kernel Qsand Threads

Kernel Qsand Threads

VNIC

VNIC

VNIC

Squeue

Squeue

Squeue

CLASSIFIER

Page 24: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

24

Crossbow Flows

• Basierend auf> Services (protocol + remote/local ports)> Transport (TCP, UDP, SCTP, iSCSI, etc)> Remote und local IP addresses> Remote IP Subnets

• Attribute per flow setzbar> Bandbreiten-Limits> Prioritäten> CPUs

# flowadm create-flow -l bge0 protocol=tcp,local_port=443 -p maxbw=50M http-1# flowadm set-flowprop -l bge0 -p maxbw=100M http-1

Page 25: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

25

Crossbow Flows: Service Virtualisierung

Services and Protocols

Compute Resources

NIC 1

CPU 1VIRTUALSQUEUE

CPU 2VIRTUALSQUEUE

CPU 'n'VIRTUALSQUEUE

CPU 1 Virtual Squeue CPU 2 Virtual Squeue

VOIPSQUEUE

HTTPSSQUEUE

DEFAULTSQUEUE

TCPSQUEUE

UDPSQUEUE

DEFAULTSQUEUE

Kernel threads/Qs

MemoryPartition

MemoryPartition

MemoryPartition

MemoryPartition

MemoryPartition

MemoryPartition

Flow Classifier Flow ClassifierNIC 2

Kernel threads/Qs

Kernel threads/Qs

Kernel threads/Qs

Kernel threads/Qs

Kernel threads/Qs

Page 26: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

26

Virtual NIC (VNIC) & Virtual Switches

• Virtual NICs > Wie physikalische NICs:

– Statische IP-Adressen oder via DHCP– Eigene „if“ Kernel Statistiken– VNICs auf Link Aggregations oder mit IPMP-Gruppen (LB und FO)

> An VNICs können mehrere Hardware-Lanes gebunden sein> Erzeugung auf phys. NIC oder auf einem Vswitch

– LinkSpeed, CPU, Priorität, VLAN Tags, Priority Flow Control (PFC)> Keine Konfiguration auf Netzwerkswitches erforderlich

• Virtual Switches (Vswitch)> Zur Erzeugung von Verbindungen zwischen virtuellen

Maschinen

Page 27: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

27

Beispiel VNIC und Vswitch Nutzung

# dladm create-vnic -l bge1 vnic1# dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2# dladm create-etherstub vswitch1# dladm show-etherstubLINKvswitch1# dladm create-vnic -l vswitch1 -p maxbw=1000M vnic3# dladm show-vnicLINK OVER MACTYPE MACVALUE BANDWIDTH CPUSvnic1 bge1 factory 0:1:2:3:4:5 - -vnic2 bge1 random 2:5:6:7:8:9 max=100M 4,5,6vnic3 vswitch1 random 4:3:4:7:0:1 max=1000M -

# dladm create-vnic -l ixgbe0 -v 1055 -p maxbw=500M -p cpus=1,2 vnic9

• dladm(1M), für die zentrale Administration

Page 28: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

28

Virtual Network Containers

Flow Classifier

Exclusive IPInstance

Rx/TxDMA

Rx/TxDMA

Rx/TxDMA

NIC

bge0 VNIC1 (100Mbps)

VNIC2 (200Mbps)

Exclusive IPInstance

VirtualSQUEUE

VirtualSQUEUE

Zonexb1-z1

Zonexb1-z2

Clientxb2

Clientxb3

SolarisGlobalZone

Virtualisierung• Exclusive IP Stack• Virtual NICs• Virtual Switches

Resource Control• Bandwidth Limits & Garantien• Prioritäten• Zugewiesene CPUs

Beobachtbarkeit• Auslastung der VNIC's in Echtzeit• Snmp und Kstat per VNIC

Page 29: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

29

Virtuelle Machinen

Solaris Guest OS 1 Solaris Guest OS 2Solaris Host OS

Host OSVIRTUAL SQUEUE

All Traffic

NIC Virtualization Engine NIC Virtualization Engine

NIC Virtualization Engine

Guest OS 1VIRTUAL SQUEUE

Guest OS 2VIRTUAL SQUEUE

All Traffic

Host OS VNICGuest OS 2 VNIC

NICH/W Flow Classifier

HTTPSQUEUE

HTTPSSQUEUE

DEFAULTSQUEUE

VirtualNIC

VirtualNIC

VirtualNIC

Host OSAll traffic

GuestOS 1HTTP

GuestOS 1

HTTPS

GuestOS 1

DEFAULT

GuestOS 2

All Traffic

Page 30: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

30

Physical Network

Client Router

Crossbow Network in der Box

Host 1 Host 2

Port 620.0.03

1 Gbps 1 Gbps 1 Mbps 1 Gbps

Port 920.0.01

Port 310.0.03

Port 110.0.01

Port 210.0.02

Switch 3 Switch 1

ClientRouter(Virtual Router)

VNIC620.0.03

1 Gbps 1 Gbps 1 Gbps 100 Mbps 1 Gbps

VNIC920.0.01

VNIC310.0.03

VNIC110.0.01

VNIC210.0.02

1 Gbps

EtherStub 3 EtherStub 1

Host 1 Host 2

Page 31: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

31

Projekt CrossbowNetzwerk Virtualisierung and Ressource Management

• OpenSolaris wird zu einer Plattform für Open Networking– Virtualisierung, Ressourcemanagement, einfaches Management

• Gesamtheitlicher Ansatz– Interface Hardware, Treiber, verschiedene Protokollschichten, CPU

• Implementation von– Dynamisches Polling und H/W Klassifikation von Netzwerkverkehr– Separate Nutzung von CPU-Cores zur Netzwerkverarbeitung– Parallelisierung des Netzwerkstack von der H/W– IP Instanzen– NIC Virtualisierung - VNICs und Vswitches (H/W und S/W basiert)– Service Virtualisierung - Flows– Resourcemanagement für Verbindungen und Verbindungsklassen

Page 32: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

32

• Integration von Bugfixes• Qualitätssicherung durch intensive Tests• Unterstützung neuer Hardware• Weiterentwicklung von ZFS• Virtualisierung im Netzwerkumfeld• Stabilisierung von OpenSolaris• Solaris 10 Branded Zones

Ausblick

Page 33: Solaris heute und morgen - OSL · # dladm create-vnic -l bge1 vnic1 # dladm create-vnic -l bge1 -m random -p maxbw=100M -p cpus=4,5,6 vnic2 # dladm create-etherstub vswitch1 # dladm

Vielen Dank !

[email protected]