2018年8月19日日曜日

クラスタベース作ってみる(16.04)

とりあえず、16.04のノード(gemini / cancer)でクラスタを作ってみたい。
同じ16.04のvirgoで動いているpcsdを使って実装してみる。

構成的には
  • virgo:クラスタ管理サーバ
  • gemini:クラスタノード1
  • cancer:クラスタノード2
になる。

ただ、pcsdを使う場合、管理サーバや各ノード間がpcsd同士で通信を行い、各種コマンドや状態のやり取りを行うようだ。
そのため、gemini/cancerでもpcsを導入しておく必要がある。
(gemini) $ sudo apt-get install pcs
(cancer) $ sudo apt-get install pcs

また、pcsdが起動してきてないと思うので、起動しておく。
(gemini) $ sudo systemctl start pcsd
(cancer) $ sudo systemctl start pcsd

gemini/cancerのhaclusterユーザも作成されているはずなので、このアカウントにパスワードを設定しておこう。
(gemini) $ sudo passwd hacluster
(cancer) $ sudo passwd hacluster
設定するパスワードは、virgoに設定したものと同じものが良いだろう。
#クラスタノード(gemini/cancer)でのパスワードは合わせておくのが推奨のようだ。

実はこの他にも、事前準備として実施しておく必要があるものがある。
まずは、/etc/hosts。
DNSが運用できているのであれば不要だと思うけど、ウチのN/Wではローカルの名前解決にDNSは導入できていない。(したいけど…)
そのため、名前解決のために3つのサーバそれぞれの/etc/hostsにエントリを書いておく必要がある。
  • virgo(クラスタ管理サーバ)はgemini/cancerの名前解決ができること
  • gemini/cancer(クラスタ構成ノード)は自分自身とお互いの名前解決ができること
が必要になる。

virgoの/etc/hostsには、geminiとcancerのホスト名/IPアドレスを追記すればいい。
(virgo) $ sudo vi /etc/hosts
gemini/cancerは、既に自分自身のホスト名とIPアドレスの対応として、127.0.1.1がエントリされているはずだ。これをコメント化(先頭に#を付与)しつつ、自分自身と相手のIPアドレスを記載しよう。
(gemini) $ sudo vi /etc/hosts
(cancer) $ sudo vi /etc/hosts

virgo(クラスタ管理サーバ)では、pacemaker/corosyncは稼動させる必要がなく、稼動していたらちょっと他に影響が出るようだ。
そのため、pacemaker/corosyncを停止させ、自動起動も止める。
(virgo) $ sudo systemctl stop pacemaker
(virgo) $ sudo systemctl stop corosync
(virgo) $ sudo systemctl disable pacemaker
(virgo) $ sudo systemctl disable corosync

合わせて、/etc/corosync/corosync.conf が存在していては上手く動作しないようなので、リネームしておく。
(virgo) $ sudo mv /etc/corosync/corosync.conf /etc/corosync/corosync.conf.orig

続いて、gemini/cancerでの準備だ。
クラスタを組む前からpacemaker/corosyncが動いていると、「このノードは既にどこかのクラスタに属している」と勘違いされる。
また、corosync.confが存在しているだけでも、同様に勘違いされる。
そのため、pacemaker/corosyncを停止させ、corosync.confを削除しておく。
(gemini) $ sudo systemctl stop pacemaker
(gemini) $ sudo systemctl stop corosync
(gemini) $ sudo rm /etc/corosync/corosync.conf
(cancer) $ sudo systemctl stop pacemaker
(cancer) $ sudo systemctl stop corosync
(cancer) $ sudo rm /etc/corosync/corosync.conf

ちなみに、上記オペレーションは、pcsコマンドで一括実施できたりする。
(gemini) $ sudo pcs cluster destroy
(cancer) $ sudo pcs cluster destroy
なお、pacemaker/corosyncの自動起動停止はしない(自動起動のままにしておく)。

ここまでやったら事前準備完了だ。
クラスタを組んでみよう。

前回と同様、virgo上のpcsdにブラウザでアクセスする。
(pcsdへのログインは、haclusterアカウントだ)

ログインできたら、「MANAGE CLUSTERS」の中にある「Create New」をクリック。
これから作成するクラスタ名と、そのノード名、その他オプションを設定するダイアログが出てきた。
クラスタ名を gfs2-cluster
ノードをgemini/cancerとする。
その他のオプションはデフォルトのまま「Create Cluster」をクリック。

gemini/cancerのhaclusterアカウントのパスワードを聞いてくると思うので、設定したパスワードを入力しよう。

これでクラスタが出来上がる。
この時点で、gemini/cancerのpacemaker/corosyncともに起動する。
また、gemini/cancerで削除したcorosync.confも自動作成されているはずだ。

次回以降は、クラスタの基本設定から続けていく予定。

0 件のコメント:

コメントを投稿