Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

灾难恢复概述

Junos Space 群集允许您在网络管理解决方案中保持高可用性和可扩展性。但是,由于群集中的所有节点需要位于同一子网中,因此通常部署在同一数据中心或同一园区内。但是,通过将群集上的原始 Junos Space 安装镜像到地理位置不同的位置上的另一个群集,可以轻松从某个位置的灾难中恢复群集。因此,如果 Junos Space 主站点因地震等灾难而出现故障,另一个站点可以接管。因此,灾难恢复设置的物理安装通常是一组两个在地理位置上独立的群集:活动或主站点(即本地站点)和备用站点(即远程站点)。

在满足基本连接要求和先决条件(请参阅 配置灾难恢复的先决条件配置灾难恢复的连接要求 )时,来自活动站点群集的数据将近乎实时地复制到备用站点的群集。

MySQL 和 PgSQL 数据库中的数据通过 SSL 连接从活动站点异步复制到备用站点。灾难恢复站点之间的 MySQL 和 PgSQL 数据使用初始化灾难恢复时生成的自签名 SSL 证书进行加密。在实时数据复制到备用站点期间,CA 根证书、CCL、用户证书、脚本、设备映像、存档的审计日志和有关计划作业的信息将复制到备用站点。通过使用安全复制协议 (SCP) 从活动站点到备用站点定期同步配置和轮询数据库 (RRD) 文件。

灾难恢复监督程序是一种内置的 Junos Space 机制,可监控各个站点的数据库复制的完整性。在活动站点故障转移到备用站点之前,所有其他服务(如 JBos、OpenNMS、Apache 等)不会在备用站点上运行。当活动站点关闭时,会自动启动到备用站点的故障切换。设备仲裁算法用于确定哪个站点应是活动站点,以防止出现两个站点都试图处于活动状态的分裂情况。有关设备仲裁算法的信息,请参阅 使用设备仲裁算法检测故障

以下部分介绍了灾难恢复过程、故障检测机制和灾难恢复命令的连接要求:

灾难恢复解决方案

在活动站点和备用站点之间配置并启动灾难恢复过程后,将启动这些站点之间的 MySQL 和 PgSQL 数据库的异步复制。配置和 RRD 文件以定义的时间间隔通过 SCP 备份到备用站点。

灾难恢复过程不会执行 Cassandra 数据库到备用站点的实时复制或监控在 Junos Space 节点上运行的 Cassandra 服务。

在灾难恢复解决方案的正常运行期间,GUI 和 API 用户以及托管设备将连接到活动站点,以实现所有网络管理服务。只要活动站点正常运行,备用站点与托管设备之间的连接将被禁用。当活动站点因灾难而不可用时,备用站点将开始运行。此时,将启动备用站点上的所有服务,并建立备用站点与托管设备之间的连接。

图 1 显示了灾难恢复解决方案。

图 1:灾难恢复解决方案 Disaster Recovery Solution

灾难恢复监督程序进程在主动站点和备用站点的 VIP 节点上启动,以监控复制过程的运行状况并检测远程站点何时关闭。本地站点的灾难恢复监督程序会检查两个站点之间是否存在连接问题(通过对远程站点的节点执行 ping 操作),以及这些站点是否连接到仲裁设备(如果您使用设备仲裁算法)。

