お家で始める仮想化環境 Proxmox VE Cloud-init編

目次

環境

前提として、Proxmoxの基本的な構築が完了している必要があります。
Proxmox環境の構築方法はこちらをご覧ください。

また、Cloud-init Supportを参考にしています。

Cloud-initテンプレートの準備

本記事では、VMで使用するOSとしてUbuntuを使用します。
https://cloud-images.ubuntu.com/でOpenstack向けのCloud-initに対応したイメージが配布されていますので、こちらを利用します。

Proxmoxホストのシェルにログインして、上記イメージをダウンロードします。
今回はUbuntu 20.04 LTSを使用しますので、こちらをダウンロードしました。

1
# wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img

続いて、テンプレートで使用するためのVMを作成します。

1
# qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0

先ほどダウンロードしたイメージをインポートします。
以下の例では対象ディスクをlocal-lvmとしていますが、適時変更してください。(local-zfsなど)

1
# qm importdisk 9000 focal-server-cloudimg-amd64.img local-lvm

インポートしたディスクをscsi0としてVMにアタッチします。
先ほどと同様に、local-lvmvm-9000-disk-0は環境によって異なる場合がありますので、適時変更してください。

1
# qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0

続いて、Cloud-initが利用するCDROMドライブを設定します。

1
# qm set 9000 --ide2 local-lvm:cloudinit

先ほどアタッチしたディスクをブートディスクとして設定します。

1
# qm set 9000 --boot c --bootdisk scsi0

Cloud-initはシリアルコンソールを使用するため、その設定をします。

1
# qm set 9000 --serial0 socket --vga serial0

最後に、テンプレートに変換します。

1
# qm template 9000

Cloud-initテンプレートからのデプロイ

先ほど作成したテンプレートを使用して、VMのデプロイを行ってみます。
普段はWebGUIから操作することが多いので、WebGUIから操作することにします。
作成したテンプレートを右クリックするとCloneの項目がありますので選択します。
ダイアログが表示されますので、VM IDNameを入力し、ModeFull Cloneを選択します。

入力出来たら、右下のCloneを押して処理が完了するのを待ちます。

処理が完了したら、クローンしたVMより、Cloud-initメニューを開きます。

必要に応じて、各項目を設定します。

  • User
  • Password
  • DNS domain
  • DNS servers
  • SSH public key
  • IP Config

設定が完了したら、VMを起動します。
起動完了後、しばらく待っているとCloud-initの処理が行われます。
ログが表示されますので、処理が完了するのを待ってログインしてみてください。
設定した内容が反映されているはずです。

複数のVMをデプロイしたい場合も、作成したテンプレートからクローンすることで簡単にデプロイすることが出来ます。

RTX3080, RTX3090をGTX1080, RTX2060とベンチマーク結果を比較してみる。

4Kゲーミング

2020年9月17日に、NVIDIAのAmpereアーキテクチャを採用したGPU、RTX 3080が発売解禁されました。
筆者は、深夜販売に突撃して運よく入手出来たので、4Kゲーミング性能について軽くベンチマークを通して見ていきます。

RTX 3090 ?

RTX3080に続いて、RTX 3090が2020年9月24日に発売解禁となりました。
こちらも深夜販売での抽選に参加したところ運よく入手できましたので、こちらも見ていきます。

なお、「コスパ」とか言ってはいけません。
筆者が泣いてしまいます。

ベンチマーク環境

ベンチマークには、おなじみ3DMarkを使用します。
また、DLSSについてもどのような効果があるのか気になったので、こちらも試してみます。
手持ちのゲームでDLSSに対応したゲームが「DEATH STRANDING」ぐらいしか無かったので、参考程度にご覧ください。

ベンチマークPCとしては以下のものを使用しています。

