Installare GNU/Linux su un ampio numero di client con...

42
Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio numero di client con SystemImager e BitTorrent Andrea Righi <[email protected]>

Transcript of Installare GNU/Linux su un ampio numero di client con...

Page 1: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Installare GNU/Linux su un ampio numero di client con

SystemImager e BitTorrent

Andrea Righi <[email protected]>

Page 2: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

The problem

You have to install a huge number of computers:✔ PC labs,✔ Server farms,✔ HPC clusters,✔ Complex grid-computing environments,✔ Etc.

But you don't have enough time!

Page 3: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Some practical examples

Page 4: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

The tool

SystemImager is a software which automates GNU/Linux installs, software distributions and production deployment

Page 5: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Major Goals

Support all Linux distributions

Support a large number of architectures

Make it solve massive installation problems

Create a centralized point of installation and maintenance

Page 6: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

What does it do for me?

System Installation

System Updates

Build replicants of machines

File system or block device migration

Page 7: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Advantage of SystemImager

It's open-source (GNU GPL v2)

File-oriented approach:✔ Distribution agnostic✔ Hardware independence✔ Filesystem independence✔ Plain filesystem dump: exclude swap space or

unused partitions✔ Block device independence✔ Live customization (manipulate cloned

filesystems directly)

Page 8: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Basic concepts

Page 9: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Basic concept: image

Image:✔ Live snapshot of a machine containing files and

directories from the root of that machine's filesystem

✔ chroot-able filesystem stored in /var/lib/systemimager/images/$NAME

✔ Examples:✔ /var/lib/systemimager/images/RHEL4✔ /var/lib/systemimager/images/Ubuntu_gutsy✔ /var/lib/systemimager/images/HPC_1.0✔ ...

Page 10: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Basic concept: image server

Image Server:✔ a server that has all the images available for the

installation✔ “Jukebox” of images

Page 11: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Basic concept: client

Client:✔ a machine to be auto-installed with a (single)

pre-selected image✔ Example: the dancing penguins are the clients :-)

Page 12: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Basic concept: transport

Transport:✔ the protocol used to distribute images from the

image server to the clients✔ push/pull/p2p approach✔ Examples:

✔ rsync, multicast, SSL, BitTorrent, ...

Page 13: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Application stack (SIS => SystemImager)

Image Server(SystemImager)

HPC clusters

HA-clusters

Web farms

PC labs

Clients

Page 14: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Application stack (SIS => SystemImager)

Image Server(SystemImager)

Golden client

HPC clusters

HA-clusters

Web farms

PC labs

Software(Debootstrap, YaST,yum, SystemInstaller, ...)

Clients

Page 15: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Application stack (SIS => SystemImager)

Image Server(SystemImager)

Golden client

HPC clusters

HA-clusters

Web farms

PC labs

Software(Debootstrap, YaST,yum, SystemInstaller, ...)

Clients

RHEL4HPC-1.0

SUSE10 Debian4

Page 16: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Application stack (SIS => SystemImager)

Image Server(SystemImager)

Golden client

HPC clusters

HA-clusters

Web farms

PC labs

Software(Debootstrap, YaST,yum, SystemInstaller, ...)

Clients

RHEL4HPC-1.0

SUSE10 Debian4SystemImager

transports+

SystemConfigurator

Page 17: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Application stack (SIS => SystemImager)

Image Server(SystemImager)

Golden client

HPC clusters

HA-clusters

Web farms

PC labs

Software(Debootstrap, YaST,yum, SystemInstaller, ...)

Clients

RHEL4HPC-1.0

SUSE10 Debian4SystemImager

transports+

SystemConfigurator

Page 18: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Transports

Page 19: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

rsync transport

rsync (plain / SSL encrypted):✔ Client-server approach

✔ Limited in scalability✔ Limited in reliability with a lot of clients

✔ Max Theoretical Bandwidth: Us / N

Page 20: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

rsync diagram

Image server

Client1

Client2

ClientN

...

Upload bandwidth = Us

Download bandwidth = Us / N

Page 21: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Multicast (Flamethrower) transport

Flamethrower:✔ Multicast approach:

✔ Perfect scalability✔ But limited in reliability

✔ Max Theoretical Bandwidth: Us

Page 22: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Multicast (Flamethrower) diagram

Image server

Client1

Client2

ClientN

...

Upload bandwidth = Us

Download bandwidth = Us

Page 23: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

BitTorrent overview

BitTorrent is a TCP/IP p2p oriented protocol designed for transferring files

Peers connect to each other directly to send and receive chunks of data

There is a central server (tracker) which coordinates the action of all such peers

The tracker does not have any knowledge of the contents of the files being distributed

Users upload (transmit outbound) at the same time they are downloading (receiving inbound)

Page 24: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

BitTorrent transport

BitTorrent:✔ p2p approach: scalability && reliability✔ Qiu and Srikant model

✔ Total upload rate: ✔ Steady state:

✔ x(t) downloaders => ✔ y(t) uploaders =>

✔ Max Theoretical Bandwidth:✔ Us (steady state)

dx t dt

=0

dx t dt

=0

x t y t

Page 25: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

BitTorrent diagram

Image server (+tracker)

Client1

Client2

ClientN

...

Upload bandwidth = Us

Download bandwidth = Us (in steady state)

Page 26: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Testbed environment

Page 27: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

BCX/5120 cluster @

IBM BCX/5120, with 5120 cores, is the largest computer in Italy for Scientific Computing

2 dual-core AMD Opteron(tm) 2.4GHz, 8GB RAM per node

It is the 44th most powerful computer in the world (TOP500).

Page 28: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

BCX network topology

Cisco Catalyst 6513

IBM Bladecenter H (from 1 up to 11)

IBM LS21 switch

IBM Blade LS21 (x 14)

BladeCenter H internal bus(1Gb/s)

1 14...

1 Gb/s x 4 uplinks

IBM e326m(image server)

1 Gb/s link

Page 29: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Experimental results

Page 30: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Deployment time

Page 31: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Rsync: 50 clients (download rate)

Page 32: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Multicast: 50 clients (download rate)

Page 33: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

BitTorrent: 50 clients (download rate)

Page 34: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Rsync: 50 clients (aggregated bandwidth)

Page 35: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Multicast: 50 clients (aggregated bandwidth)

Page 36: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

BitTorrent: 50 clients (aggregated bandwidth)

Page 37: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Conclusion

Page 38: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Advantages

Quicker deployment of images

Safer deployment (better error handling)

Less load on the image server✔ no need to buy a powerful machine

Page 39: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Disadvantages

More disk space consumption!✔ images + tarballs of images

Images and tarballs must be kept in-sync✔ Re-generate tarball and .torrent at each image

change

Page 40: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Future work

Improve security (encryption of BT tarballs)

Exploit the p2p approach to create distributed and redundant repositories of custom image

Virtual cluster deployment (re-imaging using the same physical resource pool)

Use BT transport also for updates (pushing changes/differences of images)

Page 41: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

References

Web:✔ http://www.systemimager.org

Mailing list:✔ [email protected][email protected]

IRC:✔ #sisuite (irc.freenode.net)

Page 42: Installare GNU/Linux su un ampio numero di client con ...erlug.linux.it/linuxday/2007/contrib/3_righi... · Andrea Righi – LinuxDay 2007 (Oct 27) Installare GNU/Linux su un ampio

Andrea Righi – LinuxDay 2007 (Oct 27)

Tank you for attending