# Compute Service Customization

The `nova_override.conf` file is a custom configuration file used in Platform9's <code class="expression">space.vars.product\_name</code> to allow you to override default configurations for <code class="expression">space.vars.product\_name</code> compute service. These overrides persist across upgrades, ensuring that your customized settings remain intact.

Note that updating nova\_override.conf file is an **advance operation and should only be performed by Administrators** with complete understanding of the option they are editing and the possible impact. We highly recommend that you do this only under guidance from Platform9 support or solution architect teams.

{% hint style="danger" %}
**Important**

Updating nova\_override.conf file is an advance operation and must only be performed by Administrators with complete understanding of the option being edited and side effects / impact if any. We highly recommend doing this only under guidance from Platform9 support team or solution architect team.
{% endhint %}

The `nova_override.conf` file is typically located in the following directory.

{% tabs %}
{% tab title="Bash" %}

```bash
/opt/pf9/etc/nova/conf.d/nova_override.conf
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Info**

The `nova_override` file must be edited on **each hypervisor host** where the override configurations are required. This ensures that the custom settings apply consistently across all compute nodes.
{% endhint %}

You can use this override file to:

* Adjust logging levels or enabling more verbose logging by enabling debug mode. (Mostly commonly used case).
* Customize compute driver options.
* Modify quota defaults for specific tenants.

Here is an example of a `nova_override.conf` file customized for common use cases like for logging, debugging, and optimization.. For more info, refer to [nova.conf](https://docs.openstack.org/ocata/config-reference/compute/config-options.html).

### Logging & Debugging

Safe for troubleshooting but should be reverted in production.

{% tabs %}
{% tab title="Bash" %}

```bash
[DEFAULT]
debug = true  # Enable detailed logging (useful for troubleshooting)
log_dir = /var/log/nova  # Log file storage location
```

{% endtab %}
{% endtabs %}

### Scheduler Configuration

Can be adjusted to improve VM scheduling behavior.

{% tabs %}
{% tab title="Bash" %}

```bash
[scheduler]
max_attempts = 5  # Number of retries for scheduling instances
```

{% endtab %}
{% endtabs %}

### Compute Resource Limits

Can be modified based on hardware capacity.

{% tabs %}
{% tab title="Bash" %}

```bash
[DEFAULT]
reserved_host_memory_mb = 2048  # Reserve memory for the hypervisor
cpu_allocation_ratio = 16.0  # Overcommit CPU resources (Default: 16)
ram_allocation_ratio = 1.5  # Overcommit RAM resources (Default: 1.5)
```

{% endtab %}
{% endtabs %}

## Restart Service

After editing the `nova_override.conf` file, you must restart the <code class="expression">space.vars.product\_name</code> compute service for the changes to take effect. Run the following command on the host:

{% tabs %}
{% tab title="Bash" %}

```bash
systemctl restart pf9-ostackhost
```

{% endtab %}
{% endtabs %}

## Advance Settings

{% hint style="warning" %}
**Warning**

These settings impact VM operations and performance. Modify only if necessary and test changes in a non-production environment.
{% endhint %}

### Compute Driver Configuration

{% tabs %}
{% tab title="Bash" %}

```bash
[DEFAULT]
compute_driver = nova.virt.libvirt.LibvirtDriver
```

{% endtab %}
{% endtabs %}

Do not change unless you are configuring a different virtualization technology (e.g., VMware, Xen, KVM).

### Networking Configuration

{% tabs %}
{% tab title="Bash" %}

```bash
[neutron]
service_plugins = router,metering
```

{% endtab %}
{% endtabs %}

Changing networking parameters without proper testing may break VM connectivity.

### Disk & Storage Settings

{% tabs %}
{% tab title="Bash" %}

```bash
[libvirt]
images_type = qcow2  # Default disk image format
live_migration_flag = VIR_MIGRATE_LIVE
```

{% endtab %}
{% endtabs %}

Modify only if you are implementing specific storage optimizations.

### CPU Mode and Model Configuration

{% tabs %}
{% tab title="Bash" %}

```bash
[libvirt]
# Specifies the CPU mode for virtual machine instances.
cpu_mode = custom
# Defines the custom CPU model(s) to be used with the hypervisor.
cpu_models = Broadwell-noTSX-IBRS
```

{% endtab %}
{% endtabs %}

This configuration is typically used when you need consistent CPU features across different hypervisors.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.platform9.com/private-cloud-director/2025.4/virtualized-clusters/nova-override.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
