在tinycorelinux上安装lxc,lxd (1)

2023-05-16

本文关键字,在tinycorelinux上安装lxc,lxd,gcc4.4 self-reference struct typedef

在前面的文章中我们讲到过内置虚拟化的os设计,它可以使包括裸金属,云主机在内的等所有虚实主机实现统一装机,且统一各层次的虚拟化(os容器/app容器一体化),这就是diskbios->cloudbios的设想,在一些文章中我们还讲到利用这样的一套架构打造vps server farm(最初我们尝试的是在windows上利用colinux打造vps farm),甚至打造一个portable cloud environment image file的思想。

那时我们考虑的主要是单纯的xaas:类coreos,但是更偏向接近native的去虚拟化,我们为此建立了一个极小的linux distro,在《发布一统tinycolinux,带openvz,带pelinux,带分离目录定制》系列中我们实现了这样一个linux distro的基础部分:dbcolinux。

在更稍晚的文章中,我们发现了devops,如,《利用packer把dbcolinux导出为虚拟机格式和docker格式》谈到的Provision a dbcolinux img。。我们在《hyperkit:一个full codeable,full dev support的devops,及cloud appmodel》还谈到一种利用轻量hypervisor来做虚拟层的工具和devops OS设计:bhyve。我们甚至还谈了支持编程扩展DSL和devops的语言。

最后,考虑到虚拟化和devops结合,结合四大件,我们承诺实现一个带xaas,langsys,domainstack的全功能到busybox的设想,这里的思想是这样的:—— 基本上,只要把这些xaas,devops尽早尽量上升到上流,而且保持尽量小。就可以在下流domainstacks,apps中再度被抽象。而busybox设想的最终目的,是要实现一个native/cloud可以本地远程无差运维开发的appstack,这是后话。

但是现在,为了得到一个这样可用的东西,我们会采用一些更为实际的方法。—— 比起使用真正的hypervisor,我们可能会继续使用ovz这样的东西,这是因为深思之后考虑到:一些云主机没有intelV硬件功能不可再虚拟化,而且,hypervisor它也比较重。虽然bhyve比较轻量不过比起os级的虚拟(openvz,etc)来说还是比较重,而且它只工作在freebsd,

分清二种平台虚拟化containerisation vs virtualisation:

拿bhyve的衍生品smartos来说。

SmartOS is a specialized Type 1 Hypervisor platform based on illumos. It supports two types of virtualization:
OS Virtual Machines (Zones): A light-weight virtualization solution offering a complete and secure userland environment on a single global kernel, offering true bare metal performance and all the features illumos has, namely dynamic introspection via DTrace
KVM Virtual Machines: A full virtualization solution for running a variety of guest OS’s including Linux, Windows, *BSD, Plan9 and more

Ovz做的主要是第一种,而kvm,bhyve是第二种,我们偏向采用os level的虚拟化,因为它也能devops,而OVZ的devops功能不足。所以我们考虑用lxc/lxd来代替ovz,它的优点有:

1,lxc兼容linux 2.6之上,利用linux本身机制,与docker技术统一。2,lxc作为操作系统级的containerisation技术,它的使命却在于模拟普通虚拟机和hypervisor。3,它也有LXD这样的上层,LXD is a container “hypervisor”。可以Provision生成,甚至休眠。缺点:资料少,有一些与虚拟机的功能不能一一对应,缺失

我们先来讲在dbcolinux安装它,好了,开始吧。

基础工作,安装toolchain增强工具

按《在tinycolinux上编译seafile》的方法,安装3.x的autotools,包括autogen,automake,autoconf,libtool,libtool-dev,etc…
还要安装tclsh.tcz

如果允许,你也可以把下面的给做了

File systems  --->
   Pseudo filesystems  --->
   [*] /proc file system support
That enables the /proc virtual filesystem; read the help file for more on that. Then enable the following:
General setup  --->
   [*] Kernel .config support
   [*]   Enable access to .config through /proc/config.gz

When editing the file by hand, say Y to CONFIG_PROC_FS, CONFIG_IKCONFIG, and CONFIG_IKCONFIG_PROC.

重编内核不是必要工作,这是测试lxc需要的。本篇只讲编译。

编译lxc

然后下载lxc-lxc-2.0.11.tar.gz的src,2.0.x是lxc2,选择2是因为它从linux kernel 2.6.32开始,与系统所用kernel接近

