FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
Commit aeb32f44 authored by Matt Raso-Barnett's avatar Matt Raso-Barnett
Browse files

Add initial implementation of LNET config

Includes:
- ko2iblnd
- lnet module config
- lnetctl-style yaml config file (subset of options for now)
parent 33066eda
No related branches found
No related tags found
No related merge requests found
......@@ -27,3 +27,43 @@ lustre_e2fsprogs_repo_enabled: true
lustre_e2fsprogs_repo_gpgcheck: false
#lustre_e2fsprogs_repo_gpgkey:
#lustre_e2fsprogs_repo_gpgkey_fingerprint:
lustre_lnet_ko2iblnd_opa_options:
peer_credits: '32'
peer_credits_hiw: '16'
credits: '1024'
concurrent_sends: '64'
ntx: '2048'
map_on_demand: '256'
fmr_pool_size: '2048'
fmr_flush_trigger: '512'
fmr_cache: '1'
conns_per_peer: '4'
# EXAMPLE legacy lnet module options
#lustre_lnet_module_networks:
# - 'o2ib0(ib0)'
#lustre_lnet_module_options:
# 'auto_down': '1'
# 'avoid_asym_router_failure': '1'
# 'check_routers_before_use': '1'
# 'live_router_check_interval': '60'
# 'dead_router_check_interval': '60'
# 'router_ping_timeout': '60'
#lustre_lnet_module_routes:
# - 'tcp2 1 10.0.0.[1-8]@o2ib0'
# - 'tcp3 1 10.0.0.[1-8]@o2ib0'
# EXAMPLE LNETCTL configuration options
#lustre_lnet_lnetctl_networks:
# 'o2ib2':
# '10.44.241.5':
# interfaces:
# - 'ib0'
# tunables:
# peer_credits: '32'
# peer_credits_hiw: '16'
# concurrent_sends: '16'
# map_on_demand: '256'
# credits: '2048'
# ntx: '2048'
---
# handlers file for ansible-lustre
\ No newline at end of file
- name: "Restart LNET"
service:
name: "lnet"
state: "restarted"
---
- name: "Manage /etc/modprobe.d/ko2iblnd.conf"
template:
src: "templates/modprobe.d/ko2iblnd.conf.j2"
dest: "/etc/modprobe.d/ko2iblnd.conf"
notify:
- "Restart LNET"
- name: "Manage /etc/modprobe.d/lnet.conf"
template:
src: "templates/modprobe.d/lnet.conf.j2"
dest: "/etc/modprobe.d/lnet.conf"
when: (lustre_lnet_module_networks is defined) or (lustre_lnet_module_routes is defined) or (lustre_lnet_module_options is defined)
notify:
- "Restart LNET"
- name: "Manage /etc/lnet.conf"
template:
src: "templates/lnet.conf.j2"
dest: "/etc/lnet.conf"
when: (lustre_lnet_lnetctl_networks is defined)
notify:
- "Restart LNET"
- name: "Ensure lnet service is started"
service:
name: 'lnet'
state: 'started'
enabled: true
......@@ -6,3 +6,6 @@
include_tasks: "install-server-{{ ansible_os_family }}.yml"
when:
- lustre_install_type == 'server'
- name: "Include LNET configuration tasks"
include_tasks: "lnet.yml"
#jinja2:lstrip_blocks: True
# {{ ansible_managed }}
---
# lnet.conf - configuration file for lnet routes to be imported by lnetctl
#
# This configuration file is formatted as YAML and can be imported
# by lnetctl.
{% if lustre_lnet_lnetctl_networks is defined %}
net:
{% for network, nids in lustre_lnet_lnetctl_networks.items() %}
- net type: {{ network }}
local NI(s):
{% for nid, nid_params in nids.items() %}
- nid: {{ nid }}@{{ network }}
interfaces:
{% for interface in nid_params.interfaces %}
{{ loop.index0 }}: {{ interface }}
{% endfor %}
{% if nid_params.tunables is defined %}
tunables:
{% for param_name, param_value in nid_params.tunables.items() %}
{{ param_name }}: {{ param_value }}
{% endfor %}
{% endif %}
{% if nid_params.lnd_tunables is defined %}
lnd tunables:
{% for param_name, param_value in nid_params.lnd_tunables.items() %}
{{ param_name }}: {{ param_value }}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
#jinja2:lstrip_blocks: True
# {{ ansible_managed }}
# Currently it isn't possible to auto-tune the o2iblnd parameters optimally
# inside the kernel since the OFED API hides the details from us.
# Unfortunately, there isn't a single set of parameters that provide optimal
# performance on different HCA/HFI types. This file provides optimized
# tunables for the OPA cards.
#
# ** Please note that the below settings are the recommended settings only for
# OPA cards. If other IB cards are also present along with OPA cards then
# these settings will be applied across all the configured IB interfaces.
#
# Card detection and tunable selection is handled via /usr/sbin/ko2iblnd-probe
# at runtime when the ko2iblnd module is installed, either at boot or when
# Lustre is first mounted.
alias ko2iblnd-opa ko2iblnd
options ko2iblnd-opa{% for name, value in lustre_lnet_ko2iblnd_opa_options.items() %} {{ name }}={{ value }}{% endfor %}
{% if lustre_lnet_ko2iblnd_options is defined %}
# Add default options for non-OPA cards
options ko2iblnd{% for name, value in lustre_lnet_ko2iblnd_options.items() %} {{ name }}={{ value }}{% endfor %}
{% endif %}
install ko2iblnd /usr/sbin/ko2iblnd-probe
#jinja2:lstrip_blocks: True
# {{ ansible_managed }}
options lnet{% if lustre_lnet_module_networks is defined %} networks="{{ lustre_lnet_module_networks | join(', ') }}"{% endif %}{% if lustre_lnet_module_routes is defined %} routes="{{ lustre_lnet_module_routes | join('; ') }}"{% endif %}{% if lustre_lnet_module_options is defined %}{% for name, value in lustre_lnet_module_options.items() %} {{ name }}={{ value }}{% endfor %}{% endif %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment