software installation using disk images by: irena lanc and peter sempolinski
TRANSCRIPT
Software Installation Using Disk Images
By: Irena Lanc and Peter Sempolinski
Software Installation Conventional methods of software installation
involve: Downloading the package Unpacking Compiling Managing path and environment variables
This leads to package files being strewn in directories across disk.
How can this system be made more efficient?
Our Idea Create a disk image of the software package,
and mount it as a loop device.
Virtual File System
Loop- mounted Device
Loop-mounted Device
Unionfs
Underlying ext2 filesystem
Image-installation
script
Loop- mounted Device
Image un-
installationscript
Loop-mounted Device
XX
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Basic Working Prototype
Number of loop devices hard-limited in kernel Possible to ask for more devices at boot time. However,
this greatly slows down the boot sequence when number of devices > 4000.
System accommodates up to 1000 devices comfortably. A typical system could have between 1000-2000
software packages
Complications
0 500 1000 1500 2000 2500 3000 3500 4000 45000
50
100
150
200
250
300
350
400
Loop Devices vs Boot Time
Number of Loop Devices
Boot
tim
e (
s)
Complications Dependencies
Images created using files from debian packages, but since we’re re-packaging, dependencies not automatically fetched.
Further tools needed to manage dependencies.
Unionfs Demands careful coordination of merges by the script. As yet untested in scalability when merging hundreds of
packages.
Road Ahead 1. Add more scripts to manage dependencies,
and generally make system easier to use.
2. Create a test bed to obtain metrics such as program install time, memory/processor usage, and scalability.
3. Kernel hacking To get more out of Unionfs/loopback devices, certain
aspects could be modified to provide more flexibility and better performance