站点的灾难恢复监督程序会执行以下任务,以确认与远程站点和仲裁设备的连接:

  • 按定期的可配置间隔对远程站点的 VIP 地址执行 Ping 操作。间隔的默认值为 30 秒。

    对于每次 ping,期待在可配置的超时间隔内回复。超时间隔的默认值为 5 秒。

  • 如果本地站点在超时间隔内未收到回复,则灾难恢复监督程序会对 ping 进行可配置的多次重试。默认情况下,重试数为 4。

  • 如果所有重试都失败,则本地站点的灾难恢复监督程序会得出结论,无法访问远程站点的 VIP 地址。

    但是,灾难恢复监督程序不会断定远程站点是否关闭,因为远程站点可能会由于本地切换而通过 VIP 地址切换到备用节点。

  • 为了考虑 VIP 地址切换的可能性,灾难恢复监督程序对远程站点上其他负载平衡器节点的 IP 地址执行 ping 操作。如果对任何节点的 ping 收到回复,则灾难恢复监督组织会得出结论,远程站点仍在正常运行。

    如果对节点的 ping 失败,则灾难恢复监督程序不会认为远程站点已关闭。相反,灾难恢复监督器会考虑站点之间可能存在的连接问题。这两个站点都会尝试激活。

  • 为了防止两个站点都尝试成为活动站点,灾难恢复监督程序会启动设备仲裁算法,并确定是否需要故障转移。

    只有当活动站点管理的仲裁设备百分比降到故障切换阈值以下时,故障切换才会启动。然后,活动站点成为备用站点,备用站点成为活动站点。

    如果仲裁设备百分比高于故障切换阈值,则备用站点将保持待机状态,活动站点保持活动状态。活动站点管理的仲裁设备百分比可配置,其默认值为 50%。

如果满足以下条件,将启动故障切换:

  • 备用站点无法访问活动站点的 VIP 地址或活动站点上其他负载平衡器节点的节点 IP 地址。

  • 由活动站点管理的仲裁设备百分比低于故障切换阈值。

有关设备仲裁算法的更多信息,请参阅 使用设备仲裁算法进行故障检测

配置灾难恢复的先决条件

配置灾难恢复之前,您需要确保 Junos Space 安装满足以下先决条件:

  • 主站点或活动站点(可以是单节点或多个节点)的 Junos Space 群集以及位于远程或备用站点(可以是单个节点或多个节点)的群集必须以完全相同的方式进行设置,所有相同的应用程序、设备适配器、相同的 IP 系列配置、 等等。

  • 两个群集都应使用 Junos Space 用户界面中的 SMTP 服务器信息进行配置。有关更多信息,请参阅 管理 SMTP 服务器。此配置使活动站点和备用站点的群集能够在复制失败时通过电子邮件通知管理员。

注意:

活动站点和备用站点中的节点数应相同。

配置灾难恢复的连接要求

配置灾难恢复之前,您需要确保灾难恢复解决方案满足以下连接要求:

  • 主动站点和备用站点的 Junos Space 群集之间的第 3 层连接。这意味着:

    • 群集中的每个节点都可以成功地 ping 另一个群集的 VIP 地址

    • 群集中的每个节点都可以使用 SCP 在主动站点和备用站点之间传输文件

    • 通过 TCP 端口 3306(MySQL 数据库复制)和 5432(PostgreSQL 数据库复制)可以在两个群集间进行数据库复制

    • 两个群集之间连接的带宽和延迟使实时数据库复制成功。尽管所需的确切带宽取决于传输的数据传输量,但我们建议至少使用 100 Mbps 的带宽连接,且延迟小于 150 毫秒。

  • 每个群集与托管设备之间的独立第 3 层连接

  • 每个群集与 GUI 或 NBI 客户端之间的独立第 3 层连接

要设置灾难恢复过程,请参阅在 主动站点和备用站点之间配置灾难恢复过程

灾难恢复监督程序

灾难恢复监督程序也称为 DR 监督器,是一种内置 Junos Space 机制,用于监控站点间数据复制(MySQL 数据库、PgSQL 数据库、配置文件和 RRD 文件)的完整性。灾难恢复监督程序还会监控灾难恢复设置的整体运行状况,在主动站点发生故障时启动从主动站点到备用站点的故障转移,并使备用站点能够在尽可能少的服务中断的情况下恢复网络管理服务。当您启动灾难恢复过程时,在两个站点的 VIP 节点上启动灾难恢复监控程序的实例。

