You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -29,7 +29,7 @@ This document provides step-by-step instructions to help you successfully upgrad
29
29
30
30
For NooBaa upstream (open source code) RPM download instructions, See [NooBaa Non Containerized Getting Started](./GettingStarted.md).
31
31
32
-
## Offline Upgrade
32
+
## Offline Upgrade (Version < 5.18.0)
33
33
The currently available upgrade process of NooBaa Non Containerized is an offline upgrade. Offline upgrade means that NooBaa service must be stopped during the upgrade and that NooBaa endpoints won't be handling S3 requests at the time of the upgrade.
34
34
35
35
### Offline Upgrade steps
@@ -69,5 +69,163 @@ The currently available upgrade process of NooBaa Non Containerized is an offlin
The process of Online Upgrade of Non Containerized NooBaa is not supported yet.
72
+
## Online Upgrade (Version >= 5.18.0)
73
+
74
+
### Online Upgrade Goals
75
+
**1. Minimal downtime -** Ensure minimal downtime for each node.
76
+
77
+
**2. Incremental changes -** Split upgrade to small chunks, for example, upgrade nodes one by one. Each node will get upgraded on its turn, the other nodes will still be available for handling s3 requests.
78
+
79
+
**3. Rollback capability -** Mechanism forrevert to the previous versionincase something went wrong during the upgrade.
80
+
81
+
**4. Schema backward compatibility -** Changes to account/bucket/config schema must be backwards compatible to allow seamless transitions to new version.
82
+
83
+
84
+
### Online Upgrade Algorithm
85
+
86
+
1. Initiate config directory backup (#1).
87
+
2. Iterate nodes one by one -
88
+
* Stop NooBaa service (or suspend the node in CES)
89
+
* RPM upgrade each node.
90
+
* Restart NooBaa service on each node.
91
+
3. Wait for all hosts to finish RPM upgrade (source code upgrade).
92
+
4. Initiate config directory backup (#2).
93
+
5. Initiate upgrade of the config directory using a noobaa-cli complete upgrade command. (point of no return)
94
+
95
+
Online Upgrade Algorithm commands examples -
96
+
1. Config directory backup -
97
+
1. CES - `mms3 config backup /path/to/backup/location`
98
+
2. Non CES - `cp -R /etc/noobaa.conf.d/ /path/to/backup/location`
99
+
2. Stop NooBaa service - `systemctl stop noobaa`
100
+
3. RPM upgrade on a specific node - `rpm -Uvh /path/to/new_noobaa_rpm_version.rpm`
101
+
4. Restart NooBaa service - `systemctl restart noobaa`
"error": "Error: _run_nc_upgrade_scripts: nc upgrade manager failed!!!, Error: this is a mock error\n at NCUpgradeManager._run_nc_upgrade_scripts (/usr/local/noobaa-core/src/upgrade/nc_upgrade_manager.js:258:19)\n at async NCUpgradeManager.upgrade_config_dir (/usr/local/noobaa-core/src/upgrade/nc_upgrade_manager.js:119:13)\n at async start_config_dir_upgrade (/usr/local/noobaa-core/src/manage_nsfs/upgrade.js:52:29)\n at async Object.manage_upgrade_operations (/usr/local/noobaa-core/src/manage_nsfs/upgrade.js:22:13)\n at async main (/usr/local/noobaa-core/src/cmd/manage_nsfs.js:73:13)"
222
+
}
223
+
}
224
+
}
225
+
}
226
+
```
227
+
228
+
### Upgrade Helpers
229
+
1. NooBaa Health CLI - will report on the config directory status, upgrade failures and hosts that are blocked for config directory updates.
230
+
2. NooBaa CLI upgrade status - will print the upgrade status per the information written in system.json.
0 commit comments