Bundle Installation on Debian

perfSONAR combines various sets of measurement tools and services. For perfSONAR 4.2 we provide the whole perfSONAR toolkit as Debian packages for six different architectures. This should enable you to deploy a full perfSONAR node on one of the following distributions:

  • Debian 9 Stretch
  • Ubuntu 16 Xenial Xerus
  • Ubuntu 18 Bionic Beaver

Debian meta packages are available to install the bundles described in perfSONAR Installation Options. The steps in the remaining sections of this document detail the steps required for installing these bundles.

System Requirements

  • Architecture: We provide Debian packages for 6 different architectures:
    • 32-bit (i386)
    • 64-bit (amd64)
    • ARMv4t and up (armel) (only for Debian)
    • ARMv7 and up (armhf)
    • ARM64 (arm64)
    • PPC64 (ppc64el)
  • Operating System: Any system running a Debian 9, Ubuntu 16 or Ubuntu 18 server OS is supported. Other Debian flavours derived from Debian 9 or Ubuntu 16/18 might work too but are not officially supported.
  • See Hardware Requirements for hardware requirements and more.

Note

Installing a graphical/desktop environment with perfSONAR is not supported. These environments generally come with a Network Manager that conflicts with the way that perfSONAR is tuning the network interface parameters. We recommend doing only server grade OS installs.

Installation

Step 1: Configure APT

All you need to do is to configure the perfSONAR Debian repository source, along with our signing key, on your Debian/Ubuntu machine. You will need to follow the steps below as privileged user:

cd /etc/apt/sources.list.d/
wget http://downloads.perfsonar.net/debian/perfsonar-release.list
wget -qO - http://downloads.perfsonar.net/debian/perfsonar-official.gpg.key | apt-key add -
  • Ubuntu only. Additionnaly, if you’re running a stripped down Ubuntu installation, you might need to enable the universe repository. This is done with the following command:

    add-apt-repository universe
    

Then refresh the packages list so APT knows about the perfSONAR packages:

apt-get update

Step 2: Install a Bundle

Choose one of the following bundles and see perfSONAR Installation Options page for more information about what these bundles are.

  • perfSONAR Tools:

    apt-get install perfsonar-tools
    
  • perfSONAR Test Point:

    apt-get install perfsonar-testpoint
    

    During the installation process, you’ll be asked to choose a password for the pscheduler database.

  • perfSONAR Core:

    apt-get install perfsonar-core
    

    During the installation process, you’ll be asked to choose a password for the pscheduler and the esmond databases.

  • perfSONAR Central Management:

    apt-get install perfsonar-centralmanagement
    

    During the installation process, you’ll be asked to choose a password for the esmond database.

  • perfSONAR Toolkit:

    apt-get install perfsonar-toolkit
    

    During the installation process, you’ll be asked to choose a password for the pscheduler and the esmond databases.

Optional Packages

In addition to any of the bundles above you may also optionally choose to install one or more of our add-on packages (these are automatically added on the perfsonar-toolkit bundle):

  • apt-get install perfsonar-toolkit-ntp - Automatically detects closest NTP servers and sets them in ntp.conf
  • apt-get install perfsonar-toolkit-security - Adds default firewall rules and installs fail2ban
  • apt-get install perfsonar-toolkit-servicewatcher - Adds a cron job that checks if services are still running
  • apt-get install perfsonar-toolkit-sysctl - Adds default sysctl tuning settings
  • apt-get install perfsonar-toolkit-systemenv-testpoint - Configures auto-update and set some default logging locations

You may also run the command below to get everything listed above on perfsonar-testpoint and perfsonar-core bundles:

/usr/lib/perfsonar/scripts/install-optional-packages.py

Note

On a perfsonar-centralmanagement system you probably only want the optional perfsonar-toolkit-servicewatcher package to be installed.

Reducing installation size

If you want to reduce the perfSONAR installation size as much as possible, you can call apt-get with the --no-install-recommends option. This will prevent Debian recommended packages to be automatically installed (you can also configure this globaly in the APT configuration files with the statement APT::Install-Recommends "0";). This can become useful when you want to install the perfsonar-testpoint bundle with the less overhead possible.

Step 3: Verify NTP and Tuning Parameters

