🌊

Proxmox VE6.3のインストールと、やっておくと良い初期設定

2021/05/03に公開

概要

勉強用に仮想ホスト用物理サーバを1台用意した。
ハイパーバイザーに何を使うか迷った結果、使ったことも知見もないproxmox ve(以下pve)を使ってみようと思ったので、構築手順メモ。
pveは無料ですべての機能が使えて、VMwareのenterprise並の機能があるイメージ。
有料版もあるけどサポートがあるってことで、機能の開放ではない。

ただpveの日本語の技術書って存在してなさそうなのと、技術ブログも多くない。なので色々な機能を使うのは大変かもと思う。

インストール完了までをこの記事にします(記事にしたら結構ボリューム多かったので)。VM作成は別記事にします。

pveってカスタマイズしたかったら、debianをOSにインストールしてからpveをインストールするということも可能らしい(KVMだし)。
今回は物理サーバに直接pveをインストールする方法。

環境

ノード : Dell PowerEdge T140
CPU : CPU 4 x Intel(R) Pentium(R) Gold G5420 CPU @ 3.80GHz (1 ソケット)
メモリ : 16GB
nic : 1000BASE-T ×2
HDD : 1TB ×2

ハードウェアRAIDなし
共有ストレージなし(内蔵ストレージのみで運用)
ノードは1台構成

インストールメディアの作成

1. isoのダウンロード

公式HPからisoをダウンロードしようとすると、どうしても100MBを超えたあたりでネットワークエラーとなりダウンロードが完了しない。

色々探していたら別の公式のダウンロードサイトを発見。こっちからダウンロードしてみたら即ダウンロードが終了した。
proxmox-ve 6.3-1.isoをダウンロードする。

2. ブートメディアの作成

ブートメディアの作成にRufusは推奨ではないらしいんだが、ddモードで書き込めばRufusでもOK。新しくソフトをダウンロードするのは面倒だったので、Rufusでやってみる。だめなら公式推奨のbalenaEtcherを使用するつもりでいた。
CDブートではなくUSBブートでやるので、USBに書き込む。

デバイス : PCに接続したUSBメモリ
ブートの種類 : proxmox-ve_6.3-1.iso
残りは既定値


pveのインストール

サーバを起動してone time bootなりでUSBブートする。
マウス使える。

Install Proxmox VEを選択。

利用規約はI agreeで同意。

Target Harddisk : pveをインストールしたいディスクを選択
オプション
Filesystem : 好きなファイル構成にする (今回はzfs (RAID1))
Disk Setupにサーバに積んでいるディスクが認識していることを確認 (このキャプチャは記事用に取ってるのでディスク容量は本番とは違う)
ハードウェアRAIDを組んでいる場合はzfsは選択しないこと。
なんでzfsにしたかというと、今回買った物理サーバにハードウェアRAIDがなかったため、ソフトウェアRAIDを組む必要があった。厳密にはハードウェアRAIDは組めるんだけど、DellのRAIDコントローラーのS140はハイパーバイザーやマイナーなOSに対しては不具合というか仕様なのかインストールがうまくいかない例もあるよう。
(関係ないけど、RAIDZ-5はディスク2本で組めると誤解していた。zfsいまいちわからん。)

Country : Japan
Time zone : Asia/Tokyo
Keyboard Layout : Japanese

Password : 好きなパスワード
Email : 好きなメールアドレス
メールは障害時にメールを送ってくれる。個人用なら別に架空のメールアドレスでもいいと思う。
後で変更も可能。

Management Interface : 複数nicあるなら管理IPにしたいnic
Hostname (FQDN) : 好きな名前
IP Address (CIDR) : 使いたいIPアドレス
Gateway : 使いたいゲートウェイ
DNS Server : 使いたいDNSサーバ

確認画面。問題なければInstallを選択。

インストール待ち。

インストールが完了するとこんな画面になる。
Rebootを選択し、再起動させる(もしくは自動で再起動される)。
GUI画面へのアクセスURLも記載されている。

再起動後、プロンプトが表示されればインストールは正常に終了。

GUIでpveにアクセス。
https://"IPアドレス":8006
言語 : Japanese (ユーザー名やパスワードを入力する前に言語を変更しておく。言語変えるとユーザー名やパスワード欄がリセットされるため)
ユーザー名 : root
パスワード : 設定したパスワード

サブスクリプションの画面が出るが、無視してOK。

ログインできればOK

pveの初期設定

pveはESXiと違ってデフォルトでSSHができるのでSSHして作業する。コンソールからやってもOK。
pveのパッケージが入っているdebianなので、OS初期設定も含んでいる。

1. ターミナルの日本語化

//今の言語確認
# echo $LANG
en_US.UTF-8

//言語変更
# dpkg-reconfigure locales

en_US.UTF-8 UTF-8をスペースキーを押して解除。

