站点故障恢复
MinIO 可以使整个站点的损失,虽然在规模上很大,但相对而言是一个较小的事件。 站点的恢复取决于您为该站点选择的复制选项。
| 站点复制 | 从健康的对等站点完全恢复 IAM 配置、存储桶配置和数据 | 
| 存储桶复制 | 对于每个配置了复制的存储桶,从健康的远程位置恢复对象和元数据的数据恢复 | 
| 从健康的远程位置仅恢复对象的数据恢复,且没有版本控制 | 
站点复制的自动愈合功能会将从现有站点(们)的 IAM 设置、存储桶、存储桶配置和对象自动添加到新站点中,无需进行任何额外操作。
如果您在其他健康站点上还有任何存储桶复制规则处于活动状态,那么您将无法配置站点复制。 存储桶复制与站点复制是相互排斥的。
如果您从使用存储桶复制切换到使用站点复制,那么在设置站点复制之前,您必须首先从健康站点上删除所有存储桶复制规则。
将一个不健康的对等节点恢复到站点复制
重要
RELEASE.2023-01-02T09-40-09Z MinIO 服务器版本包含重要修复,用于删除包含三个或更多对等站点的复制配置中已关闭的站点。
对于配置为站点复制的部署,请计划对所有对等站点进行指定版本的 测试和升级。 如果站点出现故障,您可以将剩余的正常站点更新到指定版本并使用此过程。
站点复制 保持了两个或更多 MinIO 部署与 IAM 策略、存储桶、存储桶配置、对象和对象元数据的同步。 如果对等站点发生故障,比如由于重大灾害或长时间停电,您可以使用剩余的健康站点来恢复 可复制数据。
以下步骤可以在站点丢失之前 站点复制 活跃的情况下恢复数据。 这个程序假设一个或多个对等站点的 完全丢失 ,而不是由于延迟或临时部署停机导致的复制滞后或延迟。
- 使用 - mc admin replicate rm命令并带有- --force选项,从 MinIO 站点复制配置中移除失败的站点。- 以下命令从复制配置中强制删除不健康的对等站点: - mc admin replicate rm HEALTHY_PEER UNHEALTHY_PEER --force - 将 - HEALTHY_PEER替换为复制配置中任何健康对等点的 别名
- 将 - UNHEALTHY_PEER替换为不健康对等站的别名。
 - 站点复制配置中所有健康的对等节点都会自动更新以移除不健康的对等节点。 您可以使用 - mc admin replicate info命令来验证新的站点复制配置。
- 按照 站点复制要求 部署一个新的 MinIO 站点。 - 在部署过程中,不要上传任何数据或超出所声明的要求进行其他配置。 
- 验证新的 MinIO 部署是否正常运行,并且具有与其他对等站点的双向连接。 
- 确保新站点的服务器版本与现有对等站点的服务器版本相匹配。 
 - 警告 - 命令 - mc admin replicate rm --force只能在站点复制配置中的在线或健康节点上操作。 已删除的离线 MinIO 部署保留了其原始复制配置,这样如果部署恢复正常运行,它将继续将其配置的对等站点进行复制操作。- 如果您计划重新使用硬件进行站点复制配置,您 必须 在重新初始化 MinIO 并将站点添加回复制配置之前,完全清除该部署的驱动器。 
- 将替换对等站点 添加到复制配置中。 - 使用 - mc admin replicate add命令来更新复制配置,包括新的站点:- mc admin replicate add HEALTHY_PEER NEW_PEER - 将 - HEALTHY_PEER替换为复制配置中任何健康对等点的 别名
- 将 - NEW_PEER替换为新的对等站点的别名。
 - 在站点复制配置中,所有健康的对等站点会自动更新以包括新的对等站点。 您可以使用 - mc admin replicate info命令来验证新的站点复制配置。
- 使用 - mc admin replicate resync重新同步新对等体。- mc admin replicate resync start HEALTHY_PEER NEW_PEER - 将 - HEALTHY_PEER替换为复制配置中任何健康对等体的 alias。
- 将 - NEW_PEER替换为新对等体的别名。
 
- 验证复制状态。 - 要跟踪复制状态,您可以使用以下命令: - mc admin replicate status- 提供复制的总体状态和进度
- mc replicate status- 提供桶级别和全局复制状态
 
活动桶复制重新同步
对于在故障之前已经设置了 bucket replication 的场景,您可以使用 mc replicate resync 将数据恢复到一个新的站点。
创建一个新的站点来替换失败的部署,然后将数据从现有健康的、启用了桶复制的部署同步到新的站点。
- 部署新的 MinIO 站点 
- 根据需要设置 IAM 和用户 
- 在拥有数据的站点上,使用 - mc admin bucket remote add命令创建一个新的- remote target,并记录输出中的 ARN。
- 从拥有数据的站点出发,使用之前命令中得到的 ARN,使用 - mc replicate resync start命令在新站点上重建桶。
- 等待重新同步完成(使用 - mc replicate resync status命令来检查)。
- 设置从新 MinIO 站点到现有目标存储桶的存储桶复制规则 
- (可选) 从目标部署中删除存储桶复制规则以恢复主动-被动复制场景 
被动桶复制重新同步
Bucket replication 可以通过从目标桶(s)复制到新的 MinIO 网站来直接恢复网站内容。
作为一个被动过程,桶复制在站点恢复场景下可能不会像期望的那样快速执行。
桶复制依赖于标准的复制 扫描器 队列,这个队列不会优先于其他进程。
对于具有更严格SLA/SLO的恢复程序,请使用上述描述的主动桶复制过程和 mc replicate resync 命令。
Bucket replication 规则会复制对象、其版本 ID、版本以及其他元数据到目标桶。 如果在站点丢失之前已使用存储桶复制,则 MinIO 可以将具有所有这些属性的对象恢复到新的 MinIO 站点。
- 部署新的 MinIO 站点 
- 根据需要设置 IAM 和用户 
- 在剩余的目标桶部署中,为每个桶创建到新 MinIO 网站的桶复制规则。 
- 等待复制完成 
- 设置从新 MinIO 站点到现有目标存储桶的存储桶复制规则 
- (可选) 从目标部署中删除存储桶复制规则以恢复主动-被动复制场景 - 如果你希望保持桶之间的活动-活动复制,就不要从用于恢复数据的部署中删除桶复制规则。 在活动-活动复制中,任何位置的对象更改都会影响到另一个位置的对象。 
镜像
MinIO 的镜像功能可以复制任何 S3 兼容存储系统中的对象。
镜像只复制每个对象的最新版本,并且不包括版本元数据,无论来源如何。 使用这种方法,您无法恢复这些属性。
在您需要仅恢复对象最新版本的情况下,请使用 mc mirror 命令。
如果您正在从另一个 MinIO 部署复制,并且希望恢复对象的版本历史和版本元数据,请使用 bucket replication 或 站点复制,这些方法在复制过程中会保留版本信息。
- 部署新的 MinIO 站点 
- 根据需要设置 IAM 和用户 
- 在新站点上创建存储桶 
- 使用 - mc cpCLI 命令将镜像位置的内容复制到新的 MinIO 网站上。
