少し前から気になっていたProxmox VEに今回チャレンジすることにしました。

Proxmoxとは仮想化プラットフォーム環境を構築可能なオープンソースのDebianベースのOSです。
https://www.proxmox.com/en/

仮想環境というと、デスクトップPC環境上にアプリケーションとしてインストールするVMWareや、VirtualBoxをイメージするかと思いますが、それとは異なり、ProxmoxはLinuxのGUI環境をインストールではなく、CUI環境をインストールする形となります。
ただし、インストール後の仮想化環境の操作や管理は他のPCからWEBインターフェース経由でGUIベースで行えます。仮想化環境の管理に特化したプラットフォームサーバと思っていただければと思います。

筆者は業務ではインフラエンジニアとしてこれまでVMwareのESXiやNutanixのAcropolisやPrismなど触ってきた経験があります。Proxmox自体は初めてですが、インストール後は特に問題もなく使えています。

そろそろLinuxを単にデスクトップやノートPCにインストールするのも飽きたと言う方や、Linuxでホームサーバの立ち上げでは満足できなくなってきた方、いずれインフラエンジニアになりたいと考えている方にはこのProxmoxは格好の遊び道具、いや勉強道具となることでしょう。

というわけで、今回はProxmox VEを筆者の手持ちのThinkPadを4台使ってクラスタ環境を構築しました。

Proxmoxのインストール手順についてはベースがDebianのBullseyeであることから、
Proxmoxのインストール作業自体はLinuxのものとそれほど変わりません。
このブログをご覧になられている方であれば、おそらくは説明は不要かと思いますので、
今回はProxmoxのインストール手順については割愛します。
尚、仮想化環境を利用する上でThinkPad側ではBIOSで仮想化(VT-d)を有効にすることが必要です。

それでは今回はインストール後に筆者が遭遇した不明点を解消しましたので、
それらの事項を備忘として記録します。


Proxmoxで一度参加したクラスタから切り離したい

(事象)クラスタ環境を一旦構築したのですが、そのクラスタ環境に登録した後で、最後の1台のIPアドレスを他と連番にするつもりが一つ飛ばしてしまっていることに気がつきました。せっかく参加したけど、IPアドレスを修正したところ、クラスタ環境内で該当サーバだけが不整合が起きてしまいました。

そこで、クラスタ環境から一旦切り離すことにしました。

単に該当の1台だけシャットダウンして、再インストールしても最初に構築した3台には情報が残っていましたので、残ってしまった情報を消す作業となります。

シェルで以下コマンドを発行します。

# pvecm delnode [対象ノード名]

該当のノード情報が消えたかどうか、以下のコマンドで確認します。

# pvecm status

しかし、この「delnode」コマンドで操作して、statusでは表示されなくとも、ブラウザ上の左のツリー表示からは消えません。

ブラウザ上のツリー表示を消すには以下の操作を実施します。
まずは以下のディレクトリに移動します。

# cd /etc/pve/nodes

ここでクラスタから除外したいノードのフォルダを削除します。
するとツリー表示から見えなくなりました。

# rm -Rf /etc/pve/nodes/[対象ノード名]

尚、クラスタから切り離さすにIPアドレスを変更すれば良いのでは?と思い、試行錯誤してみたのですが、構築したばかりだったので、再インストールした早そうということで切り離しての再インストール、クラスタに再参加という対応としました。

変更にあたって現時点で修正が必要だとわかっている箇所
・1)サーバのIPアドレスの変更(/etc/network/interfaces、/etc/hosts)
・2)サーバの自己証明書の記載修正
・3)/etc/pve/nodesの証明書の削除

上記のうち、3)が削除できず、シングルユーザモードで起動すると、今度はそもそも/etc/pveのフォルダ以下が何も表示されない、(マウントされない)という事態となりました。おそらくセキュリティの都合。調査に時間を掛けるより再インストールが早いと考えました。


Proxmoxのサーバの自己証明書の更新方法について

サーバの管理画面へのアクセスはSSL接続となり、管理画面のURLは「https://x.x.x.x:8006」 となります。
この証明書が自己証明書となっており、有効期間が2年のためクラスタ環境を長期に使う場合は、
証明書の更新作業が必要になります。

今回、調査の過程でこの方法も判明したので以下の通り、ご紹介します。

# pvecm updatecerts --force

これで2年以上使う場合は安心ですね。


Proxmox上のディスクの名称変更について

内蔵ドライブでは容量不足ですので、外部ディスクを追加しました。
その際に、最初につけたLVMの名称が気に食わなくなり(ネーミングセンス)、後から名称を変更しました。
すると新LVMの名称のほかに旧LVMの名称までディスクのツリー情報に残ってしまいました。
このディスクの旧名称情報の削除方法について紹介します。

ディスクの情報は以下ファイルに記載されています。

root@prxmx3:~# cat /etc/pve/storage.cfg 
dir: local
        path /var/lib/vz
        content iso,backup,vztmpl

lvmthin: local-lvm
        thinpool data
        vgname pve
        content images,rootdir

lvm: dogfish
        vgname dogfish
        content images,rootdir
        nodes prxmx3
        shared 0

lvm: local-lvm2
        vgname local-lvm2
        content rootdir,images
        nodes prxmx3
        shared 0

上記ファイルをvi 等で開き、旧名称を削除することでブラウザのディスクツリー表示から旧名称の表示が消えることを確認しました。


Proxmox VE のカーネル更新手順について

筆者はProxmox VEの7.2のisoイメージを少し前にダウンロードしておいたのですが、
今回のインストール作業後に、最新版のProxmox VE 7.3がリリースされていることを知りました。

apt updateでパッケージ更新まではできましたが、最新のカーネル5.19だけはアップデートされず。
調査の結果、以下コマンドでカーネルをアップデートすることができましたのでご紹介します。

# apt install pve-kernel-5.19

上記後に再起動することで反映されます。


Proxmoxのサブスクリプションなしのリポジトリの追加方法について

インストール後にデフォルト状態だとエンタープライズのサブスクリプションが有効でないため
リポジトリにアクセスできず、Proxmoxの各種パッケージのアップデートができません。
流石にエンタープライズ版にしてまで使うつもりもないので、サブスクリプションなしでも
アップデート可能なようにリポジトリを変更します。
/etc/apt/source.listあたりをviで編集してもよいですが、
この変更操作をブラウザ上で実施できましたのでご紹介します。


まとめ

Proxmox VEを使い始めて、ThinkPad 4台構成でクラスター環境上に7台のサーバを構築しました。
数日使ってみて仮想環境の構築作業を行うなかでいくつか出てきた不明点が解消されたので、
今回はその解決方法についてご紹介しました。

さらにはMariadbを3台でクラスター環境も構築できましたので、そのあたりも次回紹介します。
また先日紹介しているHaproxyもProxmoxクラスタ上で構築しております。
今後はこのBlogの稼働するWEBサーバも移管していきたいと思います。
何かの参考になれば幸いです。