OCI兼容:Quark容器包括一个打开的容器主动(OCI)接口。 Common Docker容器图像可以在Quark容器中运行。
高性能:Quark容器出生为具有高性能的容器工作负载执行。它用锈语制作。
Quark Container占据如下所示的Classic Linux虚拟机架构。它包括一个名为qvisor的虚拟机管理程序和名为qkernel的访客内核。与常见的Linux虚拟机设计不同,其中标准OS映像(如Linux / Windows)可以在Qumu上运行。 QVisor和QKernel紧密耦合。 QVisor仅支持QKernel。
夸克容器'高级设计如下。它以以下步骤处理容器应用程序请求。
容器应用系统调用:在Quark容器中,容器应用程序作为访客应用程序运行。它通过客户系统调用向Quark发送请求,例如, x86-64 syscall / sysret。
主机系统调用:从主机操作系统的角度来看,Quark运行作为常见的Linux应用程序。当Quark获得客户系统调用时,它将解释在Quark运行时。如果它需要访问主机系统,例如,读取主机文件,它将通过主机系统调用调用主机操作系统。
QCALL:对于Guest Guest空间和主机空间之间的通信,QKernel并不直接通过HyperCall称为QVisor直接作为常见的虚拟机设计。相反,它通过QCALL向QVisor向QVisor发送请求,该QCALL基于共享内存队列。有一个专用的QCALL处理线程在主机空间中等待处理QCALL请求。基于此,VCPU线程' S高成本访客/主机开关避免。对于主机IO数据操作(如套接字读/写),QKernel将使用IO-URING调用主机内核Direclty,这可能会绕过QVisor以实现更好的性能。 (注意:IO-URING WON' T处理IO控制操作,如打开,用于安全目的)
安装二进制:夸克有2二进制:"夸克" 和#34; QKernel.bin" 运行安装时,它们都被复制到/ usr / local / bin /文件夹。 "夸克" 包含QVisor代码,它还实现了OCI接口。 设置Docker:启用Docker以使用Quark容器运行容器," /etc/docker/daemon.json" 需要更新。 示例是守护程序.json 重新启动Docker:" /etc/docker/daemon.json" 已更新,Docker守护程序重新启动需要启用配置更改 夸克容器' s调试日志被放入/var/log/quark/quark.log。 它可以通过&#34启用或禁用; debuglevel" /etc/quark/config.json。 有5个可能的值" debuglevel" 如下。 启用日志时,例如 调试。 使用Quark容器运行Docker映像后,将在/var/log/quark/quark.log.doc中生成日志