1. 创建luks加密盘:
▶ qemu-img create -f luks -o cipher-alg=aes-256,cipher-mode=cbc,ivgen-alg=essiv --object secret,data=$password,id=sec0 -o key-secret=sec0 aes.raw 1G
2. 创建qemu访问luks的密钥
▶ cat > luks-secret.xml <<EOF
<secret ephemeral='no' private='yes'>
<uuid>14ed6d8b-a940-4314-a1a9-d93e3ff107f8</uuid>
</secret>
EOF
▶ virsh secret-define secret.xml
▶ virsh secret-set-value 14ed6d8b-a940-4314-a1a9-d93e3ff107f8 $base64-password # 其中MTIzNDU2是base64方式的,通过printf %s "$password" | base64得到; $password是luks创建时设定的明文密码;这个密码格式和qemu-img create -f luks中指定的格式有关,这儿使用了默认的;
3. 给虚拟机xml加上密钥信息
<encryption format='luks'>
<secret type='passphrase' uuid='14ed6d8b-a940-4314-a1a9-d93e3ff107f8'/>
</encryption>