1,错误:expected specifier-qualifier-list before sa_family_t
在macro.h中,把所有 include linux/*.h 放include directory的最后
2,错误:ms_shared undeclared here
在conf.c中引用这二个头文件,linux/fs.h and limits.h,也放后面

这里的问题大部分都是因为我们所用的gcc443是c99以内的标准,而lxc源码用了部分c11,所以需要如上的workarounds,实际上编译lxd的时候也会看到好几种相似的情形。需要一一针对处理。

Sudo ./autogen.sh,sudo ./configure,sudo make install

—————

lxd放在接下来一篇讲,因为lxd编译要复杂得多,而且它们二者应该分开,因为lxd作为管理可以不跟lxc一样集成在host中而是一个guest中。有没有。。
至于运用lxc和lxd provision的方式,这些都在网上可以找到。



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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在tinycorelinux上安装lxc,lxd (1) 的相关文章

  • LXC是什么、什么是docker、docker产生的背景

    LXC LXC是什么 LXC xff0c 其名称来自Linux软件容器 xff08 Linux Containers xff09 的缩写 xff0c 一种操作系统层虚拟化 xff08 Operating system level virtu
  • Testing ovn manually based on LXD (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 05 27 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list 43 43 43 43
  • docker & LXC

    目录 一 LXC1 了解Docker的前生LXC2 LXC与docker的关系3 与传统虚拟化对比4 LXC部署4 1 安装LXC软件包和依赖包4 2 启动服务4 3 创建虚拟机 5 LXC常用命令 二 doker1 什么是docker2
  • 虚拟化实现之 LXC (四)

    1 1 LXC是什么 xff1f 1 1 1 关于LXC LXC xff0c 其名称来自Linux软件容器 xff08 Linux Containers xff09 的缩写 xff0c 一种操作系统层虚拟化 xff08 Operating
  • 在tinycorelinux上安装lxc,lxd (1)

    本文关键字 xff0c 在tinycorelinux上安装lxc xff0c lxd gcc4 4 self reference struct typedef 在前面的文章中我们讲到过内置虚拟化的os设计 xff0c 它可以使包括裸金属 x
  • LXD/LXC raw.idmap 使用方法和作用

    官方文档 xff1a https github com lxc lxd blob master doc userns idmap md 设置和取消设置 raw idmap xff0c 都需要重启容器才能应用 并且在重启容器时 xff0c 会
  • LXC与Docker介绍

    文章目录 LXCLUX是什么LXC常用命令LXC的使用 Docker容器虚拟化和传统虚拟化的区别Linux NamespacesCGroupsdoeker基本概念docker容器编排 LXC LUX是什么 LXC xff08 LinuX C
  • 使用 Docker/LXC 迅速启动一个桌面系统

    原文出处 xff1a vpsee Docker是 dotCloud 的一个开源引擎 xff0c 旨在提供一种应用程序的自动化部署解决方案 xff0c 简单的说就是 xff0c 在 Linux 系统上迅速创建一个容器 xff08 类似虚拟机
  • Ubuntu中使用Docker/LXC迅速启动一个桌面系统

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 2013年07月18日 标签 cloud container docker lxc 作者 xff1a vpsee Docker 是 dotCloud 最近几个月刚宣布的开源
  • Testing ovn manually based on LXD (by quqi99)

    作者 张华 发表于 2022 05 27 版权声明 可以任意转载 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list NAME STATE IPV4 IPV6 TYPE SNAPSHOTS
  • Lxc之二—网络设置

    按照博客一所述 应该能够创建lxc虚拟机并运行虚拟机 如果是本地的话 应该能够进入虚拟机操作了 会发现虚拟机只提供了最原始和简单的一些程序 如果使用template方式 甚至连vim gcc python等都没有安装 更别说myql了 安装
  • cgroup----devices子系统

    devices子系统 使用devices 子系统可以允许或者拒绝cgroup中的进程访问设备 devices子系统有三个控制文件 devices allow devices deny devices list devices allow用于
  • 没有 chroot 的 LXC

    有没有办法在不创建容器的情况下使用LXC使用进程组进行资源管理 我正在开发一个在沙箱内运行任意代码的服务 我只对硬件资源管理感兴趣 我不想进行任何 chrooting 我只希望这些进程组能够访问主文件系统 有人告诉我 lxc 是轻量级的 但
  • 如何从 lxc 挂载文件夹

    我有 lxc 它有一个正在运行的应用程序 要在自己的计算机 Ubuntu 13 10 上编辑此应用程序的代码 我想挂载一个目录lxc 如何才能做到这一点 例如 var lib lxc ubuntu 12 04 rootfs home 安装在
  • 我可以从我自己的自定义操作系统创建 LXC 映像吗?

    我是lxc的新手 我想从现有操作系统创建我自己的 lxc 容器 我自己的 unix 内核在不同架构中编译 我正在尝试使用 lxc create 谁能建议我如何创建自己的容器 是否可以使用这种方法创建一个容器 创建自己的容器后是否需要更改任何
  • Docker如何共享资源

    我一直在研究 Docker 我从中了解到这个帖子 https stackoverflow com questions 16047306 how is docker io different from a normal virtual mac
  • 是否可以将 USB 设备暴露给 LXC/Docker 容器?

    我有一个包含在 Docker 文件中的嵌入式系统开发映像 为了刷新代码 我需要通过 USB 串行连接到节点 例如 dev ttyACM0 对于 Docker 我使用了新的绑定安装功能 请参阅https github com dotcloud
  • 为docker容器分配IP地址?

    我是 Docker 新手 是否可以将 IP 地址 从 DHCP 服务器 分配给在主机或虚拟机上运行的 Docker 容器 如果是 有人可以指出我正确的方向吗 如果不是 这是否是容器方法的基本限制 或者只是 Docker 中尚未提供的功能 D
  • 如何以编程方式监视 docker 容器是否退出?

    我在 VM 主机上运行多个命名的 docker 容器 200 多个 我有一个管理器脚本 代码 应该从主机管理容器 我想知道是否有任何基于事件的机制可以在容器停止 失败时收到通知 这样我就可以重新启动已停止的容器 我能想到的一个解决方案是定期
  • 主机 LAN 上的 LXC 容器

    我的 LXC 容器通常与专用网络上的伪装桥配合使用 这次我想将容器放在主机的LAN上 但我无法得到任何结果 我在 debian 上使用 LXC 2 0 7 2 deb9u2 我参考了这个文档 LXC SimpleBridge https w

随机推荐