Bug 1305915 - [RFE] create a storage "domain" for OVMF non-volatile storage
Summary: [RFE] create a storage "domain" for OVMF non-volatile storage
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: BLL.Storage
Version: 4.0.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Tal Nisan
QA Contact: Avihai
URL:
Whiteboard:
Depends On: 1305922 1305942
Blocks: 1112275
TreeView+ depends on / blocked
 
Reported: 2016-02-09 15:00 UTC by Martin Polednik
Modified: 2020-04-01 14:49 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-04-01 14:45:28 UTC
oVirt Team: Storage
Embargoed:
ykaul: ovirt-future?
rule-engine: planning_ack?
rule-engine: devel_ack?
rule-engine: testing_ack?


Attachments (Terms of Use)

Description Martin Polednik 2016-02-09 15:00:47 UTC
OVMF (or uefi for virtual machines) has 2 parts that must be present on a host:
- a firmware image and
- so called non-volatile store (nvram).

Since the firmware will be the same between all machines on the host, a scope of this bug is the nvram. We need a way to save the nvram files to shared storage and make them available to a VM's OS during it's runtime, preserving any modifications done to the file.

The nvram is 128 kib file containing multiple headers, metadata and ~90 kib of rw space for the OS. Each VM with OVMF enabled requires exactly one nvram linked to it.

Comment 1 Laszlo Ersek 2016-02-09 16:41:01 UTC
(
Small correction: the room that is directly usable for non-volatile variables is actually 56KB. Quoting the OVMF whitepaper:

  Description                     Compression type        Size
  ------------------------------  ----------------------  -------
  Non-volatile data storage       open-coded binary data   128 KB
    Variable store                                          56 KB
    Event log                                                4 KB
    Working block                                            4 KB
    Spare area                                              64 KB

Other than this, the description seems correct. Thanks.
)

Comment 2 Laszlo Ersek 2016-02-09 16:57:21 UTC
I also recommend to inquire the libvirt developers (esp. Michal Privoznik) about whether, and how, libvirtd instantiates the nvram file for a brand new VM, from the varstore *template* that accompanies the firmware binary.

Comment 3 Michal Privoznik 2016-02-15 11:26:02 UTC
(In reply to Laszlo Ersek from comment #2)
> I also recommend to inquire the libvirt developers (esp. Michal Privoznik)
> about whether, and how, libvirtd instantiates the nvram file for a brand new
> VM, from the varstore *template* that accompanies the firmware binary.

Libvirt does nothing more than equivalent of 'dd if=template of=domain_specific'. It's done in C completely rather than spawning dd process though.

Comment 6 Yaniv Lavi 2016-08-14 13:18:26 UTC
To my understanding this feature was removed from the 4.1 list, since q38 will not be supported in 4.1. Moving out.

Comment 7 Yaniv Kaul 2017-06-06 18:57:03 UTC
(In reply to Yaniv Lavi from comment #6)
> To my understanding this feature was removed from the 4.1 list, since q35
> will not be supported in 4.1. Moving out.

Same for 4.2, so deferring it.

Comment 8 Laszlo Ersek 2017-11-15 14:09:00 UTC
The size of the varstore file has changed due to fixing bug 1443351; the new size is 528KB.

For details, please refer to the commit message on <https://github.com/tianocore/edk2/commit/b24fca05751f> ("OvmfPkg: introduce 4MB flash image (mainly) for Windows HCK", 2017-04-29):

  Description                Compression type                Size [KB]
  -------------------------  -----------------  ----------------------
  Non-volatile data storage  open-coded binary    128 ->   528 ( +400)
                               data
    Variable store                                 56 ->   256 ( +200)
    Event log                                       4 ->     4 (   +0)
    Working block                                   4 ->     4 (   +0)
    Spare area                                     64 ->   264 ( +200)

Comment 9 Yaniv Lavi 2017-11-26 11:28:01 UTC
I understand it was determined this is not needed for q35 support. Can this be closed then?

Comment 10 Michal Skrivanek 2017-11-27 09:28:31 UTC
(In reply to Yaniv Lavi from comment #9)
> I understand it was determined this is not needed for q35 support. Can this
> be closed then?

It is not needed for q35 with Seabios. 
It is needed for q35 with UEFI and Secure Boot

Comment 11 Michal Skrivanek 2020-03-18 15:44:32 UTC
This bug didn't get any attention for a while, we didn't have the capacity to make any progress. If you deeply care about it or want to work on it please assign/target accordingly

Comment 12 Michal Skrivanek 2020-03-18 15:49:32 UTC
This bug didn't get any attention for a while, we didn't have the capacity to make any progress. If you deeply care about it or want to work on it please assign/target accordingly

Comment 13 Michal Skrivanek 2020-04-01 14:45:28 UTC
ok, closing. Please reopen if still relevant/you want to work on it.

Comment 14 Michal Skrivanek 2020-04-01 14:49:57 UTC
ok, closing. Please reopen if still relevant/you want to work on it.


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