The InfiniBox code upgrade process replaces an InfiniBox software version with a newer software version in a non-disruptive manner, using a process that does not interfere with the ongoing tasks being performed on the InfiniBox system.
The non-disruptive upgrade process relies on the InfiniBox architecture. The upgrade process is comprised of three parts: pre-upgrade checks, hot upgrade, post-upgrade checks. In case the system cannot carry out the process, the code upgrade is canceled and the system keeps operating on the old software code, until a new upgrade process is started.
The process is performed by Infinidat Support and is carried out only with the full consent of the customer.
Hot upgrade concept
Unlike cold upgrade and rolling upgrade, the InfiniBox Hot Upgrade process upgrade all of the nodes simultaneously featuring the following benefits:
- There is no host downtime and no application disruption
- There is no need for a storage controller failover
- The process does not rely on host multipath configuration
- It is possible to operate InfiniBox even if one of the nodes failed to upgrade
The upgrade process
The upgrade process is comprised of three major steps:
- Pre-upgrade activity (Scheduling, Preparation, and Pre-upgrade checks)
- The upgrade
- Post upgrade activity (checks, verification and auxiliary tasks)
Customers should engage their technical advisor (TA) and discuss and decide the following key points:
- The appropriate code version for the upgrade
- Review the code version release notes
- The best time to perform the upgrade
- The best time to perform pre-upgrade checks
The pre-upgrade checks are usually performed up to 48 hours before the scheduled upgrade. The checks are performed again just before the upgrade process is scheduled to begin, to make sure that there has not been any last-minute changes to the system.
Once the decisions are reached, the TA will arrange for the upgrade with Infinidat support.
Once a ticket is created for the upgrade, Infinidat support will perform the following tasks as preparation for the upgrade:
- Verify the upgrade path from the current version to the target version
- Check existing and previous tickets for the system and determine if there is any known condition that might prevent the upgrade, or require some additional tasks to be performed prior to the upgrade.
The pre-upgrade checks are usually 2-5 days prior to the actual upgrade, performed based on customer schedule. This is done to save time during the upgrade process and to reduce cancellations due to issues which must be corrected before the upgrade.
At this time, Infinidat support will connect to the system remotely and will perform the following actions:
- Update the relevant utility/tools on the Support Appliance (SA)
- Stage the relevant InfiniBox code version to the Support Appliance
- Perform pre-upgrade checks to determine whether the system is at peak health and ready for the upgrade
- Optional - upgrade the remote connectivity software on the Support Appliance
If any issue is found during the above steps, Infinidat support will contact the customer to discuss the results and to schedule further activities.
The upgrade will be conducted at the time decided upon by the customer and the TA, and will include the following tasks:
- Perform another set pre-upgrade checks to make sure that issues have not developed in the past few days
- Run the code upgrade sequence
- Perform automatic post-upgrade checks
The code upgrade sequence
The code upgrade sequence takes place during the upgrade, and consists of the following actions:
Prepare the operating system for the upgrade
- Load the code from the Support Appliance to the Nodes
- Reduce the amount of "dirty cache"
- Stop services that are not part of the I/O path (for example - Management (GUI, CLI) and Hardware monitoring)
Run a hardware health check
At this point, the system hardware is monitored by the upgrade process
In case of any hardware failure, roll-back the upgrade
- Pause I/O
- Stop accepting new I/Os
- Keep servicing I/O requests that are already in process, until they are fully drained
- If for any reason, the I/O requests cannot be fully serviced within 2 seconds, cancel the upgrade and perform a rollback
- Stop accepting new I/Os
- Kernel upgrade
- KEXEC (Kernel Execution) is a Linux Kernel mechanism that allows live booting of a new kernel over the currently running kernel
- The kernel execution activates the new code while the old code is still running
- At the end of this step, the nodes run on the new code
Resume I/O Operation
Start all other I/O services (NAS, remote replication)
Start all other services (Management (GUI, CLI) and Hardware monitoring)
Perform post-upgrade tasks
- Run automatic actions that are required by the upgrade, such as changing internal parameters, and tuning
Once the upgrade is completed, the Infinidat support team will perform another set of checks to verify the system is healthy and the upgrade was successful. The Infinidat support team will also perform any post-upgrade actions that might be required to finish the upgrade; for example, they will gradually restart the FC port to load new firmware (if new FC port firmware is available).
If there are any issues that arise from the post-upgrade activities, or if any additional action is required, Infinidat support will contact the customer to discuss what is needed to rectify the situation.
Frequently Asked Questions:
Q: How long does the upgrade take?
A: This depends on the system model and workload. The actual code upgrade should take between 15-30 minutes to complete, but the additional pre- and post-upgrade tasks that may require 1-2 hours to complete.
Q: How long my host will be impacted?
A: The upgrade creates a minimal impact on your system. The actual cut-over to the new software takes less than 10 seconds - this is far below the SCSI timeout threshold.
Q: Which version should I upgrade to?
A: Infinidat recommends that you upgrade to the latest available version, Review the release notes and discuss the matter with your TA, who is best equipped to advise you properly.