ja_JP.UTF-8 UTF-8をスペースキーを押して選択。

デフォルト言語にja_JP.UTF-8を選択。

Generating locales (this might take a while)...
  ja_JP.UTF-8... done
Generation complete.

//一度ログアウト(ログアウトしないと反映されない)
# exit

//再度ログインして現在の言語確認
# echo $LANG
ja_JP.UTF-8

参考
https://webkaru.net/linux/debian-locales/

2. ipv6の無効化

//設定ファイルの編集
# nano /etc/sysctl.conf

+ net.ipv6.conf.all.disable_ipv6 = 1

ctrl + x

//設定の反映
# sysctl -p

参考
https://qiita.com/osktak/items/339d3fb887a560275934

3. sshの制限

自分は今回やってないので割愛。
本番環境とかならrootのssh禁止や公開鍵認証やローカルユーザー作成などを推奨。

4. エンタープライズレポジトリの参照をやめる

デフォルトだとエンタープライズレポジトリを参照していて、pve関係のアップデートができない。個人的な利用なのでエンタープライズレポジトリの参照をやめる。
必要があれば設定ファイルのコピーを取ること。

//エンタープライズレポジトリの無効化
# nano /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

ctrl + x

//サブスクリプションなしのレポジトリの追加
# nano /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

ctrl + x

参考
https://pve.proxmox.com/wiki/Package_Repositories
https://izuminmin.com/network/proxmox-install/
https://qiita.com/mozo/items/a6b5c689cdb0c8ac5949

5. ログイン時のダイアログ無効化

ログイン時に「有効なサブスクリプションがありません」と表示されるのを無効化する。
やり方は2つあるようで、jsファイルの設定変更とパッチ適用のどちらか。今回はjsファイルの設定変更で対応。

参考サイトと異なっていたが、jsファイルの中身をNo valid subscriptionで検索して、そのセクションのif分の該当箇所を変更。
()の中身をfalseにすればOK。

//エンタープライズレポジトリの無効化
# nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

if (res === null || res === undefined || !res || res.data.status.toLowerCase() !== 'active') {
↓
if (false) {

ctrl + x

jsファイルの保存をした時点で設定は反映されるが、ブラウザにキャッシュが残っているとダイアログは表示されてしまうため、ブラウザでキャッシュクリアして再度ログインを試すこと。もしくは一度もpveに接続していない別ブラウザでログイン確認をする。

参考
https://fefcc.net/archives/1011
https://thr3a.hatenablog.com/entry/20140623/1403450538
(2つ目のURLがパッチ適用のやり方。そっちでやりたい場合はそれでやる。)

6. レプリケーション機能の停止

syslogに毎分ログを出力されて邪魔なので停止する。環境によっては停止しない。

//エンタープライズレポジトリの無効化
# systemctl disable pvesr.timer
Removed /etc/systemd/system/timers.target.wants/pvesr.timer.

ちなみに再開する場合は、systemctl enable pvesr.timerでOK。

参考
https://fefcc.net/archives/1011#syslog

7. KSMの停止

ksmとは複数VMの同一内容のメモリページを共有して、実メモリの消費量を抑える機能のこと。
CPUを多く使用してしまうため、ホストの搭載メモリに余裕があるのであれば無効化してしまう。

//ksmの自動起動の停止
root@pve01:~# systemctl disable ksmtuned
Removed /etc/systemd/system/multi-user.target.wants/ksmtuned.service.

//ksmの停止
root@pve01:~# systemctl stop ksmtuned

参考
https://decomo.info/wiki/blog/2020/2020-12-26

8. パッケージの更新

//更新可能なパッケージの確認
# apt update

//パッケージを更新
# apt upgrade

//openVZのコンテナ・テンプレートのデータベース更新
(必要かはわからないがとりあえず実行した)
かなり時間がかかるので辛抱強く待つこと。
# pveam update
update successful

ちなみにコマンドではなくGUIからもアップデートができる。
データセンター > ノード名 > アップデート
再表示でTASK OKと表示されることを確認。

アップグレードを選択。

別ウィンドウが表示され、アップグレードされる。

参考

公式の管理者ガイド
https://fefcc.net/archives/1007
https://fefcc.net/archives/1011
https://qiita.com/mozo/items/a6b5c689cdb0c8ac5949
https://sys-guard.com/post-15337/
https://engineers.fenrir-inc.com/entry/2018/12/06/110000
https://bitwalk.blogspot.com/2020/05/linux-proxmox-ve.html
https://thr3a.hatenablog.com/entry/20140623/1403450538
https://hr-sano.net/blog/2017/04/16/proxmox_ve_44_01/
https://izuminmin.com/network/proxmox-install/
https://scominc.co.jp/blog/2019/05/proxmox.html

所感

isoをダウンロードするのが一番大変だった。

Discussion