Warm Reload

Problem

You want to reload the router with minimal service interruption.

Solution

To enable warm reload, use the warm-reboot command:

Router1#configure  terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#warm-reboot
Router1(config)#end
Router1#

Tip

After enabling this feature, you must perform a cold reboot before it will take effect.

Discussion

Beginning with IOS Version 12.3(2)T, Cisco introduced the ability to perform a warm reload of the router. The primary benefit of this feature is increased system availability, since the router is able to load the IOS version directly from memory without the need to copy the image from flash to RAM or wait for decompression of the IOS image. In addition, the router is able to reload without ROM monitor mode (ROMMON) intervention. This allows the router to complete its reload significantly quicker than a normal cold reload. For example, a cold reboot took more than four minutes longer than a warm reboot on our test router.

Although this feature requires addition memory to be consumed, its impact is minimized by the compressing of initialized variables store in RAM. To prevent corruption of the initial variables, they are marked “read-only.”

This feature not only allows you to perform manual warm reloads, but also allows the router to recover from software forced crashes. Since software forced crashes are unplanned outages, the ability to recover quickly is quite useful. By default, the router will allow five warm reboots due to software forced crashes before forcing the router to perform a cold reboot. In addition, by default the router must remain up and active for a minimum of five minutes before the next warm reboot is allowed due to software forced error. If a software forced error is experienced before the five minute period elapses then the router will perform a cold reboot.

The number of permitted warm reboots and the time duration are adjustable, as seen in the example:

Router1#configure  terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#warm-reboot count 4 uptime 6
Warm reboot will be possible after the next cold reboot
Router1(config)#end
Router1#

In this example, we’ve modified the router to allow only four warm reboots before performing a cold reboot. Also notice, we’ve configured the router to wait at least six minutes before allowing another reboot due to software forced error.

To view the configuration status of the warm reboot feature, use the show warm-reboot command:

Router1#show warm-reboot 
Warm Reboot is enabled
Maximum warm reboot count is 4
Uptime after which warm reboot is safe in case of a crash is 6 (min)

Statistics:

0 warm reboots due to crashes and 1 warm reboots due to requests have taken 
place since the last cold reboot
2872 KB taken up by warm reboot storage
Router1#

The output of this command shows that the warm-reboot feature is enabled on this router and that no warm reloads have taken place due to software forced crashes. Also notice that 2,872 KB of memory is used by this feature to store the initialized variables.

To perform a manual warm reboot of the router use the warm keyword when issuing a reload. If you don’t include the warm keyword, then a normal cold reboot will take place:

Router1#reload warm
Proceed with reload? [confirm] <enter>
Connection closed by foreign host.
Freebsd%

See Also

Recipe 1.20

Get Cisco IOS Cookbook, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.