こんにちは。ゆーろんです。
先日、学習用/実験用に仮想化基盤ホスト用の物理サーバを用意しました。
仮想化基盤はVMware ESXIかProxmox VEのどちらかをインストールしようと思っていたが、
コチラの記事からわかる通り、VMware製品の販売/配布の終了が決まったこと、Proxmox VEは無料ですべての機能が使える特徴があることからProxmox VEを採用した。
というわけで、今回はProxMox VEをホストマシンにインストールする手順と初期設定を紹介します。
目次
Proxmox VEとは
Proxmox VE(Proxmox Virtual Environment)はLinuxのDebianベースで開発されている仮想化基盤を構築するためのOSS仮想化プラットフォーム。
仮想化の構築はKVMとLXC基づき、仮想マシン(VM)やコンテナを作成、管理、監視するための機能を提供している。
また、WebのUIを備えているため、仮想マシンの作成、スナップショット、復元、クローン、移行などが容易に行える。
Proxmox Virtual Environment
Proxmox VE is an open-source server virtualization management platform.
特徴は以下の通り。
- KVM/LXCによる仮想化
- Webベースの管理インターフェースの提供
- クラスタリングのサポート
- ストレージ機能の提供
コミュニティ版としてノンサブスクリプションでの利用ができるため、自宅でサーバを構築する勢の中で人気が高い仮想化プラットフォームとなっている。
構築環境
HARDOFFで入手したFujitsu PRIMERGY TX1310 M3のパーツ交換を行い使用した。
スペックは以下の通り。
- CPU: Xeon E3-1230v6
- メモリ: 32GB
- GPU: NVIDIA GeForce GT710
- ストレージ: HDD 2TB×1
なおパーツ交換前のスペックはCPUはCeleron G3930(内臓GPU)、メモリ4GBであった。(HDDは未付属)
また予算の関係でHDDを2つ用意しなかったため、RAID0やRAID1は組まないことにした。
そのためハードウェアRAID、ソフトウェアRAIDも未実装となる。
実験/試験機ということでもストレージ冗長化は今回なしということで。(次回はぜひ組みたい)
インストール手順
2024年1月20日時点のProxmox VE(PVE)の最新版は8.1であるがトラブルが発生したため、筆者環境下ではProxmox VE 7.4.1でインストールを行う。
これは今回使用しているハードウェアのNVIDIA GT710とPVEの8.0系に付属しているNVIDIAドライバの相性が悪く、インストール中にハングアップする不具合に遭遇したため。
手順としては以下の通り。
- Proxmox VEのISOを公式よりインストール
- Ethcer等でブートUSBを作成
- PVEをインストールする予定の物理マシンのBIOS/UEFIから「セキュアブートの無効化」、「VT-x/dの有効化」を確認
- ブートUSBを物理マシンに接続後、表示メニュに従いインストールを行う
- 各種初期設定(後述)を行う
手順1~3に関しては解説を割愛しますので、以下4より。
「Install Proxmox VE」の選択
利用規約を読んで「I agree」を選択
「Target Harddisk」でPVE本体をインストールするドライブの選択。
「Options」でファイルシステムやRAIDの設定を選択/設定可能。
筆者はデフォルトのext4を選択し、ソフトウェアRAIDはなしとした。
ここで国とタイムゾーン/キーボードの設定を行う。
パスワード(忘れないでください)と障害検知時の通知送信用メールアドレスの設定をここで行う。
管理用のNICや使用するIPアドレス、ホスト名の選択と設定をする。
確認画面。問題がなければ「Install」を選択。
インストールされるのを待つ。
インストールには5分から10分ほどかかった。
なお再起動するとCUIのプロンプトで管理用WEB GUIのURLが表示される。
推奨する初期設定
した方がいい初期設定は「ロケールの日本語化」「IPv6の無効化」「rootによるSSH制限」、「参照リポジトリの変更」などもろもろ…。
設定は本体のコンソール画面、またはsshで設定する。
筆者はTeraTermで設定を行った。
参照リポジトリの変更
デフォルトではエンタープライズレポジトリを参照している。
そのためPVEのアップデートなどが利用できない。
そのためサブスクリプションなしのレポジトリの追加する。
vi /etc/apt/sources.list.d/pve-enterprise.list
# - deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise
# + #deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise
vi /etc/apt/sources.list
# + # PVE pve-no-subscription repository provided by proxmox.com,
# + # NOT recommended for production use
# + deb http://download.proxmox.com/debian/pve buster pve-no-subscription
ロケールの日本語化
以下手順で設定を行い、一度ログアウトして再ログインを行い確認をする。
# 今の言語確認
echo $LANG
# en_US.UTF-8
# 言語変更
dpkg-reconfigure locales
# 「ja_JP.UTF-8 UTF-8」を選択
IPv6の無効化
この設定は任意。
筆者はviを使用。
# 設定ファイルの編集
vi /etc/sysctl.conf
# :a
#
# + net.ipv6.conf.all.disable_ipv6 = 1
#
# ESC
# :wq
# 設定の反映
sysctl -p
rootでのSSH制限
rootのssh制限前に一般ユーザの作成を行う。
# 【ssh用ユーザの作成】
# ユーザの追加
mkdir /home/[ユーザ名]
useradd [ユーザ名] -d /home/[ユーザ名]
# パスワードの設定
passwd [ユーザ名]
# 【ssh用ユーザにsudo権限付与(任意)】
# root切り替え
su
# wheelグループへユーザの追加
usermod -G wheel [ユーザ名]
# ログアウト後再ログイン
logout
# グループ所属の確認
groups [ユーザー名]
# 【rootユーザログイン禁止】
# sshd_configのバックアップ
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_copy
# sshd_configの変更
sudo sed -i -e \"s/PermitRootLogin yes/PermitRootLogin no/g\" /etc/ssh/sshd_config
# sshの再起動
sudo systemctl restart sshd.service
WEB GUIのサブスクリプションダイアログの無効化
今回はWEB GUIのjsを編集して無効化する。
vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
# 以下個所の括弧内をfalseに
# if (res === null || res === undefined || !res || res.data.status.toLowerCase() !== \'active\') {
# ↓
# if (false) {
まとめ
前述もしたが、Proxmox VEの8系のインストールで詰まったのが大変でした。
厳密にはisoイメージからNVIDIA関連のドライバを削除すればインストールできそうではあった。(initramfsとかでいける?)
7系ではNVIDIA関連のドライバが問題ないという動作報告がネット上にあったのでそのように対処した。
次回はPVE上にマイクラ鯖を立てるなどするかもしれない。
ここまでご覧くださり、ありがとうございました。