
# 开发部署类
#### 一个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应用的开发](https://support.huaweicloud.com/usermanual-ecs/ecs_03_1415.html)。另外应用程序也可以借助代理，通过vsock发送HTTP请求。
#### 为什么使用kc2实例启动QingTian Enclave后，出现Vsock性能下降？
对于kc2实例，如果使用隔离的全部CPU启动QingTian Enclave，会导致Vsock性能下降。
建议您在启动隔离服务时，比预期QingTian Enclave使用的CPU数量，多隔离2个CPU。这样可以使被隔离服务的一部分CPU用于启动QingTian Enclave，一部分CPU用于Vsock转发，避免出现Vsock性能下降。
1. 执行以下命令，修改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。
    
2. 执行以下命令，重启qt-enclave-env服务。 **systemctl restart qt-enclave-env**
   
3. 执行以下命令，重启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服务规避该问题。
#### 如果使用Ubuntu类型Linux镜像，需要额外做什么工作？
1. 需要您使用[huawei-qingtian](https://gitee.com/HuaweiCloudDeveloper/huawei-qingtian)源码编译**virtio-qtbox** 和**qingtian-tools**包
2. 执行以下命令，制作镜像所需的**qt-enclave-boostrap** 包。
   可以下载最新的**qt-enclave-bootstrap** 的包，并解压文件到指定目录，下载地址：<https://repo.huaweicloud.com/hce/2.0/updates/x86_64/Packages/>。
   **/usr/local/share/qingtian/enclave/init**
   **/usr/local/share/qingtian/enclave/qtsm.ko**
   **/usr/local/share/qingtian/enclave/vmlinux.bin**
   **/usr/local/share/qingtian/enclave/vmlinux.bin.bz2**
   
 
