清水理史の「イニシャルB」

冬休みに作るミニPC自宅サーバー上級編、SSD+メモリ増設で最新Proxmox VE 8.1環境を堪能する!

ミニPCで作った自宅サーバー。Proxmox VE 8.1でWindows 11を動作させた様子

 先々週の本連載「冬休みに『初めての自宅サーバー作り』を、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本体よりもメモリやストレージの価格が高くなってしまうのは現実的でないので、少々、控えめな構成としている。

メモリを16GBに交換、M.2 2242に1TBのSATA SSDを搭載した

Proxmox VE 8.1を導入

 OSは、本稿の執筆に取り掛かる直前(2023年11月23日)にリリースされたProxmox VE(Virtual Environment) 8.1にした。

Proxmox VE 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

Proxmox VEのイメージをUSBメモリの書き込む

1-2:ミニPCをUSBメモリから起動する

 作成したUSBメモリをG3に装着し、電源オン。起動時にUEFIを呼び出し、「Save & Quit」画面で、ブートするメディアとして装着したUSBメモリを選択して起動する。

1-3:インストールを開始する

 起動したら、インストール方法で[Graphical Install]を選択し、表示されたライセンスに同意する。

Graphical Installを選択

1-4:インストール先を選択する

 続いて、インストール先のSSDを選択する。画面下に表示されている一覧からインストール先を選択し、タイムゾーンの選択画面が表示されたら[Japan]を選択しておく。

 以下の画面は解説用に仮想環境でキャプチャしたものなので仮想ディスクとなっているが、今回はNVMeにProxmox VE本体をインストールし、1TBのSATA SSDは仮想マシンの格納先として利用する。

インストール先を選択

1-5:ユーザーを作成する

管理者アカウントのパスワードを設定。管理者アカウントはrootとなる

 ユーザー設定の画面が表示されるので、rootのパスワードとメールアドレスを設定する。Proxmox VEは、rootユーザーを利用して管理する(メールアドレスがユーザーアカウントになるわけではないので注意)。このパスワードを忘れると、再インストールすることになるので忘れないように注意する。

1-6:ネットワークの設定を行う

 最後にネットワークの設定をする。G3には、Wi-Fiモジュールも搭載されているため、候補として表示されるが、接続先の設定ができないため、必ず有線を利用する。

 以下のように、FQDNとして内部のみで利用する仮の名前を設定し、IPアドレスなどを設定する。ゲートウェイとDNSは、通常はルーターのアドレスでかまわない。

FQDN pvehome.internal
IPアドレス 192.168.50.160/24
Gateway 192.168.50.1
DNS 192.168.50.1
ホスト名とIPアドレスを設定する


STEP 2:Proxmox VEの準備

 インストールが完了したら、ネットワーク上の他のPCから、ウェブブラウザーで「https://サーバーのIPアドレス:8006」にアクセスすれば管理画面が表示される。

 ログイン画面で、先に言語を選択してから(後で選択すると入力したパスワードなどがクリアされる)、ユーザー名「root」を入力し、インストール時に指定したパスワードを入力する。

 Proxmox VEのインストール後、最初に実行する「儀式」はリポジトリの変更だ。標準ではアップデートの参照先リポジトリが、有料サブスクリプションユーザー向けのEnterpriseリポジトリになっているので、これを変更する必要がある。

 [追加]で[No-Subscription]を追加後、一覧に登録済みの2つの「enterprise.proxmox.com」リポジトリを選択し「無効」をクリックする。これで、無料版として利用し、アップデートを受け取ることが可能になる。

 追加できたら、[アップデート]からアップグレードを実行し、最新版に更新しておこう。

 なお、サブスクリプションなしの場合、ログイン時に毎回、サブスクリプションがないというメッセージが表示されるが、無視して問題ない。

Proxmox VEを無料版として使うときの儀式。リポジトリに[No-Subscription]を追加し、「enterprise」と記載されている2つを無効化する

 続いて、増設したSATA SSDを登録する。

 [ディスク]の[LVM-Thin]から[作成:Thinpool]を選択し、ディスクを選択し(今回は/dev/sda)、名前を付けてから[作成]で登録できる。作業が完了すると、左側の一覧に作成したボリュームが追加されるはずだ。

増設したSATA SSDを登録しておく


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を動かす場合必要)

ホスト名とパスワードを設定

[テンプレート]タブ

テンプレート:ダウンロードしたUbuntu 22.04のテンプレートを指定する

ダウンロードしたUbuntuのテンプレートを選択

[ディスク]タブ

ディスクサイズ:必要なサイズを選択する。後から簡単に増やせるので8GBでもかまわない

とりあえずは標準の8GBで問題ない

[CPU]タブ

コア:利用するCPUのコアを指定する。これも後で変更できるので2くらいでOK

標準の1でもいいが一応2にしておく

