自宅サーバーをProxmoxVEで構築する

Proxmox

VMware社がBroadcom社の傘下になり、VMware ESXi無償版がリリースされなくなりましたので、ハイパーバイザ環境をProxmox VEへ完全移行することにしました。

今回は初回記事としてProxmoxのインストールとUbuntuのデプロイまで解説します。

ハイパーバイザはできることが多いため一度に書ききれません。以下の通り複数回に分けて記載していくこととします。

※今後の予定記事

  • Windows Server2022のインストール
  • ESXiからProxmoxへのマイグレーション(移行)
  • マイグレーションで遭遇したトラブル対策

システム計画とハードウェア調達

最初にProxmoxのシステム構成を決めました。

これまでオンプレで動かしていたファイルサーバーSamba、VPNサーバーの他、Aipo、Redmineというグループウェア類も移行することにしました。

またWindows Server(180日試用版)も入れて、本職(ガチのITエンジニア)のお勉強用環境も作りました。

ハードウェア自体は、Windows7時代に使っていたパーツを主にして集めました。

ハイパーバイザを使ったサーバーは、CPUコア数とメモリリソースが機能・性能に直結することから、CPUとメモリは重点的に投資しました。

今回は古いマザボを使いましたが、CPUがPentiumG、メモリが8G(4G✕2枚)の構成であったため、CPUをCore i7, メモリは16GBにしました。

数多くのOSを動作させるため、ネットワークインタフェースも増強しました。

NICはESXiほど選別に厳しくないのですが、ESXiでも実績があるASIXチップが載った外付けUSB NICを買い足ししました。

  • マザボ:MSI H61I-E35 2011年頃に購入したmini-ITXマザボです。
  • CPU:Core i7-2600(Intel 第2世代だが4C/8T)中古で5,000円位で購入できます。
  • メモリ:DDR3-16Gbytes (8GB✕2枚) 3,000円くらいで新規調達できます。
  • HDD:ジャンクPCから抜き取った2.5inchHDD(HGST製)です。
  • ケース:CoolerMaster NR200 CoolerMasterの傑作ケースです。
  • 電源:ヤフオクで調達したSilverStoneの300W電源
  • 拡張インタフェース:USB Ethernet 1ch ELECOM EDC-GUA3H2

余りパーツ流用としても、全部で1万円くらいの出費になりましたが、一つのPCにまとめて動かすことで消費電力の削減に寄与することも期待できそうです。

Proxmoxインストール

PCが組み上げ後、Proxmoxを入手してPCへインストールを行います。

インストールにはUSB起動ができる4GB以上のストレージが必要ですので、あらかじめ準備します。

筆者は現役を引退させたTEAMの120GB SATA SSDを玄人志向のUSBケースに入れて使いました。

【手順1】ProxmoxのISOイメージを入手

ProxmoxのISOイメージはここからダウンロードします。

導入するバージョンは、NICドライバが多く対応している最新バージョンがいいと思います。

【手順2】インストールディスクを作成

Rufusを使ってProxmoxのISOイメージからインストールディスクを作成します。

RufusはPCへのインストールの必要もなく、直感で操作できるので重宝します。

【手順3】インストールディスクをPCに挿入しUSBブート

インストールUSBディスクをProxmoxPCに挿入してUSBブートします。

ProxmoxのベースOSはDebian系Linuxのため、Ubuntuと同じような起動処理が走ります。

ローディングが完了すると以下のようなインストール設定画面になります。

※以下画面は、本記事作成のためにProxmox上にProxmoxをデプロイしたものです。実際の画面と少し異なります。

最初の選択は「Install Proxmox VE (Graphical)」が直感的に設定できるため、以後はGraphicalを選択した場合を解説します。

【手順4】ガイダンスに従い設定する

画面の情報に従って設定を進めます。

英語表記ですが平易ですので、高校英語の知識で十分読めると思います。

(1)インストール先のストレージ設定

(2)国設定

(3)スーパーユーザー&パスワード設定

(4)ホスト名&IPアドレス設定(重要)

ProxmoxのIPアドレスを設定する画面です。

デフォルトは家に設置しているDHCPサーバー(または家庭用WiFiルーター)が割り当てたIPアドレス値が入っています。

固定IPにする場合は、この段階で設定しておくようにします。

ProxmoxのIPアドレスは後からでも設定変更は可能ですが、誤設定をすると物理コンソールから入ることになりますし、Proxmoxの操作はほぼWebGUI設定で進めることになるため、IPアドレス変更でWeb接続が切れるとかなり厄介なことになります。この段階で確定しておくのが良いでしょう。

最終確認

インストール前に設定値の最終確認があります。

今回は、単機能サーバーアプリばかりのシステムのため、デフォルト値でも大きな支障はありません。

インストールが完了し、再起動がかかると以下のようなコンソール画面になります。

GUIコンソールに入るには、Webブラウザから画面に表示されているURLにアクセスします。

以下の例だと"https://192.168.0.14:8006/"という形式で入力します。:8006まで入力しないとサーバーが応答しませんので注意してください。

以後、Proxmoxのコンソール画面は、ほぼ使いません。

proxmox自体のIPアドレスを変える時に使うくらいですので、今はここから操作もできるということを理解しておけば大丈夫です。

Ubuntu22.04LTSをデプロイする

Proxmoxがインストールできましたので、次にUbuntu22.04LTSのデプロイしてみます。

VMではOS構築のことをデプロイ(deploy:展開)と呼びます。

最初にUbuntu22.04LTSをする理由は、筆者が最も簡単だと思うだけです。

【手順1】Ubuntu22.04LTSのISOイメージを入手

Ubuntu22.04LTS(日本語版)のISOイメージを以下から入手します。

ファイル名:ubuntu-ja-22.04-desktop-amd64.iso

