Hosting Environment Readiness
This section discusses the various shells and containers supported in Nexus switching platforms and the OS version and resources required to support them.
Guest Shell
Guest Shell is an execution environment isolated from the host operating system’s kernel space and running within a Linux Container (LXC). As with OAC, having a decoupled execution space allows customization of the Linux environment to suit the needs of the applications without affecting the host system or applications running in other Linux Containers.
Platforms Support
Guest Shell is supported in Nexus 3000/9000 platforms. Table 7-1 provides the minimum NX-OS version required for each platform to run the Guest Shell environment.
Table 7-1 Nexus Switches and NX-OS Versions Supporting Guest Shell
Platforms |
Minimum Version |
Nexus 3000 series |
7.0(3)I2(1) |
Nexus 9000 series |
7.0(3)I2(1) |
Platform Resource Requirements
The Guest Shell reserves a specific amount of memory in Bootflash. Upon activation, it reserves dynamic RAM and CPU resources, as shown in Table 7-2.
Table 7-2 Nexus Resource Requirement for Guest Shell
Platforms |
DRAM Reservation |
Bootflash Reservation |
CPU reservation |
Nexus 3000 series |
256 MB |
200 MB |
1% |
Nexus 9000 series |
256 MB |
200 MB |
1% |
By default, Nexus switches with 4 GB of RAM will not enable Guest Shell. Use the guestshell enable command to install and enable Guest Shell.
Bash
In addition to Guest Shell, Cisco Nexus9000 Series devices support access to the Bourne-Again Shell (Bash). Bash interprets commands that you enter or commands that are read from a shell script. The following sections discuss how Bash enables access to the underlying Linux system on the device and how it manages the system. Bash shell is supported on both Cisco Nexus 3000 series as well as 9000-series platforms, as shown in Table 7-3.
Table 7-3 Nexus Switches and NX-OS Versions Supporting Bash
Platforms |
Minimum Version |
Nexus 3000 series |
6.1(2)I2(2) |
Nexus 9000 series |
6.1(2)I2(2) |
The coming sections discuss how Bash enables direct and root access to the underlying kernel and how it instantiates the Docker service and containers.
LXC-based Open Agent Container (OAC)
OAC is a 32-bit, CentOS 6.7-based container that is built specifically to support open agents like Puppet and Chef to manage Nexus switching platforms.
With the current architecture, Open Agents cannot be directly installed and run on Nexus platforms. To overcome this challenge, a special environment is built, which is a decoupled execution space within an LXC called as the Open Agent Container (OAC). Having an execution space that is decoupled from the native host system enables customization of the environment to meet the applications’ requirements without affecting the host systems’ applications or any other containers.
Platforms Supported
Open Agent Container is one of the earliest container environments supported in Nexus platforms, and it is supported only in Nexus 5600, Nexus 6000, and Nexus 7000/7700 series platforms. Table 7-4 shows the minimum NX-OS release required for each platform supporting OAC.
Table 7-4 Nexus Switches and NX-OS Versions Supporting OAC
Platforms |
Minimum Version |
Nexus 5600 series |
7.3(0)N1(1) |
Nexus 6000 series |
7.3(0)N1(1) |
Nexus 7000/7700 |
7.3(0)D1(1) |
Platform Resource Requirements
As the file required to instantiate and for associated data storage, OAC occupies up to a specific memory size in bootflash. Upon activation, it requires dynamic RAM and CPU resources, as shown in Table 7-5.
Table 7-5 Nexus Resource Requirement for OAC
Platforms |
DRAM Reservation |
Bootflash Reservation |
CPU Reservation |
Nexus 5600 series |
256 MB |
400 MB |
1% |
Nexus 6000 series |
256 MB |
400 MB |
1% |
Nexus 7000/7700 |
256 MB |
400 MB |
1% |