Bug 1694224 - [Docs][RFE] Document Setting Neutron AZ and number of DHCP agents for compute nodes
Summary: [Docs][RFE] Document Setting Neutron AZ and number of DHCP agents for compute...
Keywords:
Status: NEW
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: documentation
Version: 13.0 (Queens)
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Stephen Finucane
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-03-29 20:02 UTC by Dan Sneddon
Modified: 2022-11-24 08:37 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker OSP-3148 0 None None None 2022-09-28 18:57:52 UTC

Description Dan Sneddon 2019-03-29 20:02:23 UTC
Description of problem:
When using OSP 13 DCN, the compute nodes in each site are attached to provider networks in the site in order to be autonomous. There should not be any dependencies on the central site for networking (apart from the Neutron DB). In order to do this, the compute nodes in each site must be configured to be in a unique Neutron Autonomous Zone. Additionally, the number of redundant DHCP agents in each AZ needs to be set in Neutron. Then, Neutron will automatically schedule the DHCP agents across available computes.

We need to document how to deploy with this configuration using OSP-Director.

Version-Release number of selected component (if applicable):
OSP 13 DCN

Actual results:
This procedure is not documented.

Expected results:
This procedure should be documented.

Additional info:
One entry that need to be made are in neutron.conf on the compute nodes, where the availability_zone is set:
https://review.openstack.org/#/c/183369/40/etc/neutron.conf

On the controller, the router scheduler needs to be changed:
network_scheduler_driver = neutron.scheduler.dhcp_agent_scheduler.AZAwareWeightScheduler

The dhcp_load_type should be unset or set to the default of "networks" on the controller:
dhcp_load_type = networks

The dhcp_agents_per_network should be set to a value of 2 or higher for redundancy:
dhcp_agents_per_network = 3

It isn't clear how these parameters should be set. There do not appear to be TripleO parameters to set these values in TripleO Heat Templates.

Comment 7 Chris Fields 2021-04-28 14:03:02 UTC
There is an upstream doc that explains these Neutron AZ settings very well: https://docs.openstack.org/mitaka/networking-guide/config-az.html

Customers can find the TripleO parameters for these settings in a number of ways.  One is to export the Overcloud plan and then search for them:

[stack@undercloud-0 plan]$ grep -r --include="*" availability_zone ./deployment/neutron  -A 1
./deployment/neutron/neutron-api-container-puppet.yaml:              neutron::server::default_availability_zones:
./deployment/neutron/neutron-api-container-puppet.yaml-                {get_param: NeutronDefaultAvailabilityZones}
--
./deployment/neutron/neutron-dhcp-container-puppet.yaml:       - neutron::agents::dhcp::availability_zone: {get_param: NeutronDhcpAgentAvailabilityZone}
--
./deployment/neutron/neutron-l3-container-puppet.yaml:            - neutron::agents::l3::availability_zone: {get_param: NeutronL3AgentAvailabilityZone}

[stack@undercloud-0 plan]$ grep -R  --include="*" dhcp_agents_per_network  .
./deployment/neutron/neutron-base.yaml:            - tripleo::profile::base::neutron::dhcp_agents_per_network: {get_param: NeutronDhcpAgentsPerNetwork}

Of these TripleO parameters (NeutronDefaultAvailabilityZones, NeutronDhcpAgentAvailabilityZone,NeutronL3AgentAvailabilityZone, NeutronDhcpAgentsPerNetwork), the first and last are described here: https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.1/html-single/overcloud_parameters/index.   

Where there are no explicit TripleO parameters: 
 
[stack@undercloud-0 plan]$ grep -R  --include="*" network_scheduler_driver   .
./deployment/neutron/neutron-api-container-puppet.yaml:              neutron::server::network_scheduler_driver: 

[stack@undercloud-0 plan]$ grep -R  --include="*" router_scheduler_driver   .
./deployment/neutron/neutron-api-container-puppet.yaml:              neutron::server::router_scheduler_driver:

Set like this in templates: 

parameter_defaults: 
  ControllerExtraConfig:
    neutron::server::network_scheduler_driver: <value> 
    neutron::server::router_scheduler_driver: <value>


Note You need to log in before you can comment on or make changes to this bug.