はじめに
デスクトップのサブマシンにて VMware Workstation Pro 上で動作する仮想マシン 1 台(6 vCPU, 8GB) に任せ、必要なサーバー機能をひとまとめに運用してきた。
予てよりメンテナンス性がアレだなぁ…… とか WindowsUpdate が来たら丸ごと再起動しなきゃいけないし怠いナァ…… なんて不自由をしていた。
そこで MiniPC を購入して Proxmox VE を導入、機能ごとに仮想マシンを分けて再構築していた。
2026/07/13 に作業を開始し、2026/07/25 に無事完了と相成った。
Proxmox 機となった MiniPC
NiPoGi E3B, Ryzen 5 7430U Version をベースにメモリを 32GB に交換。256GB の NVMe SSD を追加した。
で、Ryzen 5 7430U (6C12T)、メモリ 32GB、ストレージ SATA 512GB + NVMe 256GB といったスペックに仕上がった。
若干ストレージが心許ないなと感じる部分はあるけど、ここんところの半導体不足がどうのといった値上がりが辛いので我慢。
仮想マシン構成
元々 1 台の仮想マシンに詰めこんでいた機能を、今回は 6 つの仮想マシンに分業させる事になった。
完成した構成は次のスクショ通りな感じ。構築していった順番も番号通り。

DNS + NTP
仮想マシン設定 = 1 vCPU, Mem 1GB, Storage 8GB
ネットワークの基本的な部分から先ず手を付けた。
旧ホストから設定ファイルとゾーンファイルをコピーしてきて全てに目を通して必要箇所の設定を変更。
割とすんなり設定だけは終えたが、Windows11 マシンやらその他 DNS を参照しているクライアント側の設定見直しの方が大変だった。
NTP に関しては Chrony なので設定は本当に楽。
全てのホストはこいつと時刻同期する設定としている。
Munin による監視用ホスト
仮想マシン設定 = 2 vCPU, Mem 2GB, Storage 20GB
いつから使い始めたのかすら覚えてないくらい昔から Munin を使っていたので、今回も例に漏れず Munin。
ただ、今回からは監視対象がが複数ホストにわたる。そして監視される側ホストには munin-node のみをインストールしておく必要がある。
それらをとりまとめるのがこの仮想マシンの仕事となる。
他、Prometheus と Grafana もインストールしてあるが、学習コストが高いため一旦停止中としている。
時期を見て勉強しようとおもう。
MariaDB を用いたデータベースサーバー
仮想マシン設定 = 2 vCPU, Mem 8GB, Storage 32GB
いつかはやってみたいと思っていたデータベース専用サーバー。
WordPress や NextCloud から利用されるのだが、データベースサイズ自体がさほど大きくもない為に、ストレージは 32GB でも十分に足りている。
でもメモリは 8GB も割り当てて贅沢に使わせてやる感じ。
TinyTinyRSS という RSS を定期取得してくれるソフトウェアが PostgreSQL のみをサポートする為、それだけの為に MariaDB と PostgreSQL を同居させることになった。
メールサーバー
仮想マシン設定 = 2 vCPU, Mem 4GB, Storage 20GB
今回の再構築で最高に面倒臭かったのがこのメールサーバー。
Postfix + Dovecot をベースにマルチドメイン対応な構成だから、別途データベースサーバーへの接続も行う。
加えて SPF 検証、DKIM、DMARC、ARC にも対応させないといけないのでアレコレ面倒で。
セキュリティ対策としては Amavis を利用しているので、追加で Spamassassin の設定も必要と。
アンチウィルスソフトの ClamAV も導入されるわけだが、これが非常にメモリ喰いだったせいで、当初 2GB のメモリを割り当てていたけど、カツカツになったので 4GB に増設したという経緯もあったり。
あとあれ、Postfix の設定のうち、辞書ファイルの形式に hash が使えなくて lmdb 形式にしないとダメって変更があったから手間取った。そういう仕様変更とか知らなかったので。
特に OS やソフトウェアのバージョン違いによる仕様変更に悩まされた構築作業になってしまった。
Web サーバー
仮想マシン設定 = 4 vCPU, Mem 6GB, Storage 48GB + 300GB
ぶっちろぐを収容している WordPress が動作する部分なのでやる気が出てくる所。
加えてプライベートなクラウド環境として NextCloud も使うから別途データ専用ストレージとして 300GB を別ドライブとしてマウントしている。
ここでは Nginx に PHP, PHP-FPM の導入が主体で、設定は旧ホストからまるっとコピーしつつパスの調整などを行った。
今回からはドキュメントルートに /var/www/html のディストリビューション標準形式を使わないように変更。
/srv/www 以下をドキュメントルートに仕立てて再設定を行っている。
Let’s Encrypt の証明書自動更新もこの Web サーバーでやった方が楽だったので、/etc/letsencrypt を旧ホストから丸っとコピーしてきて certbot の設定を調整しつつ dry run で動作チェックも行っておいた。
証明書は別途メールサーバーでも使用するので、更新成功したら該当ホストに証明書をコピーしつつリモートで Postfix やら Dovecot を reload するスクリプトを置いといた。
ファイルサーバー
仮想マシン設定 = 1 vCPU, Mem 4GB, Storage 20GB + 100GB
単純に Samba を入れて設定し、データ用ストレージとしてマウントした 100GB のドライブを見えるようにしてあげただけ。
簡単。
当初は Mem 2GB としていたが、同サイズの ISO ファイルをコピーしたら Linux のページキャッシュが切れて速度低下を引き起こした為、4GB に増設した。
すると 2.5GbE の帯域を使いきったままコピー仕切ってくれるようになったからまぁ正解だったと。
役割分担は大事
よくもまぁこれだけの機能を 1 ホストでやっていたなーという感想。
機能別に相性なんかも見つつ 6 個の仮想マシンに分けてあげることでメンテナンス性が激しく向上した。
運用上でも再起動を伴う Kernel の更新やらで巻き添えを食らうこともなくなるし、リソースもキッチリ分けられているからリソースの管理もやり易くなった。
なによりサーバー機として独立したことにより、母艦で WindowsUpdate がー とかそういう事が無くなった点は非常に大きい。
おわりに
Proxmox VE に手を出した初の構築作業だったが、これがまた苦労したけど非常に楽しめた。
また新たに知識が得られたし、チャッピーの助けもあって時短も出来たし。
ひとまずは完成と言ったところだけど、運用上の経験が足りない部分もあるから今後もまだまだ勉強かな……


コメント