🍣

ミニPCで仮想化基盤

2023/08/27に公開

はじめに

仮想サーバやコンテナを入れて遊ぶためのサーバが欲しくなって物色して安めのミニPCを買いました。
Intel N100プロセッサも安くていいのですが、4 core, 4 threadsで多数のサーバ、コンテナを動かすにはちょっと心もとないかなと思い、12 or 16 threadsのものを探して以下をポチり。

ファンの音が非常に静か。
若干気になるのはAmazonのページにもtrigkey.comにもHDMIが2個と書いてあるし、同梱されているのはHDMIケーブル2本なんですが、実機のインターフェイスはどう見てもHDMI x 1 + DisplayPort x 1であること。今回はサーバ機として使うつもりなので気にしないですが。

実機

メーカの説明

Amazon商品ページ

最終的には同じものか、N-100程度の2万円のものをあと2台くらい買ってクラスタ組んで遊ぼうかと画策中。

バックアップ

まずはディスクのバックアップ。バックアップのために一時的にUbuntuで起動したいので、Ubuntuと、それをUSBメモリに焼くためのRufusをダウンロード。

Ubuntu Server 22.04.3 LTS
ubuntu-22.04.3-live-server-amd64.iso

Rufus
rufus-4.2.exe

起動時にF7キーを押すとブートメディア選択、DELを押すとBIOS。

Ubutu ServerのUSBでブートするとインストーラが起動するので、Alt+右キーでコンソールを切り替えてNASにディスクの内容をそのままバックアップ。ディスクバックアップのブロックサイズ(bs)はどのくらいがいいのかいまだに分からない…

sudo bash
mount -t cifs -o username=xxxxx,password=yyyy //192.168.xx.xx/home /mnt/nas
time dd if=/dev/nvme0n1 bs=8k status=progress | gzip > /mnt/nas/disk-backup-trigkey.raw.gz

Trigkey Seed S5にはWindows 11 Proがついてくるので一応起動してライセンス認証だけ済ませておく。
マイクロソフトアカウントにライセンスが登録されていれば、後でWindows用として使いたくなったときににも簡単に使える?
念のためライセンスキーも控えておく。
regeditを起動して以下の内容をどこかにメモっておく。
\HKEY_LOCAL_MACHINE
→ \SOFTWARE
→ \Microsoft
→ \Windows NT
→ \CurrentVersion
→ \SoftwareProtectionPlatform

ハイパーバイザ

VMware ESXiの無償版だとできることが限られるのと、OpenStackだとコンポーネントが複数要りそうなので、ハイパーバイザはProxmoxというのを試してみることにしました。Rufusを起動してさっきUbuntu Serverを入れたUSBメモリをProxmoxで上書き。

proxmox-ve_8.0-2.iso

インストール

USBメモリで起動。

ライセンス条項。

インストールするディスクの選択。特定のパーティションにインストールするという選択肢はないみたい。
フォーラムでもパーティションを選びたいときはDebian LinuxをまずインストールしてからProxmoxをaptで入れろ、とのこと。
先ほどバックアップは取ったので憂いなくディスク全体に上書きインストールを選択。

一応この画面の状態でCtl+Alt+右キーを押すとデスクトップ切り替えができてxtermは起動できる。
ただ、インストーラにはmount.cifsはないのでProxmoxだけでWindowsファイル共有にバックアップするときはもう一工夫要りそう。aptリポジトリを登録すればいいような気もするけどすでにUbuntuでバックアップ済みなので気にせず先に進む。


追記:ここから
ネットワークが有効になっていないこと、時刻がずれていることが原因だった模様。
ip aでIPアドレスを調べ、取得できていないようならdhclientでNICを指定してIP取得
chronycで時刻同期できているか確認。できていなければ待つ。
apt installでcifs-utilsパッケージをインストールすればCIFSマウント可能。

ip a
dhclient enp2s0
ip a

date
chronyc sources
date

apt update
apt install cifs-utils
mkdir /mnt/nas
apt install pigz
mount -t cifs -o username=xxxxx,password=yyyy //192.168.xx.xx/home /mnt/nas
time dd if=/dev/nvme0n1 bs=1M status=progress | pigz > /mnt/nas/disk-backup-trigkey.raw.gz

gzipはCPUを1コアしか使わないので遅い。debianにはマルチコアを使うpigzがある。
6 core 12 threadでgzipを使うと81分だったのがpigzだと22分でそれなりに効果あり。
追記:ここまで

タイムゾーンとキーボードレイアウトの設定。

rootパスワードとメールアドレスの設定。メールアドレスを入れておくとアラートが来るらしいのだが、この後インストーラではメールサーバの設定が出てこなかった。普通の環境ではインストールした後で何か設定をしないとメールは飛ばないはず。

IPアドレスとデフォルトゲートウェイ、DNSサーバの設定。

写真撮り忘れましたが、この後インストールが進み、完了したら再起動。

UEFI設定

このPCは16 GBのメモリ積んでいるはずですが、OSを起動してみると13 GBしか積んでいないように見えます(WindowsでもProxmonでも)。
これはRyzen 5500UにはGPUが内蔵されていて、そのGPUにメモリに一部を渡しているため。ハイパーバイザとして使うのでグラフィックはいらないかなと思い、BIOS設定変更でGPUに渡すメモリを減らす。
設定が深すぎてなかなか見つからなかった。
略語も多いし。CBS=Custom BIOS Settings? NBIO=? GFX=Grafics? UMA=Unified Memory Architecture

Advanced
→ AMD CBS
→ NBIO Common Options
→ GFX Configuration
→ iGPU Configuration
→ UMA Frame Buffer Size
3Gから64Mに変更

変更前:OSから見るとメモリは13 GB確保されています。

root@pve1:~# free
               total        used        free      shared  buff/cache   available
Mem:        13170344     1686556     9310432       48080     2521860    11483788
Swap:        8388604           0     8388604

変更前:OSから見るとメモリは16 GB確保されています。

root@pve1:~# free
               total        used        free      shared  buff/cache   available
Mem:        16201384     1580192    14596924       41840      348244    14621192
Swap:        8388604           0     8388604

ちなみに64MBにする前に深く考えずにiGPU ConfigurationをiGPU DisabledにしてしまってBIOS含めて一切何もディスプレイに映らなくなって積みましたw
筐体にCLR CMOSという小さいボタンがあるので、電源切って針でこのボタンを長押ししてBIOS設定をクリアして事なきを得ました。

続きはこちら
https://zenn.dev/takai404/articles/7a3320b8e0bf3a

Discussion