Trial1 Server Software: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
This page describes the software for a quick first prototype of the school server, intended for use in trials of the XO laptop using [[Trial1 Software]].
This page describes the software for a quick first prototype of the [[School server]], intended for use in trials of the XO laptop using [[Trial1 Software]]. This is not necessarily representative of the system OLPC plans to ship in production, it contains many simplifications to speed prototyping.


=Target Platform=
=Target Platform=
Line 15: Line 15:
* IDE (PATA)
* IDE (PATA)
* USB
* USB

The networking interfaces will be varied. Each server will support up to three Marvell wireless mesh networking modules connected via USB 2.0. In addition, at least two 100baseT network intefaces will be provided for connection to the WAN and LAN. These may also be connected via USB.


No graphics capabilities are planned. If a server (such as a desktop machine) has an attached keyboard and display, they will used for a text console.
No graphics capabilities are planned. If a server (such as a desktop machine) has an attached keyboard and display, they will used for a text console.
Line 25: Line 27:
* [http://www-128.ibm.com/developerworks/linux/library/l-fedora-livecd/index.html LiveCD intro]
* [http://www-128.ibm.com/developerworks/linux/library/l-fedora-livecd/index.html LiveCD intro]
* [http://www.linux.com/print.pl?sid=07/01/11/1841241 Linux.com article]
* [http://www.linux.com/print.pl?sid=07/01/11/1841241 Linux.com article]

==Disk Partitions==

The OS and applications should have the root partition, initialized by the disk image. Optimum size TBD, 5GB for now. /dev is provided by udev, /proc and /sys by the kernel.

A logical volume manager will be used to manage the storage used by students and library content.
One logical volume will be used, which will use a second partition on the disk.

Memory swap space will require one 2GB partition

Can Pilgrim handle a separate /var partition ? (1GB for now)



=Manifest=
=Manifest=
Line 51: Line 65:


===SQLite===
===SQLite===

SQLite 3 will be provided.


==Web Server==
==Web Server==


Apache 2
Apache 2 will be provided.


Installed modules will include:
Modules:
*mod_perl
*mod_perl
*mod_php
*mod_php
Line 71: Line 87:
==MediaWiki==
==MediaWiki==


MediaWiki will be installed on the server, at: http://schoolserver/wiki/
[http://www.mediawiki.org/wiki/MediaWiki MediaWiki] will be installed on the server, and made available at: http://schoolserver/wiki/


Content (SJ) will provide default content. How is this packaged and installed ?
Content (SJ) will provide default content. How is this packaged and installed ?

==MoinMoin==

[http://moinmoin.wikiwikiweb.de/ MoinMoin] will be installed on the server.

==Networking==

[[Image:NetworkView.png|Sketch of the school server and three mesh segments of laptops]]
[[Media:NetworkView.pdf|Printable version of network sketch]]

A single school server will be deployed in these initial installations, simplifying the network. Between two and three wireless mesh network interfaces will be deployed, attached to the school server via USB. Two wired networking interfaces will also be provided, for connection to the Internet via a WiFi interface or DSL, satellite, or 2.5G/3G modem.

=== Filtering & Masquerading ===

Network Address Translation (NAT) and Port Address Translation will be provided on the network interface connecting to the Internet. These mechanisms allow all of the laptops in the school to share a single IP address
This is provided by the iptables mechanism in the Linux kernel, but the configuration mechanism is still unclear.

The only other packet filtering done by the school server is a transparent proxy for packets exiting the server addressed to port 80. These are redirected to the school server's port 3128, where the Squid HTTP cache will be listening.

=== Routing ===

The server will be tasked with routing between the different network segments attached to it. These include:

* Between one and three mesh network segments
* A wired network segment, which may include standalone APs.
* An optional wireless segment using the server as the AP ?

====Bridging vs. Routing====

While there is a temptation to declare the individual network segments part of the same subnet and bridge between them, it was instead decided to declare them individual subnets and route between them. The main outcome of this being that broadcast and multicast packets will not be relayed between wireless mesh segments. In cases where it is determined that this poses a problem, we may explicitly route some multicast packets between mesh segments.

=== DHCP ===

DHCPD will be provided on all network segments except the one connected to the WAN.

Devices on the 'internal' network will be assigned non-routable IP addresses, in the 10.0.x.x range.

=== DNS ===

A local DNS server will be provided to cache common requests, in order to provide better network performance. It may also be used to provide a DNS entry for each laptop, using a DHCP-DNS connection script, or explicit DHCP/DNS server integration.

=== HTTP Cache ===

Squid 2.6 will be used for now.


==Maintenance & Utility==
==Maintenance & Utility==
Line 86: Line 146:


Provided as a command line tool, not run as a daemon. Used for backups.
Provided as a command line tool, not run as a daemon. Used for backups.



=Updating=
=Updating=


The school server software will be updated from an OLPC maintained repository, using yum, the package manager in Fedora.
The [[School server]] software will be updated from an OLPC maintained repository, using yum, the package manager in Fedora. While this repository will probably be country/region specific, it currently resides in Cambridge, US.

An software update will be periodically triggered on the school server. Probably weekly ?

Laptop updates use a separate mechanism, which relies on the school server to provide the update files.


=Monitoring=
=Monitoring=

A method for monitoring the health of school servers deployed in the field is still under investigation.

* [http://sourceforge.net/projects/swatch/ Swatch] was considered
* [http://munin.projects.linpro.no/ Munin] seems promising
* [http://comon.cs.princeton.edu/ CoMon] is the starting point for what will eventually be deployed

Revision as of 03:51, 19 March 2007

This page describes the software for a quick first prototype of the School server, intended for use in trials of the XO laptop using Trial1 Software. This is not necessarily representative of the system OLPC plans to ship in production, it contains many simplifications to speed prototyping.

Target Platform

The target platforms for this software are:

  • An XO laptop (AMD i586)
  • A conventional desktop machine (Intel or AMD i586)
  • XSX, a dozen early prototypes (hardware selection ongoing, i586)

At least 128 MB of memory (and a storage device capable of supporting virtual memory) is required.

The storage device may be attached using:

  • SATA
  • IDE (PATA)
  • USB

The networking interfaces will be varied. Each server will support up to three Marvell wireless mesh networking modules connected via USB 2.0. In addition, at least two 100baseT network intefaces will be provided for connection to the WAN and LAN. These may also be connected via USB.

No graphics capabilities are planned. If a server (such as a desktop machine) has an attached keyboard and display, they will used for a text console.

Installation

It has been suggested that Pilgrim be used for building bootable images of the server software.

Disk Partitions

The OS and applications should have the root partition, initialized by the disk image. Optimum size TBD, 5GB for now. /dev is provided by udev, /proc and /sys by the kernel.

A logical volume manager will be used to manage the storage used by students and library content. One logical volume will be used, which will use a second partition on the disk.

Memory swap space will require one 2GB partition

Can Pilgrim handle a separate /var partition ? (1GB for now)


Manifest

This is the software manifest for the school server.

OS

The software will be based on Fedora Core 6. Where no explicit version information is provided for software, the version included in FC6 should be assumed.

We will be running a recent kernel (currently 2.6.20.), capable of booting on both the laptop and a more conventional desktop machine.

Interpreters

Perl

Python

Python 2.4 for now. When the laptop transitions to 2.5 (before release in September ?), the server will as well.

Database Servers

MySQL

MySQL will be provided for use by local services. Access will be limited to localhost.

SQLite

SQLite 3 will be provided.

Web Server

Apache 2 will be provided.

Installed modules will include:

  • mod_perl
  • mod_php
  • mod_include

Moodle

Moodle will provide tools for teachers.

Martin Langhoff will help with this once we have an image ?

Moodle may provide a solution for some of the school administration tasks as well.

MediaWiki

MediaWiki will be installed on the server, and made available at: http://schoolserver/wiki/

Content (SJ) will provide default content. How is this packaged and installed ?

MoinMoin

MoinMoin will be installed on the server.

Networking

Sketch of the school server and three mesh segments of laptops Printable version of network sketch

A single school server will be deployed in these initial installations, simplifying the network. Between two and three wireless mesh network interfaces will be deployed, attached to the school server via USB. Two wired networking interfaces will also be provided, for connection to the Internet via a WiFi interface or DSL, satellite, or 2.5G/3G modem.

Filtering & Masquerading

Network Address Translation (NAT) and Port Address Translation will be provided on the network interface connecting to the Internet. These mechanisms allow all of the laptops in the school to share a single IP address This is provided by the iptables mechanism in the Linux kernel, but the configuration mechanism is still unclear.

The only other packet filtering done by the school server is a transparent proxy for packets exiting the server addressed to port 80. These are redirected to the school server's port 3128, where the Squid HTTP cache will be listening.

Routing

The server will be tasked with routing between the different network segments attached to it. These include:

  • Between one and three mesh network segments
  • A wired network segment, which may include standalone APs.
  • An optional wireless segment using the server as the AP ?

Bridging vs. Routing

While there is a temptation to declare the individual network segments part of the same subnet and bridge between them, it was instead decided to declare them individual subnets and route between them. The main outcome of this being that broadcast and multicast packets will not be relayed between wireless mesh segments. In cases where it is determined that this poses a problem, we may explicitly route some multicast packets between mesh segments.

DHCP

DHCPD will be provided on all network segments except the one connected to the WAN.

Devices on the 'internal' network will be assigned non-routable IP addresses, in the 10.0.x.x range.

DNS

A local DNS server will be provided to cache common requests, in order to provide better network performance. It may also be used to provide a DNS entry for each laptop, using a DHCP-DNS connection script, or explicit DHCP/DNS server integration.

HTTP Cache

Squid 2.6 will be used for now.

Maintenance & Utility

The following services will be provided:

sshd

Used both for maintenance and as the transport for backups from the laptops.

rsync

Provided as a command line tool, not run as a daemon. Used for backups.

Updating

The School server software will be updated from an OLPC maintained repository, using yum, the package manager in Fedora. While this repository will probably be country/region specific, it currently resides in Cambridge, US.

An software update will be periodically triggered on the school server. Probably weekly ?

Laptop updates use a separate mechanism, which relies on the school server to provide the update files.

Monitoring

A method for monitoring the health of school servers deployed in the field is still under investigation.

  • Swatch was considered
  • Munin seems promising
  • CoMon is the starting point for what will eventually be deployed