Operations¶
Scope
Production deployment patterns, operational procedures, performance tuning, and troubleshooting for OpenStack.
Deployment¶
DevStack (Development)¶
Production (Kolla-Ansible)¶
pip install kolla-ansible
kolla-ansible install-deps
kolla-ansible -i multinode bootstrap-servers
kolla-ansible -i multinode deploy
Service Operations¶
# Identity (Keystone)
openstack token issue
openstack project list
openstack user list
# Compute (Nova)
openstack server create --flavor m1.small --image ubuntu --network private myvm
openstack server list
# Networking (Neutron)
openstack network create private
openstack subnet create --network private --subnet-range 10.0.0.0/24 private-subnet
openstack router create router1
Performance Tuning¶
| Component | Parameter | Recommendation |
|---|---|---|
| Nova | cpu_allocation_ratio |
4:1 (default 16:1 is aggressive) |
| Nova | ram_allocation_ratio |
1.5:1 (default) |
| Neutron | l3_ha |
Enable for router HA |
| Cinder | rbd_pool |
Ceph pool for block storage |
Common Issues¶
| Issue | Diagnosis | Fix |
|---|---|---|
| Service down | openstack endpoint list |
Check service logs, restart |
| VM launch fails | openstack server show <id> |
Check Nova scheduler, quotas |
| Network unreachable | openstack port list |
Check security groups, DHCP |
| RabbitMQ cluster issues | rabbitmqctl cluster_status |
Reset and rejoin node |
Commands & Recipes¶
Authentication¶
# Source credentials
source openrc.sh
# or use clouds.yaml
export OS_CLOUD=mycloud
# Verify authentication
openstack token issue
Compute (Nova)¶
# List instances
openstack server list --long
# Create instance
openstack server create myvm \
--image ubuntu-24.04 \
--flavor m1.large \
--network private-net \
--key-name mykey \
--security-group default \
--availability-zone az1
# Live migrate
openstack server migrate --live target-host myvm
# Resize
openstack server resize myvm m1.xlarge
openstack server resize confirm myvm
# Console access
openstack console url show myvm
openstack console log show myvm --lines 50
Networking (Neutron)¶
# Create network + subnet
openstack network create private-net
openstack subnet create private-sub \
--network private-net \
--subnet-range 10.0.0.0/24 \
--gateway 10.0.0.1 \
--dns-nameserver 8.8.8.8
# Create router + connect
openstack router create main-router
openstack router set main-router --external-gateway public-net
openstack router add subnet main-router private-sub
# Floating IP
openstack floating ip create public-net
openstack server add floating ip myvm 203.0.113.10
# Security groups
openstack security group rule create default \
--protocol tcp --dst-port 22 --remote-ip 0.0.0.0/0
Storage (Cinder)¶
# Create and attach volume
openstack volume create --size 100 --type ssd data-vol
openstack server add volume myvm data-vol
# Snapshot
openstack volume snapshot create --volume data-vol snap-01
# Backup
openstack volume backup create --name backup-01 data-vol
Images (Glance)¶
# Upload image
openstack image create ubuntu-24.04 \
--file ubuntu-24.04-server-cloudimg-amd64.img \
--disk-format qcow2 --container-format bare \
--public
# List images
openstack image list --long
Orchestration (Heat)¶
# stack.yaml
heat_template_version: 2021-04-16
parameters:
image:
type: string
default: ubuntu-24.04
resources:
server:
type: OS::Nova::Server
properties:
image: { get_param: image }
flavor: m1.large
networks:
- network: private-net
Troubleshooting¶
# Check service status
openstack compute service list
openstack network agent list
openstack volume service list
# Hypervisor stats
openstack hypervisor stats show
openstack hypervisor list --long
# Quota check
openstack quota show --project myproject