DISKBIOS:一个统一的混合OS容器和应用容器实现的方案设想(2)

简介: 本文关键字:将ovz用于应用级容器设想和dbcolinux fs用于os template设想,boot into chroot at system startup,将initrd做成自带livefs,ovz as chroot管理系统,livefs as metafs template to make linux an container os,为一个app配一个OS

本文关键字:将ovz用于应用级容器设想和dbcolinux fs用于os template设想,boot into chroot at system startup,将initrd做成自带livefs,ovz as chroot管理系统,livefs as metafs template to make linux an container os,为一个app配一个OS

在《DISKBIOS设想1:一个统一的实机装机和云主机装机的虚拟机管理器方案设想》中我们讲到利用ovz维护单机和云服务器环境统一其装机方案的设想,主要设想就是我们简单地制造出一个装好了带ovz的tinycolinux as pe环境(与硬盘上另一套tinycolinux共存),这样对于单机,我们可以用这个ovz作为pelinux维护后者,通过web方式重装/恢复后者的操作系统,对于服务器,我们可以在资源允许范围内虚拟出多个这样的硬盘系统并用于运营,同样以web/单机的形式管理后者,注意这里pelinux和硬盘linux,虚拟linux都设想为用的同一份tinycolinux rootfs。

想象是美好的,但我们并没有触及到如何使用ovz来实现《设想1》里的东西,在《发布一统tinycolinux,带openvz,带pelinux,带分离目录定制》1,2,3系列文章中我们讲到在tinycolinux上编译ovz和定制/system /usr分离式rootfs的过程在《发布dbcolinux上的cozylight》一文中我们把它称为dbcolinux,也并没有串联起ovz和tinycolinux rootfs。

那么这篇就是增强这些设想的详细内容且再进一步的过程了,来深入讨论一下,那么,将ovz tinycolinux kernel与dbcolinux rootfs结合起来,这样有什么好处呢,最终地,我们希望ovz在dbcolinux里究竟要达到什么样的效果呢?

对于问题1,因为pelinux是常驻的,包含了ovz的pelinux也是普通linux,我样可以以此为模板不断制造新的硬盘操作系统(the system0-systemx),这样的好处是我们能自定rootfs到/systemx下并boot into chrooted systemx的方式进入它,由此我们做到了OS级的虚拟容器且更轻便。。对于问题2,云服务器的本质就是各种容器和容器化,包括OS级容器和APP级容器,因为OVZ本身就是OS级别的容器所以通常认为它不能用来替docker这样的东西,但想一想docker那种用了分层文件系统的容器它只是将文件隔离在了各层,我们是否可以利用ovz本身的方式将OS虚拟视为应用虚拟,打造一个应用级的容器呢(共享内核,共享rootfs,仅应用容器自身的内容被放在这个容器)?这里的技术可以是:从system0开始,每一个新增的systemx都共享了整个机器的内核和rootfs,仅将应用的数据或程序放在这里,这样资源占用形式其实跟docker分层差不多。这样,一个systemx可以是OS容器,也可以是APP容器,看你怎么看待了,反正ovz使之oneapp oneos的理念做到了极致。

那么为什么一定需要这种应用级容器呢?为什么ovz和docker这样方式的ovz要共存呢?

举个例子,曾存在一种讨论,PC上的多桌面是不是必要的,一帮人认为多窗口多任务有了,多桌面实际上只是在同一个桌面开多个窗口,在窗口间切换即可。但实际上有了多桌面/虚拟桌面来归类这些窗口,在窗口粒度层切换其实也是很方便的,尤其对于一些需要保持多个任务在线,且满屏应用的PC使用者来说,,,,这有点像多显示器。多显示器更进一步,它是虚拟桌面/多桌面不需要切换的一种,扫视即可切换。

所以,正如多桌面多任务可以共存增益的道理一样,其实ovz这种OS级的容器和docker这种APP级的容器都是需要的(一个共存OS相当于上面讨论的情景中的多桌面,一个共存多容器相当于多窗口)都是需要的。诚如《带pelinux,带分离目录定制(3)》文尾讲的,我们需要使ovz成为应用级容器.

