クラスター ノードの待避について
GitHub Enterprise Server のクラスターの構成では、ノードをオフラインにする前にノードを待避できます。 待避することで、サービス レベル内の残りのノードに、サービスのすべてのデータが確実に含まれます。 たとえば、クラスター内のノードの仮想マシンを置き換える場合は、最初にノードを待避する必要があります。
GitHub Enterprise Server のノードとサービス レベルについて詳しくは、「クラスタノードについて」をご覧ください。
警告:
-
データが失われるのを避けるため、GitHub は、ノードをオフラインにする前にノードを待避することを強くお勧めします。
-
データ サービス クラスターにノードが 3 つしかない場合、
ghe-spokes
でコピーを作成する別の場所がないため、ノードを待避することはできません。 4 つ以上ある場合は、ghe-spokes
によって待避元のノードからすべてのリポジトリが移動されます。
クラスタノードからの待避
オフラインにする予定のノードで、git-server
、pages-server
、storage-server
などのデータ サービス ロールが実行されている場合は、ノードをオフラインにする前に各ノードを待避します。
-
クラスタ内のいずれかのノードにSSHで接続してください。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。
-
待避するノードの UUID を見つけるには、次のコマンドを実行します。
HOSTNAME
は、ノードのホスト名に置き換えます。$ ghe-config cluster.HOSTNAME.uuid
-
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
-
-
コピーが完了したら、次のいずれかのコマンドを実行して、ノードを待避できます。
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
-