Skip to main content

撤出集群节点

您可以撤出集群节点上的数据服务。

关于撤出群集节点

在 GitHub Enterprise Server的群集配置中,您可以在使节点脱机之前撤出该节点。 撤出可确保服务层中的其余节点包含服务的所有数据。 例如,替换群集中节点的虚拟机时,应先撤出该节点。

有关 GitHub Enterprise Server 的节点和服务层的更多信息,请参阅“关于群集节点”。

警告

  • 为避免数据丢失,GitHub 强烈建议您在使节点脱机之前撤出该节点。

  • 如果数据服务群集中只有三个节点,则无法撤出节点,因为 ghe-spokes 没有其他位置可以进行复制。 如果有四个或更多节点,则 ghe-spokes 会将所有存储库移出已撤出的节点。

撤出集群节点

如果计划使运行 git-serverpages-serverstorage-server 等数据服务角色的节点脱机,请在使该节点脱机之前撤出每个节点。

  1. SSH 到集群中的任何节点。 有关详细信息,请参阅“访问管理 shell (SSH)”。

  2. 若要查找要撤出的节点的 UUID,请运行以下命令。 将 HOSTNAME 替换为节点的主机名。

    $ ghe-config cluster.HOSTNAME.uuid
  3. 在 GitHub Enterprise Server 复制数据时监控节点的状态。 在复制完成之前,不要使节点脱机。 要监控节点的状态,请运行以下任一命令,将 UUID 替换为步骤 2 中的 UUID。

    • Git

      $ ghe-spokes evac-status git-server-UUID
    • GitHub Pages

      $ echo "select count(*) from pages_replicas where host = 'pages-server-UUID'" | ghe-dbconsole -y
    • 存储

      $ ghe-storage evacuation-status storage-server-UUID
  4. 复制完成后,可以通过运行以下任一命令来撤出节点,将 UUID 替换为步骤 2 中的 UUID。

    • Git

      $ ghe-spokes server evacuate git-server-UUID \'REASON FOR EVACUATION\'
    • GitHub Pages

      $ ghe-dpages evacuate pages-server-UUID
    • 对于“存储”,先通过运行以下命令使节点脱机。

      $ ghe-storage offline storage-server-UUID

      存储节点脱机后,可以通过运行以下命令撤出该节点。

      $ ghe-storage evacuate storage-server-UUID