开发部署类
一个ECS实例可以部署多少个QingTian Enclave?
QingTian Enclave支持为每个ECS实例创建最多2个Enclave虚拟机。
什么是Vsock?我该如何使用Vsock与QingTian Enclave进行通信?
Vsock是一种套接字接口,由上下文 ID (CID) 和端口号定义,上下文ID与TCP/IP连接中的IP地址相同。
Vsock使用标准、定义明确的POSIX套接字API(例如连接、侦听、接受)与QingTian Enclave进行通信。您可以开发基于vsock与QingTia Enclave通信的程序,详细操作请参考Linux系统上QingTian Enclave应用的开发。另外应用程序也可以借助代理,通过vsock发送HTTP请求。
为什么使用kc2实例启动QingTian Enclave后,出现Vsock性能下降?
对于kc2实例,如果使用隔离的全部CPU启动QingTian Enclave,会导致Vsock性能下降。
建议您在启动隔离服务时,比预期QingTian Enclave使用的CPU数量,多隔离2个CPU。这样可以使被隔离服务的一部分CPU用于启动QingTian Enclave,一部分CPU用于Vsock转发,避免出现Vsock性能下降。
- 执行以下命令,修改qt-enclave-env服务的配置文件/etc/qingtian/enclave/qt-enclave-env.conf。
vim /etc/qingtian/enclave/qt-enclave-env.conf
- 方式一:修改cpu_count数量为QingTian Enclave的CPU数量加2。
- 方式二:修改cpu_list中的CPU数量为QingTian Enclave的CPU数量加2。
- 执行以下命令,重启qt-enclave-env服务。
- 执行以下命令,重启QingTian Enclave。
qt enclave start --cpus ${isolated_cpus_count-2} --mem ${wanted_mem} --eif ${eif_file_location} --cid ${wanted_cid}
其中:
- isolated_cpus_count-2:隔离出来的CPU数量减少2
- wanted_mem:期望内存大小
- eif_file_location:eif文件位置
- wanted_cid:期望cid值
重启QingTian Enclave后观察vsock性能。
ECS实例开启SELinux后,为什么启动qt-enclave-env服务会失败?
问题现象:ECS实例开启SELinux后,启动qt-enclave-env服务失败,查看qt-enclave-env服务日志,失败的日志显示“insmod virtio-qtbox.ko Permission denied”。
问题原因:SELinux通过强制访问控制、细粒度的访问控制、策略强制、类型强制、安全上下文和审计功能等特性,提供了强大的安全机制,可以帮助保护Linux 系统免受恶意攻击和数据泄露的威胁。因此,qt-enclave-env服务中无法直接调用insmod virtio-qtbox.ko命令插入内核模块。
解决方案:请您通过手动执行命令insmod /opt/qingtian/enclave/virtio-qtbox.ko,或者关闭SELinux特性,并重启qt-enclave-env服务规避该问题。