Documentation places

(All the live code is in the administration project; the savane, savane-cleanup, and other projects are idle.)

Global architecture

Architecture2010.png

Architecture2010.dia

See also the rest of the GnuArchitecture.

Savannah is located in Quincy near Boston, MA, at Global Naps. The hardware was donated to the FSF by HP, and the bandwidth is provided by the FSF.

Savannah was setup and is maintained by the Savannah Hackers (SavannahTeam).

https://savannah.gnu.org/bzr/?group=administration contains step-by-step notes about the system setup.

Xen architecture

Savannah operates with five critical Xen domU's:

  • mgt.savannah.gnu.org (140.186.70.74)
  • internal.savannah.gnu.org (140.186.70.75)
  • frontend.savannah.gnu.org (140.186.70.70, 140.186.70.71)
  • vcs.savannah.gnu.org (140.186.70.72)
  • download.savannah.gnu.org (140.186.70.73)

mgt.savannah.gnu.org

This is the management domU, where maintenance scripts can be run and software can be built for the other four domU's.

Scripts may be found in the /root/maintenance directory.

Savannah hackers may maintain individual user accounts on this domU for running/creating/maintaining maintenance scripts and for other administrative functions.

From the mgt domU, the other domU's are accessible via ssh.

  • ssh root@download
  • ssh root@vcs
  • ssh root@frontend
  • ssh root@internal

SSH keys may be synced to the savannah virtual machines using the /root/maintenance/authorized_keys_replicate.sh script, which copies the /root/.ssh/vm_authorized_keys file to the other virtual machines.

The /root/.ssh/authorized_keys file should be meant to control access to only the management vm, and /root/.ssh/vm_authorized_keys for the other virtual machines. This allows us to include key's from the management vm on the other vm's without actually being in the mgt vm's authorized_keys file.

internal.savannah.gnu.org

The internal domU runs mysql as well as bind (for the .savannah.gnu.org/.savannah.nongnu.org domains)

frontend.savannah.gnu.org

The frontend domU runs the web server instances for Savannah.

The frontend Savane repository pulls from administration/savane.git

vcs.savannah.gnu.org

This is the version control system virtual machine. It runs cvs/git/bzr/etc as well as webservers for repository viewing.

Alone among the Savannah hosts, it allows ssh from everywhere since that is part of VC access, and has a custom sshd_config directive AuthorizedKeysExec to look up ssh keys in the mysql database.

Users themselves are authenticated in /etc/nsswitch.conf with a mysql module (libnss-mysql), also directly against the mysql database on internal.

download.savannah.gnu.org

This is the "download" vm, it runs a webserver and stores the released packages from Savannah.

High load

If a DomU is experiencing heavy load, running these commands will dump some basic system state for possible post mortems:

d=`date +%F.%T`; cd /tmp; top>top-$d & ps auxww>ps-$d & lsof>lsof-$d & 
netstat --numeric-hosts>netstat-$d &

We have often seen high loads due to vc browsers being hit too hard.

Testing Savannah VMs

Frontend serves not just Savannah but also some other virtual sites. For testing check this list.

  • https://savannah.gnu.org/
  • https://savannah.gnu.org/maintenance/FrontPage/
  • http://audio-video.gnu.org/
  • http://download.savannah.gnu.org/mirmon/savannah/
  • rsync://audio-video.gnu.org/

The mirrors redirection is handled by Apache2::Geo::Mirror, normally installed via cpan.

See also SavannahServices for list of publically accessible services.

Misc

Suggested Debian mirror: http://debian.csail.mit.edu/debian/

Initial setup of the previous hardware: http://fsffrance.org/news/article2001-05-28-01.en.html

2 sets of files are replicated from/to Savannah: