

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 迁移上一代节点
<a name="CacheNodes.NodeMigration"></a>

上一代节点是正在逐步停用的节点类型。如果您的现有集群未使用上一代节点类型，则 ElastiCache 不支持创建具有该节点类型的新集群。

由于上一代节点类型的数量有限，当某一节点在集群中运行状况不佳时，我们无法保证成功替换该节点。在这种情况下，您的集群可用性可能会受到负面影响。

 我们建议您将集群迁移到新的节点类型，以获得更好的可用性和性能。有关要迁移到的建议节点类型，请参阅[升级途径](https://aws.amazon.com/ec2/previous-generation/)。有关 ElastiCache 中支持的节点类型和上一代节点类型的完整列表，请参阅 [受支持的节点类型](CacheNodes.SupportedTypes.md)。

## 迁移 Valkey 或 Redis OSS 集群上的节点
<a name="CacheNodes.NodeMigration.Redis"></a>

以下程序介绍了如何使用 ElastiCache 控制台迁移 Valkey 或 Redis OSS 集群节点类型。在此过程中，您的 Valkey 或 Redis OSS 集群将继续处理请求，且停机时间降至最短。根据您的集群配置，您可能会遇到以下停机时间。以下是估计值，可能因您的具体配置而有所不同：
+ 已禁用集群模式（单节点）的停机时间可能大约为 60 秒，主要原因是 DNS 传播。
+ 对于运行 Valkey 7.2 及以上版本或 Redis OSS 5.0.6 及以上版本的集群，已禁用集群模式（具有副本节点）的停机时间可能大约为 1 秒钟。所有较低版本的停机时间大约为 10 秒钟。
+ 启用集群模式的停机时间可能大约为 1 秒钟。

**要使用控制台修改 Valkey 或 Redis OSS 集群节点类型：**

1. 登录到控制台并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/home)）。

1. 在导航窗格中，选择 **Valkey 集群**或 **Redis OSS 集群**。

1. 从集群列表中，选择要迁移的集群。

1. 选择 **Actions**（操作），然后选择 **Modify**（修改）。

1. 从节点类型列表中选择新的节点类型。

1. 如果您要立即执行迁移过程，请选择 **Apply immediately（立即应用）**。如果 **Apply immediately（立即应用）**处于未选中状态，则在此集群的下一维护时段内执行迁移过程。

1. 选择 **Modify**（修改）。如果您在上一步选择了 **Apply immediately**，则集群的状态将变为 **modifying**。当状态变为 **available** 时，即表示修改完成，您可以开始使用新集群。

*要使用 AWS CLI 修改 Valkey 或 Redis OSS 集群节点类型：*

使用 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) API，如下所示：

对于 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group /
	--replication-group-id my-replication-group /
	--cache-node-type new-node-type /
	--apply-immediately
```

对于 Windows：

```
aws elasticache modify-replication-group ^
	--replication-group-id my-replication-group ^
	--cache-node-type new-node-type ^
	--apply-immediately
```

在这种情况下，*new-node-type* 的值是您要迁移到的节点类型。通过传递 `--apply-immediately` 参数，当复制组从 **modifying（正在修改）**变为 **available（可用）**状态时，将立即应用更新。如果 **Apply immediately（立即应用）**处于未选中状态，则在此集群的下一维护时段内执行迁移过程。

**注意**  
如果您无法修改带有 `InvalidCacheClusterState` 错误的集群，则需要先删除还原失败的节点。

### 修复或移除 restore-failed-node
<a name="remove-restore-failed-node"></a>

 以下程序介绍了如何从 Valkey 或 Redis OSS 集群中移除还原失败的节点。要详细了解 ElastiCache 节点如何进入还原失败状态，请参阅[查看 ElastiCache 节点状态](Nodes.viewing.md)。我们建议先移除所有处于还原失败状态的节点，然后将 ElastiCache 集群中剩余的上一代节点迁移到新一代节点类型，最后再重新添加所需数量的节点。

要移除还原失败的节点（控制台）：

1. 登录到控制台并打开 ElastiCache 控制台 ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/home))。

1. 在导航窗格中，选择 **Valkey 集群**或 **Redis OSS 集群**。

1. 从集群列表中，选择要从中移除节点的集群。

1. 从分区列表中，选择要从中移除节点的分区。如果集群的集群模式已禁用，则跳过此步骤。

1. 从节点列表中，选择状态为 `restore-failed` 的节点。

1. 选择 **Actions（操作）**，然后选择 **Delete node（删除节点）**。

从 ElastiCache 集群中移除还原失败的节点后，您现在可以迁移到新一代类型。有关更多信息，请参阅有关[迁移 Valkey 或 Redis OSS 集群上的节点](#CacheNodes.NodeMigration.Redis)的上述内容。

要重新向 ElastiCache 集群添加节点，请参阅[向 ElastiCache 集群添加节点](Clusters.AddNode.md)。

## 迁移 Memcached 集群上的节点
<a name="CacheNodes.NodeMigration.Memcached"></a>

要将 ElastiCache for Memcached 迁移到其他节点类型，您必须创建一个新的集群，该集群始终以空开始，以便您的应用程序可以填充。

**要使用 ElastiCache 控制台迁移 ElastiCache for Memcached 集群节点类型：**
+ 利用新的节点类型创建新集群。有关更多信息，请参阅 [创建 Memcached 集群（控制台）](Clusters.Create-mc.md#Clusters.Create.CON.Memcached)。
+ 在您的应用程序中，将终端节点更新为新集群的终端节点。有关更多信息，请参阅[查找集群的端点（控制台）（Memcached）](Endpoints.md#Endpoints.Find.Memcached)
+ 删除旧的集群。有关更多信息，请参阅 [删除中的集群 ElastiCache](Clusters.Delete.md)。