创建高可用性副本
在主动/被动配置中,副本设备是主设备的冗余副本。 如果主设备发生故障,高可用性模式允许副本作为主设备运行,从而最大限度地减少服务中断。
本文内容
创建高可用性副本
-
在所需平台上设置新的 GitHub Enterprise Server 设备。 副本设备应镜像主设备的 CPU、RAM 和存储设置。 建议您在独立环境中安装副本设备。 底层硬件、软件和网络组件应与主设备的相应部分隔离。 如果要使用云提供商,请使用单独的区域或分区。 更多信息请参阅“设置 GitHub Enterprise Server 实例”。
-
在浏览器中,导航到新副本设备的 IP 地址并上传您的 GitHub Enterprise 许可。
-
设置与主设备密码匹配的管理员密码,然后继续。
-
单击 Configure as Replica。
-
在“Add new SSH key”下,输入 SSH 密钥。
-
单击 Add key,然后单击 Continue。
-
使用 SSH 连接到副本设备的 IP 地址。
$ ssh -p 122 admin@REPLICA IP
-
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
-
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. -
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
-
要开始复制数据存储,请使用
ghe-repl-start
命令。$ ghe-repl-start
**警告:** `ghe-repl-start` 会导致主要服务短暂中断,期间用户可能会看到内部服务器错误。 为提供更简便的消息,请在副本节点上运行 `ghe-repl-start` 之前,先在主要节点上运行 `ghe-maintenance -s`,使副本置于维护模式。 在复制开始后,使用 `ghe-maintenance -u` 禁用维护模式。 -
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."
-
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
-
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
-
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. -
活动副本节点将存储设备数据的副本并为最终用户请求提供服务。 非活动节点将存储设备数据的副本,但无法为最终用户请求提供服务。 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
-
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>