灾难恢复监督程序提供以下服务:

心跳

主动站点和备用站点之间的心跳服务使用 ping 检查站点之间的连接。两个站点相互发送心跳消息。心跳服务会执行以下任务:

  • 通过定期对远程站点执行 ping 操作,检测远程站点的故障。

  • 当远程站点无法回复时,可以排除由于远程站点的本地故障切换而出现临时问题的可能性。

  • 根据灾难恢复配置设置,启用或禁用自动故障转移。

  • 通过运行设备仲裁算法(默认)或在自定义脚本中配置的逻辑,避免出现分脑的情况。

  • 验证站点重新启动后的灾难恢复配置。

mysqlMonitor

mysqlMonitor 服务会执行以下任务:

  • 监控站点内以及主动站点与备用站点之间的 MySQL 数据库复制的运行状况。

  • 修复 MySQL 数据库复制错误。

  • 如果无法自动修复任何 MySQL 数据库复制错误,通过电子邮件通知管理员。

pgsqlMonitor

pgsqlMonitor 服务会执行以下任务:

  • 监控站点内以及主动站点与备用站点之间的 PgSQL 数据库复制的运行状况。

  • 修复 PgSQL 数据库复制错误。

  • 如果无法自动修复任何 PgSQL 数据库复制错误,通过电子邮件通知管理员。

文件监控

文件监控服务将执行以下任务:

  • 监控站点内以及主动站点与备用站点之间复制的配置文件和 RRD 文件的运行状况。

  • 修复在配置文件和 RRD 文件复制期间发现的错误。

  • 如果无法自动修复任何复制错误,通过电子邮件通知管理员。您还可以查看 cron 作业输出中的复制错误。

仲裁器监控

仲裁器监控服务会定期检查本地站点是否可以对所有仲裁设备执行 ping 操作。如果可访问的仲裁设备百分比低于配置的警告阈值 (默认情况下为 70%),则向管理员发送电子邮件通知。

配置监控

configMonitor 服务将执行以下任务:

  • 监控两个站点所有节点的灾难恢复配置文件。

  • 如果文件不同步,则跨站点内的节点传输配置文件。

服务监控

服务监控服务会执行以下任务:

  • 监控特定站点内选定服务(如 jboss、jboss-dc、httpd 和 dr-watchdog)的状态。

  • 如果所选服务显示不正确状态,则启动或停止这些服务。

通知

通知服务会通过电子邮件向管理员通知灾难恢复监督程序检测到的错误状况、警告或灾难恢复状态更改。在以下情况中,将发送通知电子邮件:

  • 由于站点与仲裁设备之间的连接问题,自动故障切换已禁用。

  • 可访问的仲裁设备百分比低于警报阈值。

  • 站点将成为备用或活动站点。

  • 备用站点无法通过 SCP 从活动站点备份文件。

  • 站点无法与远程站点建立 SSH 连接。

  • 本地站点无法获取 MySQL 主节点的主机名。

  • 站点无法修复 MySQL 和 PgSQL 数据库复制错误。

通知服务不会在可配置的时间段内(默认为 3600 秒)内发送报告相同错误的电子邮件。

使用设备仲裁算法检测故障

设备仲裁算法用于检测站点的故障。运行 Junos OS 并由 Junos Space Platform 管理的高度可访问设备列表被选为仲裁设备。我们建议您根据以下标准选择仲裁设备:

  • 您必须能够通过来自两个站点的 Junos Space 发起的 SSH 连接来访问仲裁者设备。请勿选择使用设备启动的 Junos Space Platform 连接的设备。

  • 您必须能够从两个灾难恢复站点对仲裁设备执行 ping 操作。

  • 您必须选择与 Junos Space Platform 保持连接,或者重新启动或关闭频率较低的仲裁设备,因为这可能会影响设备仲裁算法的结果。如果您预见到某些仲裁设备在生命的某个阶段会脱机,请避免选择这些设备。

  • 您必须从不同的地理位置选择仲裁设备,以确保某个位置的管理网络中出现问题不会使所有仲裁设备无法从您的站点访问。

  • 您不能选择 NAT 和 ww Junos OS 设备作为仲裁器设备。

