zoukankan      html  css  js  c++  java
  • Service Fabric Failover Manager

    作者:潘罡 (Van Pan)@ Microsoft

    什么是Failover Manager

    我们回到Service Fabric系统架构图。

    Failover Manager是Reliability Subsystem其中的一部分核心组件。它被设计为SF的一个Service。你可以在Service Fabric Explorer中看到这个服务。

    它主要负责以下功能:

    • 维护全局可用的Node及Service视图
    • 和Placement and Load Balancer (PLB) 以及 Reconfiguration Agent (RA)紧密工作。(PLB会在后续章节进行介绍。RA在上一节CM中有过介绍,主要负责在Node中应用配置变动)
    • 创建Failover Units以及Replicas
    • 如果发生故障,负责Failover Replicas。(比如选举Replica成为Primer)
    • 管理SF 升级
    • 管理Node失效
    • 如果发生灾难,负责重建系统状态

    Failover Manager由以下部分组成

    • Global Failover Unit Map (GFUM)
      • Node 缓存
      • Service 缓存
      • Failover Unit 缓存
      • 内建Failover Unit 缓存
    • State Machine
      • State 升级
      • 重新配置
      • Placement
      • Replica 移动

    GFUM介绍

    Node 缓存

    Node缓存维护了所有Node的以下信息

    • Node Id
    • Node Name
    • Upgrade Domain
    • Capacity
    • 失效/激活状态

    Servic缓存

    Service 缓存维护了以下信息

    • Service 列表
    • Service Type 列表
    • Application 列表
    • Application 当前升级状态

    Failover Unit缓存

    Failover Unit 缓存维护了以下信息

    • Failover Unit以及Replica列表
    • Service查找表

    工作流程举例

    我们用创建一个Service的例子,以下SF部件将协同工作。

    Client –> Gateway –> CM –> Naming Service –> FM –> RA

    在上一节中,我们已经介绍了CM和Naming Service之间是如何工作的,下面我们详细介绍FM内部如何工作。

    详细步骤:

    1. 增加Service命令到达FM
    2. FM向Service 缓存添加Service信息
    3. FM向Failover Unit 缓存添加Failover Unit
    4. FM更新PLB
    5. PLB 向FM返回新的Placement
    6. FM返回增加Service命令执行结果
    7. FM向Failover Unit 缓存创建Replica信息
    8. FM通知RA向Node中添加Replica

    其他信息

    因为FM的特性以及存储的信息,以下PS命令是在FM中执行的。

    Get-ServiceFabricNode
    Get-ServiceFabricService
    Get-ServiceFabricPartition
    Get-ServiceFabricReplica

  • 相关阅读:
    面试题整理
    Node.js核心模块-stream流
    Node.js核心模块-crypto加密
    Node.js核心模块-assert
    Node.js全局对象-process
    nodemon
    随笔
    python学习笔记(十四): unittest
    python学习笔记(十三): 多线程多进程
    python学习笔记(十二):发送邮件
  • 原文地址:https://www.cnblogs.com/mschiefevangelist/p/6673047.html
Copyright © 2011-2022 走看看