nova/doc/source/user
Adam Spiers 8e5d6767bb Enable booting of libvirt guests with AMD SEV memory encryption
Track compute node inventory for the new MEM_ENCRYPTION_CONTEXT
resource class (added in os-resource-classes 0.4.0) which represents
the number of guests a compute node can host concurrently with memory
encrypted at the hardware level.

This serves as a "master switch" for enabling SEV functionality, since
all the code which takes advantage of the presence of this inventory
in order to boot SEV-enabled guests is already in place, but none of
it gets used until the inventory is non-zero.

A discrete inventory is required because on AMD SEV-capable hardware,
the memory controller has a fixed number of slots for holding
encryption keys, one per guest.  Typical early hardware only has 15
slots, thereby limiting the number of SEV guests which can be run
concurrently to 15.  nova needs to track how many slots are available
and used in order to avoid attempting to exceed that limit in the
hardware.

Work is in progress to allow QEMU and libvirt to expose the number of
slots available on SEV hardware; however until this is finished and
released, it will not be possible for nova to programatically detect
the correct value with which to populate the MEM_ENCRYPTION_CONTEXT
inventory.  So as a stop-gap, populate the inventory using the value
manually provided by the cloud operator in a new configuration option
CONF.libvirt.num_memory_encrypted_guests.

Since this commit effectively enables SEV, also add all the relevant
documentation as planned in the AMD SEV spec[0]:

- Add operation.boot-encrypted-vm to the KVM hypervisor feature matrix.

- Update the KVM section of the Configuration Guide.

- Update the flavors section of the User Guide.

- Add a release note.

[0] http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html#documentation-impact

blueprint: amd-sev-libvirt-support
Change-Id: I659cb77f12a38a4d2fb118530ebb9de88d2ed30d
2019-09-10 13:59:02 +01:00
..
aggregates.rst Specify availability_zone to unshelve 2019-08-27 12:57:10 -04:00
architecture.rst Replace 'is comprised of' with 'comprises' 2019-06-10 08:14:34 +00:00
block-device-mapping.rst Docs and functional test for max_local_block_devices 2019-08-23 12:12:08 -04:00
cells.rst Update api-ref location 2019-07-22 19:17:28 +02:00
cellsv2-layout.rst docs: Rework all things metadata'y 2019-06-20 18:22:34 +01:00
certificate-validation.rst Replace git.openstack.org URLs with opendev.org URLs 2019-04-24 13:59:57 +08:00
feature-classification.rst Fail to live migration if instance has a NUMA topology 2018-12-14 14:08:35 -05:00
feature-matrix-gp.ini Update api-ref location 2019-07-22 19:17:28 +02:00
feature-matrix-hpc.ini Update api-ref location 2019-07-22 19:17:28 +02:00
feature-matrix-nfv.ini Update api-ref location 2019-07-22 19:17:28 +02:00
filter-scheduler.rst Deprecate Aggregate[Core|Ram|Disk]Filters 2019-08-20 16:45:23 -04:00
flavors.rst Enable booting of libvirt guests with AMD SEV memory encryption 2019-09-10 13:59:02 +01:00
index.rst doc: cleanup references to conductor doc 2019-09-05 18:37:31 -04:00
launch-instance-from-image.rst docs: Rework all things metadata'y 2019-06-20 18:22:34 +01:00
launch-instance-from-volume.rst Merge "doc: fix and clarify --block-device usage in user docs" 2019-02-21 00:29:11 +00:00
launch-instance-using-ISO-image.rst Update doc 2018-09-28 02:14:18 +00:00
launch-instances.rst docs: Rework all things metadata'y 2019-06-20 18:22:34 +01:00
manage-ip-addresses.rst Cleanup launch instance and manage IPs docs 2018-02-01 15:12:10 -05:00
metadata.rst docs: Rework all things metadata'y 2019-06-20 18:22:34 +01:00
quotas.rst Update api-ref location 2019-07-22 19:17:28 +02:00
reboot.rst Migrate "reboot an instance" user guide docs 2018-12-18 10:56:01 +00:00
resize.rst Remove wrong description for auto resize confirm 2019-03-03 20:03:09 +00:00
support-matrix.ini Enable booting of libvirt guests with AMD SEV memory encryption 2019-09-10 13:59:02 +01:00
support-matrix.rst nit: Add space to feature support docs 2018-12-20 04:12:13 -05:00
upgrade.rst Exit 1 when db sync runs before api_db sync 2019-07-04 09:16:41 +01:00
wsgi.rst doc: Populate the 'user' section 2017-07-18 15:41:20 +01:00