我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们
文章版本: Enterprise Server 2.15

此版本的 GitHub Enterprise 将停止服务 此版本的 GitHub Enterprise 已停止服务 2019-10-16. 即使针对重大安全问题,也不会发布补丁。 For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

创建高可用性副本

在主动/被动配置中,副本设备是主设备的冗余副本。 如果主设备发生故障,高可用性模式允许副本作为主设备运行,从而最大限度地减少服务中断。

本文内容

创建高可用性副本

  1. 在所需平台上设置新的 GitHub Enterprise Server 设备。 副本设备应镜像主设备的 CPU、RAM 和存储设置。 建议您在独立环境中安装副本设备。 底层硬件、软件和网络组件应与主设备的相应部分隔离。 如果要使用云提供商,请使用单独的区域或分区。 更多信息请参阅“设置 GitHub Enterprise Server 实例”。

  2. 在浏览器中,导航到新副本设备的 IP 地址并上传您的 GitHub Enterprise 许可。

  3. 设置与主设备密码匹配的管理员密码,然后继续。

  4. 单击 Configure as Replica

    包含用于将新实例配置为副本的链接的安装选项

  5. 在“Add new SSH key”下,输入 SSH 密钥。

    添加 SSH 密钥

  6. 单击 Add key,然后单击 Continue

  7. 使用 SSH 连接到副本设备的 IP 地址。

    $ ssh -p 122 admin@REPLICA IP
  8. To generate a key pair for replication, use the ghe-repl-setup command with the primary appliance's IP address and copy the public key that it returns.

    $ ghe-repl-setup PRIMARY IP
  9. To add the public key to the list of authorized keys on the primary appliance, browse to https://PRIMARY-HOSTNAME/setup/settings and add the key you copied from the replica to the list.

  10. To verify the connection to the primary and enable replica mode for the new replica, run ghe-repl-setup again.

    $ ghe-repl-setup PRIMARY IP
  11. 要开始复制数据存储,请使用 ghe-repl-start 命令。

    $ ghe-repl-start
    **警告:** `ghe-repl-start` 会导致主要服务短暂中断,期间用户可能会看到内部服务器错误。 为提供更简便的消息,请在副本节点上运行 `ghe-repl-start` 之前,先在主要节点上运行 `ghe-maintenance -s`,使副本置于维护模式。 在复制开始后,使用 `ghe-maintenance -u` 禁用维护模式。
  12. To verify the status of each datastore's replication channel, use the ghe-repl-status command.

    $ ghe-repl-status

创建 Geo-replication 副本

This example configuration uses a primary and two replicas, which are located in three different geographic regions. 由于三个节点可以位于不同网络中,要求所有节点均可从其他所有节点到达。 必需的管理端口至少应向其他所有节点开放。 For more information about the port requirements, see "Network Ports."

  1. Create the first replica the same way you would for a standard two node configuration by running ghe-repl-setup on the first replica.

    (replica1)$ ghe-repl-setup PRIMARY IP(replica1)$ ghe-repl-start
  2. Create a second replica and use the ghe-repl-setup --add command. The --add flag prevents it from overwriting the existing replication configuration and adds the new replica to the configuration.

    (replica2)$ ghe-repl-setup --add PRIMARY IP(replica2)$ ghe-repl-start
  3. By default, replicas are configured to the same datacenter. 为数据中心选项设置不同的值,通过这种方式为不同的数据中心配置副本。 可以随意设定特定值,只要数值彼此不同即可。 Run the ghe-repl-node command on each node and specify the datacenter.

    On the primary:

    (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]

    On the first replica:

    (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]

    On the second replica:

    (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]

    Tip: You can set the --datacenter and --active options at the same time.

  4. 活动副本节点将存储设备数据的副本并为最终用户请求提供服务。 非活动节点将存储设备数据的副本,但无法为最终用户请求提供服务。 Enable active mode using the --active flag or inactive mode using the --inactive flag.

    On the first replica:

    (replica1)$ ghe-repl-node --active

    On the second replica:

    (replica2)$ ghe-repl-node --active
  5. To apply the configuration, use the ghe-config-apply command on the primary.

    (primary)$ ghe-config-apply

为 Geo-replication 配置 DNS

Configure Geo DNS using the IP addresses of the primary and replica nodes. You can also create a DNS CNAME for the primary node (e.g. primary.github.example.com) to access the primary node via SSH or to back it up via backup-utils.

For testing, you can add entries to the local workstation's hosts file (for example, /etc/hosts). These example entries will resolve requests for HOSTNAME to replica2. 您可以注释不同的行,以特定主机为目标。

# <primary IP>     <em>HOSTNAME</em>
# <replica1 IP>    <em>HOSTNAME</em>
<replica2 IP>    <em>HOSTNAME</em>

延伸阅读

问问别人

找不到要找的内容?

联系我们