我想使用libvirt的卷加密机制。但是,我无法找到有关在运行 virt-install 时如何使用此功能的信息。
我该如何传递相关选项?
编辑1
根据 Cole Robinson 的回答,我尝试了以下操作:
virsh --connect qemu:///system secret-define /tmp/testSecret.xml
MYSECRET=`printf %s "blablablaOpen" | base64`
virsh --connect qemu:///system secret-set-value f52a81b2-424e-490c-823d-6bd4235bc572 $MYSECRET
virsh --connect qemu:///system vol-create vm_images /tmp/testLuks.xml
virt-install --disk source_pool=vm_images,source_volume=MyLuks.img --connect qemu:///system -n luksTest -r 2048 --os-type=linux --os-variant debian10 --vnc --location ftp://ftp2.de.debian.org/debian/dists/buster/main/installer-amd64
使用 testSecret.xml:
<secret ephemeral='no' private='yes'>
<description>Secret to protect File System</description>
<uuid>f52a81b2-424e-490c-823d-6bd4235bc572</uuid>
<usage type='volume'>
<volume>/opt/vm_images/MyLuks.img</volume>
</usage>
</secret>
和testLuks.xml:
<volume>
<name>MyLuks.img</name>
<capacity unit="G">5</capacity>
<target>
<path>/opt/vm_images/MyLuks.img</path>
<format type='raw'/>
<encryption format='luks'>
<secret type='passphrase' uuid='f52a81b2-424e-490c-823d-6bd4235bc572'/>
</encryption>
</target>
</volume>
但是,我收到一个错误:
ERROR internal error: process exited while connecting to monitor: 2019-10-15T05:29:57.582967Z qemu-system-x86_64: -drive file=/opt/vm_images/MyLuks.img,format=raw,if=none,id=drive-virtio-disk0: Could not open '/opt/vm_images/MyLuks.img': Permission denied
我认为这是因为 virt-install 不支持加密文件系统造成的。
因此我重述我的问题:
如何到达加密容器内的可启动虚拟机(例如 Debian)?
一个想法可能是将系统克隆到加密容器中。
答案1
virt-install 不支持本机创建它。您需要直接使用 libvirt 创建卷(virsh vol-create 或类似命令)。此外,virt-install 也不支持 XML <disk><encryption>
。您可能能够让 libvirt 做正确的事情:
virt-install --disk source.pool=POOLNAME,source.volume=VOLNAME
但我自己还没尝试过。