lxd:https://linuxcontainers.org/lxd/,目标是融入到openstack体系被管理,像虚拟机一样被管理使用。从如下图可知,并非走的是libvirt-lxc路线,而是nova-compute这一层直接走lxd。其提供了nova-lxd的plugin。

github上1749颗星,本人研究分析的时候版本为2.0.9(一年前).如下分析的也是2.0.9版本的时期。当前已经是3.1版本了。

题外话:容器标准OCI已出,当前业界有新出虚拟化容器,Hyper container。其路线大有可能是基于OCI标准的容器既可以面向CloudNative应用的K8S路线,同时也可以面向虚拟化容器的OpenStack路线,而OCI标准下已经存在RunC(Docker重构后的容器引擎部分,基于原有的libcontainer),也存在HyperContainer的容器引擎RunV。而lxd的存在个人觉得似乎没太大价值了(从目前看),无非就是No vendor lock in下的容器引擎的利益格局之争。lxd主导方式Ubuntu。

lxd&openstack-lxd源码剖析-LMLPHP

pylxd是封装的lxd restfull api的三方python库。nova-lxd是基于nova-compute定义的标准南向接口的具体插件实现。对于lxd容器的创建流程如下:实际上因为lxd的restfull接口和nova的compute插件接口未必完全能完整映射(也就是lxd的能力并未完整暴漏到nova这一层),所以会涉及部分能力不能再openstack测体现(就如同hypervisor与libvirt,通用性的折中)。譬如虚拟机下vcpu和容器化中cpu不等价,容器环境变量设置,linux kernel module加载控制,这些都未在nova-lxd中体现(虽然lxd侧开放了配置能力)

lxd&openstack-lxd源码剖析-LMLPHP

05-11 11:26