0
点赞
收藏
分享

微信扫一扫

Hologres多实例读写分离高可用部署

一葉_code 2022-03-11 阅读 52
阿里云

Hologres多实例读写分离高可用部署(共享存储)

Hologres 从V1.1版本开始,针对线上生产环境高可用的场景,提供了共享存储的多实例部署方式,在该模式下支持故障隔离,负载隔离,有效支撑了高可用场景。

单实例自动恢复的高可用方案

Hologres计算节点均为容器调度(即下图中的Worker Node),资源管理器(Resource Manager)负责周期性健康检查。当出现1分钟容器响应超时(可能是内存溢出、硬件故障、软件Bug等原因导致),Resource Manager会自动拉起新的计算节点,并迁移Shard职责到新的节点上(例如Worker Node3响应超时,Resource Manager拉起Worker Node4取代Worker Node3),实现系统状态的快速恢复。数据状态保存在盘古分布式存储系统中,无需从计算节点迁移,计算节点轻量无状态,系统可以快速从故障中恢复。该方案为当前每个实例内部默认启用,当系统发生故障时,无需手工运维介入,系统可以自动恢复。在恢复期间,如果查询算子需要访问恢复中的节点,则查询会立即失败。Hologres从V1.1版本开始,采用全新恢复机制,节点恢复速度在一分钟左右,比早期版本提速5~10倍。单可用方案

共享存储的多实例高可用方案

在单实例方案中,采用的是故障实时监测、节点替换的方案,在节点恢复时存在一定的服务不可用周期,对于关键业务场景,需要更高级别的高可用方案,支持故障隔离、负载隔离。Hologres 在V1.1版本,支持采用共享存储的多实例部署方案。在该方案中,主实例具备完整能力,数据可读可写,权限、系统参数可配置,而只读从实例处于只读状态,所有的变更都通过主实例完成,如下图所示。

共享存储多实例

  • 当前最多可以配置四个只读从实例,各实例之间的资源配置可以不同,但不应该有明显差异,所有实例之间Shard数相同。
  • 不同只读从实例具备独立的访问Endpoint,在使用上,通过Endpoint隔离不同的业务场景。
  • 所有实例共享同一份数据和访问控制,仅有一份存储费用。
  • 实例之间内存状态自动实时同步,同一个Region毫秒级同步,同步以实例为单位,不支持细粒度同步单位配置。
  • 实例之间计算资源不共享,负载隔离,故障隔离。
  • 建议将主实例作为数据写入和加工节点,只读从实例作为OLAP和在线服务的节点。
  • 由于实例的隔离性,减少了读写负载的冲突,减少了锁和事务的开销,可以显著提升节点的健壮性,也可以通过部署多个只读从实例,实现节点的高可用。

配置共享存储多实例

配置共享存储多实例的高可用操作步骤如下:

  1. 购买新的实例。

    新的实例将会用作只读实例,因此只需要买计算资源即可,无需买存储资源。新的实例需要与原实例处在同一个Region。

  2. 提交工单申请

    新的实例购买成功后。请您提交工单并提供以下信息,Hologres运维人员会在后台进行部署配置。

    • 原实例(主实例)ID。
    • 新实例(只读实例)ID。
    • 期望配置时间。

    使用共享存储多实例的过程中,需要注意如下事项。

    • 配置完成后,可以用只读从实例的Endpoint提供线上服务。
    • 所有的操作,包括建表、用户授权等都在主实例内完成,只读从实例只能读取数据。
    • 只读从实例会自动拥有主实例内的所有对象,包括用户、表等,在权限控制层,不能为只读从实例单独创建用户。
举报

相关推荐

0 条评论