From ddfdc7834d2431fab9ca21e9446d7703b81afaf3 Mon Sep 17 00:00:00 2001 From: Roy Tang Date: Mon, 16 Sep 2019 20:41:13 +0000 Subject: Add SRIOV related updates to cntt Summary: - Update config of openstack libvirt, nova and neutron components - Add required kernel parameters to grub - Add new label to data plane host profile - Add large hugepages to data plane nodes Signed-off-by: Roy Tang Change-Id: I5ffa00f71c890edf96ca1b72659903640c54549b --- type/cntt/profiles/hardware/intel-s2600wt.yaml | 6 +++ type/cntt/profiles/host/dp-intel-s2600wt.yaml | 14 ++++++- .../charts/osh/openstack-compute-kit/libvirt.yaml | 21 +++++++++++ .../charts/osh/openstack-compute-kit/neutron.yaml | 44 ++++++++++++++++++++++ .../charts/osh/openstack-compute-kit/nova.yaml | 25 +++++++++++- 5 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 type/cntt/software/charts/osh/openstack-compute-kit/libvirt.yaml diff --git a/type/cntt/profiles/hardware/intel-s2600wt.yaml b/type/cntt/profiles/hardware/intel-s2600wt.yaml index 07836ef..94fba0e 100644 --- a/type/cntt/profiles/hardware/intel-s2600wt.yaml +++ b/type/cntt/profiles/hardware/intel-s2600wt.yaml @@ -106,4 +106,10 @@ data: address: '5:0.0.0' dev_type: 'ST91000640NS' bus_type: 'scsi' + cpu_sets: + kvm: '4-43,48-87' + hugepages: + dpdk: + size: '1G' + count: 32 ... diff --git a/type/cntt/profiles/host/dp-intel-s2600wt.yaml b/type/cntt/profiles/host/dp-intel-s2600wt.yaml index 49ece45..fbf304d 100644 --- a/type/cntt/profiles/host/dp-intel-s2600wt.yaml +++ b/type/cntt/profiles/host/dp-intel-s2600wt.yaml @@ -9,7 +9,7 @@ metadata: storagePolicy: cleartext layeringDefinition: abstract: false - layer: site + layer: type parentSelector: hosttype: dp-global actions: @@ -97,4 +97,16 @@ data: kernel: 'hwe-16.04' kernel_params: kernel_package: 'linux-image-4.15.0-46-generic' + intel_iommu: 'on' + iommu: 'pt' + amd_iommu: 'on' + cgroup_disable: 'hugetlb' + transparent_hugepage: 'never' + hugepagesz: 'hardwareprofile:hugepages.dpdk.size' + hugepages: 'hardwareprofile:hugepages.dpdk.count' + default_hugepagesz: 'hardwareprofile:hugepages.dpdk.size' + isolcpus: 'hardwareprofile:cpuset.kvm' + metadata: + owner_data: + sriov: enabled ... diff --git a/type/cntt/software/charts/osh/openstack-compute-kit/libvirt.yaml b/type/cntt/software/charts/osh/openstack-compute-kit/libvirt.yaml new file mode 100644 index 0000000..07be883 --- /dev/null +++ b/type/cntt/software/charts/osh/openstack-compute-kit/libvirt.yaml @@ -0,0 +1,21 @@ +schema: armada/Chart/v1 +metadata: + schema: metadata/Document/v1 + name: libvirt + replacement: true + layeringDefinition: + abstract: false + layer: type + parentSelector: + name: libvirt-global + actions: + - method: merge + path: . + storagePolicy: cleartext +data: + values: + network: + backend: + - openvswitch + - sriov +... diff --git a/type/cntt/software/charts/osh/openstack-compute-kit/neutron.yaml b/type/cntt/software/charts/osh/openstack-compute-kit/neutron.yaml index 8d47efd..6cced90 100644 --- a/type/cntt/software/charts/osh/openstack-compute-kit/neutron.yaml +++ b/type/cntt/software/charts/osh/openstack-compute-kit/neutron.yaml @@ -25,4 +25,48 @@ data: timeout: 1800 test: timeout: 900 + values: + labels: + sriov: + node_selector_key: sriov + node_selector_value: enabled + pod: + security_context: + neutron_sriov_agent: + pod: + runAsUser: 42424 + container: + neutron_sriov_agent_init: + privileged: true + runAsUser: 0 + readOnlyRootFilesystem: false + neutron_sriov_agent: + readOnlyRootFilesystem: true + privileged: true + network: + interface: + sriov: + - device: ens785f1 + num_vfs: 32 + promisc: false + backend: + - openvswitch + - sriov + conf: + plugins: + ml2_conf: + ml2: + mechanism_drivers: l2population,openvswitch,sriovnicswitch + ml2_type_vlan: + ## NOTE: Must have at least 1 sriov network defined + network_vlan_ranges: external,sriovnet1:100:4000 + sriov_agent: + securitygroup: + firewall_driver: neutron.agent.firewall.NoopFirewallDriver + sriov_nic: + ## NOTE: Must have at least 1 sriov network to physical device + ## mapping, otherwise sriov agent readiness check + ## will fail. + physical_device_mappings: sriovnet1:ens785f1 + exclude_devices: "" ... diff --git a/type/cntt/software/charts/osh/openstack-compute-kit/nova.yaml b/type/cntt/software/charts/osh/openstack-compute-kit/nova.yaml index 32f94b8..dd9c02c 100644 --- a/type/cntt/software/charts/osh/openstack-compute-kit/nova.yaml +++ b/type/cntt/software/charts/osh/openstack-compute-kit/nova.yaml @@ -14,12 +14,33 @@ metadata: name: nova layeringDefinition: abstract: false - layer: site + layer: type parentSelector: name: nova-global actions: - method: merge path: . storagePolicy: cleartext -data: {} + substitutions: + - src: + schema: drydock/HardwareProfile/v1 + name: intel-s2600wt + path: .cpu_sets.kvm + dest: + path: .values.conf.nova.DEFAULT.vcpu_pin_set +data: + values: + network: + backend: + - openvswitch + - sriov + conf: + nova: + filter_scheduler: + available_filters: "nova.scheduler.filters.all_filters" + enabled_filters: "RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,AggregateInstanceExtraSpecsFilter,AggregateCoreFilter,AggregateRamFilter,AggregateMultiTenancyIsolation,JsonFilter,IoOpsFilter,AggregateDiskFilter,AllHostsFilter,IsolatedHostsFilter,AggregateImagePropertiesIsolation,PciPassthroughFilter,AggregateIoOpsFilter,NumInstancesFilter,AggregateNumInstancesFilter,MetricsFilter,SimpleCIDRAffinityFilter,AggregateTypeAffinityFilter,NUMATopologyFilter,ComputeCapabilitiesFilter,DifferentHostFilter,SameHostFilter" + pci: + alias: '{"name": "numa0", "capability_type": "pci", "product_id": "154c", "vendor_id": "8086", "device_type": "type-PCI"}' + passthrough_whitelist: | + [{"address": "0000:05:06.*", "physical_network": "sriovnet1"},{"address": "0000:05:07.*", "physical_network": "sriovnet1"},{"address": "0000:05:08.*", "physical_network": "sriovnet1"},{"address": "0000:05:09.*", "physical_network": "sriovnet1"}] ... -- cgit 1.2.3-korg