blob: 899da9bc5f11bdb6bbe4b0918ed635a9bde9084f [file] [log] [blame]
<% set_title("Upgrading", product_name_long) %>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
To upgrade an existing installation to a new version of <%=vars.product_name_long%>,
follow these general steps:
1. Back up your current system.
1. Install the new version of the software.
1. Stop your cluster using the current software.
1. Restart the system using the new software.
In many cases, components running under the current version can be stopped selectively, then restarted under the new version
so that the cluster as a whole remains functional during the upgrade process; this is known as a "rolling upgrade."
In other cases, the entire system must be stopped in order to accomplish the upgrade,
which will require some downtime for your system.
See [Planning an Upgrade](upgrade_planning.html) to choose the upgrade scenario that best suits your implementation and to understand the resources
you will need to accomplish the upgrade. Then select the appropriate upgrade procedure for more detailed instructions that fit your specific needs.
## <a id="upgrade_details" class="no-quick-link"></a>Upgrade Details
- **[Planning an Upgrade](upgrade_planning.html)**
This section discusses the upgrade paths for various <%=vars.product_name_long%>
versions, and it lists information you need to know before you begin
the upgrade process.
- **[Rolling Upgrade](upgrade_rolling.html)**
A rolling upgrade allows you to keep your existing cluster running while you upgrade your members gradually.
- **[Offline Upgrade](upgrade_offline.html)**
An offline upgrade can handle the widest variety of software versions and cluster configurations, but requires shutting down the entire
system for at least a short time.
- **[Upgrading Clients](upgrade_clients.html)**
When you upgrade your <%=vars.product_name%> server software, you may need to update your client
applications in order to maintain compatibility with the upgraded servers.
## <a id="upgrade_to_115" class="no-quick-link"></a>Upgrading to v1.15
For some users, issues regarding SSL protocols and their default values require a preparatory SSL protocol migration step when upgrading to <%=vars.product_name%> v1.15.
Please read the following section carefully to determine whether your system requires this additional SSL protocol migration step.
### <a id="is_ssl_protocol_migration_required" class="no-quick-link"></a>Does my System Require SSL Protocol Migration Before Upgrading to <%=vars.product_name%> v1.15?
To determine whether your system requires the SSL protocol migration preparatory step, see if your system meets both of the following conditions:
- If `ssl-endpoint-identification-enabled` is set to `true` AND<br/>
- If `ssl-protocols` is set to a value other than "any", that is, it specifies a list of specific protocols, but does not include "SSLv2Hello",
THEN your system requires the SSL protocol migration step.
**How do I determine my system's settings for the `ssl-endpoint-identification-enabled` and `ssl-protocols` properties?**
SSL properties may be set in properties files or on the gfsh command line. To determine the settings for these parameters,
- Check `gemfire.properties` and `gfsecurity.properties` for
`ssl-endpoint-identification-enabled=true`. Also look for `ssl-use-default-context=true`, which sets
`ssl-endpoint-identification-enabled=true`.
- Search system logs for these properties (using `grep`, for example).
## <a id="preparatory-migration" class="no-quick-link"></a>Preparatory SSL Protocol Migration
The preparatory SSL protocol migration process consists of replacing one property, `ssl-protocols`,
with two new properties, `ssl-client-protocols` and `ssl-server-protocols`, then removing the old
`ssl-protocols` definition. Perform this substitution in whatever way the original `ssl-protocols`
were defined: in `.properties` files or on a command line.
1. If your system is running JDK 8, upgrade to the latest version of JDK 8 before proceeding. This is necessary, even if you plan to
perform the optional JDK upgrade step to JDK 11 or JDK 17.
1. Shutdown a member (server or locator).
2. Install <%=vars.product_name%> 1.15.
3. Optionally install a new Java JDK.
4. Add security property `ssl-client-protocols` with the same definition as the old `ssl-protocols` property.
5. Add security property `ssl-server-protocols` with the same definition as the old `ssl-protocols` property PLUS "SSLv2Hello".
For example, if the original value of `ssl-protocols` is "TLSv1.2", then define
- `ssl-client-protocols="TLSv1.2"`
- `ssl-server-protocols="TLSv1.2,SSLv2Hello"`
6. Start the member.
7. Verify successful cluster join.
8. Repeat from step 1 for the next member.
Optionally, after your upgrade is complete, you may restore your original `ssl-protocols` property
and restart all your members to eliminate the `SSLv2Hello` protocol support.