From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id A16C07186D for ; Thu, 9 Jun 2022 13:15:05 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8555C1B18E for ; Thu, 9 Jun 2022 13:14:35 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 815C21B17B for ; Thu, 9 Jun 2022 13:14:34 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 1EF8043A9A for ; Thu, 9 Jun 2022 13:14:34 +0200 (CEST) From: Markus Frank To: pve-devel@lists.proxmox.com Date: Thu, 9 Jun 2022 13:14:08 +0200 Message-Id: <20220609111408.112894-2-m.frank@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220609111408.112894-1-m.frank@proxmox.com> References: <20220609111408.112894-1-m.frank@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.097 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_SHORT 0.001 Use of a URL Shortener for very short URL SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [phoronix.com, qemu.org, amd.com] Subject: [pve-devel] [PATCH pve-docs] added Memory Encryption documentation X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jun 2022 11:15:05 -0000 added AMD SEV documentation for "[PATCH qemu-server] QEMU AMD SEV enable" Signed-off-by: Markus Frank --- qm.adoc | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/qm.adoc b/qm.adoc index e666d7d..027d0a1 100644 --- a/qm.adoc +++ b/qm.adoc @@ -583,6 +583,65 @@ systems. When allocating RAM to your VMs, a good rule of thumb is always to leave 1GB of RAM available to the host. +[[qm_memory_encryption]] +Memory Encryption +~~~~~~~~~~~~~~~~~ + +AMD SEV +^^^^^^^ + +Memory Encryption using AES-128 Encryption and the AMD Secure Processor. +See https://developer.amd.com/sev/[AMD SEV] + +Requirements: + +* AMD EPYC/Ryzen PRO CPU +* configured SEV BIOS Settings on Host Machine +* add Kernel Parameters: "mem_encrypt=on kvm_amd.sev=1" + +Example Configuration: + +---- +# qm set -memory_encryption type=sev,cbitpos=47,policy=0x0005,reduced-phys-bits=1 +---- + +"type" defines the encryption technology ("type=" is not necessary): sev, sev-snp, mktme + +"reduced-phys-bios", "cbitpos" and "policy" correspond to the variables with the +same name in qemu. + +"reduced-phys-bios" and "cbitpos" are system specific and can be read out +with QMP. If not set, qm starts a dummy-vm to read QMP +for these variables out and saves them to config. + +"policy" can be calculated with +https://www.amd.com/system/files/TechDocs/55766_SEV-KM_API_Specification.pdf[AMD SEV API Specification Chapter 3] + +To use SEV-ES (CPU register encryption) the "policy" should be set +somewhere between 0x4 and 0x7 or 0xC and 0xF, etc. +(Bit-2 has to be set 1 (LSB 0 bit numbering)) + +Limitations: + +* Memory usage on host is always wrong and around 82% Usage +* Snapshots do not work +* edk2-OVMF required +* Recommendable: VirtIO RNG for more entropy (VMs sometimes will not +boot without) + +Links: + +* https://github.com/AMDESE/AMDSEV +* https://www.qemu.org/docs/master/system/i386/amd-memory-encryption.html +* https://www.amd.com/system/files/TechDocs/55766_SEV-KM_API_Specification.pdf + +AMD SEV-SNP +^^^^^^^^^^^ + +* SEV-SNP support is not in the Linux Kernel yet and needs EPYC 7003 "Milan" +processors. +* SEV-SNP should be in Kernel 5.19: https://www.phoronix.com/scan.php?page=news_item&px=AMD-SEV-SNP-Arrives-Linux-5.19 +* patched Kernel: https://github.com/AMDESE/linux/tree/sev-snp-5.18-rc3 [[qm_network_device]] Network Device -- 2.30.2