今回は普通のGeekな誤家庭にはよくある、仮想ホストサーバ環境をHUNSNのネットワークアプライアンスで構築する。
一昔前ならば、Vmware ESXI無償版で構築/運用していたものの、Broadcom社にVmware社が買収されてからサーバ仮想化業界はおかしくなり、無償版は消滅してしまった。それに伴いHype-VやProxmox VEで仮想化基盤を構築する例がここ2年ほどで増えている。
私は今年10月のWindows 10のサポート終了に伴い、自宅LAN環境にUTMの導入を検討してきた。 その一助のステップの1つとして、まずはProxmoxVE導入済みの小型アプライアンスを用意する。
目次
Proxmox VEとは
当ブログではおなじみの KVM ベースの完全仮想化ゲストOSが構築できる仮想化基盤。
仮想化の構築はKVMとLXCに基づき、仮想マシン(VM)やコンテナを作成、管理、監視するための機能を提供している。 また、WebのUIを備えているため、仮想マシンの作成、スナップショット、復元、クローン、移行などが容易に行える。
コミュニティ版としてノンサブスクリプションでの利用ができるため、自宅でサーバを構築する勢の中で人気が高い仮想化プラットフォームとなっている。
HUNSNのハードウェアについて
AmazonでHUNSNという中国のハードウェアを販売するメーカより入手した。
HUNSNというメーカはミニPC、サーバ/自作カスタムルータ用ハードウェアを販売するメーカである。
Error
CODE: 400 MESSAGE: Unable to retrieve content from the URL.Amazon.jpでHUNSNが直売しているので、そこから購入した。
中国からの輸送のため、到着には1週間程度かかる。
購入したのはHUNSNのRS53という機種である。


