Support configurable interface MTUs

MTUs were hardcoded at 9000, which breaks if the underlying interface
or network switch does not support jumbo frames, a possible deployment
limitation. This has non-obvious consequences due to MTU mismatches
for certain services (Ceph, Zookeeper, etc.).

This commit adds support for configurable MTUs for each interface,
set in pvcd.yaml. The example has been updated to reflect this, with
a default of 1500 (the Ethernet standard).

This commit also adds autoconfiguration of the VNI device MTU based
on the `vni_mtu` value, the same for bridge networks and minus 50
(rather than 200 from the hardcoded value, based on the following
resource [1]) for VXLAN networks.

[1] http://ipengineer.net/2014/06/vxlan-mtu-vs-ip-mtu-consideration/
This commit is contained in:
2019-06-17 23:28:02 -04:00
parent c583ee1709
commit e70255dbd6
3 changed files with 46 additions and 19 deletions

View File

@ -127,11 +127,23 @@ pvc:
# devices: Interface devices configuration
devices:
# upstream: Upstream physical interface device
upstream: ens4
upstream:
# name: Upstream interface name
name: ens4
# mtu: Upstream interface MTU; use 9000 for jumbo frames (requires switch support)
mtu: 1500
# cluster: Cluster (VNIC) physical interface device
cluster: ens4
# storage: Storage (Ceph) physical interface device
storage: ens4
cluster:
# name: Cluster (VNIC) interface name
name: ens4
# mtu: Cluster (VNIC) interface MTU; use 9000 for jumbo frames (requires switch support)
mtu: 1500
# storage: Storage (Ceph OSD) physical interface device
storage:
# name: Storace (Ceph OSD) interface name
name: ens4
# mtu: Storage (Ceph OSD) interface MTU; use 9000 for jumbo frames (requires switch support)
mtu: 1500
# addresses: Special network addresses; by-id denotes "address octet equals host number", e.g. .3 for host3
addresses:
# upstream: Network address for upstream network, options: None, by-id, <static>/<mask>