🔖

Proxmoxの運用Tips【自宅鯖】

2024/12/12に公開

この記事はUEC Advent Calendar 2024の11日目の記事です。その2も合わせてどうぞ。

https://adventar.org/calendars/10127

https://adventar.org/calendars/10198

10日目の記事はあづみさんの「Windowsのワザップ」です。弊学はWindows逆張りLinuxユーザーがとても多いですが、もちろんWindowsは使いこなせるってことですよね?やべっと思ったら今すぐこの記事を読みにいきましょう。特に最後の方、私も知らない知見が多くて勉強になりました。

11日目はProxmoxの知見を共有したい記事です。

Proxmoxについて少し

私の周りに自宅サーバーを始める人類がとっても多い。嬉しい限りですがインストールして適当に使っているだけでは勿体無いので、有益な情報を共有できればと思います。一応インストールの仕方も書きましたが、ポイントだけ説明しているのでLinuxとかサーバー初心者向けの記事ではありません。

Proxmoxをとりあえずインストール

ここは読めば進められるところなので要点だけを説明します。

https://www.proxmox.com/en/downloads/proxmox-virtual-environment/iso
から最新のisoをダウンロードしてください。

RufusなどでUSBメモリに書き込んで、そこからブートしたらインストーラーが起動すると思います。

特別な理由がなければ、Install Proxmox VE (Graphical)を選択。あとはインストーラーに従ってネットワークの設定まで進んでください。

ネットワークの設定ですが、注意が必要です。IPの変更はかなり手間がかかります。特にクラスターを組んでいる時のIP変更は修正箇所が多くバグる可能性も高いのでおすすめしません(n敗)。なのでIPを事前に決めておくことをおすすめします。ここでは私の例を紹介します。

デフォルトゲートウェイ: 172.16.0.1
サブネットマスク: 255.240.0.0

IP 接続先
172.17.1.0 pve 01
172.17.1.1 VM 101
172.17.1.2 VM 102
172.17.2.0 pve 02
172.17.2.1 VM 201
172.17.2.2 VM 202

一部ですが、このようにわかりやすいIPを振った方がいいです。ただし、ライブマイグレーションなど頻繁にする場合はこの方法は意味をなさないことには注意してください。DHCPでプライベートDNSなどでやりくりしたほうが良いでしょう。ただしPVE本体はDHCPでは基本的に対応できません。
ネットワークのIP構成の変更は痛い目を見るので、しっかり検討してください。
RFC1918: Address Allocation for Private Internetsを参考に/8~/24で切ればいいと思います。ただしホスト部が大きすぎるとルーターへの負荷が否定できないのでバランスを見てください。

インストールが終了したら画面に表示されているURLへブラウザから入ってください。ユーザーネームはrootです。
言語は日本語じゃなくて英語の方がいいです。理由はここらへんの分野で英語の方が良いとされているのと同じです。

クラスターの構築

クラスターの構築は複数台のVMを立てるときに建てる必要がありますが、1台でも建てれるのでやって損はないと思います。
メリットとしては

  • Centralized, web-based management
  • Multi-master clusters: each node can do all management tasks
  • Use of pmxcfs, a database-driven file system, for storing configuration files, replicated in real-time on all nodes using corosync
  • Easy migration of virtual machines and containers between physical hosts
  • Fast deployment
  • Cluster-wide services like firewall and HA

があるようです。 参照元: Cluster Manager

Server ViewからDatacenterを選択して、Cluter Informationに行ってください。

Create Clusterボタンから、クラスターを作成します。Cluster Nameは何でも構いません。Proxmox Wikiではprod-centralとしている例を見かけたので自分はdev-centralとしています。

こんな感じですね。TASK OKになったら大丈夫です。

左上がDatacenter (指定した名前)になっていると思います。

サーバーが1台の場合はこれで大丈夫です。2台目以降ある場合はここからの手順でクラスターに参加してください。

まずクラスターを作成した方のコンソールからJoin Informationをクリックしてください。Copy Informationをクリックして参加情報をコピーしてください。

2台目以降もProxmoxを同じ手順でインストールした後、Join Clusterボタンから先ほどコピーしたJoin Informationをペーストし、パスワード等必要な情報を入力すれば、完了です。