詳細
CPU AMD Ryzen9 3950X 16-Core Processor
M/B ASUS Pro WS X570-ACE
Memory DDR4 Non-ECC UDIMM 16GB x4(64GB) 3200MHz
PSU 80PLUS GOLD 750W
Storage Western Digital SN550 500GB (M.2 NVMe)
Gprahics MSI GTX 1080 AERO
NVIDIA RTX 2060 FE
MSI RTX 3080 GAMING X TRIO
ZOTAC RTX 3090 Trinity

RTX 2000シリーズとの比較ベンチを多く見ますが、GTX世代との比較があまりなされていないように思ったのと、筆者がGTX 1080からの更新のため、GTX 1080との性能差に注目したいところです。
また、手持ちにあるGPUの中にRTX 2000シリーズがRTX 2060しか無かったので、参考程度です。

RTX 3080 and RTX 3090

RTX 3080 FE RTX 3090 FE
CUDAコア 8704基 10496基
RTコア 68基 82基
Tensorコア 272基 328基
ベースクロック 1.44GHz 1.4GHz
ブーストクロック 1.71GHz 1.7GHz
VRAM 10GB GDDR6X 24GB GDDR6X

外観

ZOTAC RTX 3090 Trinity

RTX 3090のカスタムカードとしては小さい部類だと思います。
他のカードにおいて、高さがPCIeスロットブラケットを大きく超えているのに対して、こちらのカードはさほど飛び出ていません。
補助電源は 8pin x2 となっています。

MSI RTX 3080 GAMING X TRIO

ブーストクロックが1815MHzにOCされたカードです。
RTX 3080のTBPが320Wになっているのに対して、このカードのTBPはOCされているために340Wとなっています。
それにより、補助電源が 8pin x3 となっています。
補助電源として 8pin x3 が必要なグラフィックカード、過去にあったんでしょうか…

NVIDIA RTX 2060 Founders Edition

何の変哲もない RTX 2060 Founders Edition です。
個人輸入で入手したものです。

MSI GTX 1080 AERO

どこぞで投げ売りされていた、MSI AEROシリーズのGTX 1080カードです。
外排気タイプになっています。

3DMark Time Spy (1920 x 1080)

Time Spy のデフォルト設定では2K解像度ですが、今回はFullHDにカスタム設定を行っています。

やはり、RTX 3000シリーズは、GTX 1080と比較してもスコアにおいて倍以上の差をつけています。
しかし、RTX 3090はRTX 3080と比較しても誤差程度の差しかないようです。

3DMark Time Spy Extreme (3840 x 2160)

続いて、4K相当のベンチマークである、Time Spy Extremeを実行しました。

こちらも、RTX 3000シリーズは共に、GTX 1080と比較すると倍以上のスコアとなっています。
また、先ほどに比べるとRTX3080と比較してRTX 3090のスコアが伸びているように感じます。
RTX 3090を活かすには4K以上の環境でないと意味がない といった考え方もできるのかもしれません。

3DMark Port Royal (1920 x 1080)

続いて、レイトレーシング性能を計測しました。
こちらもまずはFullHDから。

GTX 1080においてはRTコアを搭載していないため、比較対象として適切ではないですね。
RTX 2060と比較すると、その差は歴然です。
また、こちらもRTX 3090のスコアがRTX 3080と比較しても伸びていることが分かります。

3DMark Port Royal (3840 x 2160)

続いて、4Kレイトレーシング性能を計測しました。

GTX 1080については言うまでもないですね(RTコア無いし)。
ここで気になるのが、RTX 2060のスコアが思ったより出ていないことです。
Port Royalのデフォルト解像度は2Kであるので、試しにそちらを実行したところ4193というスコアが出ました。
4Kになった瞬間スコアががた落ちしたということになりますが、RTX 2060ではRTコアが足りていないのでしょうかね。
気になるところです。
本題に戻って、こちらもRTX 3000シリーズのスコアの伸びが目立っていますね。
4K解像度においても、レイトレーシングを利用しながらゲームを快適にプレイすることは夢ではない ということでしょう。

DEATH STRANDING (1920 x 1080)