活动站点上的设备仲裁算法使用 ping 从活动站点连接到仲裁设备。备用站点的设备仲裁算法使用 Junos Space Platform 数据库中的登录凭据,通过 SSH 连接登录到仲裁者设备。以下是主动站点和备用站点上设备仲裁算法的工作流程。

在活动站点:

  1. Ping 所有选定的仲裁设备。

  2. 计算可 ping 的仲裁设备百分比。

  3. 检查可 ping 的仲裁设备百分比是否高于或与故障切换阈值的配置值相同。

    • 如果连接的仲裁设备百分比高于或相同于故障切换阈值(灾难恢复 API 监视部分的故障Detection.阈值.故障转移参数)的配置值,则故障切换不会启动,因为活动站点正在管理大多数仲裁设备。

    • 如果仲裁设备百分比低于故障切换阈值的配置值,将启动故障切换(如果启用了自动故障转移),活动站点将成为备用站点。如果禁用自动故障切换,活动站点将保持活动状态。

在备用站点:

  1. 通过 SSH 连接登录到仲裁设备。

  2. 在每个仲裁设备上执行命令,检索活动站点上与任何节点(由节点管理)的 SSH 连接列表。

  3. 计算活动站点管理的仲裁设备百分比。

  4. 计算无法通过 SSH 连接访问的仲裁设备百分比。

    • 如果活动站点管理的仲裁设备百分比高于或相同于故障切换阈值的配置值,则不需要故障转移,因为活动站点仍在管理大多数仲裁设备。

    • 如果活动站点管理的仲裁设备百分比低于故障切换阈值的配置值,则灾难恢复监督程序会得出结论,可能需要故障转移。

  5. 但是,由于无法从备用站点到达的设备可能由活动站点连接和管理,因此备用站点会假定无法访问的所有仲裁设备都由活动站点管理,并计算由活动站点管理的新设备百分比。

    • 如果活动站点管理的设备百分比低于用于调整托管设备的阈值百分比(故障Detection.阈值.adjustManaged 参数在灾难恢复 API 的监督部分,默认值为 50%),则备用站点将保持备用状态。默认情况下,要调整托管设备的阈值百分比必须低于故障切换阈值。

    • 如果通过添加活动站点和无法达到的仲裁设备管理的新百分比计算得出的新百分比低于故障切换阈值,则灾难恢复监督程序会得出结论,必须启动故障切换。

      如果启用了自动故障转移,备用站点将启动处于活动状态的过程。如果禁用自动故障转移,则不会发生故障切换。

如果禁用了自动故障转移,或者由于连接问题禁用了该功能,则必须在备用站点执行 jmp-dr manualFailover ,以便从备用站点恢复网络管理服务。

使用自定义故障检测脚本检测故障

除了使用设备仲裁算法,您还可以创建自定义故障检测脚本(sh、bash、Perl 或 Python),以决定何时或是否故障转移到备用站点。自定义故障脚本调用 jmp-dr api v1 config ––include 命令并获取灾难恢复配置和灾难恢复监督服务的状态。站点的灾难恢复配置和灾难恢复监督服务的状态按各个部分进行组织。 表 1 列出了这些部分。

使用 -- 包含<部分名称> 选项查看某一部分的详细信息,或者在自定义故障检测脚本中使用该部分的详细信息。

表 1:API 部分

部分

描述

部分包含的详细信息

示例输出

作用

当前站点的灾难恢复角色

角色可以是主动、备用或独立。

故障

上次发生的故障切换类型

如果尚未发生故障转移,则可以是active_to_standby、standby_to_active或空值。

核心

核心灾难恢复配置,包括远程站点节点详细信息

