Building ONL 网络操作系统

ONL community 提供自动化编译ONL的步骤,但是默认编译所有CPU架构,导致编译时间超级长,最终文件目录有50GB左右。本文提供仅构建 X86 平台的步骤,可以大大缩短编译时间。

ONL详细介绍

ONL 目前最流行的网络设备开源操作系统,并作为其他多个NOS的Base OS .

Building ONL 步骤

有时候,用户并不需要最新的ONL, 而是需要基于某个Commit ID 构建版本。
1. 通过 短commit ID 获取完整的 commit ID

git shortlog --format='%H|%cn|%s' | grep '123456'
123456XXXXXXXXXXXXXXXXX

2. 获取代码,并切换到该commit

git clone https://github.com/opencomputeproject/OpenNetworkLinux 
git reset --hard   123456XXXXXXXXXXXXXXXXX

3. Building

  • ONL 基于Debian 系统构建,而Debian 有7,8,9等几个大版本。请根据您的需求选择正确版本。本示例选择 9 (即下面命令的 --9 后缀)
    Building ONL 网络操作系统_第1张图片
  • make 后面填CPU 架构。X86 CPU 在网络设备中是占有率很高的。比如行业内绝大部分交换机都采用X86(AMD64) 架构的 CPU 。
docker/tools/onlbuilder --9   // 最后一个数字代表ONL所基于的Debian版本
apt-cacher-ng
source setup.env 
make amd64

4. 查看ONL 文件
Build 结束后会给出ONL所在的路径的提示,但这个路径位于docker contailer 内部如:
INFO:onlpm:adding package ‘/home/OpenNetworkLinux/builds/amd64/installer/swi/onl-installer-swi_0.ONL-master-2020-07-26.1226-d91e201_amd64.deb’

执行 exit ,退出用于build 的容器,回到 HOST OS 。HOST OS上的ONL 文件路径位于ONL 源码目录下的 RELEASE/stretch/amd64/ 目录:

# cd RELEASE/stretch/amd64/
# ls
ONL-master_ONL-OS9_2020-07-26.1226-d91e201_AMD64_INSTALLED_INSTALLER
ONL-master_ONL-OS9_2020-07-26.1226-d91e201_AMD64_INSTALLED_INSTALLER.md5sum
ONL-master_ONL-OS9_2020-07-26.1226-d91e201_AMD64.swi
ONL-master_ONL-OS9_2020-07-26.1226-d91e201_AMD64_SWI_INSTALLER
ONL-master_ONL-OS9_2020-07-26.1226-d91e201_AMD64_SWI_INSTALLER.md5sum
ONL-master_ONL-OS9_2020-07-26.1226-d91e201_AMD64.swi.md5sum

注意 :

  • 要把文件名带INSTALLED_INSTALLER结尾的NOS安装到交换机才有意义。 比如上面的 ONL-master_ONL-OS9_2020-07-26.1226-d91e201_AMD64_INSTALLED_INSTALLER 。
  • 文件名以swi 结尾的NOS是一个快速启动镜像,其不可持久化配置的修改,机器重启后还原。

小结

Build 时指定CPU 架构可以大大缩短编译时间并减少磁盘占用空间。

此次编译耗时2小时左右(服务器外网网络带宽100Mbps)。
ONL 代码目录大小为19GB,比编译所有CPU 的情况要少了30GB的存储空间占用 :

# du -sh *
19G     OpenNetworkLinux

你可能感兴趣的:(开放网络,白盒交换机,开放网络,ONL)