Download presentation
Presentation is loading. Please wait.
Published byJody Bell Modified over 8 years ago
1
Cloud computing for internet emulator
2
Professor Muthucumaru Maheswaran Team Members Mia Hochar Simon Foucher David El Achkar David El Achkar Marc Atie Marc Atie GINI on a Cloud © March 20102 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
3
Professor Muthucumaru Maheswaran Mia Hochar Simon Foucher David El Achkar David El Achkar Marc Atie Marc Atie D. Database Recomendations C. GINI Alterations Design Dilemma A. Evolution of GINI B. Dispatcher Objectives GINI on a Cloud © March 20103 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie E. Scheduler F. Conclusion
4
1. What is GINI? 2. GINI’s Features 3. Improvements Overview GINI on a Cloud © March 20104 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
5
GINI Defined What is GINI? Toolkit for creating virtual micro Internets Create midsize networks Process creates virtual instances of network elements Purpose: Teaching and learning tool Suitable to many levels of knowledge Future applications GINI on a Cloud © March 20105 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
6
GINI Snapshot GINI on a Cloud © March 20106 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
7
Features Simple to use GUI Fully open-source system Standard compliant router Ability to implement additional protocols or new network elements GINI on a Cloud © March 20107 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
8
Improvements Overview GINI on a Cloud © March 20108 ClientWorker Front EndBack End David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
9
Improvements Overview GINI on a Cloud © March 20109 ClientWorker Front EndBack End David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
10
Improvements Overview GINI on a Cloud © March 201010 Front EndDispatcher Database Scheduler Back End ServerWorkersClient David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
11
Drawbacks Complicated Installation process GINI on a Cloud © March 201011 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
12
Drawbacks OS Compatibility issues GINI on a Cloud © March 201012 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
13
GINI Components: ImprovementsBasics Database Scheduler Dispatcher gRouter GiniLinux uSwitch WGINI gLoader gBuilder GINI’s Components gBuilder gLoader gRouter GiniLinux uSwitch WGINI GINI on a Cloud © March 201013 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
14
1. Overview 2. Dispatcher Request 3. Connection Creation 4. Dispatcher Logging GINI on a Cloud © March 201014 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
15
Overview Request/Reply Front EndDispatcher Database I need a worker Worker’s DNS Lowest CPU Usage GINI on a Cloud © March 201015 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
16
Dispatcher Request Request/Reply Dispatcher DNSIPuptime Lab2-17134.204.2.560.112 Lab2-29134.204.2.370.523 Lab2-20134.204.2.1120.938 ……… Return worker DNS extractWorkerFromDB() GINI on a Cloud © March 201016 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
17
Connection Creation Connection Established GINI on a Cloud © March 201017 Front EndBack End SSH Tunnel David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
18
Dispatcher Logging Recording Connection Dispatcher Database 1.Send: Client IP Worker DNS 2.Connection Recorded: time stamp GINI on a Cloud © March 201018 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
19
1. Design Paradigm 2. Connection to Server 3. Design Dilemma GINI on a Cloud © March 201019 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
20
Design Paradigm Transparent to user Component add-on rather than alteration GINI remains independent Only altered the Configuration file GINI on a Cloud © March 201020 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
21
Design Paradigm Use of flexible communication library: twisted GINI already in Python Flexible Available source code Stable High-level functions GINI on a Cloud © March 201021 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
22
Current Access to Remote Server GINI on a Cloud © March 201022 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
23
Connection to Server 23 GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
24
Connection to server 24 GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie Front EndBack End SSH Tunnel
25
Addition to GINI GINI on a Cloud © March 201025 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
26
Addition to GINI GINI on a Cloud © March 201026 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
27
Gateway to the cloud GINI on a Cloud © November 0927
28
Sequence of Events 1. Send dummy variable Front EndDispatcher Database NoWorker 28 GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
29
1. Send dummy variable Sequence of Events 2. Dispatcher searches for a worker Front EndDispatcher Database 29 GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie Best Worker?
30
1. Send dummy variable 2. Dispatcher searches for a worker 3. Returns worker or dummy variable Sequence of Events Front EndDispatcher Database 30 GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie Worker’s DNS name
31
Result: Unaltered GINI 31 GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
32
Connection to server 32 Connection remains unaltered User needs no knowledge of Back End location Front EndBack End SSH Tunnel GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
33
Purpose of Dummy Variable Need to establish TCP communication Recycled as an error flag Could be used to convey info in future upgrade GINI on a Cloud © March 201033 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
34
Flexibility Non-fixed data types being passed Currently a string: IP, DNS or anything else 34 GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
35
Drawback Temporary TCP connection: Port expiration at timeout Most Clients don’t have DNS 35 GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
36
Design Dilemma 36 Maintain permanent client-dispatcher connection Resources consuming Might not bring any tangible benefits Requires alterations to gServer and core Config Requires 3 communication events (instead of 1) Drop the connection after delivering the goods Lightweight component No extra resources used Impossible (or difficult) to retrieve clients GINI on a Cloud © March 2010 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
37
1. Contents 2. Dispatcher Database Relationship 3. Design choices 4. Recommendations GINI on a Cloud © March 201037 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
38
DB keeps history of 10 last CPU usages for every worker Initial Design Database Storage: workers Table WorkersUsageHistory W134%12158045… W249%70331028… W357%2887865… ……… Database GINI on a Cloud © March 201038 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
39
Database Storage: workers Table Uptime is the average load on the system processor workerIDdnsNameuptime 1lab2-420.23 2lab2-390.18 3lab2-370.56 ……… Database GINI on a Cloud © March 201039 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie Implementation
40
Database Storage: clients Table DB keeps track of all the connections and their start time Database GINI on a Cloud © March 201040 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie ClientConnected toTime Stamp 134.204.2.56 1:03 168.141.2.9134.204.2.211:21 191.24.2.56134.204.2.371:56 ……… Initial Design
41
Database Storage: clients Table Time stamp is calculated in minutes starting midnight Database GINI on a Cloud © March 201041 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie clientIDworkerNameIP addresstimeStamp 1Lab2-37134.204.2.56789 2Lab3-39134.204.2.21300 3Lab2-42134.204.2.371056 ………… Implementation
42
Database - Dispatcher GINI on a Cloud © March 201042 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie Database Dispatcher workerIDdnsNameuptime 1lab2-420.23 2lab2-390.18 3lab2-370.56 getFreeWorker() 1 Lab2-39 3 Sort workers table by uptime 2
43
Database - Dispatcher GINI on a Cloud © March 201043 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie Database Dispatcher clientIDworkerNameIP addresstimeStamp 1lab2-37134.204.2.56789 2lab2-39134.204.2.21300 3lab2-42134.204.2.371056 4lab2-39123.45.6.78840 5 Connection between client and lab2-39 4
44
Client Log GINI on a Cloud © March 201044 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie Call to the function displayClientsLog()
45
Design Choices Database implemented in SQL Used MySQLdb: wrapper around MySQL Compatible with Python API Database stored on the SOCS MySQL server Free, available and provided by McGill Database Name: 2010GINIdb Machine Name: mysql.cs.mcgill.ca Database can be reset at anytime GINI on a Cloud © March 201045 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
46
Managing Client Connections Killing a connection Polling (time out): Dispatcher periodically polls client No response: dispatcher terminates connection Manual Client shuts down connection Sends message to dispatcher Too complex to implement: Needs modification to the core GINI code GINI on a Cloud © March 201046 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
47
Managing Client Connections Database functions provided: getTimedOutClients() updateClientTime() removeClientByID() removeClientByIP() GINI on a Cloud © November 0947 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
48
1. Purpose 2. Design Choices 3. Methodology 4. Sample Output 5. Recommendations GINI on a Cloud © March 201048 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
49
Purpose Manage workers and their connections Examine CPU usage Ensure all workers are accessible GINI on a Cloud © March 201049 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
50
Design choices GINI on a Cloud © March 201050 Paramiko Module for Python Implements secure SSH protocol Uptime Load average for past 1, 5, and 15 minutes No need to store each worker’s history David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
51
Methodology GINI on a Cloud © March 201051 Retrieve workers list from database Get CPU usage of workers SSH connection to each worker Get “uptime” information Update database entry Sleep for one minute, then start again David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
52
Database Update GINI on a Cloud © March 201052 Database Scheduler lab2-42 New uptime 0.26 3 workerIDdnsNameuptime 1lab2-420.26 2lab2-390.12 ……… 4 Request Workers List 1 lab2-42, lab2-39, … 2 lab2-39 New uptime 0.12 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
53
Sample Output GINI on a Cloud © March 201053 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
54
Dynamic Update GINI on a Cloud © March 201054 Scheduler Worker $ gAddWorker<> $ gRemoveWorker<> David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
55
Dynamic Update Two Bash scripts on server: addWorker.sh removeWorker.sh Boot configuration and shut down sequence need to be updated. $ /removeworker.sh $ /addworker.sh GINI on a Cloud © March 201055 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
56
Workers Computers in the Krieble lab All machines could be shut down simultaneously No available workers Worker could be disconnected Workers Log could be used to find new worker Initiate new connection automatically GINI on a Cloud © March 201056 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
57
Configuration Change passwords: SSH access to SOCS server Database access to SOCS MySql server GINI on a Cloud © March 201057 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
58
1. Summary 2. Advantages GINI on a Cloud © March 201058 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
59
Summary Initiating a connection ClientDispatcher Database Worker 1. Client contacts dispatcher 3. Dispatcher sends IP address of worker to the client 2. Dispatcher queries database for worker, updates database accordingly 4. Client connects to worker through SSH tunnel GINI on a Cloud © March 201059 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
60
Advantages No need to install back end Easier installation (less packages) Saves user trouble of software maintenance / update Cross-platform compatibility Back end can only run on Linux Front end supported by Linux and Windows GINI on a Cloud © March 201060 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
61
Advantages Mobility Back end runs on remote server Users can run GINI from wherever they are Resource usage Managed, automated distribution of computing resources among users Easy to monitor and to add more workers GINI on a Cloud © March 201061 David El Achkar, Simon Foucher, Mia Hochar, Marc Atie
62
Questions? GINI on a Cloud © March 201062
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.