远程站点负载平衡器的 peerVip–VIP

adminPass – 远程站点的加密管理员密码。多个条目以逗号分隔。

scpTimeout – 用于检测站点之间的 SCP 传输故障的超时值

远程站点负载平衡器节点的对等负载均衡节点 - 节点 IP 地址。多个条目以逗号分隔。

远程站点 JBoss 节点的 peerBusinessLogicNodes - 节点 IP 地址。多个条目以逗号分隔。

对等设备MgtIps – 远程站点的设备管理 IP 地址。多个条目以逗号分隔。

{ 
"core": {
  "peerVip": "10.155.90.210",
  "adminPass": "ABCDE12345",
  "scpTimeout": 120,
  "peerLoadBalancerNodes": "10.155.90.211",
   "peerBusinessLogicNodes": "10.155.90.211",
   "peerDeviceMgtIps": "10.155.90.211"}
}

Mysql

远程站点与 MySQL 数据库相关的灾难恢复配置

已指定Db – 远程站点是否包含专用数据库节点

远程站点 MySQL 节点的 peerVip–VIP(普通节点或专用数据库节点)

远程站点上 MySQL 节点的对等节点 – 节点 IP 地址(普通节点或专用数据库节点)。多个条目以逗号分隔。

{ "mysql": {
   "hasDedicatedDb": false,
   "peerVip": "10.155.90.210",
   "peerNodes": "10.155.90.211"
   }
}

pgsql

远程站点与 PgSQL 数据库相关的灾难恢复配置

hasFmpm – 远程站点是否包含专门的 FMPM 节点

远程站点的 PostgreSQL 节点的 peerFmpmVip–VIP(普通节点或 FM/PM 专用节点)

远程站点上 PostgreSQL 节点的对等节点 – 节点 IP 地址(普通节点或 FM/PM 专用节点)。多个条目以逗号分隔。

{ "psql": {
  "hasFmpm": false,
  "peerFmpmVip": "10.155.90.210",
  "peerNodes": "10.155.90.211"
  }
}

文件

远程站点的配置和 RRD 文件相关的灾难恢复配置

backup.maxCount – 要保留的最大备份文件数

backup.hoursOfDay – 一天中备份文件的时间

备份.天每周 – 备份文件的一周几天

restore.hoursOfDay – 从活动站点轮询文件的时间

restore.daysOfWeekek – 从活动站点轮询文件的一周几天

{ "file": {
  "backup": {
    "maxCount": 3,
    "hoursOfDay": "*",
    "daysOfWeek": "*" },
  "restore": {
    "hoursOfDay": "*",
"daysOfWeek": "*" }
  }
}

看门 狗

与当前站点的灾难恢复监督程序相关的灾难恢复配置

heartbeat.retries – 重试心跳消息的次数

heartbeat.超时 – 每个心跳消息超时(秒)

心跳.interval – 心跳消息间隔(以秒为单位)

notification.email – 联系电子邮件地址报告服务问题

通知.interval – 减少接收有关受影响服务的电子邮件之间的间隔

failureDetection.isCustom – 远程站点是否使用自定义故障检测

failureDetection.script – 故障检测脚本的路径

failureEtection.threshold.故障转移 – 触发故障切换的阈值百分比

failureDetection.threshold.adjustManaged–阈值百分比,以调整受管设备的百分比

failureDetection.阈值.warning – 发送警告的阈值百分比,以确保灾难恢复站点可以到达更多的仲裁设备,从而提高设备仲裁算法的准确性

failureDetection.waitDuration – 宽限期,当两个站点都成为备用站点时,允许原始活动站点再次处于活动状态

failureDetection.仲裁者 – 仲裁者设备列表