項目 | 概要 |
---|---|
型番 | HUNSN RS53 Micro Firewall Appliance |
CPU | Intel N100 4core / 6Mキャッシュ / 3.4GHz / TDP 6W |
メモリ | SO-DIMM DDR4 3200MT/s 16GB (Max 32GB) |
ストレージ | M.2 NVMe SSD 128GB, SATA端子 |
Network I/O | Intel I226-V 2.5GbE ×6 |
外部端子 | シリアル(RJ45), HDMI×1, DisplayPort, USB-A ×2, USB-A-3.0 ×2, USB-C×1 |
電源仕様 | AC 100-240V, DC 12V5A |
HUNSNのMicro Firewall Applianceには大体デフォルトのOSとしてPfsenseのコミュニティ版がインストールされている。
なお、6つポートがあるが、このうち2ポートをProxmoxVEの管理とサービス提供に、残り4ポートをPCIパススルーでSophos XGに割り当てる予定である。
Proxmox VEのインストール
Live USBの準備
Soft EtcherやRufus でインストール USB 作成する。
作成方法は調べると山のように出るので割愛。
BIOS/UEFIの設定確認
以下項目をBIOS/UEFIで確認していく。 大体F1,F2, F11,F12で入れるので起動後のメーカロゴ表示時に連打すれば問題ない。
一旦USBを挿さずに起動し、BIOS 画面を確認
- Main
- System Timeを現在時刻へ修正
- Restore AC Power Loss: Last State
- Advaned
- CPUConfiguration
- Intel VT-x/Intel VMX Virtualization: Enabled
- ACPI Settings
- Enable ACPI Auto Configuration: Enabled
- CPUConfiguration
- Chipset
- VT-d: Enabled
- Security
- Secure Boot: Disabled
- Boot
- FIXED BOOT ORDER Priorities
- Boot Option #1 USB Device
- Boot Option #2 NVME
- FIXED BOOT ORDER Priorities
- Save & Exit
- Save Changes and Reset
ProxmoxVEのインストール
起動までの手順は以下の通り。
- Proxmox VE インストーラを書き込んだ USB メモリを挿す
- Eth5に自宅ネットワークの有線 LAN ケーブルを接続
- HUNSN RS53 を起動
- 画面でインストーラが起動
画面起動後は以下の通り。
- 最初の画面にて Install Proxmox VE (Graphical) を選択
- END USER LICENSSE AGREEMENT (EULA) [AGREE]
- Proxmox Virtual Environment (PVE)
- Target Harddisk に想定している SSD の型番が見えることを確認
- [Options]
- Filesystem で ext4 を選択
- [OK]
- [NEXT]
- Local and Time Zone selection
- Country Japan
- Time zone Asia/Tokyo
- Keyboard layout Japanese
- [NEXT]
- Administration Password and Email Address
- 管理用パスワードと個人メールアドレスを入力
- Management Network Configuration
- Hostname(FQDN): pve0.home ※サーバホスト名を決めておく
- IP Address: 192.168.0.100/24 ※自宅ネットワーク内 IP アドレス
- Gateway: 192.168.0.1 ※自宅ネットワークルータ IP アドレス
- DNS Server: 192.168.0.1 ※自宅ネットワーク DNS アドレス
- [NEXT]
- Summary
- 内容を確認
- Automatically reboot after successfil installation に チェックを入れる
- 再起動のタイミングで USB メモリを抜く
- [Install]
画面が動き始めると1~2分でインストールが完了する。
ファイルシステムの選定に迷った場合
Proxmox VEはext4, xfs, zfs, btrfsのファイルシステムに対応している。
RAIDを組まない場合はext4を推奨、組む場合はzfsかbtrfsを推奨する。
ProxmoxVEの設定
参照リポジトリの変更
初期設定では有償版リポジトリが選択されている。 ただ多くの場合は有償版の契約をせず無償版のリポジトリに切り替える。
Web GUI上でproxmox - アップデート - リポジトリ
を選択し、APTリポジトリの追加ボタンを選択。
選択肢の中から、No-Subscriptionを選択して追加。
リポジトリに追加が完了したら、有償版のリポジトリ2つをDisableにする。
ロケールの日本語化
以下手順で設定を行い、Teraterm等でログインを行い確認をする。
# 今の言語確認
root@pve00# echo $LANG
# en_US.UTF-8
# 言語変更
root@pve00# dpkg-reconfigure locales
# 「ja_JP.UTF-8 UTF-8」を選択
# 変更反映
root@pve00# source /etc/default/locale
IPv6の無効化
# 設定ファイルの編集
root@pve00# vi /etc/sysctl.conf
# :a
#
# + net.ipv6.conf.all.disable_ipv6 = 1
#
# ESC
# :wq
# 設定の反映
root@pve00# sysctl -p
sshアクセスの制限
本番環境ならば以下項目を実施するとよい。
- rootユーザの直接ssh禁止
- 公開鍵認証の追加
- 作業用ローカルユーザの作成
SOHOのLAN上で管理するので、今回は実施しないことにした。
そのため割愛。
WEB GUIのサブスクリプションダイアログの無効化
今回はWEB GUIのjsを編集して無効化する。
root@pve00# vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
# 以下個所の括弧内をfalseに
# if (res === null || res === undefined || !res || res.data.status.toLowerCase() !== \'active\') {
# ↓
# if (false) {
シリアルポートの有効化
HUNSN RS53にはシリアルポートがついている。
何かしらの不具合でWebUIにアクセスできなくなったときに、ここからアクセスできると便利そうだ。
# 1. シリアルポートの確認
root@pve00# dmesg | grep ttyS
[ 0.825676] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
# 2. GRUB設定の変更
root@pve00# vi /etc/default/grub
# 以下行の追加
GRUB_CMDLINE_LINUX_DEFAULT="quiet console=ttyS0,115200n8"
GRUB_TERMINAL="serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
# 3. GRUBのアップデート
root@pve00# update-grub
# 4. シリアルログインを有効化
root@pve00# systemctl enable [email protected]
root@pve00# systemctl start [email protected]