From 7b78bb67e51c67d0a897cc3bd8dc5587c34d78d4 Mon Sep 17 00:00:00 2001 From: panpingsheng Date: Mon, 19 Aug 2024 21:09:51 +0800 Subject: [PATCH] Optimize community csv test documentation 1.Change the vnc localhost mode to 0.0.0.0 to listen to all available ip addresses 2.Multiple systems support kata 3.For some VMS, the default login is changed to serial port login 4.VMS that need to interact with the host are started in bridge mode --- ...350\243\205CSV\350\275\257\344\273\266.md" | 23 ++-- ...05\345\255\230\345\212\240\345\257\206.md" | 2 +- ...05\345\255\230\345\212\240\345\257\206.md" | 36 ++---- ...06\351\222\245\345\260\201\345\215\260.md" | 6 +- ...50\347\233\230\345\212\240\345\257\206.md" | 6 +- ...346\234\272\347\233\264\351\200\232DCU.md" | 10 +- ...37\346\234\272\350\277\201\347\247\273.md" | 8 +- ...346\234\272\347\233\264\351\200\232DCU.md" | 10 +- ...06\350\231\232\346\213\237\346\234\272.md" | 15 +-- ...30\345\231\250\345\212\240\345\257\206.md" | 25 +---- ...57\345\242\203\346\220\255\345\273\272.md" | 97 ++++++----------- ...257\206kata\347\233\264\351\200\232DCU.md" | 78 ++++++------- ...72\345\257\206\345\256\271\345\231\250.md" | 12 +- ...72\345\257\206\345\256\271\345\231\250.md" | 22 ++-- ...50\257\225ASID\345\244\215\347\224\250.md" | 1 + ...350\257\225\347\233\264\351\200\232DCU.md" | 103 +++++++++--------- ...35\245\351\203\250\347\275\262workload.md" | 20 ++-- ...35\245\351\203\250\347\275\262workload.md" | 6 +- 18 files changed, 210 insertions(+), 270 deletions(-) diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/1-\345\256\211\350\243\205CSV\350\275\257\344\273\266.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/1-\345\256\211\350\243\205CSV\350\275\257\344\273\266.md" index e9db34968..ddd8065dd 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/1-\345\256\211\350\243\205CSV\350\275\257\344\273\266.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/1-\345\256\211\350\243\205CSV\350\275\257\344\273\266.md" @@ -1,4 +1,9 @@ -安装CSV软件之前,请先安装内核并导入通用安全证书。 + +安装CSV软件之前,请先准备系统环境并导入通用安全证书。 + +请参考[1-1-安装操作系统和内核](https://openanolis.cn/sig/Hygon-Arch/doc/824231181808631655)准备系统环境。 + +请参考[1-2-导入通用安全证书](https://openanolis.cn/sig/Hygon-Arch/doc/865622274698254162)导入通用安全证书。 ## 安装依赖软件 @@ -7,16 +12,16 @@ $ sudo /opt/hygon/csv/install_csv_sw.sh ``` ## 安装qemu - +**麒麟系统不需要该步骤,使用系统自带即可,kata 测试不需要该步骤*** ``` $ git clone https://gitee.com/anolis/hygon-qemu.git $ cd hygon-qemu/ $ sudo /opt/hygon/csv/build_qemu.sh ``` -**麒麟系统不需要该步骤,使用系统自带即可** -## 安装grub +## 安装grub +**麒麟系统不需要该步骤,使用系统自带即可,kata 测试不需要该步骤*** ``` $ wget https://ftp.gnu.org/gnu/grub/grub-2.06.tar.gz $ tar -xvf grub-2.06.tar.gz @@ -25,6 +30,8 @@ $ sudo /opt/hygon/csv/build_grub.sh ``` ## 安装edk2 +**麒麟系统不需要该步骤,使用系统自带即可,kata 测试不需要该步骤** + **编译依赖安装grub章节** ``` $ git clone https://gitee.com/anolis/hygon-edk2.git @@ -43,14 +50,14 @@ $ sudo ./build_devkit.sh ``` ## 安装虚拟机内核 +**kata 测试不需要该步骤** + ### 运行虚拟机 ``` -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:0 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -麒麟系统qemu 网络不支持user 模式,需要使用如下命令: -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:0 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0 +$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:0 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nographic ``` ### 安装虚拟机内核 -虚拟机内核使用主机编译好的内核,*vncviewer localhost:0* 登录虚拟机,虚拟机账号为root,密码为root。 +虚拟机内核使用主机编译好的内核,登录虚拟机,虚拟机账号为root,密码为root。 ``` # dhclient # scp host@hostip:/opt/hygon/kernel.tgz ./ diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/2-\346\265\213\350\257\225\344\270\273\346\234\272\345\206\205\345\255\230\345\212\240\345\257\206.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/2-\346\265\213\350\257\225\344\270\273\346\234\272\345\206\205\345\255\230\345\212\240\345\257\206.md" index e4a746e4a..73a4aee85 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/2-\346\265\213\350\257\225\344\270\273\346\234\272\345\206\205\345\255\230\345\212\240\345\257\206.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/2-\346\265\213\350\257\225\344\270\273\346\234\272\345\206\205\345\255\230\345\212\240\345\257\206.md" @@ -1,4 +1,4 @@ -测试之前,请先安装内核。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 功能描述 主机内存加密技术用来加密主机内存,主机写内存数据时,如果页表项的加密位C bit为1,CPU会自动对数据加密后再写入内存;如果页表项的C bit为0,CPU不会进行加密。主机操作系统通过将重要数据的页表项C bit设置为1,可以实现数据加密后保存在内存中,保护数据的安全性。 diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/1-\346\265\213\350\257\225\345\206\205\345\255\230\345\212\240\345\257\206.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/1-\346\265\213\350\257\225\345\206\205\345\255\230\345\212\240\345\257\206.md" index 7b985c4f6..85a63391d 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/1-\346\265\213\350\257\225\345\206\205\345\255\230\345\212\240\345\257\206.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/1-\346\265\213\350\257\225\345\206\205\345\255\230\345\212\240\345\257\206.md" @@ -1,4 +1,4 @@ -测试之前,请先安装CSV软件。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 功能描述 CSV技术通过加密虚拟机的内存来保护虚拟机数据的安全性,每个CSV虚拟机使用不同的密钥,主机和其他虚拟机都不能访问当前CSV虚拟机的内存数据,本文描述了测试CSV虚拟机功能的方法。 @@ -9,16 +9,12 @@ CSV技术通过加密虚拟机的内存来保护虚拟机数据的安全性, 运行普通虚拟机。 ``` -$ sudo qemu-system-x86_64 -name normal-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:1111,server,nowait -vnc localhost:0 +$ sudo qemu-system-x86_64 -name normal-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:1111,server,nowait -vnc 0.0.0.0:0 -nographic ``` -虚拟机启动后,打开新终端使用vncviewer登陆虚拟机,用户名为root,密码为root。 +虚拟机启动后,登陆虚拟机,用户名为root,密码为root。 -``` -$ vncviewer localhost:0 -``` - -保存虚拟机的内存数据到文件。 +打开新终端,保存虚拟机的内存数据到文件。 ``` $ telnet 127.0.0.1 1111 @@ -32,6 +28,7 @@ $ { "execute": "pmemsave", "arguments": {"val": 0, "size": 256, "filename": "nor $ quit $ hexdump -v normal.txt ``` +**normal.txt 文件在运行虚拟机命令的目录下** 普通虚拟机的内存数据如下图,数据是明文。 @@ -45,16 +42,12 @@ $ hexdump -v normal.txt 运行CSV虚拟机。 ``` -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 +$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -nographic ``` -虚拟机启动后,打开新终端使用vncviewer登陆虚拟机,用户名为root,密码为root。 +虚拟机启动后,登陆虚拟机,用户名为root,密码为root。 -``` -$ vncviewer localhost:1 -``` - -保存虚拟机的内存数据到文件。 +保打开新终端,保存虚拟机的内存数据到文件。 ``` $ telnet 127.0.0.1 2222 @@ -68,6 +61,7 @@ $ { "execute": "pmemsave", "arguments": {"val": 0, "size": 256, "filename": "csv $ quit $ hexdump -v csv.txt ``` +**csv.txt 文件在运行虚拟机命令的目录下** CSV虚拟机的内存数据如下图,数据是密文。 @@ -83,21 +77,15 @@ CSV虚拟机的内存数据如下图,数据是密文。 运行CSV虚拟机。 ``` -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 +$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nographic ``` -虚拟机启动后,打开新终端使用vncviewer登陆虚拟机,用户名为root,密码为root。 - -``` -$ vncviewer localhost:1 -``` +虚拟机启动后,登陆虚拟机,用户名为root,密码为root。 -在虚拟机中使用scp命令从主机拷贝远程认证测试程序,假设主机的用户名是user,在虚拟机中运行测试程序get-attestation生成认证报告。 +在虚拟机中使用scp命令从主机拷贝远程认证测试程序,假设主机的用户名是user,host_ip 为主机ip,在虚拟机中运行测试程序get-attestation生成认证报告。 ``` # dhclient -# host_ip=`ip route show | awk 'NR == 2' | awk -F " " '{print $3}'` -# echo ${host_ip} # scp user@${host_ip}:/opt/hygon/csv/attestation/get-attestation ./ # ./get-attestation ``` diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/2-\346\265\213\350\257\225\345\257\206\351\222\245\345\260\201\345\215\260.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/2-\346\265\213\350\257\225\345\257\206\351\222\245\345\260\201\345\215\260.md" index 28897da61..9b2dcf9cd 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/2-\346\265\213\350\257\225\345\257\206\351\222\245\345\260\201\345\215\260.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/2-\346\265\213\350\257\225\345\257\206\351\222\245\345\260\201\345\215\260.md" @@ -1,4 +1,4 @@ -测试之前,请先安装CSV软件。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 **注:麒麟系统不支持** @@ -16,12 +16,12 @@ $ sudo ./sealing_key.sh ### 启动CSV虚拟机 **该功能支持需要使用hygon-edk2 编译出的OVMF.fd 文件而不是OVMF_CODE.fd 文件** ``` -$ sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -kernel /opt/hygon/csv/vmlinuz -initrd /opt/hygon/csv/initramfs.img -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF.fd,readonly=on -object sev-guest,id=sev0,policy=1,cbitpos=47,reduced-phys-bits=5,kernel-hashes=on,session-file=launch_blob.bin,dh-cert-file=guest_owner_dh.cert -machine memory-encryption=sev0 -vnc localhost:1 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0 +$ sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -kernel /opt/hygon/csv/vmlinuz -initrd /opt/hygon/csv/initramfs.img -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF.fd,readonly=on -object sev-guest,id=sev0,policy=1,cbitpos=47,reduced-phys-bits=5,kernel-hashes=on,session-file=launch_blob.bin,dh-cert-file=guest_owner_dh.cert -machine memory-encryption=sev0 -vnc 0.0.0.0:1 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0 ``` ### 连接CSV虚拟机 ``` -$ vncviewer localhost:1 +$ vncviewer 0.0.0.0:1 ``` **dhclient 可以获取虚拟机ip** ### 在CSV虚拟机中获取封印密钥 diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/3-\346\265\213\350\257\225\345\205\250\347\233\230\345\212\240\345\257\206.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/3-\346\265\213\350\257\225\345\205\250\347\233\230\345\212\240\345\257\206.md" index 550f54f4a..ceac62f91 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/3-\346\265\213\350\257\225\345\205\250\347\233\230\345\212\240\345\257\206.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/3-\346\265\213\350\257\225\345\205\250\347\233\230\345\212\240\345\257\206.md" @@ -1,4 +1,4 @@ -测试之前,请先安装CSV软件。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 **注:麒麟系统不支持** @@ -15,7 +15,7 @@ $ cd /opt/hygon/csv/ $ wget http://mirrors.163.com/ubuntu-releases/18.04/ubuntu-18.04.6-desktop-amd64.iso $ qemu-img create -f qcow2 ubuntu.qcow2 10g -$ sudo qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 4096 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -hda ./ubuntu.qcow2 -boot d -cdrom ./ubuntu-18.04.6-desktop-amd64.iso -vnc localhost:1 +$ sudo qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 4096 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -hda ./ubuntu.qcow2 -boot d -cdrom ./ubuntu-18.04.6-desktop-amd64.iso -vnc 0.0.0.0:1 ``` 安装完成后重启虚拟机,安装过程中加密了虚拟机的数据分区/dev/sda3,接下来加密启动分区/dev/sda2并替换虚拟机中的grub。 由于虚拟机的分区/dev/sda3已经被加密,启动过程中需要输入密码abc进行解密,启动后在虚拟机中使用scp命令将主机中的文件拷贝到虚拟机,这里假设主机的用户名为test,IP地址为192.168.122.1。 @@ -33,4 +33,4 @@ disk_encryption.sh默认使用abc,如果密码正确,虚拟机会正常启动 $ cd /opt/hygon/csv $ sudo ./disk_encryption.sh ``` -vncviewer localhost:1 登录虚拟机看虚拟机能否正常启动 +vncviewer 0.0.0.0:1 登录虚拟机看虚拟机能否正常启动 diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/4-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/4-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" index 4fa541550..88cbffb19 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/4-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/4-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" @@ -1,4 +1,4 @@ -测试之前,请先安装CSV软件。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 功能描述 某些应用场景需要在CSV虚拟机中运行图像识别、机器学习等算法,这些场景下使用DCU加速卡可以极大地提高计算性能,CSV虚拟机支持设备直通,可以将DCU卡直通给CSV虚拟机使用。 @@ -7,9 +7,7 @@ ### 运行CSV虚拟机 ``` -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -麒麟系统qemu网络不支持user模式,需要使用如下命令: -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0 +$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nographic ``` ### 在虚拟机中安装DCU软件栈 @@ -43,9 +41,7 @@ $ sudo -s ### 运行直通DCU卡的CSV虚拟机 ``` -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -device vfio-pci,host=03:00.0 -fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=65536 -麒麟系统qemu网络不支持user模式,需要使用如下命令: -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -device vfio-pci,host=03:00.0 -fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=65536 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0 +$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 10240 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:1 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -device vfio-pci,host=03:00.0 -fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=65536 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nographic ``` ### 在CSV虚拟机中运行DCU测试程序 diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/5-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\350\277\201\347\247\273.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/5-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\350\277\201\347\247\273.md" index 9ddf0e21c..c70393e8b 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/5-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\350\277\201\347\247\273.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/5-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\350\277\201\347\247\273.md" @@ -1,4 +1,4 @@ -测试之前,请先安装CSV软件。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 功能描述 CSV 虚拟机支持在线迁移,本文档描述CSV虚拟机迁移测试步骤 @@ -17,7 +17,8 @@ sudo qemu-system-x86_64 \ -vnc 0.0.0.0:0 \ -device virtio-blk-pci,scsi=off,drive=drive0,disable-legacy=on,iommu_platform=on \ -drive file=/opt/hygon/csv/vm.qcow2,if=none,id=drive0 \ - -qmp tcp:localhost:4444,server,nowait + -qmp tcp:localhost:4444,server,nowait \ + -nographic ``` ### 迁移目标端启动虚拟机 @@ -35,7 +36,8 @@ sudo qemu-system-x86_64 \ -device virtio-blk-pci,scsi=off,drive=drive0,disable-legacy=on,iommu_platform=on \ -drive file=/opt/hygon/csv/vm.qcow2,if=none,id=drive0 \ -qmp tcp:localhost:4445,server,nowait \ - -incoming tcp:127.0.0.1:6666 + -incoming tcp:127.0.0.1:6666 \ + -nographic ``` 注:这里测试是本机迁移,设置ip为**127.0.0.1**,跨机迁移ip需要设置对应机器的ip地址 diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/6-\346\265\213\350\257\225CSV2\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/6-\346\265\213\350\257\225CSV2\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" index c2d79af62..0d8a99653 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/6-\346\265\213\350\257\225CSV2\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/6-\346\265\213\350\257\225CSV2\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" @@ -1,4 +1,4 @@ -测试之前,请先安装CSV软件。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 功能描述 某些应用场景需要在CSV2虚拟机中运行图像识别、机器学习等算法,这些场景下使用DCU加速卡可以极大地提高计算性能,CSV2虚拟机支持设备直通,可以将DCU卡直通给CSV2虚拟机使用。 @@ -7,9 +7,7 @@ ### 运行CSV2虚拟机 ``` -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x5,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -麒麟系统qemu网络不支持user模式,需要使用如下命令: -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x5,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= +$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:1 -object sev-guest,id=sev0,policy=0x5,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nopraghic ``` ### 在虚拟机中安装DCU软件栈 @@ -43,9 +41,7 @@ $ sudo -s ### 运行直通DCU卡的CSV2虚拟机 ``` -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x5,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -device vfio-pci,host=03:00.0 -fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=65536 -麒麟系统qemu网络不支持user模式,需要使用如下命令: -$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x5,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -device vfio-pci,host=03:00.0 -fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=65536 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= +$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 10240 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:1 -object sev-guest,id=sev0,policy=0x5,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -device vfio-pci,host=03:00.0 -fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=65536 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nopraghic ``` ### 在CSV2虚拟机中运行DCU测试程序 diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/7-\345\220\257\345\212\250CSV3\345\212\240\345\257\206\350\231\232\346\213\237\346\234\272.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/7-\345\220\257\345\212\250CSV3\345\212\240\345\257\206\350\231\232\346\213\237\346\234\272.md" index 77df20234..51bab9e1c 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/7-\345\220\257\345\212\250CSV3\345\212\240\345\257\206\350\231\232\346\213\237\346\234\272.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/7-\345\220\257\345\212\250CSV3\345\212\240\345\257\206\350\231\232\346\213\237\346\234\272.md" @@ -1,4 +1,4 @@ -测试之前,请先[安装CSV软件](../1-安装CSV软件.md)。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 启动CSV3加密虚拟机 @@ -9,7 +9,7 @@ ``` $ sudo /opt/hygon/setup_csv3_memory.sh ``` -> setup_csv3_memory.sh脚本会在kernel启动参数cmdline中配置“csv_mem_percentage=50“,表示系统内存的50%可用于CSV3安全内存,CSV3虚拟机内存总量不能超过主机预留的CMA内存量。 +> setup_csv3_memory.sh脚本会在kernel启动参数cmdline中配置“csv_mem_percentage=50“,表示系统内存的50%可用于CSV3安全内存,CSV3虚拟机内存总量不能超过主机预留的CMA内存量。 > 当需要启动的所有CSV3虚拟机内存总量较大时,可以调整kernel启动参数cmdline中csv_mem_percentage值大小,csv_mem_percentage最大为80,表示最多配置主机80%的内存作为CMA内存。 重新重启主机系统。 @@ -17,13 +17,10 @@ $ sudo /opt/hygon/setup_csv3_memory.sh #### 运行CSV3加密虚拟机。 ``` -$ sudo qemu-system-x86_64 -name csv3-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:0 -object sev-guest,id=sev0,policy=0x45,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 +$ sudo qemu-system-x86_64 -name csv3-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:0 -object sev-guest,id=sev0,policy=0x45,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -nographic ``` -虚拟机启动后,打开新终端使用vncviewer登陆虚拟机,用户名为root,密码为root。 +虚拟机启动后,登陆虚拟机,用户名为root,密码为root。 -``` -$ vncviewer localhost:0 -``` 在虚拟机终端运行 ``` # dmesg | grep "HYGON CSV" @@ -35,5 +32,5 @@ $ vncviewer localhost:0 HYGON CSV2 HYGON CSV3 ``` -表示虚拟机为CSV3加密虚拟机。 -关闭虚拟机。 \ No newline at end of file +表示虚拟机为CSV3加密虚拟机。 +关闭虚拟机。 diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/8-\346\265\213\350\257\225CSV2\345\257\204\345\255\230\345\231\250\345\212\240\345\257\206.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/8-\346\265\213\350\257\225CSV2\345\257\204\345\255\230\345\231\250\345\212\240\345\257\206.md" index 8344ed17e..6bc11c5b8 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/8-\346\265\213\350\257\225CSV2\345\257\204\345\255\230\345\231\250\345\212\240\345\257\206.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/8-\346\265\213\350\257\225CSV2\345\257\204\345\255\230\345\231\250\345\212\240\345\257\206.md" @@ -1,4 +1,4 @@ -测试之前,请先安装CSV软件。 +测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 功能描述 3号CPU开始支持CSV2安全虚拟化功能,在CSV技术加密虚拟机内存的基础上,CSV2技术增加了虚拟机寄存器加密的功能,主机不能访问或者篡改CSV2虚拟机的寄存器。 @@ -18,22 +18,14 @@ $ sudo /opt/hygon/csv/build_csv2_kernel.sh  运行普通虚拟机。 ``` -$ sudo qemu-system-x86_64 -name normal-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:1111,server,nowait -vnc localhost:0 -麒麟系统qemu 网络不支持user 模式,需要使用如下命令: -$ sudo qemu-system-x86_64 -name normal-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:1111,server,nowait -vnc localhost:0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0 -``` -虚拟机启动后,打开新终端使用vncviewer登陆虚拟机,用户名为root,密码为root。 -``` -$ vncviewer localhost:0 +$ sudo qemu-system-x86_64 -name normal-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:1111,server,nowait -vnc 0.0.0.0:0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nopraghic ``` +虚拟机启动后,登陆虚拟机,用户名为root,密码为root。 ### 升级虚拟机内核 假设主机的用户名为user ``` # dhclient -# host_ip=`ip route show | awk 'NR == 2' | awk -F " " '{print $3}'` -# echo ${host_ip} -麒麟系统需要到主机查看主机host_ip # scp user@${host_ip}:/opt/hygon/csv/kernel.tgz ./ # scp user@${host_ip}:/opt/hygon/csv/vm_kernel_install.sh ./ # ./vm_kernel_install.sh  @@ -45,9 +37,6 @@ $ vncviewer localhost:0 ``` # dhclient -# host_ip=`ip route show | awk 'NR == 2' | awk -F " " '{print $3}'` -# echo ${host_ip} -麒麟系统需要到主机查看主机host_ip # scp user@${host_ip}:/opt/hygon/csv/csv2-reg-test/csv2_reg_test ./ # chmod 777 csv2_reg_rest # ./csv2_reg_rest @@ -77,12 +66,10 @@ $ sudo -s ### 运行CSV2虚拟机 ``` -$ sudo qemu-system-x86_64 -name csv2-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc localhost:1 -object sev-guest,id=sev0,policy=0x5,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -``` -虚拟机启动后,打开新终端使用vncviewer登陆虚拟机。 -``` -$ vncviewer localhost:1 +$ sudo qemu-system-x86_64 -name csv2-vm --enable-kvm -cpu host -m 2048 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:1 -object sev-guest,id=sev0,policy=0x5,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -nopraghic ``` +虚拟机启动后,登陆虚拟机。 + ### 运行CSV2虚拟机寄存器测试程序 diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/1-\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/1-\347\216\257\345\242\203\346\220\255\345\273\272.md" index 493f2ac06..2eb68d160 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/1-\347\216\257\345\242\203\346\220\255\345\273\272.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/1-\347\216\257\345\242\203\346\220\255\345\273\272.md" @@ -6,7 +6,7 @@ ### 安装系统并更新内核 -请参考[1-安装操作系统和内核](https://openanolis.cn/sig/Hygon-Arch/doc/824231181808631655)安装ubuntu20.04,并升级内核到5.10。 +请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 安装机密容器组件 @@ -53,32 +53,7 @@ export KUBECONFIG=/etc/kubernetes/admin.conf ### 一、一键安装脚本的介绍 -#### 1.1 安装依赖 - -安装机密容器部署及测试过程中,所依赖的软件 - -``` -apt-get update -apt-get install -y apt-transport-https ca-certificates curl \ - gnupg lsb-release zip - -# used by simple-kbs -apt install -y mysql-client jq - -# used by encrypting container images. -# For ubuntu 20.04 use static-build skopeo -# For ubuntu 20.10 and above, use apt isntall skopeo. -cd /opt/hygon/csv/confidential-containers/pkg -install -D skopeo /usr/bin/skopeo -skopeo -v - -# used by signing container images. -cd /opt/hygon/csv/confidential-containers/pkg -# download from https://github.com/sigstore/cosign/releases -dpkg -i cosign_2.0.2_amd64.deb -``` - -#### 1.2 加载必要的模块 +#### 1.1 加载必要的模块 将以下模块设置为系统预加载 @@ -91,10 +66,14 @@ vhost-vsock vhost-net EOF -modprobe br_netfilter vfio-pci vhost-vsock vhost-net +modprobe br_netfilter +modprobe vfio-pci +modprobe vhost-vsock +modprobe vhost-net + ``` -#### 1.3 权限设置 +#### 1.2 权限设置 关闭swap;开启ip转发功能 @@ -110,34 +89,35 @@ EOF sysctl --system ``` -#### 1.4 安装docker - -``` -mkdir -m 0755 -p /etc/apt/keyrings -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg -echo \ -"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ -$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -apt-get update -apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin +#### 1.3 启动docker服务 +**麒麟系统kata 的containerd 和系统docker 不兼容,启动docker 时需要先停掉containerd,启动后再恢复containerd** ``` - -#### 1.5 启动docker服务 +info "starting docker service ..." + case $os_release in + "ubuntu" | "anolis" ) + systemctl enable --now docker + systemctl daemon-reload + service docker restart + ;; + "kylin") + service containerd stop + systemctl enable --now docker + systemctl daemon-reload + service docker restart + service containerd restart + ;; + esac -``` -systemctl enable --now docker -systemctl daemon-reload -service docker restart ``` -#### 1.6 安装confidential-containers +#### 1.4 安装confidential-containers ``` cd /opt/hygon/csv/confidential-containers/pkg tar xvf confidential-containers.tar.gz -C / ``` -#### 1.7 配置containerd +#### 1.5 配置containerd 1. 使用aliyun镜像加速 2. 使用支持机密容器的contaienrd,代替系统默认的 @@ -154,7 +134,7 @@ ExecStart=/opt/confidential-containers/bin/containerd EOF ``` -#### 1.8 为containerd使能kata-runtime +#### 1.6 为containerd使能kata-runtime ``` cat >>/etc/containerd/config.toml<>/etc/containerd/config.toml<DCU直通功能** 章节。 -#### 2. OS设置IOMMU为pt模式 - -``` -sudo su root -sed -i 's!\(^GRUB_CMDLINE_LINUX=.*\)"$!\1 iommu=pt"!' /etc/default/grub -update-grub -reboot -``` - -#### 3. 检查IOMMU设置成功 +#### 2. 检查IOMMU设置成功 ``` dmesg | grep -i IOMMU @@ -61,10 +52,14 @@ dmesg | grep -i IOMMU - 禁用sev_kbc模式 + 由于国内网络目前访问不了dockerhub 需要使用代理,代理参数agent.https_proxy=http://ip:port agent.no_proxy=10.*.*.*,172.*.*.* http://ip:port 为代理地址 ``` - sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.enable_signature_verification=false \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv-dcu.toml + sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.https_proxy=http://ip:port agent.no_proxy=10.*.*.*,172.*.*.* agent.enable_signature_verification=false \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv-dcu.toml + ``` +- 设置内存 + ``` + sudo sed -i "s/^default_memory *=.*\$/default_memory = 10240/g" /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv-dcu.toml ``` - ### 部署DCU直通环境 #### 1. 查找DCU设备 @@ -72,13 +67,13 @@ dmesg | grep -i IOMMU - 找到DCU设备 ``` - lspci -nn | grep "Display controller: Chengdu Haiguang" + lspci -nn | grep "Display" |grep "Haiguang" ``` - 结果如下: ``` - $ lspci -nn | grep "Display controller: Chengdu Haiguang" + $ lspci -nn | grep "Display" |grep "Haiguang" 03:00.0 Display controller: Chengdu Haiguang IC Design Co., Ltd. Device [1d94:53b7] (rev 01) ``` @@ -158,53 +153,59 @@ rocminfo ``` hygon module is loaded -===================== -HSA System Attributes -===================== +===================== +HSA System Attributes +===================== Runtime Version: 1.1 System Timestamp Freq.: 1000.000000MHz Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count) -Machine Model: LARGE -System Endianness: LITTLE - -========== -HSA Agents -========== -******* -Agent 1 -******* - Name: Hygon C86 3250 8-core Processor - Uuid: CPU-XX - Marketing Name: Hygon C86 3250 8-core Processor - Vendor Name: HygonGenuine - Feature: None specified - Profile: FULL_PROFILE - Float Round Mode: NEAR +Machine Model: LARGE +System Endianness: LITTLE + +========== +HSA Agents +========== +******* +Agent 1 +******* + Name: Hygon C86 3250 8-core Processor + Uuid: CPU-XX + Marketing Name: Hygon C86 3250 8-core Processor + Vendor Name: HygonGenuine + Feature: None specified + Profile: FULL_PROFILE + Float Round Mode: NEAR . . . -******* -Agent 2 -******* - Name: ZIFANG - Uuid: GPU-XX - Marketing Name: C878186 - Vendor Name: HYGON - Feature: KERNEL_DISPATCH - Profile: BASE_PROFILE - Float Round Mode: NEAR - Max Queue Number: 128(0x80) - Queue Min Size: 4096(0x1000) - Queue Max Size: 131072(0x20000) - Queue Type: MULTI - Node: 1 - Device Type: DCU +******* +Agent 2 +******* + Name: ZIFANG + Uuid: GPU-XX + Marketing Name: C878186 + Vendor Name: HYGON + Feature: KERNEL_DISPATCH + Profile: BASE_PROFILE + Float Round Mode: NEAR + Max Queue Number: 128(0x80) + Queue Min Size: 4096(0x1000) + Queue Max Size: 131072(0x20000) + Queue Type: MULTI + Node: 1 + Device Type: DCU . . . -*** Done *** +*** Done *** ``` +- 测试完恢复内存设置 + + ``` + sudo sed -i "s/^default_memory *=.*\$/default_memory = 2048/g" /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv-dcu.toml + ``` + ## 附录 ### 制作DCU容器镜像的Dockerfile diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/6-\344\275\277\347\224\250\345\212\240\345\257\206\351\225\234\345\203\217\346\235\245\351\203\250\347\275\262workload.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/6-\344\275\277\347\224\250\345\212\240\345\257\206\351\225\234\345\203\217\346\235\245\351\203\250\347\275\262workload.md" index 7ce8dc278..eb79af916 100755 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/6-\344\275\277\347\224\250\345\212\240\345\257\206\351\225\234\345\203\217\346\235\245\351\203\250\347\275\262workload.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/6-\344\275\277\347\224\250\345\212\240\345\257\206\351\225\234\345\203\217\346\235\245\351\203\250\347\275\262workload.md" @@ -38,8 +38,10 @@ attestation agent 支持三种CSV平台相关的KBC:[offline_fs_kbc](https://g - 设置AA module 配置文件路径 + 由于国内网络目前访问不了dockerhub 需要使用代理,代理参数agent.https_proxy=http://ip:port agent.no_proxy=10.*.*.*,172.*.*.* http://ip:port 为代理地址 + ``` - sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.config_file=/etc/agent-config.toml agent.enable_signature_verification=false \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml + sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.https_proxy=http://ip:port agent.no_proxy=10.*.*.*,172.*.*.* agent.config_file=/etc/agent-config.toml agent.enable_signature_verification=false \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml ``` - 启动POD @@ -81,27 +83,27 @@ test-en-online 1/1 Running 0 146m - 编辑 kata 配置文件: - 打开pre-attestation - + ``` sudo sed -i -e 's/^\(guest_pre_attestation =\).*$/\1 true/g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml ``` - + - initrd指向支持offline_sev_kbc的initrd - + ``` sudo sed -i -e 's#^\(initrd\).*=.*$#\1 = \"/opt/confidential-containers/share/kata-containers/kata-containers-initrd-csv-hygon-gpu.img.offline_sev_kbc\"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml ``` - + - 设置kbs_mod为offline模式 - + ``` sudo sed -i -e 's/^\(guest_pre_attestation_kbs_mode\).*=.*$/\1=\"offline\"/g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml ``` - + - 设置AA module 配置文件路径 - + ``` - sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.config_file=/etc/agent-config.toml agent.enable_signature_verification=false \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml + sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.https_proxy=http://ip:port agent.no_proxy=10.*.*.*,172.*.*.* agent.config_file=/etc/agent-config.toml agent.enable_signature_verification=false \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml ``` diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/7-\344\275\277\347\224\250\347\255\276\345\220\215\351\225\234\345\203\217\346\235\245\351\203\250\347\275\262workload.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/7-\344\275\277\347\224\250\347\255\276\345\220\215\351\225\234\345\203\217\346\235\245\351\203\250\347\275\262workload.md" index ec9962fa6..1f57de538 100755 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/7-\344\275\277\347\224\250\347\255\276\345\220\215\351\225\234\345\203\217\346\235\245\351\203\250\347\275\262workload.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/4-KATA-3/7-\344\275\277\347\224\250\347\255\276\345\220\215\351\225\234\345\203\217\346\235\245\351\203\250\347\275\262workload.md" @@ -39,7 +39,7 @@ attestation agent 支持三种CSV平台相关的KBC:[offline_fs_kbc](https://g - 使能验签功能 ``` - sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.config_file=/etc/agent-config.toml agent.enable_signature_verification=true \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml + sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.https_proxy=http://ip:port agent.no_proxy=10.*.*.*,172.*.*.* agent.config_file=/etc/agent-config.toml agent.enable_signature_verification=true \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml ``` - 启动 Pod @@ -97,7 +97,7 @@ test-sign-online 1/1 Running 0 31h - 使能验签功能,并更新kbc模式为offline_fs_kbc ``` - sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.aa_kbc_params=offline_fs_kbc::null agent.enable_signature_verification=true \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml + sudo sed -i -e 's#^\(kernel_params\).*=.*$#\1 = \"agent.https_proxy=http://ip:port agent.no_proxy=10.*.*.*,172.*.*.* agent.aa_kbc_params=offline_fs_kbc::null agent.enable_signature_verification=true \"#g' /opt/confidential-containers/share/defaults/kata-containers/configuration-qemu-csv.toml ``` - 启动 Pod @@ -134,4 +134,4 @@ NAME READY STATUS RESTARTS AGE test-sign-offline 1/1 Running 0 31h ``` -### \ No newline at end of file +### -- Gitee