クラスタノードの入れ替え
GitHub Enterprise Server ノードを入れ替えるには、クラスタ設定ファイル (cluster.conf
) 中で対象となるノードをオフラインとしてマークし、入れ替えるノードを追加しなければなりません。 ノードに障害があった場合、あるいはパフォーマンスを高めるためにリソースの多いノードを追加する場合、この作業が必要になることがあります。
警告:衝突を避けるため、入れ替えるノードはそれまでクラスタ中で使われていないホスト名を使わなければなりません。
このページの内容:
緊急時のノードの入れ替え
-
Provision and install GitHub Enterprise Server with a unique hostname on the replacement node.
-
Using the administrative shell or DHCP, only configure the IP address of the replacement node. その他の設定は行わないでください。
-
障害が起きたノードをオフラインとしてマークするには、任意のノードでクラスタ設定ファイル(
cluster.conf
)のそのノードのセクションにoffline = true
というテキストを含めてください。たとえば以下の修正された
cluster.conf
は、ghe-data-node-3
ノードをオフラインとしてマークします。[cluster "ghe-data-node-3"] hostname = ghe-data-node-3offline = trueipv4 = 192.168.0.6 # ipv6 = fd12:3456:789a:1::6
-
From the administrative shell of the node where you modified
cluster.conf
, runghe-cluster-config-apply
. This will validate the configuration file, copy it to each node in the cluster, and mark the node offline. -
新たにプロビジョニングされた置き換えノードを追加するには、任意のノードで
cluster.conf
ファイルを修正し、障害が起きたノードを取り除き、置き換えのノードを追加します。 たとえば以下の修正されたcluster.conf
ファイルは、ghe-data-node-3
を新たにプロビジョニングされたghe-replacement-data-node-3
で置き換えます。[cluster "ghe-replacement-data-node-3"] hostname = ghe-replacement-data-node-3ipv4 = 192.168.0.7
ipv6 = fd12:3456:789a:1::7
git-server = true pages-server = true mysql-server = true elasticsearch-server = true redis-server = true memcache-server = true metrics-server = true storage-server = true
-
If you're replacing the MySQL master node or Redis master node, in
cluster.conf
, modify themysql-master
orredis-master
value with the replacement node name.For example, this modified
cluster.conf
file specifies a newly provisioned cluster node,ghe-replacement-data-node-1
as the MySQL and Redis master node:mysql-master = ghe-replacement-data-node-1redis-master = ghe-replacement-data-node-1
-
From the administrative shell of the node with the modified
cluster.conf
, runghe-cluster-config-init
. This will initialize the newly added node in the cluster. -
From the same node, run
ghe-cluster-config-apply
. This will validate the configuration file, copy it to each node in the cluster, and configure each node according to the modifiedcluster.conf
file.