network

Table of Contents

  1. Overview
  2. Module Description
  3. Setup
  4. Usage
  5. Limitations
  6. Development

Module Description

Configures the network on this system

Configures the network interfaces on this system. This module configures:

Note: Intel Omni-Path and Mellanox Infiniband are mutually exclusive.

The network module uses an interface list provided by the netconfig fact from the hpclib module. This fact uses data from the hiera master_network to generate the interface list. It also uses data from the net_topology fact to get generic parameters for networks.

On Debian, the module configures all interfaces as manual, it relies on a special service it sets up (ifup-hotplug) to bring the interfaces up during boot or after changing the configuration.

Setup

What network affects

On Debian, this module takes over /etc/network/interfaces configuration file.

Setup Requirements

This module uses hpclib, it particularly uses the netconfig fact to get the interface list.

Beginning with network

Basic usage is:

class{'::network':
  defaultgw  => '10.1.0.1',
  fqdn       => 'clnode01.cluster.hpc.example.com',
  ib_enable  => false,
  opa_enable => false,
}

The parameters ib_enable and opa_enable can be ommited. When they are true, they configure Mellanox Infiniband and Intel Omni-Path respectively.

Usage

Bonding

Bonding is configured by passing bonding options as a hash:

class{'::network':
  bonding_options => {
    'bond0' => {
      'slaves'  => [ 'eth0', 'eth1' ],
      'options' => 'mode=active-backup primary=eth0',
    },
    'bond1' => {
      'slaves'  => [ 'eth2', 'eth3' ],
      'options' => 'mode=active-backup primary=eth2',
    },
  },
}

Bridges

Bridges are configured by passing bridge options as a hash. If the bridged port does not exists in the netconfig fact, it will be added automatically when the configuration is written.

class{'::network':
  bridge_options => {
    'br0' => {
      'ports' => ['eth0'],
      'description' => 'administraton network on service and nas nodes',
    },
    'br2':
      'ports' => ['bond2'],
      'description' => 'WAN network on service nodes',
    },
  },
}

Intel Omni-Path

When enabled, Intel Omni-Path will install the relevant packages and load the modules. Interface configuration (ib0) is done like any other interface.

Intel Omni-Path does not configures the rdma service but directly configures irqbalance and systemd modules load.

class{'::network':
  defaultgw  => '10.1.0.1',
  fqdn       => 'clnode01.cluster.hpc.example.com',
  ib_enable  => false,
  opa_enable => true,
}

Mellanox Infiniband

When enabled, Mellanox Infiniband will install the relevant packages and load the modules. Interface configuration (ib0) is done like any other interface.

Mellanox Infiniband configures the openib service.

class{'::network':
  defaultgw  => '10.1.0.1',
  fqdn       => 'clnode01.cluster.hpc.example.com',
  ib_enable  => true,
  opa_enable => false,
}

IPoIB

The IPoIB settings are shared between Mellanox Infiniband and Intel Omni-Path:

class{'::network':
  defaultgw  => '10.1.0.1',
  fqdn       => 'clnode01.cluster.hpc.example.com',
  ib_enable  => true,
  opa_enable => false,
  ib_mode    => 'datagram',
  ib_mtu     => '4096',
}

Limitations

This module is tested on Debian.

Development

Patches and issues can be submitted on github: https://github.com/edf-hpc/puppet-hpc