続いて、DLSSの効果について適当に計測しました。
素人による計測なので、参考程度にご覧ください。
なお、以降、「DEATH STRANDING」上の画質設定はすべて一番高いものを設定しています。

筆者環境では、どのカードを使用してもプレイ中はFPSが120程度から変動しませんでした。
(もちろん、フレームレート制限が120FPSとなっているわけではない。)

DEATH STRANDING (3840 x 2160)

続いて、4K解像度でのプレイ。

こちらは、はっきりと差が現れました。
RTX 3000シリーズの性能向上がうかがえます。
(RTX 3000シリーズのスコアについては、環境によってはもっと高くなる可能性があると思います。)

DEATH STRANDING with DLSS (3840 x 2160)

続いて、4K解像度においてDLSSを利用してみます。
DLSSについては解説しません。
DLSS設定については「パフォーマンス」を選択しています。

先ほども述べたように、実質的なFPS上限が120程度になっていることでRTX 3000シリーズでの変化を確認することは出来ない状態です。
しかしながら、RTX 2060においてはFPS値が向上しており、DLSSの効果が確認できます。

GPU温度

続いて、多くの方が気になっているであろうGPU温度について。
こちらは、3DMark Time Spy Extreme 実行中の最大GPU温度です。

GTX1080については外排気タイプなので、冷却面での問題があるのは必然と言えます。
感心したのは、RTX 3000シリーズにおいてTBPが増加したにもかかわらず、想定されたよりもGPU温度が高くないということです。
RTX 3080,3090共に75,6度と、ハイエンドグラフィックカードとしてはかなり冷えているのではないでしょうか。

消費電力

続いて、消費電力です。
システム全体の消費電力である点に注意してください。(カード単体の消費電力ではありません)
また、「DEATH STRANDING」プレイ時の消費電力です。

こちらは概ね予想通りといったところでしょうか。
アイドル状態でも消費電力の差が見られます。
RTX 3090では200Wを超えて225W程度、RTX 3080では188Wでした。

4K解像度において「DEATH STRANDING」をプレイ中は、RTX 3090で550W程度、RTX 3080で540W程度でした。
先に述べたように、使用したグラフィックカードにおいて、RTX 3080はOCによってTBPが340Wとなっており、RTX 3090が350Wであるから、妥当な差であると言えそうです。

さて、面白いのはここです。
DLSSパフォーマンスを有効にした状態でプレイした時の消費電力について。
RTX 3000シリーズの両カードにおいて、DLSSを利用していない場合と比較すると、消費電力が低下しています。
4K解像度によってCUDAコアが使用する電力より、DLSS+(低解像度)CUDAが利用する電力の方が少ないという事でしょうか。
見た目で差を感じない人にとってDLSSを有効化した状態でゲームプレイをすることは、消費電力を下げる選択肢となるかもしれません。

電源ユニットの容量はどれぐらいが好ましい?

Ryzen9 3950X + RTX 3090の組み合わせで、ゲームプレイ中は550W程度の電力を消費するという事です。
今回、750W電源を利用してベンチマークを行いましたが、その最中に電源が落ちるといったことはありませんでした。
しかし、負荷率が50%程度で最も変換効率が高くなる電源ユニットが多いことを踏まえると、1000W以上の電源ユニットを用意したいところです。
また、Ryzen Threadripperなど、HEDT CPU環境で利用する場合は、もっと余裕が欲しいところです。

RTX 3070 ?

10月に発売予定のRTX 3070。
RTX 3080やRTX 3090がこれだけ性能向上しているとなると、こちらも期待できそうです。

お家で始める仮想化環境 Proxmox VE クラスタ構築・マイグレーション編

目次

環境

前提として、Proxmoxの基本的な構築が完了している必要があります。
Proxmox環境の構築方法はこちらをご覧ください。

また、今回は2台のノードでクラスタの構成を行います。

クラスタ構成時の注意点

Proxmoxのクラスタは、2台のノードから構成することが出来ます。
しかしながら、HA構成にしたい場合は3台以上のノードが必要になります。