Step 3 can be ignored for perfsonar-toolkit package installation as its instructions are included and run automatically

  • NTP Tuning

    • Auto-select NTP servers based on proximity

      The Network Time Protocol (NTP) is required by the tools in order to obtain accurate measurements. Some of the tools such as OWAMP will give correct results unless NTP is running. If the optional package perfsonar-toolkit-ntp was installed this has already been done for you, but if you want to re-run manually:

      /usr/lib/perfsonar/scripts/configure_ntpd new
      service ntp restart
      

    You can also configure your own set of NTP servers if you want.

    You can verify if NTP is running with the following command:

    /usr/sbin/ntpq -p
    
  • System Tuning

    It is important to make sure that your host is properly tuned for maximum TCP performance on the WAN. You should verify that htcp, not reno, is the default TCP congestion control algorithm, and that the maximum TCP buffers are big enough for your paths of interest.

    If you have installed the perfsonar-toolkit-sysctl package, all should be ready for you, but if you want to rerun manually:

    /usr/lib/perfsonar/scripts/configure_sysctl
    

    Please refer to linux host tuning for more information.

Step 4: Firewall and Security Considerations

If you have installed the perfsonar-toolkit-security package, then your iptables are already configured with our default rules. The package also installs fail2ban.

If you would like to configure the rules manually, then please review the document here on the ports that need to be open.

The perfsonar-toolkit-security package uses firewalld to manage the firewall rules.

Additionally, pscheduler allows you to limit the parameters of tests such as duration and bandwidth based on the requesters IP address. It does this through the file pscheduler/limits.conf. ESnet provides a file containing all R&E subnets, which is updated nightly. Instructions on how to download this file and configure pScheduler to use it are described on the page Limiting Tests to R&E Networks Only.

Note that the perfsonar-toolkit-security package is automatically included in the perfsonar-toolkit bundle.

Step 5: Auto updates

If you have installed the perfsonar-toolkit-systemenv-testpoint package, then you’re all set for the auto-updates of perfSONAR packages and security fix for your OS.

To ensure you always have the most current and hopefully most secure packages you can install unattended-upgrades. You’ll need to configure it to actually install the available updates with the following commands:

apt-get install unattended-upgrades
echo 'APT::Periodic::Update-Package-Lists "1";' > /etc/apt/apt.conf.d/60unattended-upgrades-perfsonar
echo 'APT::Periodic::Unattended-Upgrade "1";' >> /etc/apt/apt.conf.d/60unattended-upgrades-perfsonar
echo 'APT::Periodic::AutocleanInterval "31";' >> /etc/apt/apt.conf.d/60unattended-upgrades-perfsonar
echo 'Unattended-Upgrade::Origins-Pattern:: "origin=perfSONAR";' >> /etc/apt/apt.conf.d/60unattended-upgrades-perfsonar

A cronjob will automatically install security updates from Debian/Ubuntu and new packages present in the perfsonar release repository every night. A trace of all updates applied will be stored in /var/log/unattended-upgrades/unattended-upgrades.log.

Full perfSONAR toolkit upgrades (i.e. upgrade to new major versions) might still need a manual intervention to properly conclude, but we will then announce that through our usual communication channels.

Note

Automatic updates are enabled by default in the perfSONAR Toolkit.

Step 6: Service Watcher

The perfsonar-toolkit-servicewatcher installs scripts that check if pscheduler, owamp, databases and other processes are running and restarts if they have stopped unexpectedly.

The install automatically configures cron to run the service_watcher regularly.

To run the script manually, run:

/usr/lib/perfsonar/scripts/service_watcher

Step 7: Register your services

Note: this step can be done through the web interface if the perfsonar-toolkit bundle was installed. See Updating Administrative Information.

No actual configuration is required but filling fields such as administrator_email, site_name, city, country, latitude, longitude, etc. are highly recommended. You can add these by removing the leading # of any property and filling it out with a proper value for your host. Changes will be picked-up automatically without need for any restarts.

Step 8: Starting your services

You can start all the services by rebooting the host since all are configured to run by default. In order to check services status issue the following commands:

