Chapter 6. Deploy the edge without storage
You can deploy a distributed compute node (DCN) cluster without block storage at edge sites if you use the Object Storage service (swift) as a back end for the Image service (glance) at the central location. If you deploy a site without block storage, you cannot update it later to have block storage.
Use the compute
role when deploying the edge site without storage.
The following procedure uses lvm as the back end for the Block Storage service (cinder), which is not supported for production. You must deploy a certified block storage solution as a back end for the Block Storage service.
6.1. Architecture of a DCN edge site without storage
To deploy this architecture, use the Compute
role.
- Without block storage at the edge
- The Object Storage (swift) service at the control plane is used as an Image (glance) service backend.
Multi-backend image service is not available.
- Images are cached locally at edge sites in Nova. For more information see Chapter 10, Precaching glance images into nova.
- The instances are stored locally on the Compute nodes.
Volume services such as Block Storage (cinder) are not available at edge sites.
ImportantIf you do not deploy the central location with Red Hat Ceph storage, you will not have the option of deploying an edge site with storage at a later time.
For more information about deploying without block storage at the edge, see Section 6.2, “Deploying edge nodes without storage”.
6.2. Deploying edge nodes without storage
When you deploy Compute nodes at an edge site, you use the central location as the control plane. You can add a new DCN stack to your deployment and reuse the configuration files from the central location to create new environment files.
Prerequisites
-
You must create the
network_data.yaml
file specific to your environment. You can find sample files in/usr/share/openstack-tripleo-heat-templates/network-data-samples
. -
You must create an
overcloud-baremetal-deploy.yaml
file specific to your environment. For more information see Provisioning bare metal nodes for the overcloud.
Procedure
- Log in to the undercloud as the stack user.
Source the stackrc file:
[stack@director ~]$ source ~/stackrc
Generate an environment file ~/dcn0/dcn0-images-env.yaml[d]:
sudo[e] openstack tripleo container image prepare \ -e containers.yaml \ --output-env-file ~/dcn0/dcn0-images-env.yaml
Generate a roles file for the edge location. Generate roles for the edge location using roles appropriate for your environment:
(undercloud)$ openstack overcloud roles \ generate Compute \ -o /home/stack/dcn0/dcn0_roles.yaml
If you are using ML2/OVS for networking overlay, you must edit the Compute role include the
NeutronDhcpAgent
andNeutronMetadataAgent
services:Create a role file for the Compute role:
openstack overcloud roles \ generate Compute \ -o /home/stack/dcn0/dcn0_roles.yaml
Edit the /home/stack/dcn0/dcn0_roles.yaml file to include the
NeutronDhcpAgent
andNeutronMetadataAgent
services:... - OS::TripleO::Services::MySQLClient - OS::TripleO::Services::NeutronBgpVpnBagpipe + - OS::TripleO::Services::NeutronDhcpAgent + - OS::TripleO::Services::NeutronMetadataAgent - OS::TripleO::Services::NeutronLinuxbridgeAgent - OS::TripleO::Services::NeutronVppAgent - OS::TripleO::Services::NovaAZConfig - OS::TripleO::Services::NovaCompute ...
For more information, see Preparing for a routed provider network.
Provision networks for the overcloud. This command takes a definition file for overcloud networks as input. You must use the output file in your command to deploy the overcloud:
(undercloud)$ openstack overcloud network provision \ --output /home/stack/dcn0/overcloud-networks-deployed.yaml \ /home/stack/dcn0/network_data.yaml
Provision bare metal instances. This command takes a definition file for bare metal nodes as input. You must use the output file in your command to deploy the overcloud:
(undercloud)$ openstack overcloud node provision \ --stack dcn0 \ --network-config \ -o /home/stack/dcn0/deployed_metal.yaml \ ~/overcloud-baremetal-deploy.yaml
Configure the naming conventions for your site in the site-name.yaml environment file.
parameter_defaults: NovaComputeAvailabilityZone: dcn0 ControllerExtraConfig: nova::availability_zone::default_schedule_zone: dcn0 NovaCrossAZAttach: false
Deploy the stack for the dcn0 edge site:
openstack overcloud deploy \ --deployed-server \ --stack dcn0 \ --templates /usr/share/openstack-tripleo-heat-templates/ \ -r /home/stack/dcn0/dcn0_roles.yaml \ -n /home/stack/network_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/podman.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/nova-az-config.yaml \ -e /home/stack/overcloud-deploy/central/central-export.yaml \ -e /home/stack/dcn0/overcloud-networks-deployed.yaml \ -e /home/stack/dcn0/overcloud-vip-deployed.yaml \ -e /home/stack/dcn0/deployed_metal.yaml
6.3. Excluding specific image types at the edge
By default, Compute nodes advertise all image formats that they support. If your Compute nodes do not use Ceph storage, you can exclude RAW images from the image format advertisement. The RAW image format consumes more network bandwidth and local storage than QCOW2 images and is inefficient when used at edge sites without Ceph storage. Use the NovaImageTypeExcludeList
parameter to exclude specific image formats:
Do not use this parameter at edge sites with Ceph, because Ceph requires RAW images.
Compute nodes that do not advertise RAW images cannot host instances created from RAW images. This can affect snapshot-redeploy and shelving.
Prerequisites
- Red Hat OpenStack Platform director is installed
- The central location is installed
- Compute nodes are available for a DCN deployment
Procedure
-
Log in to the undercloud host as the
stack
user. Source the
stackrc
credentials file:$ source ~/stackrc
Include the
NovaImageTypeExcludeList
parameter in one of your custom environment files:parameter_defaults: NovaImageTypeExcludeList: - raw
Include the environment file that contains the
NovaImageTypeExcludeList
parameter in the overcloud deployment command, along with any other environment files relevant to your deployment:openstack overcloud deploy --templates \ -n network_data.yaml \ -r roles_data.yaml \ -e <environment_files> \ -e <new_environment_file>