Das qcow2-Bilddateiformat für KVM kann AES-Verschlüsselung verwenden . Die Verschlüsselung wird auf Clusterebene angewendet :
Jeder Sektor in jedem Cluster wird unabhängig im AES-Verschlüsselungsblockverkettungsmodus verschlüsselt, wobei der Offset des Sektors (relativ zum Start des Geräts) im Little-Endian-Format als erste 64 Bit des 128-Bit-Initialisierungsvektors verwendet wird.
Die Clustergröße kann von 512 Byte bis 2 MB eingestellt werden (64 KB scheinen die Standardeinstellung zu sein).
Eines der Hauptprobleme bei der Verwendung der qcow2-Verschlüsselung ist der Leistungseinbruch für die CPU - jeder Schreibvorgang oder nicht zwischengespeicherte Lesevorgang muss verschlüsselt oder entschlüsselt werden.
Ich möchte wissen, ob QEMU / KVM die Intel AES-Anweisungen verwendet , um die Leistungseinbußen zu verringern, wenn die Host-CPU über diese verfügt. Wenn ja, hängt die Nutzung oder Leistung wesentlich von der Clustergröße ab?
Intel® AES-Anweisungen sind neue Anweisungen, beginnend mit der brandneuen Intel® Core ™ -Prozessorfamilie 2010, die auf dem 32-nm-Intel®-Mikroarchitektur-Codenamen Westmere basiert. Diese Anweisungen ermöglichen eine schnelle und sichere Datenverschlüsselung und -entschlüsselung unter Verwendung des Advanced Encryption Standard (AES), der durch die FIPS-Veröffentlichungsnummer 197 definiert ist. Da AES derzeit die dominierende Blockverschlüsselung ist und in verschiedenen Protokollen verwendet wird, sind die neuen Anweisungen wertvoll für eine breite Palette von Anwendungen.
Ich möchte diesen Thread bezüglich der AES-NI-Unterstützung in der Westmere-CPU in der Version 1.7.10.4 von QEMU teilen:
http://lists.gnu.org/archive/html/qemu-devel/2013-03/msg05374.html
Die Funktionalität wurde überprüft und in den Codestream aufgenommen.
Dann gibt es noch einen anderen Thread, der sich darauf bezieht, warum die Funktionalität in 2.2 zu fehlen scheint:
https://www.redhat.com/archives/libvirt-users/2015-February/msg00007.html
Der Thread scheint darauf hinzuweisen, dass es eine Methode zum Aktivieren dieser Funktion gibt, die jedoch möglicherweise negative Folgen aufgrund von Inkompatibilitäten mit der Erkennung von libvirt und CPU hat. Persönlich würde ich gerne sehen, wie diese Funktion wieder eingeführt wird.
quelle