这里的技术细节会是哪些呢?正如上面不断提到的,所有的技术归宗于chroot+定制rootfs template来解释。我们可以把ovz想象成chroot管理器,必要条件是我们依然要在单机或ECS上装是linuxpe带ovz,并以linuxpe自带的rootfs为基础准备一套rootfs作为模板,通过mount源模板rootfs虚拟路径到systemx的实际路径一一对应建立所需具体rootfs的方式。pelinux livefs中的rootfs只是映射到了/hd/systemx,不破坏它作为管理系统和元系统的livemode。然后:我们设想kernel是bzimage,rootfs是initrd,它们二者由grub的linux指令和initrd启动,于是按照linux的启动技术:

我们可以使系统开始启动的时候就进入一个chroot(使用busybox的switch_root,pelinux所在/被清空,将/过继给了硬盘中第一个启动的rootfs — the system0),只是如果这样,那么往后的系统便无法按ovz的方式再开,当然通过其它途径再开是没有问题的不过这样就失去了ovz的意义仅是一个单机dual booting方案,这类似于单机下多OS dualbooting的设想。dualing boot multios but anytime one os running),然而这不是我们需要的。

我们需要的是:不清空pelinux的所在的liveos,在它里面chroot分化容器:再使用chroot(exec /usr/sbin/chroot /systemx /sbin/init)或ovz的vz enter切换进入容器的方式。这样的话,我们需要为每个systemx下的busybox init进入的路径指定一个x,就如同为kernel提供一个chroot参数一样,这次因为我们是从已运行的meta pelinux中chroot,而我们定制的rootfs只从/system下启动,所以,我们要1,改从kernel到busybox级支持chroot,2,支持/system路径的参数化。

实现了这二者后,那么实际上diskbios可以叫anybios/containerbios了,单机下为bios for disk,容器或ecs下叫anybios/containerbios。


这样,在ecs上开多个OS,和利用chroot在旧安卓手机上安装linux这样的课题可以统一了。我发现老毛子在OS方面造诣很深,win10精简,reactos,还有这个linux-deploy,linux deploy也是那种同时运行二个linux的chroot,可以用usbwifi连网使PC与mobile同处一个局域网,且mobile作为移动nas代替我《一个设想:什么是真正的云,及利用树莓派和cloudwall打造你的真正云中心》提到的树莓派。

还有,我们在前面的文章中谈到couchdb使sql结果也得到持久,,实质为同步。既是一个dbserver,也是一个appserver,重点不是这个,我们还急待使cloudwall与elmlang联合,使cloudwall中inliner/ddoc的IDE环境中可以动态可视调视。。


github - minlearn下载,如找不到本文可尝试百度搜索本公号名字!!


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关实践学习
使用操作系统智能助手OS Copilot解锁操作系统运维与编程
在本实验场景中,将在阿里云ECS上体验OS Copilot产品。OS Copilot是阿里云操作系统团队基于大模型构建的OS智能助手。它具有自然语言问答、辅助命令执行、系统运维调优等功能,帮助用户更好地使用Linux,提升阿里云的使用体验。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1179 108
|
8月前
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
6月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
730 51
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
9月前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
573 59
|
10月前
|
设计模式 开发者 UED
123. [HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 基础篇
在现代移动应用和平板应用中,侧边栏导航已经成为一种常见且实用的UI设计模式。HarmonyOS NEXT提供了专门的`SideBarContainer`组件来实现这一功能,它能够轻松创建可显示和隐藏的侧边栏布局,非常适合新闻阅读、电子商务、文件管理等应用场景。
377 3
123. [HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 基础篇
|
10月前
|
数据可视化 API UED
126. [HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 进阶篇
在基础篇中,我们已经实现了电商应用商品筛选侧边栏的基本布局和功能。在本篇教程中,我们将深入探讨如何通过状态管理和数据绑定,实现更加复杂的交互功能,提升用户体验。
162 2
126. [HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 进阶篇
|
10月前
|
UED 容器
125.[HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 基础篇
在现代电商应用中,商品筛选功能是提升用户购物体验的关键元素。HarmonyOS NEXT提供的`SideBarContainer`组件非常适合实现这类功能,它可以创建一个可显示和隐藏的侧边栏,用于放置各种筛选条件,帮助用户快速找到心仪的商品。
210 1
125.[HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 基础篇
|
10月前
|
UED 容器
124.[HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 进阶篇
在基础篇中,我们学习了如何使用HarmonyOS NEXT的`SideBarContainer`组件创建新闻阅读应用的基本侧边栏布局。本篇教程将深入探讨如何为新闻阅读应用添加更多交互功能和状态管理,提升用户体验。
175 1
124.[HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 进阶篇
|
9月前
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
417 1
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
752 270

推荐镜像

更多