DIFFSYNC A file synchronization program CLASS PROJECT – EEL6883 BY ADAM RADWAN GARGI CHIPALKATTI.

Slides:



Advertisements
Similar presentations
COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
Advertisements

Internet Access without the Internet Cooper Christian Chris Smart.
Heroix Longitude - multiplatform, automated application performance monitoring and management software.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Introduction to Computer Administration Introduction.
Learning Unix/Linux Bioinformatics Orientation 2008 Eric Bishop.
PlanetLab Operating System support* *a work in progress.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Novell Server Linux vs. windows server 2008 By: Gabe Miller.
The Ultimate Backup Solution.
Technical Aids for Mirroring Sites and China Popular Science Exhibition(CPSE) Chen Hui CNIC,CAS (Computer Network Information Center, Chinese Academy of.
Introduction to Unix GLY 560: GIS for Earth Scientists Class Home Page:
Linux+ Guide to Linux Certification, Second Edition
PHP Scripting Language. Introduction “PHP” is an acronym for “PHP: Hypertext Preprocessor.” It is an interpreted, server-side scripting language. Originally.
Dynamic Web site With PHP and MySQL. MySQL The combination of MySQL database and PHP scripting language is optimum for building dynamic websites. MySQL.
PHP Web Development, PHP Programming
A crash course in njit’s Afs
Take advantage of the SMS technology in your organization today!
GDC Workshop Session 1 - Storage 2003/11. Agenda NAS Quick installation (15 min) Major functions demo (30 min) System recovery (10 min) Disassembly (20.
TOPIC 1 – SERVER SIDE APPLICATIONS IFS 234 – SERVER SIDE APPLICATION DEVELOPMENT.
© 2013 Jones and Bartlett Learning, LLC, an Ascend Learning Company All rights reserved. Security Strategies in Linux Platforms and.
Windows Server MIS 424 Professor Sandvig. Overview Role of servers Performance Requirements Server Hardware Software Windows Server IIS.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
Operating Systems Operating System
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring, Managing, and Troubleshooting Resource Access.
ITN Wake Tech1 ITN270 Advanced Internet Databases Lecture 14. Introduction to MySQL Administration and the MySQL Data Directory Topics: –Overview.
Computing Fundamentals Module A Unit 2: Using Windows Vista LessonTopic 8Looking at Operating Systems 9Looking at the Windows Desktop 10Starting Application.
1 Intro to Linux - getting around HPC systems Himanshu Chhetri.
Technology Overview. Agenda What’s New and Better in Windows Server 2003? Why Upgrade to Windows Server 2003 ?  From Windows NT 4.0  From Windows 2000.
1 Guide to Novell NetWare 6.0 Network Administration Chapter 13.
Work Report Presented by Sukant, Sanjay and Ganesh.
Choosing NOS can be a complex and a difficult decision. Every popular NOS has its strengths and weaknesses. NOS may cost thousands of dollars depending.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bộ môn Mạng và Truyền Thông Máy Tính.
Components of Database Management System
Plenary meeting 2015 – Chania - Crete CASCADE Data Services Yusuf Yigini, Panos Panagos, Martha B. Dunbar Joint Research Centre - European Commission.
Linux+ Guide to Linux Certification, Second Edition
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
SUS Commander Sean Merritt. Background Department of Natural Resources uses a Software Update Server to update the user’s PCs. The log files are cryptic.
| nectar.org.au NECTAR TRAINING Module 9 Backing up & Packing up.
O.S.C.A.R. Cluster Installation. O.S.C.A.R O.S.C.A.R. Open Source Cluster Application Resource Latest Version: 2.2 ( March, 2003 )
Distributed systems A collection of autonomous computers linked by a network, with software designed to produce an integrated computing facility –A well.
Introduction to PHP and MySQL Kirkwood Center for Continuing Education By Fred McClurg, © Copyright 2015, Fred McClurg, All Rights.
1Computer Sciences Department Princess Nourah bint Abdulrahman University.
TRC Mini-Grant 2002 Dell PowerEdge 2500 Server. Project Goals Provide CS students with exposure to Linux (Unix) computing environment in CS courses Provide.
1 Week #10Business Continuity Backing Up Data Configuring Shadow Copies Providing Server and Service Availability.
Hands-On Microsoft Windows Server Implementing Microsoft Internet Information Services Microsoft Internet Information Services (IIS) –Software included.
Server Performance, Scaling, Reliability and Configuration Norman White.
General rules 1. Rule: 2. Rule: 3. Rule: 10. Rule: Ask questions ……………………. 11. Rule: I do not know your skill. If I tell you things you know, please stop.
HEP Computing Status Sheffield University Matt Robinson Paul Hodgson Andrew Beresford.
| nectar.org.au NECTAR TRAINING Module 9 Backing up & Packing up.
Features Of SQL Server 2000: 1. Internet Integration: SQL Server 2000 works with other products to form a stable and secure data store for internet and.
1 Introduction to Unix. 2 What is UNIX?  UNIX is an Operating System (OS).  An operating system is a control program that helps the user communicate.
THE WINDOWS OPERATING SYSTEM Computer Basics 1.2.
XAMPP.
© 2001, Cisco Systems, Inc. CSPFA 2.0—16-1 Chapter 16 Cisco PIX Device Manager.
Aaron Stanley King. What is SQL Azure? “SQL Azure is a scalable and cost-effective on- demand data storage and query processing service. SQL Azure is.
Presented by: Aaron Stanley King.  Benefits of SQL Azure  Features of SQL Azure  Demos, Demos, Demos!  How to query in SQL Azure  More Demos!  Recent.
Web Technology Seminar
Web Interface for Formatter
Chapter 9 Router Configuration (Ospf, Rip) Webmin, usermin Team viewer
Andy Wang Object Oriented Programming in C++ COP 3330
MySQL Sandbox Free software (GPL)
Cloud based Open Source Backup/Restore Tool
Lab 1 introduction, debrief
Module 3 Building a web app.
The Ultimate Backup Solution.
Web Programming Essentials:
APACHE WEB SERVER.
Web Servers (IIS and Apache)
For the MVHS Cyber Defense CLub
Web Application Development Using PHP
Presentation transcript:

DIFFSYNC A file synchronization program CLASS PROJECT – EEL6883 BY ADAM RADWAN GARGI CHIPALKATTI

FILE SYNCHRONIZATION Process of making sure that two or more locations contain the same up-to-date files One-way (Mirroring) or two-way file synchronization Useful for mobile workers, multiple computer users; used for backup purposes Version control tools and File synchronization tools Various existing solutions, none of which were found by OpenPublic Networks, LLC to be robust enough for production use in a distributed environment

GOALS Develop a file synchronization program which is capable of working over a diverse range of geographical placement Must be capable of running securely over common public network backbone, such as the Internet Capable of two-way synchronization of files for changes to served web pages Ability for a non-functional server to gracefully degrade while other servers detect this and recover appropriately to keep services running

RSYNC Open Source software for Unix systems Mirroring takes place with only one transmission in each direction Used to synchronize local directories or directories via a remote shell such as RSH or SSH Two checksums: a weak rolling 32-bit checksum and a strong 128-bit MD4 checksum

UNISON Runs on Unix-like operating systems (Linux, Mac OS X, and Solaris), and on Windows Can synchronize files across platforms Detects 'conflicts' where a file has been modified on both sources, and displays these to the user Uses the rsync algorithm Designed to be robust in the event of a program or system crash or a communication failure

DIFFSYNC Uses open source software – rsync, inotify Uses PHP scripting language Built on top of a MySQL 5.1 triple-master replicated database system running in chrooted jail for security Custom SSH-based VPN for three independent point- to-point TUN links between the servers Apache-based web server for verification running in chrooted jail for security phpMyAdmin used for database management

DIFFSYNC FOR THREE SERVERS Akimbo Location: Orlando, FL IP: CPU: Pentium III 800 Mhz Storage: 20GB, 128 MB OS: Gentoo Linux Philomena Location: Ft. Lauderdale, FL IP: CPU: AMD Storage: 40GB, 256 MB OS: Gentoo Linux Podice Location: Fayetteville, NC IP: CPU: Pentium Ghz Storage: 80GB, 512 MB OS: Gentoo Linux

CREATION OF DIRECTORY & FILE ~/TestArea $ mkdir 1 Array ( [0] => Array ( [dir] =>./TestArea/ [event] => CREATE,ISDIR [file] => 1 ) [1] => Array ( [dir] =>./TestArea/ [event] => OPEN,ISDIR [file] => 1 ) [2] => Array ( [dir] =>./TestArea/ [event] => CLOSE_NOWRITE,CLOSE,ISDIR [file] => 1 ) ~/TestArea $ nano./1/X Array ( [0] => Array ( [dir] =>./TestArea/1/ [event] => CREATE [file] => X ) [1] => Array ( [dir] =>./TestArea/1/ [event] => OPEN [file] => X ) [2] => Array ( [dir] =>./TestArea/1/ [event] => MODIFY [file] => X ) [3] => Array ( [dir] =>./TestArea/1/ [event] => CLOSE_WRITE,CLOSE [file] => X )

MOVE DIRECTORY & FILE ~/TestArea $ mv./1/X./1/Y Array ( [0] => Array ( [dir] =>./TestArea/1/ [event] => MOVED_FROM [file] => X ) [1] => Array ( [dir] =>./TestArea/1/ [event] => MOVED_TO [file] => Y ) ) ~/TestArea $ mv./1./2 Array ( [0] => Array ( [dir] =>./TestArea/ [event] => MOVED_FROM [file] => 1 ) [1] => Array ( [dir] =>./TestArea/ [event] => MOVED_TO [file] => 2 ) )

ATTRIB DIRECTORY & FILE ~/TestArea $ chmod 777./1 Array ( [0] => Array ( [dir] =>./TestArea/ [event] => ATTRIB [file] => 1 ) ~/TestArea $ chmod 777./1/X Array ( [0] => Array ( [dir] =>./TestArea/1/ [event] => ATTRIB [file] => X )

DELETE DIRECTORY [4] => Array ( [dir] =>./TestArea/1/ [event] => CLOSE_NOWRITE,CLOSE,ISDIR [file] => ) [5] => Array ( [dir] =>./TestArea/ [event] => DELETE,ISDIR [file] => 1 ) [6] => Array ( [dir] =>./TestArea/1/ [event] => DELETE_SELF [file] => ) [7] => Array ( [dir] =>./TestArea/1/ [event] => IGNORED [file] => ) ~/TestArea $ rm –r./1 Array ( [0] => Array ( [dir] =>./TestArea/ [event] => OPEN,ISDIR [file] => 1 ) [1] => Array ( [dir] =>./TestArea/1/ [event] => OPEN,ISDIR [file] => ) [2] => Array ( [dir] =>./TestArea/1/ [event] => DELETE [file] => X ) [3] => Array ( [dir] =>./TestArea/ [event] => CLOSE_NOWRITE,CLOSE,ISDIR [file] => 1 )

DELETE FILE ~/TestArea $ rm./1/X Array ( [0] => Array ( [dir] =>./TestArea/1/ [event] => DELETE [file] => X ) )

EDIT FILE ~/TestArea $ nano./1/X Array ( [0] => Array ( [dir] =>./TestArea/1/ [event] => OPEN [file] => X ) [1] => Array ( [dir] =>./TestArea/1/ [event] => ACCESS [file] => X ) [2] => Array ( [dir] =>./TestArea/1/ [event] => CLOSE_NOWRITE,CLOSE [file] => X ) Array ( [0] => Array ( [dir] =>./TestArea/1/ [event] => MODIFY [file] => X ) [1] => Array ( [dir] =>./TestArea/1/ [event] => OPEN [file] => X ) [2] => Array ( [dir] =>./TestArea/1/ [event] => CLOSE_WRITE,CLOSE [file] => X )

COPY FILE ~/TestArea $ cp./1/X./1/Y Array ( [0] => Array ( [dir] =>./TestArea/1/ [event] => OPEN [file] => X ) [1] => Array ( [dir] =>./TestArea/1/ [event] => CREATE [file] => Y ) [2] => Array ( [dir] =>./TestArea/1/ [event] => OPEN [file] => Y ) Array ( [3] => Array ( [dir] =>./TestArea/1/ [event] => ACCESS [file] => X ) [4] => Array ( [dir] =>./TestArea/1/ [event] => MODIFY [file] => Y ) [5] => Array ( [dir] =>./TestArea/1/ [event] => CLOSE_WRITE,CLOSE [file] => Y ) [6] => Array ( [dir] =>./TestArea/1/ [event] => CLOSE_NOWRITE,CLOSE [file] => X )

DIFFICULTIES ENCOUNTERED Must have a kernel module installed on the host server for inotify events to be recorded Problems detecting changes made to newly-created directories within the specified inotify watch point MySQL replication is sensitive to binary log changes when one node is disconnected Accurate prediction and parsing of inotify events for complete analysis of changes made to filesystem Not enough time in the semester to complete integration of all features into program

CONCLUSION Fundamentals of DiffSync program prove that file synchronization is possible for servers in remote locations Additional work will be completed to make this program ready for a production environment Any questions?

THE END THANK YOU!