{ "watchdog": {
  "heartbeat": {
"retries": 4,
"timeout": 5,
"interval": 30 },
  "notification": {
    "email": "abc@example.com",
    "interval": 3600 },
  "failureDetection": {
"isCustom": false,
"script": "/var/cache/jmp-geo/watchdog/bin/arbitration",
    "threshold": {
      "failover": 0.5,
      "adjustManaged": 0.5,
      "warning": 0.7 },
      "waitDuration": "8h",
      "arbiters": [{
        "username": "user1",
        "password": "xxx",
        "host": "10.155.69.114",
        "port": 22,
        "privateKey": ""
      }]
}
  }
}

设备管理

远程站点的设备管理 IP 地址

对等节点 – 远程站点的设备管理 IP 地址。多个条目以逗号分隔。

节点 – 当前站点的设备管理 IP 地址。多个条目以逗号分隔。

此节点上的 IP 设备管理 IP 地址和接口(执行命令的 jmp-dr api v1 config --list 节点)

{ "deviceManagement": {
   "peerNodes": "10.155.90.211",
   "nodes": "10.155.90.222",
”ip”: “10.155.90.228,eth0”
 }
}

国家

当前站点灾难恢复监督服务运行时信息。如果灾难恢复监督程序从未在此站点上运行,则此部分不可用。如果灾难恢复监督程序已停止,则本部分中的信息将过期。

{ "states": {
    "arbiterMonitor": {
      "progress": "idle",
      "msg": {
        "service": "arbiterMonitor",
        "description": "",
        "state": true,
        "force": false,
        "progress": "unknown",
        "payload": {
          "code": 0
        },
        "time": "2015-07-18T22:18:55+00:00"
      },
"service": {}
   },
    "configMonitor": {
      "progress": "idle",
      "msg": {
        "service": "configMonitor",
        "description": "",
        "state": true,
        "force": false,
        "progress": "unknown",
        "payload": {
          "code": 0
        },
        "time": "2015-07-18T22:19:15+00:00"
      },"service": {}
    },
    "fileMonitor": {
      "progress": "idle",
      "msg": {
        "service": "fileMonitor",
        "description": "",
        "state": true,
        "force": false,
        "progress": "unknown",
        "payload": {
          "code": 0
        },
        "time": "2015-07-18T22:18:59+00:00"
      },
"service": {}
    },
    "heartbeat": {
      "progress": "unknown",
      "msg": {
        "service": "heartbeat",
        "description": "",
        "state": true,
        "force": false,
        "progress": "unknown",
        "payload": {
          "localFailover": false
        },
        "time": "2015-07-18T22:17:49+00:00"
      },
"service": {
        "booting": false,
        "bootEndTime": null,
        "waitTime": null,
        "automaticFailover": false,
        "automaticFailoverEndTime": "2015-07-18T07:41:41+00:00"
      }
    },
"mysqlMonitor": {
      "progress": "idle",
      "msg": {
        "service": "mysqlMonitor",
        "description": "",
        "state": true,
        "force": false,
        "progress": "unknown",
        "payload": {
          "code": 0
        },
        "time": "2015-07-18T22:19:09+00:00"
      },
"service": {}
    },
    "pgsqlMonitor": {
      "progress": "unknown",
      "msg": {
        "service": "pgsqlMonitor",
        "description": "Master node pgsql in active or standby site maybe CRASHED. Pgsql replication is in bad status. Please manually check Postgresql-9.4 status.",
        "state": false,
        "force": false,
        "progress": "unknown",
        "payload": {
          "code": 1098
        },
        "time": "2015-07-18T22:18:27+00:00"
      },"service": {}
    },
 
    "serviceMonitor": {
      "progress": "running",
      "msg": {
        "service": "serviceMonitor",
        "description": "",
        "state": true,
        "force": false,
        "progress": "unknown",
        "payload": {
          "code": 0
        },
        "time": "2015-07-18T22:19:30+00:00"
      },
      
"service": {}
    }
  }
}                                      