ISOイメージは3.2Gbytesほどありますので、回線環境のいいところでダウンロードしてください。

【手順2】ProxmoxへISOファイルをアップロードする

Proxmoxで仮想マシンを作成刷る場合は、ProxmoxのlocalストレージにISOファイルをアップロードする必要があります。

ISOファイルのアップロード作業はGUIでできますので、今回はGUIで操作していきます。

さきほど構築したマシンの下にlocalストレージ>ISOイメージに進み、アップロードをクリックします。

アップロードダイアログが出ますので、ダウンロードしたubuntu22.04のisoファイルを選択し、アップロードをクリックします。ファイルサイズが3.2GBあるため転送には少々時間がかかります。

アップロード後にISOイメージがコピーされていることを確認します。

【手順3】仮想マシンを作成する

proxmoxコンソール右上の「VMを作成」をクリックします。

「全般」ではproxmox上でのマシン名を決めて入力します。

VM IDは、proxmox上でのマシン番号です。通常は100から付番されますが、任意の番号をつけることも可能です。

「OS」ではアップロードしたISOイメージを選択します。

「システム」は画面の通り、デフォルト通りで問題ないです。

「ディスク」はProxmox上でのディスクサイズを任意に決めることができます。

今回のProxmoxサーバーは、単機能サーバーをたくさん立てる方式としていますので、Linuxであればデフォルトの32GBでも十分と思います。

UbuntuをSMBファイルサーバーにする場合は、別途ストレージを増設するのですが、その方法は後日解説します。

「CPU」ではVMマシンに割り当てるコア数を設定します。

筆者の場合、たまにしか動かないVPNサーバーやWebサーバーなど処理の軽いシステムの場合は1、ファイルサーバーなど瞬発力が必要となるシステムは2を設定しています。

IntelのHT(ハイパースレッド)も1コアの換算となります。したがって今回のCore i7-2600は4コア8スレッドですので8コア換算となります。

なおコア数は後でも変更できますので、あまり神経質にならなくても良いです。

「メモリ」ではVMに割り当てるメモリを決めることができます。

Linuxの場合は、4096MBがおすすめです。2048MBではちょっと少ない場合があります。

Windows Serverの場合は8192MBを設定しています。

Windowsはメモリ不足になるとスワップ動作が発生し、極端に遅くなってしまいますので、メモリリソースはできるだけ割り当てるようにします。

メモリ割当量はマシンを停止した後であれば、自由に設定変更ができますので、構築時はそれほど気にしなくても良いでしょう。

最後はネットワーク設定です。

ProxmoxではVMマシンに物理NICを直接割り当てることができない仕様となっています。ESXiでも同じです。

今回はデフォルトで作られているブリッジvmbr0を選択します。

vmbr0は仮想ブリッジ(仮想HUB)として機能しますので、複数のVMマシンに同じvmbr0を割り当てても大丈夫です。

増設NICをつけた場合は、自動的に物理NICとして検出されますが、VMマシンに割り当てるにはシステム>ネットワークでvmbr1を手動で作る必要があります。

以下は追加したエレコムのUSB LANをvmbr1に割り当てた場合です。

ESXiではNICチップの制限が多々ありましたが、ProxmoxはDebianベースのため、RealtekのNICも普通に使えるそうです。(Realtek NICはこれから試そうと思います。)

最後に確認ダイアログで設定を確認し、完了をクリックすれば、VMマシンの作成は完了です。

【手順4】Ubuntuをインストールする

作成したVMマシンのコンソールに切り替えてマシンを起動すると、窓の中でUbuntuの起動処理画面が現れ、インストール作業を進めることができます。

物理PCに入れたものと全く同じ様に動きますので、公式サイトの解説通りに設定していけば、あっという間にインストールは完了します。

サーバーOSとして使う場合、事務系アプリは不要ですので最小インストールにするのがおすすめです。

その他の設定はガイダンス通りすれば難なく完了するので割愛します。

Proxmox内でマシン再起動し、ログイン画面がでればインストール完了です。

GUIからログインして、端末などのアプリが開ければデプロイの作業は完了です。

Web画面でubuntuがサクサク動くとは感動ものです。

【おまけ】Proxmox内Ubuntu22.04LTSの起動と停止の仕方

仮想マシンのコンソール画面ではXwindow Systemとの連携がスムーズでないため、コンソール内のGUIボタンで行うシャットダウン操作は動作しない(無視される)場合が多々あります。

この現象はESXiのコンソール画面でも同じなので、おそらく仕様上の制約だと思っています。

Ubuntu内コマンドでshutdownコマンドを発行すれば、ほぼ確実にシャットダウン動作に移行できます。

ここでよく引っかかるのが、「suコマンドでスーパーユーザーになれない」ことに気づかされます。

スーパーユーザーが一般ユーザーでログインした場合は、sudo suでスーパーユーザーになる必要がありますので覚えておきましょう。

$ sudo su
# shutdown -h now

以下は再起動する場合に入力するコマンドです。

$ sudo su
# shutdown -r  now
または
# reboot

ProxmoxはESXiの代替になる

ESXiの無償版がリリースされなくなって、後継システムでお悩みの方もおられると思いますが、筆者はProxmoxでほぼ同等のことができると考えています。

その根拠として、ProxmoxはDebianのKVMをGUI化したものであり、バックグラウンドではKVMコマンド操作と等価のことをやっているだけなので、信頼性についても大きな問題はないと思っています。

手持ちのシステムは一通りProxmoxへ移行できたのですが、いろいろと障害は出ましたので、これからESXiからの移行手順やWindows Serverのインストール方法などを記事にしていきたいと思います。

ただし、ESXiからの移行については、ほぼコマンドオペレーションになります。GUIメインの操作は今回で最初で最後かもです。