概述
工程概述
开源倡议Open Network Install Environment (ONIE) 旨在为现代网络硬件设备提供一个开放的"安装环境"。ONIE塑造了一个开放的网络硬件生态,终端用户可自由选择不同的网络操作系统。
在ONIE出现之前,市面上的以太网交换设备有着预装的,受控的操作系统,以及实质上完成的网络应用,所有这些将终端用户固定在了一个垂直的供应链上。
最初,ONIE依靠对多个操作系统厂商开放硬件开启了“白盒” 与 “裸机”的网络交换生态系统,一段时间后ONIE变得流行起来,现在对于网络硬件工业而言,ONIE已经成为了事实上的"安装环境"标准。
现代网络交换机的管理子系统,建立在各种处理器建构的基础上,这些处理器包含典型的串口、带外以太网口和存储设备。此子系统可以独立运行,不受到关联着前面板以太网接口的交换芯片ASICs
所影响。
ONIE定义了运行在管理子系统之上的开源"安装环境",利用了Linux内核中提供的设施和BusyBox环境。作为数据中心配置的一部分,此"安装环境"允许终端用户和渠道合作伙伴以配置服务器的方式,安装特定的目标网络操作系统(NOS)。
ONIE使交换机硬件供应商、分销商和贩卖商可基于少量的硬件SKUs运作。这反过来将创建一个在制造,分销、库存和RMA(退货审查)等方面的规模经济,进而催生一个多样网络硬件和操作系统组成的繁荣生态系统。
亮点:
- 组合了启动引导程序、现代Linux内核和BusyBox
- 提供了安装任何NOS的环境
- 破坏性的;将用户从受控的预装NOS中解放出来
- 帮助自动化大型数据中心进行交互设备配置
- 使你能够像管理Linux服务器一样管理你的交互设备
设计概述
注意
完整的设计信息,请参考 Design Specification.
ONIE是启动引导程序和工作于网络交换设备的小型操作系统的组合,意在提供自动化配置环境。ONIE使用交换设备的处理器综合体,而不是转发数据平面,如下图所示:
Typical Network Switch CPU Complex – ONIE uses the elements highlighted on the left
初始系统启动
当新机器第一次启动时,ONIE定位并执行NOS厂商的安装程序,以下所示:
Execution Flow – First Time Boot Up
后续系统启动
ONIE并不是每次启动都用到。在初始安装之后,后续启动时,跳过ONIE直接加载NOS运行。参见下图所示:
Subsequent Boots – After the NOS Is Installed
系统存在重新进入安装阶段的机制。定义了API接口,以便网络操作系统可控制系统重新进入安装阶段。
定位安装镜像
ONIE使用许多方法定位NOS安装程序,包括但不限于以下:
- 启动引导程序中静态配置
- 本地连接的存储设备,比如USB硬盘
- DHCPv4 / DHCPv6
- IPv4 / IPv6 本地链路邻居
- mDNS (multicast DNS) / DNS-SD (Service Discovery)
- PXE-like (Preboot Execute Environment) TFTP and HTTP waterfalls
首选的镜像下载方式为HTTP,因为其可为大尺寸的镜像文件提供稳定的下载性能。TFTP虽然也支持,但是由于HTTP的存在,不鼓励使用。
一旦定位镜像文件,ONIE开始继续执行NOS安装程序。
下图示例展示了镜像定位和执行步骤:
Image Discovery Methods
上图中的"Less Exact Methods"
图块,包含其它定位镜像的探测技术机制,例如:
- IPv4 / IPv6 本地链路邻居
- PXE-like TFTP and HTTP waterfalls
安装器执行环节
当执行安装程序时,ONIE会导出一些环境变量供安装程序使用。这些变量包括系统识别信息以及在镜像发现过程中学习到的信息。
以下为导出到安装程序中的信息示例,包括:
- 安装程序URL
- 硬件厂商标识
- 硬件平台标识
- 硬件序列号
- 以太网管理口MAC地址
- IP 地址 (由 DHCP 获取)
- 主机名 (由 DHCP 获取)
安装程序将这些变量与其它自动化流程和编排结合在一起,立即尝试将产品序号、MAC地址和网络操作系统NOS
版本对应起来。
安装程序概述
安装程序的责任是将操作系统永久的安装进硬件中。在履行这一角色时,ONIE兼容的NOS安装程序有很大的灵活性。
安装程序可做什么的一些例子:
- 通过HTTP获取额外的二进制文件和配置文件
- 通过HTTP与库存控制系统通信
- 下载新的 kernel+initramfs 和 kexec(8)
网络操作系统接口
ONIE为NOS提供了一个执行系统配置和维护操作的环境,包括:
- 重新安装一个不同的NOS
- 卸载/擦除系统
- 救援和恢复
- 升级ONIE
- 升级机器的CPLD/FPGAs 和 BIOS 固件
此环境构造了一个ONIE与NOS之间的接口。
升级ONIE
ONIE提供了更新自身的机制。此机制的执行过程与网络安装程序发现和执行阶段非常相似,但在本例中,镜像文件是一个ONIE更新文件。一旦定位,ONIE更新镜像被下载和执行。
固件升级
ONIE提供了更新机器固件的机制。在此情况下,固件是指诸如CPLD/FPGA代码和BIOS固件之类的软件。此机制的执行过程与更新ONIE本身非常相似,但在本例中,镜像是ONIE固件更新文件。一旦定位,将下载并执行ONIE更新镜像文件。