IM-pack: Software Installation Using Disk Images

Slides:



Advertisements
Similar presentations
VMWare to Hyper-V FOR SERVER What we looked at before migration  Performance – Hyper-V performs at near native speeds.  OS Compatibility – Hyper-V.
Advertisements

Leveraging WinPE and Linux Preboot for Effective Provisioning Jonathan Richey | Director of Development | Altiris, Inc.
GNU/Linux Filesystem 1 st AUT GNU/Linux Festival Computer Engineering & IT Department Bahador Bakhshi.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
The Operating System The operation system (OS) is a set of programs that coordinates: Hardware functions Interaction between application software and computer.
Vincenzo Vagnoni LHCb Real Time Trigger Challenge Meeting CERN, 24 th February 2005.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
Chapter-4 Windows 2000 Professional Win2K Professional provides a very usable interface and was designed for use in the desktop PC. Microsoft server system.
Hands-On Microsoft Windows Server 2008
© 2012 The McGraw-Hill Companies, Inc. All rights reserved. 1 Third Edition Chapter 6 Today’s Windows Windows Vista and Windows 7 McGraw-Hill.
CIS 191 – Lesson 2 System Administration. CIS 191 – Lesson 2 System Architecture Component Architecture –The OS provides the simple components from which.
Chapter 2 BAI517 Chris Redford.  Different version of Linux are called Distributions or Distros. Each one has its strengths and focus: Red Hat / Fedora.
Exercise #1: Exploring Open- Source Operating Systems with Virtual Machines J. H. Wang Mar. 9, 2010.
1 What is a Kernel The kernel of any operating system is the core of all the system’s software. The only thing more fundamental than the kernel is the.
Software Installation Using Disk Images By: Irena Lanc and Peter Sempolinski.
Carrying Your Environment With You or Virtual Machine Migration Abstraction for Research Computing.
30/10/2000 Software Installation and Maintenance at LAL - JLab 2000 Software Installation and Maintenance at LAL Michel Jouvin LAL, Orsay
Linux Introduction What is Linux? How do you use it?
USING YOUR INSTALLED LINUX SYSTEM.  Common Linux Tasks  Installing Custom Packages  Common GUI Applications  Command Line Shell  Directory Structure/Navigation.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Manage Directories and Files in Linux. 2 Objectives Understand the Filesystem Hierarchy Standard (FHS) Identify File Types in the Linux System Change.
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
Linux Overview Why Linux ? Not-so-ancient history –Torvalds, Linus Torvalds, 002 the Helsinki University, as a student, low budget, work home –rapid and.
Manage Directories and Files in Linux Part 2. 2 Identify File Types in the Linux System The file types in Linux referred to as normal files and directories.
Chapter 9: Networking with Unix and Linux. Objectives: Describe the origins and history of the UNIX operating system Identify similarities and differences.
Chapter 2 BAI517 Chris Redford.  Different version of Linux are called Distributions or Distros. Each one has its strengths and focus: Red Hat / Fedora.
IT1001 – Personal Computer Hardware & System Operations Week 6 - Introduction to software installation.
National Energy Research Scientific Computing Center (NERSC) CHOS - CHROOT OS Shane Canon NERSC Center Division, LBNL SC 2004 November 2004.
© 2012 The McGraw-Hill Companies, Inc. All rights reserved. 1 Third Edition Chapter 6 Today’s Windows Windows Vista and Windows 7 McGraw-Hill.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
CEG 2400 FALL 2012 Linux/UNIX Network Operating Systems.
Solaris 가상화 기술 이강산. What is a zone? A zone is a virtual operating system abstraction that provides a protected environment in which applications run.
Course 03 Basic Concepts assist. eng. Jánó Rajmond, PhD
Securing a Host Computer BY STEPHEN GOSNER. Definition of a Host  Host  In networking, a host is any device that has an IP address.  Hosts include.
LINUX Zhengli Zhu, School of Life Sciences. Outline 1. ABC of Linux 2. Basic orers of Linux 3. Bash Programming.
UNIX U.Y: 1435/1436 H Operating System Concept. What is an Operating System?  The operating system (OS) is the program which starts up when you turn.
Thousands of Linux Installations (and only one administrator) A Linux cluster client for the University of Manchester A V Le Blanc I T Services University.
Building programs LinuxChix-KE. What happens in your CPU? ● It executes a small set of instructions called "machine code" ● Each instruction is just a.
Linux Administration – Finding You Way on the Command Line The Linux File Directory or Tree.
Use Cases, Issues, Proposed Solutions: Software and Environment Non Privileged User Package Management Francois-Denis Gonthier Kryptiva inc.
Computer System Structures
Autonomy Paradigm Warning: This document is a part of my “Responsible Programming” theme. All docs related to that theme just gather some of my ideas.
Operating System Kernel Compilation
bitcurator-access-webtools Quick Start Guide
Android Mobile Application Development
Containers as a Service with Docker to Extend an Open Platform
Implementation of Embedded OS
SYSTEM ADMINISTRATION PART I by İlker Korkmaz and Kaya Oğuz
Chapter Objectives In this chapter, you will learn:
Computer System Laboratory
Install external command line softwares
File System Implementation
LINUX WINDOWS Vs..
UBUNTU INSTALLATION
Installing OS.
Operating System Structure
TOPIC 6: SYSTEM START-UP AND CONFIGURATION
The Linux Operating System
9 Linux on the Desktop.
LINUX WINDOWS Vs..
Virtual Machines.
Operating System Kernel Compilation
Overview Introduction VPS Understanding VPS Architecture
OS Virtualization.
Operating Systems Lecture 4.
IS3440 Linux Security Unit 7 Securing the Linux Kernel
SUSE Linux Enterprise Desktop Administration
Outline Chapter 2 (cont) OS Design OS structure
Discussing an OVS/OVN Split
COT 5611 Operating Systems Design Principles Spring 2014
Presentation transcript:

IM-pack: Software Installation Using Disk Images Irena Lanc and Peter Sempolinski

The Problem with Installation Traditional methods of software installation are time-consuming, especially for software with many small files. MS office can take up to 1 hour Most existing packaging systems require a user to be root for installation, un-installation, and updates. This can avoided by downloading and compiling source code, or manually placing bin, usr, lib files. However, these solutions are fiddly and difficult in comparison to package managers.

Idealized Installation Users should be able to install their own software locally for anything not really needing root privileges: Avoid dealing with system administrators Be able to carry a preferred batch of software packages with them from machine to machine Often, user demands on administrators for software produces redundancies

Our Idea Disk images are a potential way of solving these problems. Loop-mounting disk images is much faster than copying files Easier to unmount a disk image than remove files Non-root users can own image files RAM disk images already used in liveCD setups like Knoppix However, many OS components are not designed for this sort of thing.

Our Goal The goal of our project was to quantify the feasibility of such an approach by implementing a basic framework for disk-image software. Will such software, so mounted, work transparently and correctly? What are the current limitations of the OS components needed to build such a system? Of those limitations, which are inherent to the idea and which can be overcome?

The IM-pack System This system involves 3 file locations: 3) 1) 2)

Underlying ext2 filesystem Software components: Virtual File System Image un-installation script Unionfs Image-installation script X X Loop-mounted Device Loop-mounted Device Loop- mounted Device Loop- mounted Device Underlying ext2 filesystem

Usability Our first main metric was qualitative. Can we build a system, using the tools we have now, that is transparent to the user? Recall our last presentation . . .

Install:

Use:

Remove:

Current Limitations Most OS components were not really designed for what we were doing: Component: Issue: Our Workaround: Ideal fix for future work: Unionfs-kernel module Not available in all kernels YES: Ubuntu 9.04 NO: Ubuntu 9.10 HIDDEN limit: about 150 branches Tested performance of both kernel and fuse versions. A final production version configured to run with a Linux distribution Unionfs-fuse Often unwilling to be unmounted. Danger of self-referential file system deadlock. Effectively limited to about 1000 branches Did not mount over top of /usr (Security forbids this as well.) Ideal system would merge functions of Unionfs and loop devices and be only one module. This removes need for many devices and unmounting Loop Devices Limited in kernel to 8 If bypassed, slows virtual machines on boot In 9.10: each device has desktop icon Adjusted GRUB boot flags. Virtual File System Often unaware when devices are no longer busy. Uninstall used backoff and retry when unmounting. Include function to detect what program is locking a filesystem. dpkg – software source Bizarre file corruption causing some packages to mangle file sizes when extracted. Did not use those packages. Images for a production level system would be compiled specifically for it. Ubuntu Update Notifier For some bizarre reason tended to lock all loop devices as busy when appearing. Removed update notifier. Fix that bug in update notifier

Security Limitations Security was the major inherent limit: 1) Our executable had to use both a large number of string buffers and the suid bit. 2) If users allowed to mount images, one could provide an image containing a root shell. Therefore, suid must be disabled on all IM-pack mounts This means NO root level programs allowed 3) Mounting over /usr and similar means one can “replace” files read by root programs. For multiple users, only secure way is to have unioned directory in an alternate location, such as: ~/unionroot/

Performance Metrics Though adding up to 1000 loop devices does slow down the system, it does not render it unusable – it remains functional and responsive. Note: One of us attempted to find every single package that they had ever used which was not part of the core system and barely found 300.

Results: Average Speed of installation: Unionfs-fuse: 11.634 pkg/sec Unionfs-kernel: 1.39 pkg/sec Regular .deb package extraction: 5.1 Mb/sec For smaller packages, the speed is about the same. However, as packages get larger, our system benefits.

Time to Install an image vs. Number of Already Installed Images Time (s) Number of images installed

Time for ls /usr/bin of the union mount vs Time for ls /usr/bin of the union mount vs. Number of Installed Disk Images Time (s) Number of images installed

Time vs. Number of disk images remounted Time (s) Number of images to be remounted

Conclusion Though IM-pack incorporates existing OS system components and tools not designed for our specific goal, it nevertheless exhibits good performance, especially within reasonable usage bounds. The only major limitation is security, but this only means root level components and direct placement on directories expecting root files cannot be done. Other components can optimized to yield greater performance Unionfs Loop devices