A Distributed Resource Management Architecture that Supports
Download
Report
Transcript A Distributed Resource Management Architecture that Supports
Globus Advance
Reservation and Network Environment
Testbed
GARNET
Volker Sander, Alain Roy
[email protected]
Argonne National Laboratory
10/07/1999
Outline
The Basic concept of GARA
GARNET and Experiences
How to join the Effort
Demonstration
2
Goals
Provide end-to-end Quality of Service to
applications. This requires:
– Discovery and selection of resources
– Allocation of resources
– Advance reservation of resources
Supercomputer
Workstation
Workstation
3
Difficulties/Solutions
Lack of support for advanced reservations
– NGI Bandwidth Broker effort is based on
immediate reservations
Heterogeneous resources
– More than just Networking QoS
– We provide uniform interfaces
Need to work with complex sets of resources
– Multi-domain, Multi-Resource-type
– We use co-reservation agents
4
Solution: GARA
Globus Architecture for Reservation and
Allocation
Three important contributions:
– Support for Advance Reservations (AG)
– Uniform treatment of underlying resources
> Network, disk, CPU etc…
> Currently supported:
Differentiated Services, DPSS, and DSRT
– Layered architecture enables generic coreservation agents
> User is able to select API best suitable for his need
5
GARA Basics—Reservations
There is a generic “reservation”, which has
several properties:
– Start Time (“now” or future) and Duration
– Resource type/Underlying resource identifier
– Resource-specific (bandwidth, % CPU…)
All reservations are treated uniformly:
– Create/Modify (Given properties)
=> Returns Reservation Handle
– Destroy
– Monitor (Callbacks or Polling)
6
A picture of what happens
(creating a reservation)
User Program
or Agent
Create
Reservation Handle
Gatekeeper
(Authenticate and
Authorize)
Gatekeeper Service
Local Resource
Manager API (LRAM)
Resource Manager
Resource (Router...)
7
A picture of what happens
(claiming a reservation)
User Program
bind(handle)
Resource Manager
Setup reservation
LRAM API
Resource
Enforce Reservation
Note: GARA supports third party binding
8
Example: Network reservation
In advance, make a reservation:
RSL:
& (reservation-type=network)
(start-time=now) (duration=3600)
(endpoint-a=128.135.11.4) (endpoint-b=128.135.11.1)
(bandwidth=1000)
Handle: Opaque string H1
At run-time:
– Bind(H1)
9
The Resource Manager
To track advanced reservations, we use a simple
“slot table”
We assume exclusive access to resource through the
resource manager
We aren’t tied to this particular resource manager
100%
% of
available
resource
allocated
0%
Time
10
Co-Reservation Agents
When multiple resources are needed, an
agent:
– Discovers applicable resources via the MDS
– Reserves resources
– Informs user when resources are ready.
– Meta-RM support for integrating other RMs
The uniform interface enables these agents to
be created easily.
– Given this ease, it is convenient to express
different strategies such as:
> Depth-first vs. best-first
> Coping with failures
11
The Big Picture
MDS
Co-Reservation Agent
Gatekeeper
Gatekeeper
GRIO LRAM
Scheduler LRAM
Gatekeeper
Gatekeeper
Diffserv LRAM
DSRT LRAM
Workstation
Supercomputer
Router
Router
Workstation
12
End-to-End Network Reservations
Algorithm for a single network reservation
– Discover which gatekeepers/resource
managers need to be contacted (MDS)
– Make reservation at each one.
End-to-End Co-Reservation Agent
Resource Manager
User process
MDS
Resource Manager
Workstation
13
The GARA API
globus_gara_reservation_create()
Gatekeeper contact
RSL reservation specification
Reservation Handle or Error
globus_gara_reservation_modify()
Old Reservation Handle
RSL reservation specification
New Reservation Handle or Error
14
The GARA API (continued)
globus_gara_reservation_cancel()
Reservation Handle
Error
globus_gara_reservation_status()
Reservation Handle
Status/Error
globus_gara_reservation_callback_register()
Reservation Handle
Callback Function/User Parameter
Error
15
The End-to-End Agent API
For making network reservations
– Deals with co-reservation along path.
Very similar to GARA API:
– Ex: globus_gara_end2end_create()
Handles MDS lookups.
Handles making multiple reservations, but
provides user with single reservation
handle.
Probably the API you want to use.
16
GARNET goals
Provide dedicated testbed for evaluating current
and future mechanisms used for implementing
GARA
– QoS-Type Network: similar to IETF’s diffserv model
– QoS-Type CPU: DSRT-Scheduler
– QoS-Type Disk: Distributed Parallel Storage System (DPSS)
Demonstrate validity of concept
– End-to-End Reservation
– Application level QoS
17
Quality of Service for IP Traffic
The ability to define or predict the performance
of traffic on a network
Needed in case of congestion
– Leave the current best-effort model
– End-User is able to specify his requirements
Guaranteed bandwidth major concept
Building blocks
– Link Layer QoS (ATM QoS)
Create VC with specific parameters (ABR, CBR, UBR, …)
– IP-QoS
Flow Based QoS: Integrated Services (RSVP)
Aggregate Based QoS: Differentiated Services (Premium service)
18
The Basic Concept
Aggregate based scheduling
Flow based
Set IP precedence for
Set IP precedence for
non exceeding flows
non exceeding flows
with bound
with bound
GARA Reservation
GARA Reservation
19
The Extension
Server
Client
GARA API
Diffserv Resource Manager
20
The Multidomain Extension
Server
Client
GARA API
Diffserv
Diffserv
Resource
Resource
Manager
Manager
21
Building Blocks for Diffserv
Traffic marking based on a specific policy
Admission control
Congestion handling
– Congestion avoidance
– Congestion management
Traffic shaping
Service Level Agreement (SLA)
22
Actual Mechanisms (Cisco)
Committed Access Rate (CAR)
– Per flow based at End-Systems
> Mark packets if they are not exceeding a rate limit
> Drop packets beyond the limit or transmit them via best effort
– Per Precedence between domains
> Corresponds to a static SLS
> RM will configure the limits on demand in later releases
– Allows short term bursts
Weighted Random Early Detection (WRED)
Weighted Fair Queuing
Generic Traffic Shaping or PVC attributes
23
GARnet- Globus Advance
Reservation and Network Env Testbed
Linux
Linux
SUN Ultra 60
SUN Ultra 60
WFQ
CAR
WFQ
Cisco
7507
SUN Ultra2
WFQ
Cisco
7507
CAR
WFQ
Cisco
7507
SUN Ultra2
FastEthernet link
OC-3 link
24
25
Evaluation Tools
Several Modified versions of ttcp (premium)
– GARA-enabled (wait for reservation)
– Support for a desired application rate
> long term control
> short term control
– Consecutive bandwidth reporting
– Bulk transfer ttcp in work
UDP traffic generator (competetive traffic)
– Andy Adamson, University of Michigan
– Added support for automated testing
Modified version of DPSS (premium)
– GARA enabled
– Nice example on how to use GARA
26
UDP Rate comparison for different CAR buffer sizes
(Desired rate: >40Mbps; Average rate limit 40 Mbps)
Packet size 530 Bytes
40500
39500
39000
Buffer size
100KB
1MB
2MB
Overhead for packet
38500
headers (40 Bytes)
38000
37500
37000
29
27
25
23
21
19
17
15
13
11
9
7
5
3
36500
1
Actual Rate (Kbps)
40000
Time (s)
27
Receiving TCP rate with different CAR buffer size
6000
5500
5000
BUFFER
4000
3500
2MB
1MB
500KB
200KB
Limit
3000
2500
2000
1500
1000
500
0
30
00
32
00
34
00
36
00
38
00
40
00
42
00
44
00
46
00
48
00
50
00
52
00
54
00
56
00
58
00
60
00
Actual rate (KB/s)
4500
Desired rate (KB/s)
28
The TCP “Problem”
Receiver
Transmitter
TCP’s sliding window
introduces burstiness of Traffic
Socket rcv buffer
Socket send buffer
MSS-sized (media specific)
TCP segments
40 Byte Header overhead
Ack
Ack
Ack
Maximum outstanding of 1 actual window
LastByteSent - LastByteAcked <= RcvWindow.
29
The TCP “Problem:
45
40
Reno-TCP
Slow Start
Exponential Growth
35
30
Average
25
window
20
size
15
10
5
Congestion Avoidance Phase
Linear Growth
Half Window Size in case of duplicate Acks
0
time
30
The TCP “Problem”
TCP’s flow control
– Traffic becomes bursty if the actual window size
is large
– Bandwidth*Latency Product as ideal window size
TCP’s congestion control
– “Slow Start Phase”
> shrink Window to 1
> increase size with every Ack
– Congestion Avoidance
> Half Window size
> Increase size by one for every full window roundtrip
31
Example of Oversubscribing with TCP
(Attempted Rate: 6000KB/s, Buffer size: 2000000 bytes)
9000
8000
6000
Rate
Limit
5000
4000
3000
96
91
86
81
76
71
66
61
56
51
46
41
36
31
26
21
16
11
6
2000
1
Actual Rate (KB/s)
7000
Time
32
Oversubscribing TCP Rate due to Header Overhead
(Attempted Rate: 6000KB/s, Buffer size: 200000 bytes)
9000
7000
6000
Rate
Limit
5000
4000
3000
96
91
86
81
76
71
66
61
56
51
46
41
36
31
26
21
16
11
6
2000
1
Actual Rate (KBytes/s)
8000
Time
33
Stable Long Term TCP Traffic
(Attempted Rate: 6000KB/s, Buffer size: 2000000 bytes)
9000
8000
Actual Rate (Kbs)
7000
6000
Rate
Limit
5000
4000
3000
2000
1
7
13
19
25
31
37
43
49 55
Time
61
67
73
79
85
91
97
34
WRED impacts on RTT
35
WRED impacts on the Window size
36
… the Throughput
37
… some updates
38
… increasing tcp_cwnd_max
39
… new throughput
40
41
… new throughput
42
Using WFQ
43
Using WFQ
44
Using WFQ
45
Current Status
An early working prototype (alpha!) of
GARA exists
– Differentiated Services-like QoS
– Real-Time CPU Scheduling (DSRT)
– DPSS Disk Access
An early prototype of the end-to-end
reservation agent exists.
Successful demonstration on GARNET and
over ESnet’s NGI testbed
Work with bleeding-edge adopters has
already started.
46
The GARA Source Tree
Subdirectories represent different layers
– end2end
– gara
– lram
– resource_manager
– slot_manager
– (dsrt)
We are providing examples for every layer
docs directory contains lots of useful
information
47
Doing Tests
Select your favorite application
Determine port numbers
edit (set endpoint systems) and run script:
gara/gara/utilities/demo_make_reservation
Create congestion
Try demo_modify_reservation for getting
different premium bandwidth
Try demo_cancel_reservation
48
Install GARA
Get GARA (currently through E-Mail from sander/roy
@mcs.anl.gov)
Get SSLeay 0.9.0 and install it
Get Globus 1.1 configure and compile it
deploy is not necessary for doing tests
Run grid-cert-request to apply for a Grid X509 Certificate
Read gara/docs/*
Edit gara/build
Run gara/build
Customize GARA
– gara/resource_manager/programs/diffserv_manager.conf
– gara/resource_manager/programs/setup_flow.cfg
– (Samples are in the documentation directory)
Experiment!
49
Router Requirements
Cisco 75xx VIP2-50
Get new IOS XE beta release
Experimental Version 12.0(19990728:032821) [rolsen-conn_4xe_fix 243]
Available at ftp://ftpeng.cisco.com/rolsen/rsp-pv-mz.091099
ip cef distributed
Define an empty policy-map set-precedence on the edge
router
Define a consecutive set of access-lists to be used by GARA
(100-199)
Define class-map for precedence 3 or 5 on every router
Define a policy-map containing the class assigned with the
supported premium BW
Assign this as service policy on each output interface
Define CAR per precedence on the ingress site
50
Future Work
Add new features
– Authorization
– Dynamic SLS
– Enhance CLI
– Increase support for adaptive applications
Deployment with Globus
– Packaging
– Easy install
Supporting more resource types
– Job Schedulers
– Alternate Network QoS (RSVP)
– Disk (GRIO)
– Others (Memory, etc…)
51
Conclusions
GARNET is ready ...
GARA could prove its capabilities
– Try it…
– Once installed, it is easy to use!
– Suggestions are welcome!!!!
Take a look at http://www.mcs.anl.gov/qos
52