Cisco NX-OS Software Architecture
Cisco NX-OS software is a data centerโclass operating system built with modularity, resiliency, and serviceability at its foundation. Cisco NX-OS helps ensure continuous availability for mission-critical data center environments. The self-healing and highly modular design of Cisco NX-OS ensures zero-impact operations and enables exceptional operational flexibility.
Cisco NX-OS provides a robust and comprehensive feature set that fulfills the switching and storage networking needs of present and future data centers. Cisco NX-OS runs on the Cisco Nexus family of network switches, which include Cisco Nexus 9000, 7000, and 3000 Series switches, Cisco Nexus 2000 Series fabric extenders, and the Cisco MDS family of storage network switches. A single Cisco NX-OS image runs on Cisco Nexus switching platformsโNexus 9000 and Nexus 3000 series switches based on Cisco Cloud Scale ASICs and merchant silicon ASICs.
Cisco NX-OS Modular Architecture
Cisco NX-OS modular architecture has several components, as shown in Figure 2-17.
Figure 2-17 NX-OS Modular Architecture
- The Linux kernel brings the benefits of Linux to NX-OS, such as preemptive multitasking and multithreading, and is the foundation on which all other processes run on NX-OS. It has multi-CPU/core support.
- Hardware drivers are chipset-specific code and provide a hardware abstraction layer (HAL).
- A complete network stack is implemented in user space: L2 packet management, IPv4/v6, ICMPv4/v6, VRFs, TCP/UDP, and socket library.
- Management infrastructure provides an SNMP agent, NETCONF/XML interface, CLI, and configuration interfaces.
- NX-OS features provide a highly granular implementation of individual services, as shown in Figure 2-18. Each service is an individual memory-protected process with support for multiple instances of a particular service. This provides effective fault isolation between services, and each service can be individually monitored and managed. Also, each service can be explicitly enabled or disabled. Disabling a service releases associated resources and removes the associated CLI and configuration.
Figure 2-18 NX-OS Feature/Service Granularity
- The NX-OS high-availability infrastructure is composed of three subservices:
- System manager (sysmgr): System manager is at the center of service management and fault recovery. It starts up configured features/services and receives heartbeats from services to detect service freeze-ups.
- Message & Transaction Service (MTS): MTS is the message relay system for inter-process communication (IPC) and provides reliable unicast and multicast delivery. MTS is used for service-to-service and module-to-module messaging.
- Persistent Storage Service (PSS): PSS is a lightweight key/value database and provides store options for DRAM or NVRAM. It also provides an API for services to store data and is used to maintain runtime data/state.