These instructions are to perform a 'Non-Stop Software Upgrade' (NSSU). For the official docs check this page on the Juniper website.
First validate that the NSSU can be executed.
show task replication
and verify that GRES and NSR are enabled. If they are not enabled follow the GRES/NSR instructions below.vcp-no-hold-time
statement has been configured under the virtual-chassis
configuration.protocols layer2-control
.For EX4300 and EX4600 devices, Juniper has a PDF available which details problem reports when running a NSSU. Currently the PDF is available here.
To enable GRES with NSR:
set chassis redundancy graceful-switchover
set routing-options nonstop-routing
It is also recommended that the configuration option "switchover-on-routing-crash" is configured; this will switch over routing engine if the routing process crashes rather than interrupting traffic. This feature may be enabled by running:
set switchover-on-routing-crash
To enable non-stop bridging:
set protocols layer2-control
Execute the upgrade by uploading the software package and requesting the software upgrade:
request system software nonstop-upgrade /var/tmp/package-name.tgz
The upgrade will take much longer than a standard upgrade (depending on how many switches there are in the virtual chassis). For a 4 switch EX4600 virtual chassis it took approximately 1 hour 15 minutes. This is expected as the upgrades happen one by one rather than all at the same time.
Failures during the upgrade sometimes occur. As an example:
[Dec 12 21:34:46]: FPC 1 is undergoing a software upgrade
.
.
[Dec 12 21:35:47]: FPC 1 has come up after a software upgrade
.
.
[Dec 12 21:36:43]: FPC 1 is undergoing a software upgrade
.
.
[Dec 12 21:37:44]: FPC 1 has come up after a software upgrade
Verified jinstall-vjunos-19.3R2.9.tgz signed by JuniperSwitchingProduction_2015 method RSA2048+SHA1
Adding vjunos...
Saving contents of boot area prior to installation
WARNING: This package will load JUNOS 19.3R2.9 software.
WARNING: It will save JUNOS configuration files, and SSH keys
WARNING: (if configured), but erase all other files and information
WARNING: stored on this machine. It will attempt to preserve dumps
WARNING: and log files, but this can not be guaranteed. This is the
WARNING: pre-installation stage and all the software is loaded when
WARNING: you reboot the system.
POST-INSTALL...
Saving the config files ...
NOTICE: uncommitted changes have been saved in /var/db/config/juniper.conf.pre-install
Pushing installation package to host...
Extracting jinstall-ex-4600-19.3R2.9 ...
Install jinstall-ex-4600-19.3R2.9 completed
Install jinstall-vjunos completed
WARNING: A REBOOT IS REQUIRED TO LOAD THIS SOFTWARE CORRECTLY. Use the
WARNING: 'request system reboot' command when software installation is
WARNING: complete. To abort the installation, do not reboot your system,
WARNING: instead use the 'request system software delete jinstall'
WARNING: command as soon as this operation completes.
Saving state for rollback ...
error: [Dec 12 21:44:25]:Rebooting the VC
Rebooting fpc0
Rebooting fpc1
<cut>
The above failure caused more than one FPC to restart resulting in an outage for devices connected to both of those FPC's.
I have also encountered a problem where after the upgrade is complete a switch will continually join and leave a virtual chassis. That was fixed by rebooting the member (I waited until it had joined the virtual chassis again), in this case FPC 3:
run request system reboot member 3 at now hypervisor