Upload
trinhkiet
View
214
Download
0
Embed Size (px)
Citation preview
cumulusnetworks.com 2
The real danger is not that computers will begin to think like men, but that men will begin to think like computers.
Sydney J. Harris
Open Thinking
cumulusnetworks.com 3
• Overview
• What Is ONIE?
• Lessons Learned
• ONIE Development
• Project Needs
Agenda
What Is ONIE?
§ Network OS Install Environment § Provides an environment for network OS installer
discovery and execution § Defined by its behaviors § Implemented using a modern Linux kernel and
BusyBox based initramfs
§ An Open Source Project § https://github.com/onie/onie/
§ Evolving …
cumulusnetworks.com 4
ONIE: Anatomy of a Network Switch
cumulusnetworks.com 6
( Management Interfaces ) ( Data Plane )
CPU SoC
DRAM Boot Flash
Mass Storage
Switching ASIC
Serial Console
Ethernet Mgmt Port
10Gb Port
40Gb Port … 10Gb
Port 40Gb Port
…
PCIe
ONIE: Uses Management Interfaces
cumulusnetworks.com 7
( Management Interfaces ) ( Data Plane )
CPU SoC
DRAM Boot Flash
Mass Storage
Switching ASIC
Serial Console
Ethernet Mgmt Port
10Gb Port
40Gb Port … 10Gb
Port 40Gb Port
…
PCIe
ONIE: Bare Metal Install – First Time Boot Up
cumulusnetworks.com 8
Boot Loader (HW Vendor Supplied)
ONIE (HW Vendor Supplied)
Installer (OS
Vendor)
Boot Loader • Low Level boot loader, configures CPU complex • Loads and boots ONIE from flash
ONIE • Linux OS with Busybox • Configures management Ethernet interface • Locates and executes installer from network • Provides tools and environment for installer
OS Installer • Available from network or USB • Linux executable • Installs vendor OS into mass storage Network OS
(OS Vendor Supplied)
Fetches
Installs
ONIE: Subsequent Reboots – Vendor’s OS is Already Installed
cumulusnetworks.com 9
Boot Loader (HW Vendor Supplied)
ONIE (HW Vendor Supplied)
Boot Loader • Low Level boot loader, configures CPU complex • Loads and boots OS vendor’s installed OS
Network OS • Configures Switching ASIC • Runs Network Protocols • Provides CLI
Network OS (OS Vendor Supplied)
ONIE • SSll exists in the flash, but is not used • Available for uninstall / re-‐install operaSons
ONIE: Network OS Installer Discovery and Install Behavior
cumulusnetworks.com 10
Configure Network Interface
Locate Installer
Run Installer
• Uses DHCPv4, DHCPv6 • Configures Ethernet interface for IPv4 / IPv6 • Configures DNS and hostname
• Determines the locaSon of an installer executable • Examines local file systems, e.g. USB flash drives • Uses DHCP opSons, DNS Service Discovery, MulScast
DNS and IPv6 Neighbors
• Downloads installer via URL • Passes various environment variables to installer • Launches installer
ONIE: Other Behaviors
§ Provide a mechanism for a network OS to invoke the above behaviors.
cumulusnetworks.com 11
Reinstall Invalidate currently installed OS and return to the “out of box” provisioning state
Uninstall Completely wipe everything, except ONIE, off of the box
Rescue Reboot box into ONIE for repair, debug and forensics
Update Install a new ONIE version
Lessons Learned
§ Hardware Platforms § Diverse mix of CPU complex designs, even within a
single CPU family. § HW Vendors need freedom to customize ONIE § Need mechanism to run HW vendor diag
§ Recurring Themes § TLV based EEPROM format widely adopted § Common HW designs reduce development time
cumulusnetworks.com 12
ONIE Development
§ Support Multiple CPU Architectures § x86, ARM, MIPS § Maintain ONIE behaviors across architectures
§ Testing and Compliance § Enhance and extend regression test suites § Develop compliance test suites
cumulusnetworks.com 13
ONIE Development
§ New Features § DHCPv6 § DNS Service Discovery / Multicast DNS discovery § HW Vendor diagnostic
§ Releases § Quarterly release cadence § Ongoing maintenance § Enhancements
cumulusnetworks.com 14
ONIE x86 Strategy
§ Based on coreboot (www.coreboot.org) § Open source § Low level x86, board specific initialization § Loads and executes a 2nd stage payload
§ Requirements of 2nd stage § Select from a range of OS images and boot options § Mutable state, e.g. persistent environment variables § Networking, e.g. netboot an ONIE rescue image
cumulusnetworks.com 15
ONIE x86 Strategy Cont.
§ Interesting Contenders § GRUB2 – http://www.gnu.org/software/grub/ § Tianocore (UEFI) – http://www.tianocore.org/
§ Leaning towards GRUB2, as it appears simpler and less encumbered.
cumulusnetworks.com 16
ONIE x86 Strategy GRUB2
§ ONIE Behaviors with GRUB2 § Clear path to implement “install” “reinstall”, “rescue”
and “upgrade” behaviors as GRUB2 menu items § Installers can mutate grub.cfg to add a menu entry for
the installed network OS § Simple for HW vendors to add “diag” menu entry
cumulusnetworks.com 17
ONIE Project Needs
§ Administrative § Finalize and ratify OCP charter § Finalize and ratify ONIE OCP draft specification with
community § Meeting cadence, e.g. monthly phone conference § Area specialists, contributors
cumulusnetworks.com 18
Resources
§ ONIE Websites § Main Page: http://www.onie.org/ § Source Code: https://github.com/onie/onie/ § Documentation: http://onie.github.io/onie/
cumulusnetworks.com 19
© 2013 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
§ Thank You!
cumulusnetworks.com 20