datacenter fabric workshop august 22, 2005 reliable datagram sockets (rds) ranjit pandit silverstorm...

15
August 22, 2005 Datacenter Fabric Workshop Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies [email protected]

Upload: godfrey-allen

Post on 17-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop

Reliable Datagram Sockets(RDS)

Ranjit Pandit

SilverStorm Technologies

[email protected]

Page 2: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 2 of (#)

Agenda

• Goals

• Architecture Overview

• High Level Design

• Future

Page 3: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 3 of (#)

Goals

• Provide reliable datagram service – performance– scalability– High Availability– simplify application code

• Maintain sockets API– application code portability– faster time-to-market

Keep It Simple !!!

Page 4: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 4 of (#)

Agenda

• Goals

• Architecture Overview

• High Level Design

• Future

Page 5: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 5 of (#)

Architecture Overview

Host Channel Adapter

InfiniBand Access Layer

IPoIB

IP

Oracle 10g

SocketApplications

TCP UDP SDP RDS

Kernel

User UDP

Applications

Page 6: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 6 of (#)

Architecture Overview

• RDS registers with the kernel as driver for Address Family PF_INET_OFFLOAD and Type SOCK_DGRAM

• Application creates a RDS socket with socket(2)– arg1 = PF = PF_INET_OFFLOAD (0x26)– arg 2 = Type = SOCK_DGRAM

• socket(2) API supported– socket, bind, ioctl, sendmsg, recvmsg, poll, getsockopt/setsockopt

Page 7: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 7 of (#)

Agenda

• Goals

• Architecture Overview

• High Level Design

• Future

Page 8: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 8 of (#)

Connection model

• Addressing– IPv4 addressing– uses IPoIB for address resolution

• Peer-to-peer connection model– node-to-node connection– on-demand connection setup

• connect on first sendmsg()– disconnect on error or inactivity

• Connection setup/teardown transparent to applications

Page 9: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 9 of (#)

Data and Control Channel

• Uses RC QP

• Data and Control QP per connection

• Selectable MTU

• b-copy send/recv

• h/w flow control

Page 10: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 10 of (#)

Send

• sendmsg() success => guaranteed delivery– allows send pipelining– send error is catastrophic

• ENOBUF returned if insufficient credits, application retries– not a common case

Page 11: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 11 of (#)

Receive

• Identical to UDP recvmsg() behavior– similar blocking/non-blocking behavior

• “Slow” receiver ports are stalled at sender side– combination of activity (LRU) and memory utilization

used to detect slow receivers– sendmsg() to stalled destination port returns

EWOULDBLOCK, application can retry– recvmsg() on a stalled port un-stalls it

Page 12: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 12 of (#)

High Availability (failover)

• Use of RC and on-demand connection setup allows HA– connection setup/teardown transparent to

applications– every sendmsg() could result in a connection

setup– if a path fails, connection is torn down, next

send can connect on an alternate path (different port or different HCA)

Page 13: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 13 of (#)

/proc interface

• /proc/driver/rds/config– view and change RDS configurable

parameters

• /proc/driver/rds/info– info on sessions, stalled ports etc

• /proc/driver/rds/stats

Page 14: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 14 of (#)

Agenda

• Goals

• Architecture Overview

• High Level Design

• Future

Page 15: Datacenter Fabric Workshop August 22, 2005 Reliable Datagram Sockets (RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

August 22, 2005

Datacenter Fabric Workshop – Page 15 of (#)

Future

• AIO

• Z-copy

• Shared recv queue