アラフィフおじさんのホームサーバ・Linux関係奮闘記

  • OPNsenseからpfSenseに移行

    OPNsenseを導入して、さらにCasaOSにサーバを集約して機器もケーブルもスッキリして、はーやれやれ、と思っていたのもつかの間、突然ある日の朝に、ネットが繋がらなくなりました。メインPCもスマホもです。LAN内のサーバにはつながり、OPNsenseを飛ばして、大元の光回線ルータに直接wifiで繋ぐと、インターネットにアクセスできたので、どう考えてもOPNsenseに問題があります。

    ということで、出勤するまでの数十分間かけて色々やっても駄目、仕事を終えて帰宅してからバックアップデータから復旧しても駄目、ついにはファクトリーリセットをしても駄目、ということで絶望に打ちひしがれていました。

    また完全にゼロからOPNsenseを入れ直せば、多分動作するんだろうけれど、また同じ設定をやったらまた同じように駄目になりそうですし、そもそもまたOPNsenseを入れるのも芸がないので、OPNsenseの派生と言うか正確には派生元から分離したpfSenseの方をインストールしてみます。

    なんかよく知らないですが、netgateという会社のホームページからダウンロードできるようですが、メールアドレスやら住所やらを登録しないといけないようです。色々調べていたらRedditに旧バージョンのftpのURLを貼っている神がいましたけれど、そもそも何か送られてくるわけではないので、メールアドレス以外は嘘を書いておけばいいだけです。メールアドレスもFirefox Relayのマスク機能を使えば、何の個人情報も先方には渡りません。

    さて、なんやかんやで手に入れたisoファイルを、いつものごとくUSBメモリ内のVentoyのフォルダにコピーして、いざインストール。途中の画面は似ていますし、インストール完了直後のコンソール画面での設定はほぼ同じですね。

    GUI画面はまるっきり異なりますが、実際に設定できる内容はやっぱり似ています。インストール直後のデフォルトのIDとパスワードが[admin]と[pfsense]で、[root][opnsense]だったOPNsenseとは違ったのでちょっと焦りましたけれど。

    さて、またAIにも聞きつつ、自分の環境に合わせた設定をしていきます。今回は逐一、バックアップを段階ごとに保存していきます。しかし、[Diagnostics]→[Backup & Restore]→[Config History]に、設定変更ごとに巻き戻したり設定を保存したりする機能があることを知りました。逐一バックアップ取らんでもええんかいな。まあ、動かなくなったりログインできなくなったら終わりなので、やっぱりバックアップデータの別PCへの保存は必要ですね。

    ともかく、設定をすればちゃんと動きました。LANとOPT1の分離も出来ましたし、Tailscaleプラグインを入れてモバイル回線からもアクセスできました。

    これでなんとかなりそう。これでもなんか知らん間に駄目になったら、OpenWRTを試してみようか。

  • Proxmoxから大半のサーバをCasaOSに移転(というか作り直し)

    先日の投稿では、OPNsenseをルータ兼FWとして導入したと書きましたが、今度はその内側のネットワークとサーバの話です。

    これまでProxmoxを入れたPCを複数台運用して、
    WordPress
    NginxProxyManager
    NextCloud
    Jellyfin
    FreshRSS
    AdguardHome
    などなどのサーバを運用してきまして、クラスタ化やバックアップなど様々なLinuxサーバの勉強とおためしをしてきましたが、勉強のためではなく、自分個人で利用者として使うことになると、各PCでの動作確認や電源・LANケーブルの煩雑さが鬱陶しくなってきました。

    そして、ふと思ったのが、「そもそもPC1台にまとめたら良いんじゃね」ということでした。

    現在のProxmox内でのサーバ運用でも、オーバーヘッドを加味しても十分に余裕がある状態であり、また、一人だけしか使わないのですから同時に複数のサーバを酷使することはありません(例えば、NextCloudで写真同期しながら、Jellyfinで動画を再生しつつ、OMVで大量のファイルコピーをこなったりすることはないです)。

    ということで、現状のProxmoxの各VMやLXCを整理して、1台のPCに集約することにしました。利用するのはCasaOSです。

    Zimaboardに最初にインストールされていたのを少しだけ触っただけでしたが、これを気にガッツリ触れてみましたが、個人利用での複数サーバ運用ならこれが最適解のような気がします。もっと細かく設定したいなら、Dockerで直接全てのパラメータを自分で決めれば良いでしょう。

    さて、使うPCは、現在自宅にあってサーバ運用しているPCの中では最も高性能な、Ryzen5 3550Hを積んだものです。


    https://www.amazon.co.jp/dp/B0DBLGVNXQ


    以前にもこのブログやnoteでも紹介しましたが、今になって型番が「AN2」であることを知りました。というかPCウラ面にも書いていました。

    このPCはメモリ16GB×2での運用も可能で、以前には32GB×2の合計64GBでも動作しました。今回は合計32GBで使います。

    Proxmoxに入れるVMやLXCではいつもUbuntu Server24.04を使ってきましたが、今回はついこないだメジャーバージョンアップがあったDebian13を使ってみることにします。

    isoファイルをVentoyの入ったUSBメモリにコピーしてさっさとインストールします。毎度のことながらVentoyの有能さには感心します。考えた人天才か。

    Debian13自体はGUIでは使わないので最小構成プラスSSHだけでインストール完了させて、続けてCasaOSです。こちらもcurlコマンド一発ですのでありがたいです。

    CasaOSのインストールが完了したら、メインPCのブラウザでDebian13及びCasaOSのプライベートIPアドレスを叩いて表示させます。CasaOSのデフォルトポート番号[80]は運用するサービスによっては競合するので、さっさと変更しましょう。私は[9091]にしましたが、競合しなければ、かつ自分が忘れないようなものなら何でも良いです。八千番台は結構使われがちです。

    お次はApp Storeから使いたいものをどんどんインストールしていき、競合するポートとか、ネットワークとか、ボリュームとかはエラーが出るたびに生成AIに質問して解決していきました。大して知識がなくても、諦めない根性と、データを失っても良い覚悟と、解決にかける時間があればなんとかなるものです。

    ちなみに、ここでOPNsense&NEC PC+LANカードという組み合わせをした一番の理由である、Wordpressサーバの分離を行いました。

    OPNsenseのLANアドレスには、メインPCやCasaOSをつなぎ、OPT1の方にはProxmoxに入れたWordpressとNginxProxyManagerをつなぎました。NginxProxyManagerはOPNsense→AdguardHomeを経由してドメイン解決していて、さらにLet’s EncryptによるSSL認証にも利用しているので、今すぐは無くせないですね。

    取り急ぎ、サーバ・ネットワークの簡素化と分離を行うことが出来ました。

    しかし、このRyzen5搭載のPC「AN2」の問題点は、CPUを低速で動かしていても、発熱→ファン高速回転→温度低下→ファン低速回転→発熱→ファン高速回転→温度低下・・・というループとなってファン音が気になってしゃーないことです。

    ということで、せっかく入れたCasaOSのセットアップをやり直します。低電力で有名なIntel N100を搭載した、UN100Pの方を使うことにしました。メモリはAN2から持ってきた16GBを使います。AN2のCasaOSでは32GBでも十分に余りまくっていましたから、16GBでも多いくらいです。

    Debian13とCasaOSのインストールが短時間で終わることが救いですね。もう一度同じことをやり直して完了。ちなみに、Proxmoxで全て運用していた時にNASとして使っていたOpenMediaVaultは、今回は使用せずにCasaOSそのもののファイル共有機能を使います。個人利用ならこれで十分でした。

    さて、ここまで上手くいって、よしよし・・・と思っていたところ、まさかの状態に陥りましたが、次の記事に続きます。

  • OPNsenseのインストールから設定完了

    先日、NECのジャンク品スリムPCにLANカードを追加したところまで書きましたが、ここからはOPNsenseをインストールしていきます。ちなみに私は生成AIに聞きながらインストール・設定をしていきましたが、参考に出来るサイトとしては、
    さくらのVPSマニュアル
    https://manual.sakura.ad.jp/vps/os-reinstall/iso-install/opnsense.html
    こちらがわかりやすいかも知れません。ただし、これはクラウドサーバでの設定ですので、ローカル環境の実機では設定が一部異なります。

    OPNsenseのサイト
    https://opnsense.org/download/
    からイメージをダウンロードします。私はUSBメモリに入れたVentoyのフォルダに入れるので、「Select the image type」はDVDを選び、isoファイルを落としました。それぞれの違いはここに書いてありました。
    https://docs.opnsense.org/manual/install.html#installation-images

    Ventoy入のUSBメモリをPCに挿して起動してインストール開始。まずはCUI画面での設定です。WAN interfaceは光回線ルータにつながっている方を選び、LAN interfaceは、従来の内部ネットワーク(メインPCやProxmoxホストなど)につなぎます。

    インストール時にいきなりログインIDとパスワードを求められますが、ここは
    ID installer
    Password opnsense
    と入れればOKです。知らないと焦りますな。もちろん、ドキュメントには書いてあるのですけれど。
    https://docs.opnsense.org/manual/install.html#opnsense-installer

    この後は、大抵のLinuxディストリビューションと同様に、言語、キーマップ、ストレージやパーティションなどを決めて、インストール開始。途中でrootユーザーの設定を行います。

    完了したら再起動しますが、OPNsenseはデフォルトでいきなり、インストールしたPCのプライベートIPアドレスが「192.168.1.1」に設定されてしまいますので注意が必要ですね。

    さて、ここからが最後のCUIでの設定です。0から13までの選択肢が出る中で、まずは2を選び、インターフェイスの設定を行っていきます。ちなみに、1を選ぶと、インストール前のWAN/LANの設定をやり直せます。

    この辺もまあ、Proxmoxとかのインストール時の知識があれば大丈夫ですね。IPv6関係は無視します。設定が完了したらリブートして、またこの画面に戻ってきたら、次はGUIでの設定です。このCUIの画面は実機上で表示されたままですので、もし万が一rootパスワードを忘れた場合はここの「3」からリセットできます。

    次は、GUIでのセットアップです。

    インストール時に設定したLANのゲートウェイアドレスに、
    :8443
    をつけてブラウザで開けば入れます。

    最初にウィザードが出てきますが、これを飛ばしても個別で設定できますし、ウィザードのやり直しも出来ます。

    自分の環境に合わせて設定していきます。キャプチャとか取っていなかったので、最初にどのように設定したかをもはや全く覚えていませんが、この時点ではWordpressサーバの分離は行わず、全てのデバイスをLAN(192.168.100.0/24)の方につなげましたので、まだそこまでややこしくは無かったはずです。それでも難しかったですが。

    システム→設定→全般
    インターフェース→割当/LAN/WAN
    ファイアウォール→NAT→ポートフォワード/外向き
    ファイアウォール→ルール→LAN/WAN
    サービス→ISC DHCPv4→LAN

    なんかを設定したと思います。その後にも色々といじっていますが、それについてはまた後日書きます。

    とりあえず、これでOPNsenseを用いたファイアウォール・ゲートウエイを設定できました。Core i5 8500Tにメモリ16GB、SSD128GBという過剰スペックですけれど、少なくともハードウェア的制約で困ることはないでしょう。

  • NECのジャンク品のスリムPCにLANカードを追加してOPNsenseをインストールした

    前回の記事で、NEC製のスリムPCをジャンク品として購入した話を書きましたが、使いみちとして、LANカードを挿してLANポートを増やして自宅ネットワークを拡張しようと思います。

    具体的には、現在、Proxmoxのホスト内にあるLXCコンテナで運用しているWordpressサーバ(このブログ)を、他のサーバ群と別のネットワークに分離します。他所からアクセスされるサーバは、他のサーバとは分けるべきですね。そもそも、クラウド上で運用すればいい話ですが、それは置いといて。

    さて、そこで必要になるのが、LANポートが2つ以上あるLANカードと、そのカードをスリムPCに挿すためのライザーカードです。どちらもAliExpressで買おうかと思いましたが、Amazonでも対して値段が変わりません。多少の値段差は、送料プラス安心で埋まります。昨今のAmazonは配送トラブル・中身のすり替えなどが問題になっていますけれど、まあこのカード類程度の金額であればダメージは少ないですし、こういうライザーカードなんて売っているネットショップは非常に限られます。

    ちなみに、購入したものは以下の2点です。

    https://www.amazon.co.jp/dp/B0DQQ94D1D


    https://www.amazon.co.jp/dp/B085WPC19Q

    ライザーカードはLenovo m720qでも使えるもので、同構成のNECのこれでも動くはずと思って買いました。
    LANカードはIntelチップでギガビットポートを2つ積んでいれば良いので、これにしました。シビアなスピード要求があるわけではないですし。

    さて、PC本体を開けて、2.5インチSSD用アダプタを外し、ライザーカードを挿す・・・前に、LANカードをライザーカードに挿す必要があります。不可能ではないですが、先にライザーカードを挿すとめんどくさいです。

    出来上がりはこんな感じ。

    PC本体の背面はこちら。若干傾いていますが、固定できないのでしょうがないですね。重いGPUカードならメインボードに干渉するかも知れませんが、LANカード程度なら大した自重はありません。

    次は、OPNsenseのインストールのお話です。

  • 今度はジャンクのスリムPCを購入した話

    購入したのは少し前でしたが、大阪は日本橋にてブラブラしている時にジャンク品のミニPCを購入してしまいました。

    買ったのはショップインバース日本橋一号店さんで、モノはこちらのNEC製のスリムデスクトップパソコン MKM21/C です。


    https://support.nec-lavie.jp/navigate/support/productsearch/old_number/MKM21C4/spec.html


    CPUはCore i5 8500Tです。今流行りのN100(4コア4スレッド)と比べてシングルスレッドでは若干劣りますが、6コア6スレッドのためマルチスレッドでは圧倒します。
    メモリは8GBが1枚刺さっていました。2スロットあるのでもう一枚刺して16GBにしてみます。最大16GBまでだそうですが、多分64GBまでいけるんじゃないですかね。試してないですが。
    HDD・SSDは無し。M.2を1つ、SATAを1つ使えるので結構便利。まずは手持ちの128GBのNVMe接続SSDと、240GBのSATA接続SSDを使います。

    ACアダプタも付いていないものでしたが、じゃんぱら大阪本店にてNECのACアダプタのジャンク品があったことを覚えていたので、あれで良いだろうと思ってこの本体を購入しました。値段は10,000円ポッキリ。ACアダプタは480円でした。

    出力ワット数をチェックしていなかったのですが、じゃんぱらで買ったアダプタは定格45Wで、本体は最大65Wを消費する仕様でした。不安になりながらも起動したら何事もなく動作しましたけれどね。

    基盤の背面にM.2スロットが1つあります。チップがある側には2.5インチHDD/SSDドライブ用のアダプタも付属していました。ジャンク品だとこういうのは無くてもおかしくないですが、ラッキーです。

    さて、購入したは良いものの、特に使いみちが無い状態です。まあジャンク購入あるあるですね。

    このNEC製のスリムPCは、珍しいタイプで内部にPCIeスロットがあるタイプです。ブログやYouTubeではライザーカード経由でGPUカードを刺して、ゲーミングPC化しているネタがいくつもアップされています。同系統のLenovoのスリムPCの方が世界的には有名です。ただ、さすがに筐体の構造的に発熱・騒音が厳しいと思われるので、それは諦めます。人によっては筐体を3Dプリンタで作り直したり、ドリルで穴を開けたり、あるいは完全に筐体を開けたまま使っていたりしていて、そこまでやる気にはなれません。

    ひとまず、Proxmoxを入れてWindows11と、WindowsServerの試用版をそれぞれVMにインストールして、ActiveDirectoryの触りだけ試してみました。CPUやメモリが十分あるので、何の問題もなく使えます。ジャンク品とは言っても、ただ単にストレージとACアダプタが欠品しているだけのものですので、お得でしたね。

    さて、せっかくあるPCIeスロットを使わないのももったいない。ということで、LANカードを購入してルータ代わりにとりあえず使ってみることにします。続きは次のエントリで。

  • GooglePhotoからNextCloudへの完全移行で少し焦った話

    先日書いた記事で、WindowsからLinuxに移行したと書きました。また、既に自宅のネットワーク内には、ミニPCやシンクライアントをホームサーバ化して、NextCloudやNASを設置しており、Googleなどの巨大IT企業によるクラウドサービスからも少しずつ離脱しつつあります。

    そんな中で、ブログやnoteの記事のネタや下書き、書いた文章の保管に使っていたGoogle Keepは、NextCloudのノート機能に移行できました。

    GoogleTakeOutのサービスから、Google Keepの中身をダウンロードして、NextCloudのドライブに放り込んで無事に取り込めました。

    ただ、このときに元ネタのKeepの1つ1つのメモファイルの更新日時が、GoogleTakeoutでの出力日時になってしまっていて、NextCloudのノート上では全部同じ日時になってしまい、時系列がわからなくなってしまいました。Keepでのラベルをノートのカテゴリに設定できたので、まるっきりメチャクチャになったわけではないですが、一覧性が落ちてしまったことは残念です。

    そして、Google PhotoからNextCloudに移行するに当たっては、同じ轍を踏まないようにします。GoogleTakeoutからダウンロードした写真・動画はやはりEXIFの更新日時が出力日時に設定されてしまっています。

    ということで、ダウンロード時に同じ名前で同梱されていたJSONファイルを利用して、写真・動画の更新日時を修正するスクリプトをChatGPTに書いてもらい、それを使って一気に変換しました。

    ファイル数や保存先ドライブの読み書き速度にもよりますが、私の場合はGooglePhoto上で13GBほどだったのが、GoogleTakeoutで出してみると60GBあり、それを解凍してから上記のスクリプトで変換するのに1時間位かかりました。ほったらかしにしていたらいつの間にか終わっていたので、実際は数十分だったかもしれません。

    さて、晴れてこのファイルたちをNextCloudに突っ込めば終わりだー!と思っていたのも束の間、突っ込んだら途中で止まってしまい、調べてみると、NextCloudの外部ストレージとしてNASに設定していたフォルダを利用せずに、Proxmoxのノードとして作ったNextCloud本体のストレージにコピーしてしまっていました。

    当然ながらProxmoxのVMとして60GB超の余裕なんか設けておらず、完全に隙間がなくなってしまいました。

    アップロードしたファイルを消したら終わりかと思っていたところ、消しても何故か空き容量が増えず、ずっとルートディスクが満杯のままです。MariaDBもなんかおかしくなり、ChatGPTにエラーメッセージを見せて解決策を指示されるがままに実行しても解決できず。

    こんなんどうすんねーん!と悩んでいましたが、ふと思い出しました。Proxmox Backup Serverには、NextCloudのノードのバックアップがあることを。そこから、キレイなNextCloudのノードをリストアすればいいだけです。

    今のグチャグチャになったノードを停止して削除してから、PBSのバックアップから復旧させると、当然ですが大量コピーでおかしくなる前のNextCloudが復活しました。

    そして、改めて外部ストレージとして設定しているフォルダに、GooglePhotoの60GBの写真・動画をコピーして終わりです。特に何も問題は起きません。ProxmoxのノードにOpenMediaVaultを使って設定しているNASの保存用ストレージはUSB接続の2.5インチHDD(5台をMergerDS+SnapRaidで使用)ですので、速度的には速くないですが、保存が目的で閲覧はそんなにしないのでこれでも十分です。そのうちImmichに乗り換えるかもしれませんが。

    かくして、GooglePhotoからNextCloudへの乗り換えも完了しました。次はGoogleカレンダーですかね。

  • 30年使ってきたWindowsからの離脱

    ついに、メインPCをWindows11からMX Linuxに移行しました。

    作業的にはVentoyを書き込んだUSBメモリに入れたMX LinuxのISOイメージからブートして、そのままインストールしただけです。使用しているPC(HA17)はCore i5 12600HにGTX1060のチップが乗っている変態仕様ですが、問題なく動作しています。

    さて、私個人のMicrosoft Windowsとの付き合いとしては、
    Windows95を皮切りに、
    WindowsNT4.0
    Windows98
    Windows98SE
    WindowsXP
    Windows7
    Windows8
    Windows10
    Windows11
    と続いてきました。上記の期間中で、職場で使用するPCでもWindowsVISTAが入っていたことがあるので、Windows2000とWindowsME以外は、どれも数年以上使っていた経験があるものです。

    一時期、Macをメインで使っていたこともありますが、常にParallelsでWindowsを仮想化して常駐させていましたから、この30年もの間、MS Windowsと完全に別れたことはありませんでした。

    しかしながら、ここ1,2年のMicrosoftのWindowsに対する施策については、不満と不安をユーザーにもたらし続けるものだったと思います。

    24H2に代表される大型アップデートだけではなく、月例のWindows Updateですら、再起動後に自分のPCが
    ・起動しないのではないか
    ・勝手にBitLocker暗号化されていないか
    ・デバイスが使えなくなっていないか
    といった心配をしないといけなくなりました。

    そして、最たる不安要素は、Microsoftが導入を予定しているRecall機能です。導入前の現時点でも悪名高き機能となってしまった、このRecall機能は、数秒ごとに画面のスクリーンショットをバックグラウンドで撮影し、保存しておくことで、システム等に不具合が生じたときの復旧をサポートするものだとされています。

    しかし、各種サービスのパスワードや機密情報を表示している画面も勝手にOSが撮影するわけです。Recall機能はデフォルトではオフになっていて、ユーザーが自身で有効化しない限りは起動しないとなっていても、またキャプチャ画像は暗号化されたローカル環境に保存されるとされていても、不安は消えません。セキュリティ上、大きなリスクになるのは目に見えています。

    もし、うっかり何らかの不具合によってRecall機能が勝手に有効になっていたり、保存された画像が簡単に見えるようになっていたりしたら、もうWindowsにセキュリティの概念はないことになります。

    そんなことになれば大問題になり、全世界的な集団訴訟でMicrosoft社が存亡の危機に陥るでしょうから、その辺りは厳重に管理するものだと思いますが、それでも、今後のWindows利用をためらわせるには十分なリスクです。

    ということで、ついに自宅のPCからWindowsを消し去り、Linuxに本格的に移行することにしました。

    かつて何度かLinuxへの移行を試したことはありましたが、メインPCとして使うには、
    (1) 日本語入力システムがATOKと比べて貧弱
    (2) Windowsでしか動かないソフトウェアがある
    (3) 各種デバイスや周辺機器がLinuxで使えない
    (4) 親の年賀状印刷のためにWindowsが必要
    といった問題を解決する必要がありました。

    (1)の日本語入力についてはMozc+fcitxにより、かなりマシにはなりました。それでも最新のATOKに比べると大きな差はありますが、昔のATOK並みにはなっていると思います。

    (2)については、2020年代のIT環境では、クラウドファーストというか、ウェブ経由、ブラウザ経由のサービスやソフトウェアが当たり前になり、とりあえずウェブブラウザが動けば使えるものが多くなったことでほぼ解決しました。代替ソフトウェアがなく、Windows(もしくはMac)のみでしか使えないものはごくわずかです。

    (3)の方がまだ問題としては現実的かもしれませんが、こちらも最新のハードウェアでない限りは使えるでしょう。ネットワーク系はLinux前提というものもありますし。私の環境では、以前のWindowsで使えて、MX Linuxで使えないハードウェアは今のところ見つかっていません。

    (4)についてはWindowsでもMacでも、年賀状印刷ソフトを使ってきたのですが、VirtualBoxに入れたWindowsで年1回だけ起動して印刷できれば問題ありません。

    こういった変化に加え、生成AIに質問すれば素人でもLinuxを扱いやすくなりました。IT業界の発展・進歩・変化によって、私のようなLinux初心者でも、LinuxをメインPCのOSとして使うことに抵抗はなくなりました。

    職場ではさすがにまだまだWindowsを使い続けることになるでしょうけれど、自宅ではWindowsを見なくなることになります。むしろ、個人的な興味でVirtualBoxにWindows Serverを入れてみたい気持ちもありますが、どちらにせよ、クライアントOSとしてWindowsを日常使用することはなくなります。

    世の中の全ての人がWindowsから離脱してLinuxに移行すべき! といった過激な主張をするつもりはありません。LinuxをメインOSにすることには、それなりの困難とリスクを伴います。しかし、惰性でWindowsを使い続けることにも相応のリスクが発生することを心得ていた方ががいいでしょう。

    (以上の文章はnoteの方にも載せましたが、個人ブログにも載せておくことにしました)

  • Proxmoxをアップグレードしてみた

    Debian 13が正式に公開されましたが、DebianベースのProxmoxは一足先に新バージョンである9.0が公開されていました。そんなんいいんですかね。

    自宅のネットワークでは、ProxmoxのクラスターをミニPC3台で構築していますので、アップグレードする対象も3つになります。元のバージョンは8.4.9で、すでにapt update済です。

    アップグレードのレポートは、Linuxやサーバに詳しい諸兄が、すでにQiitaやZennやnoteで書かれていますので、それらも参考にしましたが、ちょくちょくややこしいこともあるみたいですので、具体的な方法は、Google AI StudioにてGemini 2.5 Proさんにお聞きしました。

    人それぞれ異なる環境によって、アップグレード前の準備と実際の手順は多少異なるはずですが、概ね
    ・バージョン8.4.*までアップデートする
    ・VMやLXC及びホストのバックアップを取る
    ・VMとLXCをシャットダウンもしくはマイグレーションで移動する
    ・pbs8to9 –full で事前にチェックして、エラーと警告の項目に対応する
    ・APTリポジトリをtrixieに変更する
    ・apt dist-upgrade でアップグレードする
    ・再起動する
    ・アップグレード後にVMとLXCを復帰させる
    といった流れです。CephやHAについては使っていないので分かりません。使っている人ならご自身で調べてなんとかするでしょうけれど。

    多分、面倒なのは事前チェックで出てきたエラー・警告への対応でしょう。私の場合は、3つのホストで以下のような表示が出てきました(1つのホストでしか出ていないものと、重複しているものがあります)。

    WARN: systemd-boot meta-package installed but the system does not seem to use it for booting. … Consider removing ‘systemd-boot’
    WARN: The matching CPU microcode package ‘intel-microcode’ could not be found! … apt install intel-microcode
    WARN: dkms modules found, this might cause issues during upgrade.
    WARN: Deprecated config ‘/etc/sysctl.conf’ contains settings – move them to a dedicated file in ‘/etc/sysctl.d/’.
    WARN: The matching CPU microcode package ‘amd64-microcode’ could not be found! … apt install amd64-microcode

    どれくらい個人差があるか分かりませんが、intelやAMDのmicrocodeの問題ってここで初めて対応することになるのが、「なんでやねん」という感じもしますけれど。

    なんやかんやエラーとかありましたけれど、その都度Geminiに聞きながらなんとかホスト3つともアップグレードに成功し、9.0.3になりました。

    Proxmoxだけ利用しているのであればここで終了なのですが、私の場合は別PCでProxmox Backup Serverも動かしていますので、こちらもアップグレードしないといけません。PVEを9にアップしたら、PBSも4にしないと不具合が起きるらしいです。

    ということで、PBSのアップグレード方法をGeminiに聞きつつ実行していきます。ちなみにPBSでの事前チェックコマンドは
    pbs3to4 –full
    です。

    こちらもほとんどやることはPVEのときと変わりませんが、事前準備でデータストアのドライブは、オプションからメンテナンスモード(リードオンリー)にしておくべきなんだそうです。アップグレード中にバックアップデータをいじったらヤバそうなのは素人目にも分かります。

    PBSのアップグレードもなんだかんだエラーとかありましたが、ここでもその都度Geminiに聞いていくと全部解決して無事、アップグレードできました。現時点での最新バージョンは4.0.12ですね。

    Proxmoxは2年毎のバージョンアップグレードが行われるようですが、移行猶予期間みたいなものとして1年プラスされるので、今回のPVE9とPBS4はおそらく2028年8月までサポートされるはずです。まあ、次のバージョンが出たら出たですぐに飛びついてしまうとは思いますけど。

  • Mergerfs&Snapraid導入、いくつかのサービス停止、k3sクラスターなど、サーバ構成を色々変更しました

    Proxmox3台+ゲートウェイPCという構成でしたが、これにバックアップ用のシンクライアントを購入したと前のエントリで書きました。Proxmox3台の中でも、USB接続HDDを各サーバ(NextCloudやJellyfinなど)にそれぞれ接続していましたが、それらの外部ストレージをOpenMediaVaultに一括してまとめ、Mergerfs&Snapraidを使って、擬似的に1つのストレージにして、かつ擬似的なRAID構成にして、NextCloudやJellyfinがそれにアクセスするような形にしました。

    また、ほとんど使っていなかった、
    Memos
    ChangeDetection
    ArchiveBox
    も停止しました。LXCコンテナの削除までは行っていませんので、また使いたくなったら有効にします。

    あと、サーバ監視として、少し前はWindowsで動かせるPRTGのフリー版を使っていて、その後、UptimeKumaをコンテナに入れて運用していましたけれど、結局のところ手の届くところにあるサーバで、ゲートウェイPC以外はProxmoxの管理画面で確認出来るのだから、サーバ監視サービスも要らないと言えば要らないですね。こちらも停止させてました。

    合計で4つのコンテナを使わなくなったことで、かなりリソースに余裕が出てきました。こうなると逆に貧乏性のためか、余っているのがもったいなく感じてきます。

    ということで、興味はあったけれど全く理解出来ないKubernetesに手を出してみることにしました。今のハードウェア的なリソースでは、フル環境のK8sはかなり重めになってしまい、他のサーバを停止させかねないので、軽量なK3sを導入してみます。

    K3sは1つのノードからでも実行出来ますが、せっかくなので各Proxmoxのホストに分けて、マスターノードとワーカーノード2つを構築しました。

    ということで、結局のところ、今の動かしているサーバ構成は以下のようになりました。

    ゲートウェイ(Zimaboard)
    CPU:Intel Celeron N3450(4コア4スレッド)
    メモリ:2GB
    ストレージ:eMMC 32GB
    OS:Ubuntuserver24.04
    サーバ内容:ファイアウォール(UFW)、VPN(WireGuard)、広告ブロック(Pi-hole)

    バックアップサーバ(T520)
    CPU:AMD/GX-212JC
    メモリ:4GB
    ストレージ:M.2 SATA SSD 16GB
    OS:Proxmox Backup Server
    サーバ内容:Proxmox Backup Server

    PVE(Wyse5070)
    CPU:Intel CeleronJ4105(4コア4スレッド)
    メモリ:DDR4 16GB
    ストレージ:SATA接続SSD 480GB
    OS:ProxmoxVE
    サーバ内容:
    RSSリーダーのLXCコンテナ(CPU1コア、メモリ1GB、スワップ1GB、ストレージ10GB)、
    Apt-cacher-ngのLXCコンテナ(CPU1コア、メモリ2GB、スワップ512MB、ストレージ100GB)、
    OpenMediaVaultのVM(CPU2コア、メモリ4GB、ストレージ10GB、USB接続HDD2TBx2台、USB接続HDD1TBx3台)
    K3sのワーカーノードのVM(CPU2コア、メモリ2GB、ストレージ20GB)

    PVE2(N100)
    CPU:Intel N100(4コア4スレッド)
    メモリ:DDR4 16GB
    ストレージ:SATA接続SSD 240GB
    OS:ProxmoxVE
    サーバ内容:
    JellyfinのVM(CPU2コア、メモリ4GB、ストレージ32GB)、
    K3sのワーカーノードのVM(CPU2コア、メモリ2GB、ストレージ20GB)

    PVE3(3550H)
    CPU:AMD Ryzen5 3550H(4コア8スレッド)
    メモリ:DDR4 16GB
    SSD:NVMe接続SSD 512GB
    OS:ProxmoxVE
    サーバ内容:
    WordPressのLXCコンテナ(CPU2コア、メモリ4GB、スワップ1GB、ストレージ10GB)、
    Nginx Proxy ManagerのLXCコンテナ(CPU1コア、メモリ1GB、スワップ1GB、ストレージ8GB)、
    NextCloudのVM(CPU4コア、メモリ8GB、ストレージ50GB)
    K3sマスターノードのVM(CPU2コア、メモリ4GB、ストレージ20GB)

    K3sの各ノードは、上記にあるようなスペックよりも少な目でも動くようですけれど、せっかくなので多目にリソースを配分しています。

    ただ、Kubernetesのクラスターを作ったは良いものの、ここからの勉強が大変ですね。
    ゆくゆくは、現在コンテナやVM内のDockerで構築している各サーバを、K3s上に移行させたいですが、学びつつやっていくのは時間がかかりそう・・・。

  • またミニPC(シンクライアント)を購入した話

    既に何台もミニPC(シンクライアント含む)を持っていて、ホームサーバをいくつも立てているのですが、個人的にちょっと気になっていたのが、バックアップ用のサーバについてです。
    Wyse5070というDELLのシンクライアントにProxmoxを入れて、その中にVMとしてProxmox Backup Serverを入れていたのですが、何故かメモリ使用量が4GBでMAXに張り付いていました。動いている限りは別に良いのですが、自分としてはバックアップ用のサーバは独立している方が良いんじゃないかと思いはじめ、必要十分なスペック(余分は要らない)のマシンを探していました。

    ヤフオクでhpのシンクライアントであるt520を見つけて購入。ちゃんとACアダプタ付きで、ヤフオクのクーポンも使って2,000円で買えました。

    スペックは以下の通りです。
    CPU:AMD/GX-212JC
    メモリ:DDR3 4GB
    ストレージ:M.2 SATA SSD 16GB

    単体でアレコレしようと思うととてもじゃないが無理なレベルですが、Proxmox Backup Serverを直接入れる分には問題ありません。メモリとストレージは交換可能ですが、バックアップ専用サーバならこれ以上増やす必要もないですね。

    Proxmox Backup Serverを入れてUSB接続HDDの設定を行い、Proxmoxの方でバックアップの設定をしてから、とりあえずすぐに実行。問題なく動作しました。これからはスケジュール通りに動いてくれます。

    ちなみに、ProxmoxのVMとして動かしていたときとは異なり、メモリ使用量が数百MBしかありません。Proxmox内に入れているときと、PBS単体で直接インストールした場合でこんなに差が出るものなんでしょうか? この辺が謎ですが、減ったのですから良しとしましょう。

    元々、PBSを入れていたWyse5070に余裕が出来ましたので、LXCコンテナで動かしている軽めのノードを他のホストから持ってきた結果、サーバ構成は現在はこうなっています。

    ゲートウェイ(Zimaboard)
    CPU:Intel Celeron N3450(4コア4スレッド)
    メモリ:2GB
    ストレージ:eMMC 32GB
    OS:Ubuntuserver24.04
    サーバ内容:ファイアウォール(UFW)、VPN(WireGuard)、広告ブロック(Pi-hole)

    バックアップサーバ(T520)
    CPU:AMD/GX-212JC
    メモリ:4GB
    ストレージ:M.2 SATA SSD 16GB
    OS:Proxmox Backup Server
    サーバ内容:Proxmox Backup Server

    PVE(Wyse5070)
    CPU:Intel CeleronJ4105(4コア4スレッド)
    メモリ:DDR4 16GB
    ストレージ:SATA接続SSD 480GB
    OS:Proxmox
    サーバ内容:
    ChangeDetectionのLXCコンテナ(CPU1コア、メモリ1GB、スワップ512MB、ストレージ10GB)、
    MemosのLXCコンテナ(CPU1コア、メモリ512MB、スワップ512MB、ストレージ10GB)、
    Apt-cacher-ngのLXCコンテナ(CPU1コア、メモリ2GB、スワップ512MB、ストレージ100GB)、
    Uptime KumaのLXCコンテナ(CPU1コア、メモリ1GB、スワップ1GB、ストレージ10GB)、
    ArchiveBoxのLXCコンテナ(CPU1コア、メモリ2GB、スワップ512MB、ストレージ16GB)、

    PVE2(N100)
    CPU:Intel N100(4コア4スレッド)
    メモリ:DDR4 16GB
    ストレージ:SATA接続SSD 240GB
    OS:Proxmox
    サーバ内容:
    RSSリーダーのLXCコンテナ(CPU1コア、メモリ1GB、スワップ1GB、ストレージ10GB)、
    Nginx Proxy ManagerのLXCコンテナ(CPU1コア、メモリ1GB、スワップ1GB、ストレージ8GB)、
    OpenMediaVaultのVM(CPU1コア、メモリ2GB、SSD10GB、USB接続HDD2TB)
    JellyfinのVM(CPU2コア、メモリ4GB、ストレージ32GB、USB接続HDD1TB)、

    PVE3(3550H)
    CPU:AMD Ryzen5 3550H(4コア8スレッド)
    メモリ:DDR4 16GB
    SSD:NVMe接続SSD 512GB
    OS:Proxmox
    サーバ内容:
    WordPressのLXCコンテナ(CPU2コア、メモリ4GB、スワップ1GB、ストレージ10GB)、
    NextCloudのLXCコンテナ(CPU2コア、メモリ4GB、スワップ1GB、ストレージ10GB、USB接続HDD1TB)

    PVE3のホストに余裕があるので、今後なにか新しいものを試す分にはここで行うことになります。ただ、もうそうそうやること無い気がしてきました。

    ここでは載せていませんが、ホームサーバとして立てたが使わなかったので消したものや、上手く動作しなかったので諦めたサービスもいくつもあります。

    ProxmoxのVMにLinuxを入れて操作のお勉強をしても良いのですが、それくらいの用途ならWindows11のメインPCでVirtualBox上に作れば良いだけですね。

    当面は少なくともハードウェア的に増やすつもりはないですが、そういうつもりでどんどんミニPCが増えてきたので、増やさない自信は無いですが・・・。