基于migcvm运行migcvm-agent
- 在源端和对端服务器上,为migvm机密虚拟机的QEMU XML配置文件添加migvm-cap=migvm参数,以启用migvm机密迁移功能,并指定Vsock和Cid用于通信。
<qemu:commandline> <qemu:arg value='-object'/> <qemu:arg value='tmm-guest,id=tmm0,sve-vector-length=128,num-pmu-counters=1,migvm-cap=migvm'/> </qemu:commandline><vsock model='virtio'> <cid auto='no' address='8'/> </vsock>其中,cid address参数可由云管平台任意分配,因Host Kernel是2,为了不让虚拟机的Cid与系统冲突所以平台分配的Cid都会大于2。
- 配置完成后,参考配置机密虚拟机启动migvm虚拟机。
- 下载virtCCA-SDK,安装到migvm,获取源端服务器RIM值和对端服务器RIM值,可参考使能远程证明gen_rim_ref工具,获得该RIM值。
- 拉取组织仓master分支代码。
git clone https://atomgit.com/openeuler/virtCCA_sdk.git --depth 10
- 参考Gitcode编译和安装依赖(环境已有QCBOR,t_cose,libcbor则可以忽略)。
cd migcvm-agent/ git clone https://github.com/inclavare-containers/rats-tls.git cd rats-tls git reset --hard 40f7b78403d75d13b1a372c769b2600f62b02692 git apply ../../attestation/rats-tls/*.patch bash build.sh -s -r -c -v gcc cp -rf output/lib/rats-tls /usr/lib/ cp -rfL output/lib/rats-tls/librats_tls.so.0 /lib64/ cd - bash ./build.sh #将编译产物migcvm-agent放入mig-cvm cp build/migcvm-agent ${CVM_PATH}/home/ - 在migcvm-agent同一目录上部署证书,具体操作步骤请参见使能远程证明。
- 拉取组织仓master分支代码。
- 迁移前进行远程证明,需保证源端和对端RIM值应一致。
- 进入源端虚拟机,校验对端服务器RIM值。
virsh console migvm-src cd ${CVM_PATH}/home ./migcvm-agent -c <远端migcvm监听ip> - 进入对端服务器migvm虚拟机,校验源端服务器RIM值。
virsh console migvm-dst cd ${CVM_PATH}/home ./migcvm-agent -c <远端migcvm监听ip>其中,-c选项在4.11.3中步骤3,迁移时设置cvm-miguri后,可不用指定。
- 进入源端虚拟机,校验对端服务器RIM值。
父主题: 使能机密虚拟机热迁移