清水理史の「イニシャルB」
冬休みに作るミニPC自宅サーバー上級編、SSD+メモリ増設で最新Proxmox VE 8.1環境を堪能する!
2023年12月18日 06:00
先々週の本連載「冬休みに『初めての自宅サーバー作り』を、1.8万円で買ったN100ミニPCにCasaOSをセットアップ」の続きで、N100搭載ミニPC「GMKtec NucBox G3」を、本格的な自宅サーバーとして強化してみた。手のひらサイズの本体内にストレージ1TBとメモリ16GBを詰め込んで、複数のサーバーを動かしても耐え得る環境を用意した。
タイミングよくProxmox VEも最新の8.1がリリースされたので、小型ながらパワフルな自宅サーバーとなっている。この冬の、時間と費用をつぎ込む対象として楽しんでほしい。
メモリ16GB+SSD 1TB構成で
今回、用意したGMKtec NucBox G3は、標準で256GBのストレージ(M.2 NVMe)8GBのDDR4 3200メモリが搭載されている。そのままでもWindowsの利用や前回紹介したCasaOSなどの利用であれば問題ないが、本格的な自宅サーバーとして使うには少し物足りない。
そこで、まずはメモリとストレージを強化することにした。
メモリに関しては、最大メモリーチャネルが1となるN100では、増設ではなく、標準で搭載されているメモリとの交換となる。今回は、手元に余っていたCrucialのDDR4 3200 16GBを利用した。本稿を執筆している2023年12月2日時点の実売価格は6000円前後だ。
ストレージは、コスパ的にはNVMeを置き換えた方がいいが、今回は動作検証も兼ねて、G3内部に用意されているM.2 2242を利用した。
M.2 2242のSATA SSDは、1TBクラスで1万6000円前後(2023年12月2日時点)と価格が高く、コスパは悪い。ただし、今回は少し前に開催されていたAmazonのブラックフライデーのタイミングで安く購入しておいた製品があるので、これを利用している。Kingdataという見慣れないメーカーの格安SSDで、購入時の価格は1TBで7679円だった。
サーバーとしてのパフォーマンスを考えれば、メモリ32GB、ストレージは3TBを目指したかったが、ミニPC本体よりもメモリやストレージの価格が高くなってしまうのは現実的でないので、少々、控えめな構成としている。
Proxmox VE 8.1を導入
OSは、本稿の執筆に取り掛かる直前(2023年11月23日)にリリースされたProxmox VE(Virtual Environment) 8.1にした。
Proxmox VEはDebianをベースにした仮想環境で、KVM+QEMUによる仮想マシンとLXCによるコンテナの両方を利用できる。コミュニティ版としてノンサブスクリプションでの利用も可能なので、国内外の自宅サーバー界隈では人気が高いプラットフォームだ。
最新の8.1では、ベースとなるLinux環境が更新されたほか、以下の3つの新機能が搭載された。
- セキュアブートが必要なOSのインストールに対応
- SDNに対応し複雑なネットワーク構成やマルチテナント設定に対応
- 通知機能が更新され特定のイベントの通知を柔軟に定義できるようになった
自宅サーバー視点では、セキュアブート対応によってWindows 11の仮想化にも対応できるようになった点がうれしいポイントと言えるだろう。というわけで、以降では、Proxmox VEをインストールして仮想マシンにWindows 11をインストールするまでの手順を紹介する。
[手順目次]
STEP 1:Proxmox VEのインストール
まずは、Proxmox VEのインストールだ。
1-1:インストール用メディア(USBメモリ)を用意する
以下のサイトからProxmox VE 8.1のISOファイルをダウンロードし、消してもかまわないUSBメモリに書き込む。書き込みには、本コラムではおなじみのRaspberry Pi Imagerを利用した。
▼Proxmox VEのダウンロード
Proxmox Virtual Environment
▼Raspberry Pi Imagerのダウンロード
Raspberry Pi Imager
1-2:ミニPCをUSBメモリから起動する
作成したUSBメモリをG3に装着し、電源オン。起動時にUEFIを呼び出し、「Save & Quit」画面で、ブートするメディアとして装着したUSBメモリを選択して起動する。
1-4:インストール先を選択する
続いて、インストール先のSSDを選択する。画面下に表示されている一覧からインストール先を選択し、タイムゾーンの選択画面が表示されたら[Japan]を選択しておく。
以下の画面は解説用に仮想環境でキャプチャしたものなので仮想ディスクとなっているが、今回はNVMeにProxmox VE本体をインストールし、1TBのSATA SSDは仮想マシンの格納先として利用する。
1-5:ユーザーを作成する
ユーザー設定の画面が表示されるので、rootのパスワードとメールアドレスを設定する。Proxmox VEは、rootユーザーを利用して管理する(メールアドレスがユーザーアカウントになるわけではないので注意)。このパスワードを忘れると、再インストールすることになるので忘れないように注意する。
STEP 2:Proxmox VEの準備
インストールが完了したら、ネットワーク上の他のPCから、ウェブブラウザーで「https://サーバーのIPアドレス:8006」にアクセスすれば管理画面が表示される。
ログイン画面で、先に言語を選択してから(後で選択すると入力したパスワードなどがクリアされる)、ユーザー名「root」を入力し、インストール時に指定したパスワードを入力する。
Proxmox VEのインストール後、最初に実行する「儀式」はリポジトリの変更だ。標準ではアップデートの参照先リポジトリが、有料サブスクリプションユーザー向けのEnterpriseリポジトリになっているので、これを変更する必要がある。
[追加]で[No-Subscription]を追加後、一覧に登録済みの2つの「enterprise.proxmox.com」リポジトリを選択し「無効」をクリックする。これで、無料版として利用し、アップデートを受け取ることが可能になる。
追加できたら、[アップデート]からアップグレードを実行し、最新版に更新しておこう。
なお、サブスクリプションなしの場合、ログイン時に毎回、サブスクリプションがないというメッセージが表示されるが、無視して問題ない。
続いて、増設したSATA SSDを登録する。
[ディスク]の[LVM-Thin]から[作成:Thinpool]を選択し、ディスクを選択し(今回は/dev/sda)、名前を付けてから[作成]で登録できる。作業が完了すると、左側の一覧に作成したボリュームが追加されるはずだ。
STEP 3:コンテナ(CT)を動かす
Proxmox VEでは、コンテナ(CT)と仮想マシン(VM)の両方を利用できるが、まずは手軽なCTの使い方を紹介する。
ハードウェアを含めて仮想化するVMと異なり、ホストOS上でOSレベル以上のソフトウェアのみを仮想化するCTは、軽量なので何かと使い勝手がいい。
Windowsを動かしたい場合やGPUをパススルーで使いたいなどという場合はVMを使うしかないが、LinuxベースのサーバーでDockerを使ってアプリを動かしたいなどという場合はCTの利用がおすすめだ。
特に今回のようなミニPCの場合、メモリやストレージは何とかできてもCPUパワーは限られてしまう。VMは負荷が大きくなりがちなので、なるべくCTを利用するといいだろう。
3-1:テンプレートのダウンロード
まずはテンプレートをダウンロードする。左側の一覧から、ストレージの[local]を選択し、[CTテンプレート]を選ぶ。
[テンプレート]ボタンをクリックすると、利用可能なパッケージが一覧表示されるので、使いたいテンプレートをダウンロードする。今回は、「ubuntu-22.04-standard」をダウンロードしておく。
なお、リポジトリが更新(夜間に実行されるのでそのままだと翌日)されると、アプリがインストール済みですぐに利用できるTurnkey Linuxなども一覧に追加される。
3-2:コンテナを作成する
テンプレートがダウンロードできたら、画面上部の[CTを作成]ボタンからコンテナを作成する。ウィザード形式で、項目を設定していくので、画面ごとに設定項目を解説する。なお、詳細設定を利用する場合もあるので、画面右下の[詳細設定]にチェックを付けておく。なお、特に記述のない部分については標準設定のまま進めてかまわない。
[全般]タブ
ホスト名:仮想マシンに付ける名前
パスワード:rootユーザーのパスワード
SSH public key:SSDの認証で公開鍵を使う場合はここで登録できる(authorized_keysファイルからも登録可能)
ネスト:チェックオン(Dockerを動かす場合必要)
[ネットワーク]タブ
ブリッジ:eth0にブリッジ接続された[vmbr0]を選択。これでG3の2.5Gbps有線LAN経由で通信できる
IPv4:静的を選択
IPv4/CIDR:「192.168.50.101/24」のような形式で指定する
ゲートウェイ:ルーターのIPアドレスを指定する
IPv6:使わないならそのままでOK。利用する場合、通常は[SLAAC]を選択
3-3:コンテナを起動する
左側の一覧でコンテナを選択し、[コンソール]メニューから[開始]をクリックすればコンテナが起動する。環境にも依るが、10秒もかからずにUbuntu 22.04が起動するはずだ。設定したrootアカウントでログインすれば利用できる。
なお、Proxmox VEにはファイアウォール機能が搭載されており、データセンター全体、サーバー、CT/VMという各段階でファイアウォールを構成できる(なので設定をミスするとややこしい)。ただし、標準では無効化されているので、稼働したコンテナには、ネットワーク上のPCからSSHなどでアクセスできる。
サーバーを外部に公開するようなケースならファイアウォールの動作を細かく設定すべきだが、前述したように段階的に複数のファイアウォールが設定されるので、はじめての場合は設定がわかりにくい。いろいろ設定を変えながら試行錯誤するしかないだろう。
STEP 4:Windows 11の仮想マシン(VM)を作成する
冒頭でも触れたように、Proxmox VE 8.1では、セキュアブートがサポートされたため、Windows 11なども扱いやすくなった。VMとしてインストールしてみよう。
なお、Windowsの場合、Proxmox VEからブラウザ経由で利用することもできるが、リモートデスクトップで操作した方が楽なので、Windows 11 Proのインストールを推奨する。
4-1:ISOファイルを用意する
以下のサイトから、Windows 11のISOファイルをダウンロードする。本稿執筆時点では、23H2がダウンロード可能だ。また、KVM用のVirtIOドライバーもダウンロードしておく。
▼Windows 11 のダウンロード
Windows 11 をダウンロードする
▼Virtio-win ISOのダウンロード
Virtio-win ISO
4-2:ISOファイルをアップロードする
ダウンロードした2つのISOファイルをProxmox VEにアップロードする。左側の一覧からストレージの[local]を選択し、[ISOイメージ]を選択して、[アップロード]ボタンをクリック。PCからISOファイルをアップロードしておく。
4-3:VMを作成する
画面上部の[VMを作成]からウィザード形式で仮想マシンを作成する。各画面の設定項目は以下の通りだ。なお、[詳細設定]をオンにしておくのはCTと同じだ。また、特に記述のない部分については標準設定のまま進めてかまわない。
[OS]タブ
ISOイメージ:アップロードしたWindows 11のISOファイルを指定
種別:[Microsoft Windows]を選択
Add additional drive for VirtIO drivers:オン(チェックを付ける)
ISOイメージ:アップロードしたVirtIOのISOファイルを指定
[システム]タブ
グラフィックカード:規定でもかまわないが今回は[VirtIO-GPU]を選択
EFIストレージ:EFIを保存するストレージを選択。通常はVMと同じ場所
SCSIコントローラ:[VirtIO SCSI single]を選択(インストール時にVirtIO ISO必須)
TPM追加:オン
TPMストレージ:TPM情報を保存するストレージを選択。通常はVMと同じ場所
Qemuエージェント:仮想マシン管理用のエージェントを有効化(Windows上で後からインストールが必要)
4-4:Windows 11をインストールする
作成が完了したら、VMを選択し、[コンソール]から[開始]をクリックする。起動すると、[Press any key to boot from CD or DVD]と表示されるので、忘れずにスペースキーなどを押してメディアから起動する(忘れるとネットワークブートが開始されてしまう)。
インストール作業は、物理マシンと同じだが、注意が必要なのがVirtIOドライバーの使用だ。
Windows 11のISOには、VirtIOドライバーが含まれていないため、インストール先のストレージ(VirtIO SCSI)を認識できない。インストール場所の選択画面で[ドライバーの読みをクリックして、[参照]から「virtio-win-0.1.240」の「vioscsiw11amd64」フォルダーを指定してドライバーをインストールする必要がある。
同様の理由で、グラフィックやネットワークなど、VirtIOを指定すると、インストール時にデバイスを認識できない。グラフィックなどは後からでも変更できるが、Windows 11はネットワークなしでインストールできないため、ひとまず「RTL8139」などにしておいてから、インストール後に変更する。
4-5:VirtIOの構成を行う
インストールが完了して、初期設定も済んだら、一旦、シャットダウンし、[ハードウェア]で、[ネットデバイス]の[モデル]を[VirtIO]に戻しておく。
Windows 11を起動し、VirtIOのISOから、「virtio-win-gt-x64.exe」を実行し、グラフィック、ネットワークのドライバーをインストールしておこう。
また、ゲストエージェントを有効化するために「virti-win-guest-tools.exe」で仮想マシンを管理するためのゲストツールもインストールしておく。これで、Proxmox VEの管理画面でIPアドレスを確認したりすることが可能になる。
いろいろできる
以上、ミニPCを使ったProxmox VEによる自宅サーバーを紹介した。今回は、基本的な設定しか紹介していないが、スナップショットを使って設定を戻したり、Dockerなどのオリジナルの設定を済ませたテンプレートを用意しておき、クローンですぐに使えるサーバーを秒で用意したりすることが簡単にできる。
また、ミニPCを複数台用意してクラスタを構成することもできるし、Cephで分散ストレージを利用することもできる。かなり楽しめるので、ぜひ使ってみることをお勧めする。