编者按:超交融技术交融根底施行为企业用户提供虚拟化、容器等不同状态的服务。明天,浪潮数据超交融云原生工程师王永超带大家理解 Kata 虚拟化容器技术,及超交融产品为集成 Kata 容器而进行技术计划演进历程,也分享了超交融 Kata 容器技术设计与利用。本文整顿自龙蜥大讲堂第 78 期,以下为本次分享内容:
01 超交融产品介绍
- 超交融一体机。
- 整合虚拟机 + 容器双引擎。
02 Kata Containers 介绍
Kata Container 与传统容器比照:
- Kata 容器具备独立的内核、CPU、内存虚拟机级别隔离。
- 传统容器共享宿主机内核,CPU、内存通过 cgroup 与 namespace 进行限度。
Kata 文件系统工作原理:
- Kata 运行时,提供精简优化的虚拟机内核及文件系统,如 vmlinuz-5.10.25-87 和 kata-containers-initrd.img 用于创立轻量级虚拟机。
- 容器镜像 rootfs 及容器卷通过 virtiofs 从宿主机绑定到轻量级虚拟机,不便外部容器过程读取 rootfs 系统文件。
03 OCFS 共享存储下容器 Snap 治理
Containerd 组件调用关系:
- Content 用于治理容器镜像 manifest 数据。
- Image 存储容器镜像各层 blob 文件。
- Snapshots 用于解压 Image 各层 blob 文件组装容器实例 rootfs 文件系统。
- Diff 提供两个接口 Diff 与 Apply。
Devmapper Snapshotter 有余:
采纳 Containerd 社区 devmapper snapshotter 运行容器实例,次要问题如下:
- Device Mapper 自身 IO 链路过长。
- Device Mapper 依赖内核模块 dm-thin,在非凡场景下会造成存储池 IO 阻塞。
- 社区自身不举荐 devmapper 利用于生产环境。
04 超交融下的 RAW Snapshotter
Devmapper VS RAW, InCloud Rail 超交融成熟的虚拟机系统盘治理计划:
- 虚构磁盘仅通过两层文件系统,IO 链路短且稳固。
- 虚构磁盘未引入 dm-thin 内核模块。
- 虚拟机快照技术相似于容器镜像层构造,虚构磁盘通过 reflink 进行疾速复制为 Snapshot 服务创立 snap 提供技术支持。
超交融 OCFS 存储运行容器:
- OCFS 能够实现同一存储设备同时被多个节点拜访。
- 在超交融环境下,存储设备为对立治理,咱们能够充分利用 OCFS 的个性,应用一个存储池为多个节点提供 Snapshotter 所需的存储空间。
- RAW Snapshotter 在存储设备对容器镜像进行 unpack 等操作,生成一个虚拟机磁盘,容器零碎 rootfs 文件系统做虚构磁盘数据。
- Kata 通过 virtiofs 将虚构磁盘绑定到 Kata 虚拟机外部,用于启动容器过程。
RAW Snapshotter 工作流程:
步骤 1-2:下载容器镜像到本地。
步骤 3-4:创立根 snap 设施,通过 qemu-image 创立 raw 文件。
步骤 5-7:基于跟 snap,创立镜像层及对应的 reflink 文件。
步骤 8:为容器实例创立可写的 rootfs 系统盘。
步骤 9-12:创立 kata 虚拟机,kata 虚拟机通过 virtio-scsi 将 vdisk n+1 虚构磁盘挂载至 kata 虚拟机外部。
虚构磁盘管理机制实现容器 Snaps 治理。
RAW Snapshotter 负责管理容器镜像快照与虚拟机磁盘,保护 snap 元数据:
- 首先读取根底镜像层,创立 RAW 格局的虚拟机磁盘,并设置为只读。
- 读取差别层,通过 reflink,在 OCFS 存储设备疾速创立一个虚构磁盘快照。
- 通过 Diff 服务将差别层内容写入磁盘快照,如图虚构磁盘文件 2~N。
- 启动容器实例,容器镜像最上层,如 N、reflink 一个新的磁盘,用于容器实例进行临时文件零碎写操作。
对于直播课件及视频回放获取形式:
【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件”即可获取。有任何疑问请随时征询龙蜥助手—小龙(微信:openanolis_assis)。
【视频回放】:视频回放可在龙蜥视频号(账号:龙蜥社区_小龙)或龙蜥官网 https://openanolis.cn/video 查看。
—— 完 ——
为给大家提供更好的内容和服务,龙蜥社区诚挚地邀请大家参加问卷调研,请扫描下方二维码或点此链接填写,咱们将筛选出优质反馈,送出龙蜥周边!