自定义脚本的输出将通知灾难恢复监督程序是否需要故障转移到备用站点。灾难恢复监督程序以 JSON 格式解释脚本的输出。下面是一个示例:

表 2 介绍了脚本输出的详细信息。

表 2:自定义脚本输出的详细信息

财产

描述

数据类型

值或格式

其他详细信息

状态

此站点的当前灾难恢复角色

字符串

积极

备用

必填

不允许使用空字符串。

行动

灾难恢复监督程序必须执行的操作

字符串

积极主动 – 将角色变为主动。

beStandby – 将角色更改为备用。

什么都不用 — 请勿更改角色。

wait – 在当前角色中等待有效负载.waitTime 属性中指定的时间。

必填

不允许使用空字符串。

描述

操作字段和电子邮件通知中发送的消息的描述

字符串

必填

允许使用空字符串。

有效负载.waitTime

两个站点都处于备用状态的宽限期结束时间

字符串(日期)

YYYY-MM-DD,UTC 时间(HH:MM+00:00 格式)

必填

允许使用空字符串。

将操作值指定为等待时,将使用该属性。

有效负载。详细信息

用户自定义的信息,可用于调试脚本

JSON 对象

不允许使用空字符串。

配置灾难恢复的步骤

要配置活动站点和备用站点之间的灾难恢复:

  1. 在升级到 Junos Space 网络管理平台 15.2R1 版之前,停止在早期版本中配置的灾难恢复过程。有关升级过程的更多信息,请参阅 Junos Space 网络管理平台发行说明 15.2R1 中的升级说明部分。

    有关停止在早期版本中配置的灾难恢复进程的更多信息,请参阅 在 Junos Space 网络管理平台 14.1R3 及更早版本上停止灾难恢复进程

    对于 Junos Space 网络管理平台 15.2R1 版,无需执行这一步。

  2. 通过 Junos Space 用户界面在两个站点上设置 SMTP 服务器,以接收通知。有关更多信息,请参阅《Junos Space 网络管理平台工作区用户指南》中的管理 SMTP 服务器

  3. 将包含仲裁器设备列表(如果使用设备仲裁算法)或自定义故障检测脚本列表的文件复制到活动站点的相应位置。确保在活动站点上发现所有仲裁设备。有关更多信息,请参阅 Junos Space 网络管理平台工作区用户指南中的设备发现配置文件概述

  4. 在活动站点配置灾难恢复配置文件。灾难恢复配置包括用于同步配置和 RRD 文件的 SCP 设置、心跳设置、通知设置和故障检测机制。

  5. 在备用站点配置灾难恢复配置文件。灾难恢复配置包括用于同步配置和 RRD 文件的 SCP 设置、心跳设置和通知设置。

  6. 从活动站点启动灾难恢复过程。

    有关更多信息,请参阅 在主动站点和备用站点之间配置灾难恢复过程

灾难恢复命令

您可以使用 表 3 中列出的灾难恢复命令配置和管理灾难恢复站点。您必须在站点的 VIP 节点上执行这些命令。您可以使用选项 --help 和这些命令来查看更多信息。

表 3:灾难恢复命令

命令

描述

选项

jmp-dr init

初始化两个站点的灾难恢复配置文件。

您需要为命令提示的参数输入值。

创建复制数据所需的 MySQL 和 PgSQL 用户和密码,并跨灾难恢复站点监控复制。将创建以下用户:

  • 使用默认用户名代表 MySQL 数据库复制的用户和密码 repPass。

  • 使用默认用户名代表Admin 和密码代表AdminPass 的用户,可监控 MySQL 数据库复制运行状况和故障切换。

  • 用于 PgSQL 复制的默认用户名复制和密码复制的用户。

  • 使用默认用户名 postgres 和密码 postgres 来监控 PgSQL 复制运行状况和故障切换的用户。

-a– 仅在活动站点初始化灾难恢复配置文件。

-s– 仅在备用站点初始化灾难恢复配置文件。

jmp-dr start

