20
Open Network Install Environment Curt Brune Member of Technical Staff November 2013

Open Network Install Environmentonie.org/static/onie/pdf/20131113-OCP_SanAntonio_ONIE.pdfOpen Network Install Environment Curt Brune Member of Technical Staff November 2013 . cumulusnetworks.com

Embed Size (px)

Citation preview

Open Network Install Environment

Curt Brune

Member of Technical Staff

November 2013

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

What Is ONIE?

§ In Production Now – http://www.onie.org/members/

cumulusnetworks.com 5

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