service pscheduler-scheduler status
service pscheduler-runner status
service pscheduler-archiver status
service pscheduler-ticker status
service owamp-server status
service perfsonar-lsregistrationdaemon status

If they are not running you may start them with appropriate service commands as a root user. For example:

service pscheduler-scheduler start
service pscheduler-runner start
service pscheduler-archiver start
service pscheduler-ticker start
service owamp-server start
service perfsonar-lsregistrationdaemon start

Note that you may have to wait a few hours for NTP to synchronize your clock before (re)starting owamp-server.

Configuration

Configuring Central Management

If you installed the perfsonar-centralmanagement bundle see the following documents:

Configuring perfSONAR through the web interface

After installing the perfsonar-toolkit bundle, you can refer to the general perfSONAR configuration from Configuring the Toolkit for the First Time.

Keeping 4.1.x on Debian 8 and Ubuntu 14

If you’re running Debian 8 or Ubuntu 14, you need to know that perfSONAR 4.2 is not supported on these OS. We recommend that you either do a fresh installation of perfSONAR on a supported OS (Debian 9 or Ubuntu 16 or 18) or plan your upgrade to Debian 9 or Ubuntu 16 and perfSONAR 4.2 to happen later. In all cases, you should follow the instructions bellow to prevent perfSONAR to automatically upgrade to version 4.2 once we release it.

You nedd to replace the perfsonar-release repository with a plain perfsonar-4.1 repository entry. This is done in the /etc/apt/sources.list.d/perfsonar-release.list file, where you just replace perfsonar-release with perfsonar-4.1 in the deb and deb-src lines. Alternatively, you can delete the perfsonar-release.list file and replace it with the one coming from http://downloads.perfsonar.net/debian/perfsonar-4.1.list Then run apt-get update.

From this moment, you’ll be only receiving the updates to the 4.1.x release branch (if there are any) and nothing else. Then plan your upgrade to Debian 9 or Ubuntu 16 and perfSONAR 4.2. as described bellow.

Upgrading from 4.1.x

If you had installed a perfSONAR 4.1.x bundle and you now want to upgrade to perfSONAR 4.2, you’ll have to follow the instructions here below. This will work for all Debian and Ubuntu versions supported on both releases, i.e. Debian 9, Ubuntu 16 and Ubuntu 18. For Debian 8 and Ubuntu 14, you should first lock your system on 4.1.x, then upgrade the OS and finally perfSONAR (as described above).

Upgrade the perfSONAR installation

If you have auto-update enabled and already using the perfsonar-release.list APT source file (as was instructed when install 4.1), you should receive the 4.2 upgrade automatically.

If you don’t use the auto-update feature, to upgrade your perfsonar installation, you just need to run:

apt-get update
apt-get upgrade

The measurements and the measurement archives that you already have defined in your 4.1.x installation will be migrated to the 4.1 tools automatically.

Upgrade to another bundle

If you want to move from the perfsonar-testpoint bundle to another bundle that we provide for Debian, you can do so by following the instructions above from Step 2: Install a Bundle.

Upgrade from Debian 8 to Debian 9

If you have a perfSONAR host running Debian 8 and you want to upgrade it to 9 (Stretch), we recommend you to follow the following steps:

  1. Upgrade Debian 8 to Debian 9 (following Debian instructions, here are Stretch upgrade notes for i386 architecture)
  2. Reboot your system unless already done in previous step.
  3. Change perfSONAR repository from perfsonar-4.1 to perfsonar-release (if you changed it as a temporary measure as described above)
  4. Run apt-get update; apt-get dist-upgrade to get the latest version of perfSONAR.
  5. Reboot your system one last time.

Upgrade from Ubuntu 14 to Ubuntu 16 (or 18)

If you have a perfSONAR host running Ubuntu 14 and you want to upgrade it to 16, we recommend you to follow the following steps:

  1. Upgrade Ubuntu 14 to Ubuntu 16 (following official instructions, here are Xenial Upgrades notes)
  2. Reboot your system unless already done in previous step.
  3. Change perfSONAR repository from perfsonar-4.1 to perfsonar-release (if you changed it as a temporary measure as described above)
  4. Run apt-get update; apt-get dist-upgrade to get the latest version of perfSONAR.
  5. Reboot your system one last time.