[メモリ]タブ

メモリ:使用するメモリを選択。こちらも後で変更できるので標準の512MBでOK
スワップ:同じくとりあえずは512MBで問題ない

メモリもとりあえず512でOK

[ネットワーク]タブ

ブリッジ:eth0にブリッジ接続された[vmbr0]を選択。これでG3の2.5Gbps有線LAN経由で通信できる
IPv4:静的を選択
IPv4/CIDR:「192.168.50.101/24」のような形式で指定する
ゲートウェイ:ルーターのIPアドレスを指定する
IPv6:使わないならそのままでOK。利用する場合、通常は[SLAAC]を選択

ネットワークの設定。DHCPでもかまわないが今回は固定しておく

[DNS]タブ

DNSサーバ:ルーターのIPアドレスを指定

DNSとしてルーターのIPアドレスを指定

 以上で、コンテナの設定は完了だ。[完了]をクリックすると作成が開始される。[TASK OK]と表示されれば完了だ。

[TASK OK]と表示されれば完了

3-3:コンテナを起動する

 左側の一覧でコンテナを選択し、[コンソール]メニューから[開始]をクリックすればコンテナが起動する。環境にも依るが、10秒もかからずにUbuntu 22.04が起動するはずだ。設定したrootアカウントでログインすれば利用できる。

CTなので即座に起動する

 なお、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ファイルをアップロードしておく。

ISOファイルをアップロードしておく

4-3:VMを作成する

 画面上部の[VMを作成]からウィザード形式で仮想マシンを作成する。各画面の設定項目は以下の通りだ。なお、[詳細設定]をオンにしておくのはCTと同じだ。また、特に記述のない部分については標準設定のまま進めてかまわない。

[全般]タブ

名前:「Win11」のようにVMの名前を設定する
Tags:CTやVMを複数利用する場合は、タグをつけておくとわかりやすい

名前を付ける

[OS]タブ

ISOイメージ:アップロードしたWindows 11のISOファイルを指定
種別:[Microsoft Windows]を選択
Add additional drive for VirtIO drivers:オン(チェックを付ける)
ISOイメージ:アップロードしたVirtIOのISOファイルを指定

ISOファイルを指定する

[システム]タブ

グラフィックカード:規定でもかまわないが今回は[VirtIO-GPU]を選択
EFIストレージ:EFIを保存するストレージを選択。通常はVMと同じ場所
SCSIコントローラ:[VirtIO SCSI single]を選択(インストール時にVirtIO ISO必須)
TPM追加:オン
TPMストレージ:TPM情報を保存するストレージを選択。通常はVMと同じ場所
Qemuエージェント:仮想マシン管理用のエージェントを有効化(Windows上で後からインストールが必要)

システム設定をする。インストール先は今回は追加した「sdata(SATAドライブ)」にしている

[ディスク]タブ

ディスクサイズ:とりあえず標準の[32GB]でOKだが必要な容量を指定おく
SSDエミュレーション:オン

VMのサイズ変更はゲスト側での設定も必要なので必要なサイズがわかっているなら最初から設定しておく方が楽

[CPU]タブ

コア:Windowsはシングルコアだと重いので4でフルに使う
種別:ホストとなるN100として認識させるため[host]を選択

CPUは「host」を選択するとホストのモデルがそのまま認識される

[メモリ]タブ

メモリ:標準の4096MBでも動くが8192MB程度にしておくと快適
Ballooningデバイス:オフ(メモリ可変になるが安定性が不安なのでオフ)

Ballooningは個人的に不安定な印象があるのでオフにしておいた

[ネットワーク]タブ

モデル:[Realtek RTL8139]に変更(インストール時にVirtIOドライバーを読めないため一時的に選択)

Realtekを選択しておく。VirtIOはドライバーが必要なので初期セットアップで認識できずに詰んでしまうので注意

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ドライバーを指定する

 同様の理由で、グラフィックやネットワークなど、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アドレスを確認したりすることが可能になる。

ネットデバイスを「VirtIO」に変更
ドライバーとエージェントをインストールしておく

いろいろできる

 以上、ミニPCを使ったProxmox VEによる自宅サーバーを紹介した。今回は、基本的な設定しか紹介していないが、スナップショットを使って設定を戻したり、Dockerなどのオリジナルの設定を済ませたテンプレートを用意しておき、クローンですぐに使えるサーバーを秒で用意したりすることが簡単にできる。

 また、ミニPCを複数台用意してクラスタを構成することもできるし、Cephで分散ストレージを利用することもできる。かなり楽しめるので、ぜひ使ってみることをお勧めする。

清水 理史

製品レビューなど幅広く執筆しているが、実際に大手企業でネットワーク管理者をしていたこともあり、Windowsのネットワーク全般が得意ジャンル。最新刊「できるWindows 11」ほか多数の著書がある。