🧩 一、Nimble 双活(Peer Persistence)整体架构
在 Nimble(HF-Series 或 AF-Series)中,双活主要通过功能:
Synchronous Replication + Peer Persistence
实现 两个阵列(Array) 之间的数据同步和无中断切换。
关键组件包括:
| 组件 | 作用 |
|---|---|
| Group Management | 管理两个阵列组成的同步复制组(Sync Replication Group, SRG) |
| Replication Links(同步链路) | 两阵列之间的数据同步通道(通常 2–4 条) |
| Witness(仲裁服务) | 第三方节点,用于故障仲裁、自动切换判断 |
| Volume Collection(卷集合) | 控制哪些卷参与同步复制 |
| ALUA / Multipath(主机侧) | 主机通过多路径访问两个阵列,保持 IO 连续性 |
Active/Active 架构
两台 Nimble 阵列都为主机提供读写访问。
同步复制(Sync Replication)在阵列之间实时镜像数据(写操作需双方确认 ACK 才返回)。
同步链路(Sync Links)
通常配置 2–4 条 TCP/IP 链路进行同步流量。
链路聚合后形成一个逻辑同步通道。
数据传输采用同步确认机制:两端都写入成功才算成功。
Witness 仲裁机制(可选但强烈推荐)
Witness 用于判断哪一端失联时该由哪一侧保持“主”角色,避免脑裂。
你说的“断掉单台业务主机的 4 条数据同步链路”
即:一台 Nimble 阵列与另一台之间的 Replication Links 全部中断。
那么此时:
| 组件 | 状态 | 说明 |
|---|---|---|
| 同步复制 | 失效 | 数据无法同步 |
| 双活状态 | 挂起(Suspended) | SRG 状态变为 “Paused” 或 “Inconsistent” |
| Witness | 可通信(假设未断) | 仍认为两台阵列都在线,但复制不可用 |
| 主机 IO | 仍在原阵列上运行 | 因为主阵列没有宕机,只是同步失败 |
👉 这时不会自动切换!
双活切换的自动触发条件如下:
| 条件 | 自动切换触发? |
|---|---|
| 对端阵列宕机(完全掉电 / 无响应) | ✅ 是(通过 Witness 仲裁) |
| 同步链路中断,但阵列本身仍在线 | ❌ 否(认为是网络问题,不切换) |
| Witness 不可用 + 单边网络断 | ⚠️ 否(系统无法安全判断谁是主) |
| 手动触发(通过 CLI 或 GUI) | ✅ 可以切换主从角色 |
也就是说:
Nimble 的自动切换(Auto-Failover)是基于阵列状态和 Witness 判断的,不会因为仅复制链路断开就切换。
这是为了避免脑裂(split-brain)导致两边都写入不同数据。
如果确认同步链路已修复或你希望人工切换:
group --select <GroupName> --set primary-array <ArrayName>
在 Manage → Protection → Synchronous Replication Groups 中:
选中 SRG;
点击 “Change Primary”;
确认切换操作。
切换后:
新的主阵列开始对外提供主访问;
数据在链路恢复后重新同步。
| 事件 | 双活状态 | 自动切换 | 备注 |
|---|---|---|---|
| 阵列宕机(对端完全离线) | 主动切换 | ✅ 是 | Witness 决定主机方向 |
| 同步链路断(仅复制链路断) | 暂停复制 | ❌ 否 | 需人工介入 |
| Witness 失联 | 降级为非自动模式 | ❌ 否 | 不会切换,防脑裂 |
| 链路恢复 | 自动重新同步 | ✅ 是 | 数据重建后恢复双活 |
务必部署 Witness(推荐在第三数据中心或云上)
这样阵列失联时可自动判定主机方向。
复制链路建议至少 2 条物理路径,跨交换机布线
避免单点网络断造成复制中断。
在断链状态下不要强制主机同时写入两个阵列
否则容易造成数据不一致。
恢复后应执行手动同步(resync)前检查日志一致性。
| 项目 | 说明 |
|---|---|
| 架构类型 | 同步复制 + Peer Persistence |
| 自动切换条件 | 对端阵列宕机 + Witness 存活 |
| 不触发原因 | 仅链路断 → 阵列仍在线 → 不触发自动切换 |
| 手动切换命令 | set primary-array <ArrayName> |
| 保护机制 | 防止脑裂、数据不一致 |
# 1. 登录Nimble管理界面
ssh admin@primary_array_ip
# 2. 查看当前SRG状态
group --select <GroupName> --info
# 3. 手动切换主从角色
group --select <GroupName> --set primary-array <StandbyArrayName>
# 检查Witness状态
witness --info
# 确保状态为"Connected"且延迟低于阈值(如50ms)
witness --status)。暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论