どうも、Tです。
自宅の検証環境にvSphereを使っていましたが、Broadcomの買収などによりこのままvSphereを使い続けることに不安を覚え始めたため、乗り換え先としてProxmox VE(以下PVE)が使えるか?の確認のためにインストールした際の備忘録です。
目次
事前情報
PVEのインストール方法は、公式のドキュメントにまとめられているため、これをベースに手順を確認します。
Installing Proxmox VE
Installing Proxmox VE
推奨要件
最小要件と推奨要件については、下記にまとめられています。
推奨要件を簡単にまとめると以下になります。
- CPU:Intel EMT64またはAMD64でIntel VT/AMD-V CPUフラグを持つCPU
- メモリ:OS・PVE用に最低2GB。追加でゲスト用のメモリ。CephもしくはZFSを使用する場合は、ストレージ1TBあたり約1GBのメモリが追加で必要。
- ストレージ:高速で冗長なストレージ。最適なのはSSD。
- OSストレージ:バッテリー保護書き込みキャッシュ(BBU)を備えたハードウェアRAID。または非RAID環境の場合はZFS。
- VMストレージ:ローカルストレージはBBUを備えたハードウェアRAID。または非RAID環境の場合はCephかZFS。SSDはPower-Loss-Protection(PLP)を備えたものを推奨。コンシューマ向けSSDは非推奨。
- ネットワーク:マルチNIC。
- PCI(e)パススルー:CPUがVT-d/AMD-dフラグをサポートしている必要あり。
Webブラウザ
PVEの管理画面に接続するために、Webブラウザを使用しますが、以下のような記載があり主要な最近のバージョンのブラウザが使えそうでした。
- Firefox, a release from the current year, or the latest Extended Support Release
- Chrome, a release from the current year
- Microsoft’s currently supported version of Edge
- Safari, a release from the current year
インストーラー
PVEのインストーラは、下記からダウンロードが行えます。
今回のバージョンでは、ISOファイルは1.3GB程度でした。
ダウンロードした後、DVDに書き込むかRufusツールなどを使い起動可能なUSBメモリを作成しておきます。
今回はRufusツールを使いブート可能なUSBメモリを作成しました。
環境
バージョン
- proxmox-ve_8.2-1
ハードウェア
- サーバー:HPE ProLiant DL360p Gen8
- CPU:Xeon(R) CPU E5-2603 0 @ 1.80GHz x2ソケット
- メモリ:192GB
- ネットワーク:1Gbps x4ポート
- HDD・RAID:以下参照(RAID1 838GB、RAID0 1.64TB)
インストール
USBメモリを接続し、USBメモリからブートするとインストール画面が表示されます。
「Install Promox VE(Terminal UI)」を選択しEnterを押下します。
利用規約の確認「I agree」を選択しEnterを押下します。
インストールディスクの選択です。「Advanced options」を選択しEnterを押下すると…
PVEをインストールするファイルシステムを選択できます。今回はハードウェアRAIDを組んでいるので、デフォルトの「ext4」で進めます。
非RAID環境では、ディスク本数に応じてZFSが良いかと思われます。
XFSを選択するメリットはドキュメント上見つかりませんでした。
Btrfsは、以下のドキュメントを見ていると現在はテクニカルプレビュー扱いのようなので使わないほうが無難かと思います。
「ext4」であることを確認し、「OK」を選択しEnterを押下します。
今回は検証のため、とりあえずデフォルトで進めていますが、パラメーターの意味は下記の通りです。
項目 | Graphicalの表記 | 説明 |
---|---|---|
Total size | hdsize | 使用するハードディスクの合計サイズ。 |
Swap size | swapsize | スワップボリュームのサイズ。 最小4GB、最大8GB。hdsize/8よりは大きくできない。 0を指定すると、スワップボリュームは作成されない。 |
Maximum root volume size | maxroot | OSを格納するルートボリュームの最大サイズ。 上限はhdsize/4。 |
Maximum data volume size | maxvz | データボリューム(仮想マシンやコンテナを作成する領域)の最大サイズ。 データボリュームの実際の計算式は下記になる。 datasize = hdsize – rootsize – swapsize – minfree maxvzの指定よりは大きくできない。 |
Minimum free LVM space | minfree | LVMのボリュームグループ(VG)pveに残しておく容量。 128GBを超えるストレージが使用可能な場合は、デフォルト16GB。 それ以外ではhdsize/8が使用される。 LVMではスナップショット作成にVGに飽きよう慮うが必要。 |
「Next」を選択しEnterを押下します。
以下を設定し「Next」を選択しEnterを押下します。
- Country:Japan
- Timezone:Asia/Tokyo
- Keybord layout:Japanese
以下を設定し「Next」を選択しEnterを押下します。
- Root password:rootのパスワード
- Confirm root password:rootのパスワード再入力
- Administrator email:通知用メールアドレス
以下を設定し「Next」を選択しEnterを押下します。
- Management interface:管理画面に接続するためのNICを指定
- Hostname(FQDN):PVEのFQDNを指定
- IP address(CIDR):管理画面に接続するIPアドレスを指定
- Gateway address:デフォルトゲートウェイを指定
- DNS server address:DNSサーバーを指定
「Install」を選択しEnterを押下します。
インストールが開始するためしばらく待ちます。
インストールが完了すると自動で再起動しコンソールのログイン画面が表示されます。
「https://<PVEのIPアドレス>:8006/」が表示されるのでWebブラウザから接続します。
認証情報にrootとパスワードを入力し、言語に「日本語」を選択して「ログイン」をクリックします。
上記の画面がでるので「OK」をクリックします。サブスクリプションについては後述します。
PVEの管理画面に接続できました。
インストール後設定
インストール後に、忘れぬうちに設定したほうがよさそうな部分を記載しておきます。
DNSサーバーの追加設定
インストール時にDNSを1台しか指定していないため、2つ目以降があれば追加しておきます。
「対象のPVE」->「システム」->「DNS」->「編集」をクリックします。
2台目以降のDNSサーバーのIPアドレスを設定し「OK」をクリックします。
追加できました。
NTP設定
NTPサーバーの設定はGUI上ではできないようでした。下記の手順を参考に、PVEにrootユーザーでSSH接続してコマンドで設定していきます。
NTPの設定ファイル「/etc/chrony/chrony.conf」を開きます。
# vi /etc/chrony/chrony.conf
デフォルトではdebianのNTPサーバーに接続しているので同期したNTPサーバーを設定します。今回は、「ntp.nict.jp」にしました。
# Use Debian vendor zone. #pool 2.debian.pool.ntp.org iburst pool ntp.nict.jp iburst
NTPサービス(chronyd)を再起動して設定を反映します。
# systemctl restart chronyd
下記のコマンドを実行し「*」が付いているNTPサーバーがあることを確認します。
# chronyc sources MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- ntp-a2.nict.go.jp 1 6 7 1 -44ms[ -45ms] +/- 46ms ^- ntp-k1.nict.jp 1 6 7 1 +39us[ -990us] +/- 6130us ^* ntp-b3.nict.go.jp 1 6 7 2 +63us[ -966us] +/- 1759us ^- ntp-b2.nict.go.jp 1 6 17 0 +214us[ +214us] +/- 1797us
メールアドレスの変更
インストール時に指定したメールアドレスを変更する場合は、下記の手順で変更します。
「データセンター」->「ユーザー」->「root」を選択し「編集」をクリックします。
「E-Mail」を修正して「OK」をクリックします。
この変更は以下のファイルでも確認することができます。
# cat /etc/pve/user.cfg user:root@pam:1:0:::ktest@gmail.com:::
メールアドレスは通知設定をする際に利用されるもののため、メール通知をしないような検証環境ではダミーのメールアドレスでも問題なさそうです。
不可思議なのは設定項目がデータセンターの中にあったけど、複数おPVEホストが参加したとき、このメールアドレスどうなるんだろうか…。
無償版リポジトリ設定
インストール後には、パッケージアップデートなどに使用するリポジトリがサブスクリプション購入者向けのリポジトリが登録されているため、サブスクリプションなしのリポジトリを追加します。
「PVEホスト」->「アップデート」->「リポジトリ」の画面を表示し「追加」をクリックします。
ポップアップが表示されるので「OK」をクリックします。
追加リポジトリのポップアップで「No-Subscription」を選択し「追加」をクリックします。
「pve-no-subscription」が追加されました。
続いてサブスクリプション用の「enterprise」「pve-enterprise」は必要ないため無効化します。それぞれ選択し「無効」をクリックします。
「有効」列のアイコンが「✓」から「ー」に変わり無効になりました。
ちなみに無効にしたリポジトリですが、「pve-enterprise」は、PVEに関する安定したパッケージが含まれる本番環境に適したリポジトリです。
「enterprise」は、PVEで使用できる分散オブジェクトストレージ機能のCeph(セフ)に関連するCeph Quincyパッケージのリポジトリです。こちらも安定した本番環境に適したリポジトリです。
アップデート
PVEのパッケージを最新にアップデートします。
「PVEホスト」->「アップデート」画面の「再表示」をクリックします。
ポップアップが表示されるので「OK」をクリックします。
再表示が終わるとアップデートできるパッケージのリストが表示されるので「アップグレード」をクリックします。
コマンドプロンプトが表示されるので「Y」を入力しEnterを押下します。
アップデートが始まります。ダウンロードURLを見ると「pve-no-subscription」となっており、追加したリポジトリからダウンロードしていることがわかります。
アップデートが終わり「Seems you installed a kernel update – Please consider rebooting this node to activate the new kernel」と再起動が推奨されています。
「PVEホスト」->「再起動」をクリックします。
確認のポップアップで「はい」をクリックします。
再起動後にもう一度「再表示」をクリックすると「アップデートがありません」となり最新のパッケージになっていることがわかります。
その他インストール後の状態
その他、インストール後で少し気になって確認した点です。
パーティション
「PVEホスト」->「ディスク」を見るとパーティション構成が確認できます。
sdaはインストールしたRAIDアレイです。sdbは何もしていない方のRAIDアレイです。
LVMの状態は以下のようになっていました。
root@k-sv03:~# pvs PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- 837.32g 16.00g root@k-sv03:~# vgs VG #PV #LV #SN Attr VSize VFree pve 1 3 0 wz--n- 837.32g 16.00g root@k-sv03:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data pve twi-a-tz-- 702.98g 0.00 0.26 root pve -wi-ao---- 96.00g swap pve -wi-ao---- 8.00g
ネットワーク
「PVEホスト」->「ネットワーク」を見るとネットワークデバイスが確認できます。
管理に使用しているIPアドレスは、vmbr0(ブリッジネットワーク)を使用していました。
証明書
「PVEホスト」->「証明書」を見ると証明書が確認できます。
デフォルトでは、管理画面に接続に使用しているWebの証明書が2年となっており短いのでカスタム証明書で置き換えたいところです。
言語・キーボード設定
インストール時に日本語環境を指定していたのに、設定されている言語とキーボードはアメリカ向けになっていました。なぜ…?特に問題ないのでこのままにしています。
# localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: (unset) X11 Layout: us X11 Model: pc105
サブスクリプションについて
PVE自体はオープンソースのため、無償で利用できますがサブスクリプションがあります。本番環境で使用する際は、社内でがっちりとした技術者の体制を整えられなければサポートも必要になるかと思います。
しかし、一番重要なのは「Access to Enterprise repository」の部分です。
「無償版リポジトリ設定」で、サブスクリプション向けの「pve-no-subscription」を設定しましたが、このリポジトリでは安定ではないパッケージが含まれており、テストや非本番環境の使用になります。
https://pve.proxmox.com/wiki/Package_Repositories
Proxmox VE No-Subscription Repository
As the name suggests, you do not need a subscription key to access this repository. It can be used for testing and non-production use. It’s not recommended to use this on production servers, as these packages are not always as heavily tested and validated.
本番環境やたとえ検証環境であっても、安定稼働が必要なPVE環境については、サブスクリプションを購入し無効にした「enterprise」「pve-enterprise」リポジトリを使う方が望ましいです。
参考
公式
ブログ
まとめ
よく使い方わからないけど、いろんなことができそうな感じはありました。
ちょっとずつ検証していこう…。