TASK OKの文字が出なくても大丈夫です。一度リロードした後、画面下のログのJoin Clusterのものを開いたら完了しているのがわかると思います。

ここまでの手順でどのPVEのIPでコンソールに入ってもDatacenterに全てのサーバー機が登録されていたら成功です。

パッケージのアップデート

こんな感じで、ログがUpdate package databaseで真っ赤になっている人、対象です。

Proxmoxにはサブスクリプションプランがあります。デフォルトではEnterprise版が指定されていて、かつプロダクトキーを入力していない状態ということになりますので、このようなエラーが出ています。

無償版に切り替えが可能で、それによってこのエラーを消せるので必ずやってください。やらないとパッケージがアップデートできない気がします。
作業対象は全てのPVEです。複数機ある方は全てにおいて行なってください。

Server Viewから、PVEを選択し、Updates、Repositoriesを開くとこのような画面になると思います。

The enterprise repository is enabled, but there is no active subscription!
"Enterpriseなのに有効なサブスクリプションがないよ!"って怒られていますね。

まず、不要なものを無効化します。簡単です。enterpriseって書いてあるやつを無効化すればいいですね。
https://enterprise.proxmox.com/debian/ceph-quincyhttps://enterprise.proxmox.com/debian/pveです。
選択してDisableを押すだけです。

無効化した分、無償版をこれから追加します。Addから、No-Subscriptionがついてあるものを全て追加してください。
No-Subscription, Ceph Quincy No-Subscription, Ceph Reef No-Subscription, Ceph Squid No-Subscriptionです。Cephを組まない場合は最初の1つだけで良い気もします。

Statusがこんな感じになっていたらOK!内容は、大丈夫そうですね。

Updatesタブから、パッケージの操作ができます。Refreshボタンはapt update、Upgradeボタンはapt upgradeをしてくれます。Upgradeに関しては手動で行わないといけないようなので、定期的に実行が必要です。

以上です。忘れずに全てのPVEで行ってください。同クラスターなのにProxmoxのバージョンが違うとか、とっても怖いので。

Cloudflareからのコンソールアクセス

Cloudflare Tunnelを使用すれば、http(s)はポート解放をせずに外部から利用できるのとても便利です。ここではCloudflare Tunnelのはじめ方は説明しません。1つだけ伝えたいことがあります。
ネットワーク内、もしくはPVE内にVMを立ててcloudflaredをインストールして、準備完了。
Public Hostnameでhttpsのlocalhost:8006またはPVEのIP:8006を設定します。httpsなので間違いないように。

あれ。原因は簡単です。httpsの証明書がないからです。どこにも書いてないのでわかりにくいですね。
ここでオレオレ証明書を作成したり、nginxなどでリバプロ運用でも良いですが、個人利用なら以下の方法で対処すれば良いと思います。

Public Hostnameから、Additional application settings>TLS>No TLS VerifyをONにしてください。証明書の認証を無効にしてくれます。

以上です。登録したドメインでアクセスできるようになります。

Cloudflare Tunnelの運用

全てのVMにcloudflaredを入れるという選択肢もありますが、クラスター内で1つインストールしてprivate ipを入れてやれば良いと思います。

自分はこんな感じです。ポート番号で何してるのかバレて怖いですね

Proxmox on Proxmox

この記事を書くためにProxmox on Proxmoxをしたのでメモしておきます。

普通にVMを立てますが、CPUの設定の時にtypehostにしてやってください。これだけでいけます。

Proxmox on Proxmox on Proxmox on Proxmox on Proxmox on Proxmox on Proxmox on...
はい、やめておきましょう。

Proxmox内で仮想ネットワークを立ててやればさらにProxmoxの検証が捗る気がします。成功したら追記するかもです。

まとめ

自宅鯖仲間が増えることはとっても良いこととされているので、少しでも興味を持ったらとりあえずインストールしてください。時間がないとか言い訳はいいです。一旦インストールしましょう一旦ね。
明日の記事はInさんによる「木に関するアルゴリズムを実装したい。」です。木に関するアルゴリズム、木になります。何かと逃れられないところですからね、楽しみであります。

GitHubで編集を提案

Discussion