クラスタという表現が曖昧なのでここでは以下のことを指すものとして使います。
各Proxmoxが動いているコンピューターをノードと呼びます。
そのノードは1つのグループに属します。
このグループのことをクラスタと呼びます。
Proxmox でこのクラスタを作ると、クラスタ内のどの環境に WebUI でログインしても属しているノードの情報を確認することができるようになります。
今回は2台の構成でやってみました。このときどちらの WebUI にログインしても以下のように相手方の情報も見ることができます。
設定方法
設定の方法ですが、 WebUI から行う方法がわからなかったため、コンソールで作業しました。
またここでは PVE1 をマスター、それ以外をスレーブと考えることにします。
まずは PVE1 側に ssh でログインします。
そして以下のコマンドを実行します。
# pvecm create example-cluster orosync Cluster Engine Authentication key generator. Gathering 1024 bits for key from /dev/urandom. Writing corosync key to /etc/corosync/authkey.
初回の状態を確認してみます。
# pvecm nodes Membership information ---------------------- Nodeid Votes Name 1 1 pve (local)
ノードが追加されました(自分のことですが)
続いて PVE2 側に ssh でログインします。
そして以下のコマンドを実行します。ここで指定するIPはマスターのIPを指定してください。
これでメンバーとして PVE2 が登録されます。
# pvecm add 192.168.0.160 copy corosync auth key stopping pve-cluster service backup old database waiting for quorum...OK generating node certificates merge known_hosts file restart services successfully added node 'pve2' to cluster.
PVE2 側の ssh での作業はこれで終わりなので閉じてもかまいません。
再び PVE1 側にて確認してみます。
# pvecm status Quorum information ------------------ Date: **************** 2015 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 0x00000001 Ring ID: 8 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 2 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 0x00000001 1 192.168.0.160 (local) 0x00000002 1 192.168.0.162 root@pve:~# pvecm status Quorum information ------------------ Date: **************** 2015 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 0x00000001 Ring ID: 8 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 2 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 0x00000001 1 192.168.0.160 (local) 0x00000002 1 192.168.0.162
このようにメンバーの分も含めた情報が出力されます。この状態であれば、 WebUI でログインしたときにも他のノード情報が表示されるようになっていると思います。冒頭に出したスクリーンショットもこの時点のものを出しました。
クラスタ構成でできること
クラスタの設定は HA の作業に必須となっています。上記だけでは HA の設定はまだです。
現時点でできることは、
- 1つのWebUIログインで複数ノードの状態の確認&変更が可能
- オフラインのVMであれば移譲が可能
- コンテナであれば移譲が可能(オンラインでいけるらしい。未確認)
ここではVMの移譲について確認したいと思います。
この移動移譲はマイグレーションと表現されています。
Proxmox VE4.0 現時点ではローカルストレージにデータがあるものを参照しているVMは
オンラインでマイグレーションすることができません。
VMがシャットダウンされていれば、ローカルストレージに仮想マシンのHDDを設定していてもマイグレーションが可能です。
やり方は簡単で右クリックしたときのメニューで “Migrate” を選び、移動先のノードを選ぶだけです。
ここで実行すると以下の画面のようにマイグレーションが開始されます。
成功すると pve 側にVMが移動しています。
オンラインでマイグレーションさせるには共有ディスクを使うとできるらしいです。
NASなどの別ストレージで NFS 共有できるようにしておいて、PVEノード群にストレージとして登録させておくことでできるようです。
これについてはまた別途実験してみたいと思います。
クラスタから脱退
ノードの障害やメンテナンスなどで該当ノードをクラスタから切り離したいことがあると思います。
全VMを他のノードへ移動させた後でノードをクラスタから切り離します。
このノード内に VM がいない状態になったら、マスター側で作業を行います。
マスター側へ ssh でログインしてコマンドを実行します。
# pvecm delnode pve2
そして該当ノードを電源オフにした状態で、マスタの状態を確認してみます。
# pvecm nodes Membership information ---------------------- Nodeid Votes Name 1 1 pve (local)
無事に切り離されたことが確認できました。
このとき PVE2 側が電源ONのまま稼働状態にあるとここに表示されたままとなってしまいます。切り離したのに表示されている、なぜだ?!と頭を悩ますことになるので注意しましょう。