PROXMOXクラスターの機能を試してみます。
「PROXMOXクラスター 1」で、PROXMOXクラスター環境を設計し、
「PROXMOXクラスター 2」で、FreeNASを使って iSCSIの共有ディスクを作り、
「PROXMOXクラスター 3」で、PROXMOXサーバーを 3台作り、
「PROXMOXクラスター 4」で、クラスターの設定をし、
「PROXMOXクラスター 5」で、共有ディスク上に仮想マシンを作って Windows Server 2022をインストールし、
「PROXMOXクラスター 6」で、Windows Server 2022の仮想マシンを稼働したままサーバー間移動させました。
ここまでで、ネットワーク的にはこんな環境ができあがっています。
仮想マシンとして Windows Server 2022が [proxmox2]サーバーで稼働しています。
この仮想マシンのデータの実体は FreeNASで作った iSCSIデバイスにあり、マイグレーションにより PROXMOX間での移動が可能になっています。
いよいよこのシリーズも最後となり、やっとこ High Availability(HA)のお時間となりました。
HAって何かと言うと、サーバーがブッ壊れたときに他に生きているサーバーでサービスを継続しようってものです。
それだけ。
PROXMOXでクラスターを作るとこの機能を使えます。
では、実際に設定してみます。
現在の構成はこうなっています。
[データセンター] - [HA] と選択し、追加を押します。
PROXMOXサーバーの停止(に相当する障害)時に他の PROXMOXサーバーで稼働させたい仮想マシンを選択します。
この環境では 100番の仮想マシンしかないのでこれだけ。
[要求状態:] は切り替え先の PROXMOXサーバーで 仮想OSを自動で立ち上げるか否かの選択のようです。
追加を押します。
どうも [コメント:] は日本語を入れると化けるので英語にしました。
何らかの障害が発生してこのような仕組みでサーバーの切り替えが行われた場合は、切り替え先なら完全に問題なくサービスが続行できるかどうかは障害の調査をしてみないと分からない環境もあります。
特にデータベースサーバー場合なんかはその傾向が強いと思いますね。
障害発生の連絡を受けるまでの間に、変な形でサービスが続行されてしまうと却って傷口を広げることはままあって、運用エンジニアのタマヒュンあるある状況です。
そういう仮想マシン・仮想OSの障害調査のためにはサーバー切り替えはしたいが、サービス起動はちょっと待たせることはありますね。
[状態] はしばらく [queuing] になってましたが、[started] になれば OKです。
これで設定は完了です。
テストをするにあたっては、マイグレーションと同様に外部から Windows Server 2022にリモートデスクトップ接続しておきました。
(絵は割愛)
これから擬似的な障害を起こすんですが、より本当の物理障害に似せるようにしたいです。
PROXMOXも VMware Workstation Palyerも 仮想OSのシャットダウンを強制的に行う「ような」機能があるのですが、あれらは OSのシャットダウン機能を呼び出していたりして、「綺麗に(Graceful)」停止してしまいます。
私が求めているのは「電源ブッこ抜き」とか「電源ブッチン」などのものなので、綺麗なシャットダウンには用がありません。
そこで [proxmox2]サーバーの仮想マシンのプロセスである VMware Workstation Playerの [vmware-vmx.exe] というプログラムを、Windows 10のタスクマネージャーから強制終了することにしました。
しかし同時に 5つの [vmware-vmx.exe] を動かしているので、[proxmox2]サーバーのものを特定しないといけません。
どうしたかというと、Windows Server 2022の中で Powershellを使って CPUに負荷をかけてやりました。
ええい、ファンネル達、一番熱量の高いミサイルだ…当たれぇぇっ!
タスクの終了を押します。
プロセスの終了を押します。
当たりました。\(^o^)/
しかしこんな荒業を使えるのは自宅のお勉強環境ならではであります。
時間は測ってなかったんですが、5分以内だったと思います。
[proxmox1]サーバーに 100番の仮想マシンが移動しています。
なお、リモートデスクトップはセッションが切れていました。
ここで重要なのは、リモートデスクトップのセッションが切れたのはなぜかということです。
この HAでのサーバー切り替えは、マイグレーションと違って、仮想OSは一度停止します。
停止ではなく稼働中に電源が切れたのと同じになります。
考えてみれば、PROXMOXサーバーの電源が落ちたのと同じですから、当たり前なんですね。
電気がないとコンピューターは何もできませんので。
そして例えば仮想OSがデータベースサーバーであった場合に何が起こるかといえば、再起動時にクラッシュリカバリと呼ばれる障害発生後の特殊な動作をする、ということも覚えておいてください。
これは障害時運用設計でかなり重要なポイントになります。
このタイプの HAは万能ではなく、サービス継続を保証するものではありません。
障害を起こしたハードウェアの代替ハードウェアを使って最初から環境構築をする時間の節約、これが本質と捉えるくらいで丁度良いです。
うん、何か良いことを言った気がする。
一応リモートデスクトップでつなぎ直したら問題なく Windows Server 2022に繋がりました。
==========
長いシリーズになりましたが、どうにかやり切れました。
PROXMOXクラスターの機能はこれにとどまりませんで、まだまだ奥の深さがあります。
こんなものを無償で使わせてしまってはプロダクション環境においても vSphereの脅威になるのではないかと思います。
少なくとも vSphereクラスターが家庭でのお勉強環境に門戸を閉ざしてしまった今となっては、PROXMOXに優位性があるのは明らかです。
また、昨今のパワフルなミニPCの台頭で、ここでやったような PROXMOXクラスター環境を作るのが 10万円くらいで済むとすると、サーバーエンジニアのお勉強環境としてはベストチョイスになる気がします。
何でって、私が欲しくなっちゃったからです。
サーバーのお勉強に仮想環境を使う限りメモリ量が重要なのは変わりませんので、ミニPCでもやや高価なものが必要になりますが、32GBのミニPCが 3台あれば 96GBのメモリを運用できるのです。
それも HA環境で。
更に場所も取らないとなると、目の早い外国人が既にやっているような homelab の形が世界のお勉強家達の流行りになるかも知れません。
その意味でも、PROXMOXはもっと伸びてくるんではないか〜と思っております。
コイツは8万超かぁ…