また、一度クラスタに追加したノードの削除について、一度削除したノードを再登録することが出来ません。
Proxmoxを再インストールする必要があります。
(CLIにてProxmoxを再インストールせずに再登録する方法もあるようです)

試しにクラスタを構成する場合は、これらに対して注意が必要です。

クラスタ構成の利点

クラスタを構成すると、各ノードのWebGUIにアクセスする必要が無くなり、単一のWebGUIからクラスタ内のすべてのノードの操作が出来るようになります。
また、マイグレーションが可能になり、NFSなどの共有ストレージ上に配置されたVMであれば、ライブマイグレーションも利用可能になります。

(Proxmoxではこれらの機能はすべて無償で利用できます)

準備

管理用のネットワークとは別に、クラスタ構成に使用するネットワークを設定することが出来ますので、必要に応じてクラスタに使用するNICの設定をしておきます。

クラスタの作成

まず、元となるクラスタの作成を行います。
どのノードで作業してもよいはずですが、今回は「node1」と名のつけたノードで作業します。
この作業は、どれか1つのノードのみの作業でかまいません。

左側のメニューで「Datacenter」を選択し、「Cluster」を選び、クラスタ情報を表示します。

「Create Cluster」ボタンを押します。

クラスタ名を決め、「Cluster Name」に入力します。
この名前は後から変更することが出来ませんので、慎重に決めてください。
また、「Cluster Network」に、クラスタで使用するネットワークを設定します。
複数のリンクを使用することで、Failoverなどが可能になるようです。

入力が完了したら、「Create」を押して、操作が完了するのを待ちます。
「TASK OK」と表示されれば、閉じて問題ありません。

これで、先ほどの画面に作成したクラスタの情報が表示されているはずです。

クラスタへの参加

先ほど「Node1」で作成したクラスタに対して、別のノードを参加させる操作を行います。
今回は「Node2」を参加させます。
複数のノードを参加させる場合は、残りのすべてのノードで同様の操作を行ってください。

まずは、先ほどクラスタを作成した「Node1」上で、クラスタへの参加に必要な情報を取得します。
「Cluster Information」より「Join Information」を押すことで、必要な情報が表示されます。

以下のようなダイアログが表示されますので「Join Information」の中身をコピーします。
左下の「Copy Information」ボタンを利用してコピーが出来るようですが、うまくできない場合は手動でコピーしてみてください。

続いて、「Node2」で作業を行います。
「Datacenter」から「Cluster」より、「Join Cluster」を押します。

以下のようなダイアログが表示されますので、「Information」のところに先ほどコピーした文字列をそのまま貼り付けます。

貼り付けると、「Peer Address」や「Passowrd」などが表示されますので、「Password」にクラスタを作成したノード(今回は「Node1」)のパスワードを入力します。
また、「Cluter Network」の項目で、「Link 0」にて、クラスタに使用するネットワークを選択します。

入力が完了したら、「Join」を押します。

すると、以下のようなダイアログが出て止まってしまいますが、「Node1」の方へ戻り、「Cluster Nodes」に登録したノードが表示されているか確認します。

表示されていれば、このダイアログは閉じてかまいません。

以上で、クラスタへの参加が完了します。
複数のノードを参加させたい場合は、ノード数に応じてこの操作を繰り返してください。

マイグレーション

試しに、クラスタ内でVMのマイグレーションを行ってみます。
今回は「Node1」に存在するVM「TestVM」を「Node2」へマイグレーションしてみます。

移動させたいVMを選択肢、右上の「Migrate」ボタンを押します。

以下のように、移動先のノードを選択するダイアログが表示されますので、「Target Node」の項目で移動先のノードを選択します。

選択したら、「Migrate」ボタンを押します。
すると、マイグレーション処理が開始され、しばらく待つと「TASK OK」と表示されますので、ダイアログを閉じます。

「TestVM」が「Node2」に移動していることが確認できます。

このように、停止中のVMを移動させるマイグレーションは、非常に簡単に行うことが出来ます。