ONIE开源项目

作者: 半天妖 | 来源:发表于2017-11-29 09:38 被阅读607次

    1. 概述

    1.1. 项目概述

    Open Network Install Environment (ONIE)是一个开源计划,为现代网络硬件定义了一个开放的安装环境。ONIE造就了一个开放的网络硬件生态系统,使得最终用户可以在不同的网络操作系统中进行选择。
    在ONIE出现之前,以太网交换机使用预装的专有操作系统,这中网络设备将最终用户锁定到设备的垂直供应链上。
    最初,ONIE通过向多个操作系统供应商开放硬件开启了“白盒”和“裸机”网络交换机生态系统。随着时间的推移, ONIE的知名度不断提高,现在ONIE已经成为网络硬件行业的主流安装环境。
    现代网络交换机都具有一个管理子系统,该系统基于各种CPU架构,通常包括串行控制台,带外以太网和大容量的存储器。该子系统可以独立于“前面板”以太网接口关联的交换ASIC独立工作。
    ONIE定义了一个开源的安装环境,该安装环境运行在这个管理子系统的Linux内核和BusyBox环境上。这个环境允许最终用户和渠道合作伙伴安装目标NOS。
    ONIE使得交换机硬件供应商,分销商和经销商能够基于少量的硬件库存管理其操作。反过来又在制造、分销、库存和RMA方面创造了规模经济,从而使得网络硬件和操作系统的替代品得以蓬勃发展。
    亮点

    • 将引导加载程序与现代Linux内核和BusyBox结合在一起
    • 提供了一个安装任何NOS的环境
    • 革命性地将用户从预先安装的操作系统中解放出来
    • 帮助实现大规模数据中心交换机的配置自动化
    • 可以像管理Linux服务器一样管理交换机

    1.2. 设计概述

    完整的设计,请参考设计规格文档。

    ONIE是bootloader和一个小型操作系统的组合,该操作系统为网络交换机自动配置提供环境。ONIE使用交换机的控制面CPU,但是不使用转发面,如下图所示: 典型网络交换机CPU组合—ONIE使用其中高亮的部分

    1.2.1. 初次系统引导

    当一台新设备第一次启动时,ONIE定位到并执行厂商提供的NOS,如下图所示: 执行流程—First Time Boot Up

    1.2.2. 后续系统引导

    后续系统的每次启动都不使用ONIE。初次引导之后,后面系统启动直接进入NOS,绕过ONIE。如下图所示: 后续开机—NOS安装之后

    当然,系统提供了一个重新进入安装阶段的机制。定义了一个API,这样网络操作系统可以提示系统重新进入安装阶段。

    1.2.3. 找到安装镜像

    ONIE使用多种方法来定位到NOS安装程序的位置,包括但不限于:

    • 通过bootloader进行静态配置
    • 本地连接的存储器,例如USB存储设备
    • DHCPv4/DHCPv6
    • IPv4/IPv6链路本地邻居
    • mDNS/DNS-SD
    • 类似PXE的TFTP和HTTP流程

    镜像下载的首选方法是HTTP ,因为它具有较好的性能。TFTP方式也支持,但是不能和HTTP共存。
    一旦找到镜像,ONIE就会继续执行NOS的安装流程。

    下图举例说明了NOS定位和安装执行过程: 镜像位置确认

    在上图中,"Less Exact Methods" 方框指的是使用探测技术来发现NOS的机制,如:

    • IPv4 / IPv6 本地链路邻居
    • 类似于PXE的TFTP和HTTP过程

    1.2.4. 安装执行环境

    在执行安装程序时,ONIE会导出一些环境变量供安装程序使用。这些变量包括系统标识信息及在镜像发现过程中学习到的信息。
    导出给安装程序的信息包括但不限于:

    • 安装程序URL
    • 硬件供应商标识
    • 硬件平台标识
    • 硬件系列号
    • 以太网管理口MAC地址
    • IP地址(DHCP获取)
    • Hostname (DHCP获取)
      这些变量允许安装程序与其他自动化流程进行集成,立即将产品系列号,MAC地址和NOS版本捆绑在一起。
      1.2.5. 安装程序概述
      安装程序负责将操作系统永久地安装到硬件中。为了实现这个功能,兼容ONIE的NOS安装程序具有很大的灵活性。
      安装程序可以实现的一些功能如下:
    • 通过HTTP获取额外的二进制文件和配置文件
    • 通过HTTP与库存控制系统进行交流
    • 下载一个新的kernel+initramfs and kexec(8)

    1.2.6. 网络操作系统接口

    ONIE为NOS提供了执行系统配置和维护操作的环境,包括:

    • 重新安装不同的NOS
    • 卸载/清除系统
    • 应急和恢复
    • 更新ONIE
    • 更新设备的CPLD/FPGAs及BIOS固件
      这个环境构成了ONIE和NOS的接口。

    1.2.7. 更新ONIE

    ONIE提供了一个自我升级的机制。这种机制很像网络操作系统的定位和执行阶段,但是这种情况下镜像是ONIE镜像。一旦找到,ONIE镜像就被下载并执行。

    1.2.8. 固件升级

    ONIE提供了固件升级机制。在这种情况下,固件指的是类似于CPLD/FPGA软件代码及BIOS固件。这种机制就像更新ONIE本身一样,指示镜像换成了固件镜像。一旦找到,镜像就被下载并执行。

    2. 下载源码

    2.1. 发布版本

    已发布的版本可以直接下载使用: opencomputeproject/onie。

    2.2. 最新开发版本

    可以使用Git从ONIE工程中下载最新的源码:

    git clone https://github.com/opencomputeproject/onie.gitss
    

    3. 社区

    可以参与ONIE社区开发并保持连续。

    3.1. 代码库

    浏览源码,问题文件和贡献: opencomputeproject/onie。

    3.2. Mailing List

    This is a low volume list for questions, comments and general announcements.
    Send questions, bugs, comments and ideas to opencompute-onie@lists.opencompute.org.
    Join the mailing list: http://lists.opencompute.org/mailman/listinfo/opencompute-onie
    Browse the archives: http://lists.opencompute.org/pipermail/opencompute-onie

    3.3. 贡献

    浏览源码,发布并贡献给Github上托管的 ONIE Project。
    克隆最新的开发版本:

    git clone https://github.com/opencomputeproject/onie.git
    

    3.4. OCP Wiki

    参考 OCP ONIE wiki 获取更多的信息。

    相关文章

      网友评论

        本文标题:ONIE开源项目

        本文链接:https://www.haomeiwen.com/subject/qftubxtx.html