在两个站点启动灾难恢复过程。

您必须在活动站点的 VIP 节点上执行此命令。活动站点与备用站点建立 SSH 连接, jmp-dr start 并在备用站点执行命令。

执行此命令时,将启动 MySQL 数据库和 PgSQL 数据库复制和配置以及备份到备用站点的 RRD 文件。

您执行以下命令:

  • 首次启动灾难恢复过程

  • 停止升级 Junos Space 设置的过程后重新启动灾难恢复过程。

-a– 仅在活动站点启动灾难恢复过程。

-s–仅在备用站点启动灾难恢复过程。

jmp-dr toolkit config update

在执行命令时没有选项,命令:

  • 显示站点中修改后的群集配置,并在本地站点更新此配置。

  • 在远程站点接受并更新修改后的群集配置。

您必须按以下顺序执行命令:

  1. 在两个站点接受并更新群集配置更改。

  2. 更新负载平衡器更改,并修改和更新两个站点的 SCP 超时设置。

  3. 修改和更新其他灾难恢复配置参数。

您必须在本地站点的 VIP 节点执行此命令以修改配置,远程站点的 VIP 节点才能接受修改后的配置。

使用以下选项修改站点的灾难恢复配置,并更新对等站点的更改:

-user-core–修改 VIP 地址、密码和 SCP 超时设置。

-user-file-backup– 修改配置和 RRD 文件备份设置。

-user-file-restore– 修改配置和 RRD 文件复制到备用站点设置。

-user-watchdog-heartbeat– 修改灾难恢复监察机构心跳设置。

-user-watchdog-notification–修改电子邮件通知设置。

-user-watchdog-failureDetection–修改故障检测设置。

jmp-dr health

检查灾难恢复过程的状态。

命令检查 MySQL 和 PgSQL 数据库是否已复制以及配置和 RRD 文件是否已备份,并验证灾难恢复监督程序的状态并报告错误。

jmp-dr stop

停止站点之间的灾难恢复过程。

执行此命令时,将停止 MySQL 和 PgSQL 数据库复制和配置以及站点之间的 RRD 文件备份。不会删除灾难恢复数据文件。JBoss、OpenNMS、Apache 等服务的状态保持不变。

jmp-dr reset

停止灾难恢复过程并从站点中删除灾难恢复数据文件。站点作为独立群集启动服务。

您必须在两个站点的 VIP 节点上执行此命令,以完全停止灾难恢复过程,并从两个站点中删除灾难恢复数据文件。

jmp-dr manualFailover

手动故障转移到备用站点。

执行此命令时,备用站点将成为新的活动站点,而活动站点将成为新的备用站点。

-a–手动将站点的角色更改为活动。

-s– 手动将站点的角色更改为备用。

jmp-dr toolkit watchdog status [options]

启用自动故障转移到备用站点或在指定持续时间内禁用自动故障转移到备用站点。

注意:

只有当灾难恢复监督程序在站点处于活动状态时,您才能执行此命令。

–enable-automatic-failover–启用自动故障转移到备用站点。

–disable-automatic-failover duration– 在指定时间内禁用自动故障转移到备用站点。输入时间持续时间,以小时或分钟。例如,1 小时或 30 米。如果未同时输入“h”或“m”值(例如 2),则默认持续时间以小时计算。如果输入 0,则自动故障切换将永久禁用。

jmp-dr api v1 config

以 JSON 格式查看灾难恢复配置和运行时信息。

--list– 查看灾难恢复配置的特定部分和灾难恢复监督服务的状态。 表 1 列出了部分名称。

–-include<sections>–在自定义故障检测脚本中包括灾难恢复配置的特定部分和灾难恢复监督器服务的状态。用逗号分隔多个部分名称。

在自定义故障检测脚本中包含此命令时,命令会获取灾难恢复配置和灾难恢复监督程序服务的状态,并执行脚本中的逻辑。