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

  • 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が増えてきたので、増やさない自信は無いですが・・・。

  • デジタル主権の話

    最近、欧州の一部の自治体で、WindowsやMSOfficeからLinuxやLibreOfficeに乗り換える動きがあるという報道がチラホラ見られました。

    こういう動きって以前にもありましたが、全世界どころか欧州内でも広がることはなく、結局みな便利な方に流れるものなのですが、今回に関しては、直接的な原因がありました。

    トランプ政権による圧力により、国際司法裁判所の関係者のMicrosoftのメールアカウントが停止されてしまったという事実です。親イスラエルのトランプにとって、イスラエルのネタニヤフ首相らの逮捕状を発行したICCは制裁を科す対象だということです。

    アカウント停止自体は他のGAFAなどに広がっているわけではありませんが、欧州各国当局にとっては、アメリカのIT企業にデジタル的権利を握られていることが改めて危険なものだという認識が生まれたのでしょう。そしてこの動きは、デジタル主権という言葉で語られています。アメリカを批判する立場になる場合は、アメリカのデジタルサービスから離れる覚悟が必要だということでもあります。もちろん、莫大なライセンス料金を節約したいという気持ちもあるでしょうが、導入するサービスは無料でも、サポートを任せるIT企業(もちろん欧州の)への支払はあるでしょうし、利用する職員がどれだけ頑張れるかという問題もあるので、そう簡単にはいかないでしょう。

    私自身も最近いろいろホームサーバにハマりだして、LinuxやNextCloudやLibreOfficeを使うようになりましたが、じゃあ日本の自治体や大企業なんかもデジタル主権のため、それらを使うべきかというと、そこまで主張する気にはなれません。第一、まだ私はWindowsマシンを手放せませんし、Androidスマホも使用し続けるつもりです。

    パソコン、サーバはともかく、スマートフォンのデジタル主権はかなり難しい問題です。アメリカと揉めた中国の方が、HUAWEIのHarmonyOSによってもしかしたらPCもスマホもデジタル主権を獲得できるようになるかもしれません。既にSNSや検索では、グレートファイアウォールによってアメリカ製サービスを遮断するという強硬措置によって実現していますし。

    欧州各国はどこも1バイト文字を使っていて、日本語や中国語のような入力システムを必要としない点も、Linuxなどへの移行がしやすい原因の一つでもあると思います。実際、私は未だにATOKから離れられず、LinuxでもMozc+Fcitxによって日本語入力が出来るとはいえ、メインマシンを完全にATOK離れに踏み切る覚悟はありません。昔あったATOK for Xが復活してくれれば良いのですが、キーエンス傘下となったジャストシステムにそんな赤字覚悟のプロジェクトをやってくれる余力も無いでしょう。

    なんだかんだ言っても、現在、日本語を使用したデジタルサービスを最も快適に利用出来るのは、Windowsであることは誰も否めないはずです。別にATOKを使っていなくてもです。この辺は、1バイト文字文化圏と、2バイト文字文化圏で差があるのではないでしょうか。

    中国がどこまで非アメリカ製サービスだけでやっていけるのかは、日本人にとって、日本におけるデジタル主権の可能性という観点からも見物ですね。

  • Ryzen5 3550HのCPU周波数を固定してサーバ運用する話

    買ったは良いがCPUのファンが五月蠅いので、メインPCとしては使っていなかったミニPCがありましたが、今はProxmoxを入れてサーバ運用しています。

    とはいえ、ファン音が五月蠅いと24時間稼働のサーバ運用には向いていません。逸般の誤家庭ならともかく、一般の御家庭では常時ファン音が唸るサーバは邪魔者に過ぎません。

    ということでCPUの発熱・ファン音対策が必要になってきます。
    まとも、というか一般的なPCや自作マシンですと、BIOSでCPUの周波数やファンコントロールが出来るのですが、このPCではBIOSに入ってもCPU関係の設定項目が少なく、そこら辺をイジることが出来ませんでした。

    ということで、次はLinux上で設定を試してみます。今回はGeminiに聞きながら行いました。

    既にProxmoxをインストールしていますが、一応実機にマウス・キーボード・モニタをつないで起動。
    まず、cpufrequtilsをインストールします。

    sudo apt update
    sudo apt install cpufrequtils # Debian/Ubuntu系の場合(ProxmoxはDebian系)

    以下のコマンドで、現在のCPUの周波数ガバナーと利用可能な周波数を確認できます。

    cpufreq-info

    このコマンドで見ると、このRyzen5 3550Hの周波数は1.4GHz、1.7GHz、2.1GHzと出てきました。 8個あるコアそれぞれで、現在のCPU周波数は異なっているので、これを一番低い1.4GHzに固定しましょう。

    Geminiに教えてもらい、全てのCPUコアをuserspaceガバナーに設定します。

    echo "userspace" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor #固定したい周波数を設定(例: 2000MHz = 2.0GHz)

    Ryzen 3550Hのサポートされている周波数範囲内で設定してください。

    周波数はcpufreq-infoで確認した利用可能な周波数の中から選びます。

    echo "1400000" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed

    これで、Ryzen5 3550Hの下限である1.4GHzに固定出来ました。
    cpufreq-infoでもそのように表示されます。

    これにより、設定前の通常使用のときよりもかなりファンの回転数が減りました。
    元々、このPCではファンの回転数が速いときと遅いときが交互に来ていて、音もうるさいときと静かなときがありました。ずっと同じ音量ではないのは、ずっと五月蠅い環境よりも多分辛いです。しかし、この周波数固定作業によってファンが速く回転する頻度が激減しました。

    実際にProxmoxに動かす各サーバのCPU負荷によっても変わるでしょうが、最少周波数に固定したので、そうそう大きな騒音にはならないはずです。

    ちなみに、これらの設定はどうやら再起動時などで外れるようですので、一発で設定するスクリプトも作成しました。

    nano set_cpu_governor.sh
    !/bin/bash
    
    echo "userspace" | sudo tee /sys/devices/system/cpu/cpu/cpufreq/scaling_governor # ガバナーを userspace に設定
    
    echo "1400000" | sudo tee /sys/devices/system/cpu/cpu/cpufreq/scaling_setspeed # 固定クロックに設定
    
    cpufreq-info # 現在の設定を確認

    作ったスクリプトに実行権限を与えます。

    chmod +x set_cpu_governor.sh

    実行します。

    ./set_cpu_governor.sh

    systemdで起動時に実行するようにしても良いですが、まあそんな頻繁ではないですし、Proxmoxのホストから実行すれば良いだけなので、とりあえずはここまで。

    今回のこのRyzen5 3550Hはそこそこ古いCPUということもあり、不便なところもありますが、最近の他のRyzenシリーズですと、CPUの熱効率はもっと良くなっているでしょうから、わざわざこんなことはしなくてもサーバ運用時でも静かかも知れません。IntelのN100ならBIOSで消費電力を絞ればほぼファンは回らないんじゃないでしょうか。

  • サーバ死活監視を導入したら即、役に立った話

    先日書いた自宅のネットワークとサーバの構成の投稿の最後に、
    PRTGのフリー版を各種サーバ・PCの死活監視に導入した
    ということを書きました。

    その時は、
    「言うてもそうそうサーバもPCも変にならんだろう」
    と高をくくっていたのですが、サーバ群の配置・配線を少し変えるために一旦、Proxmoxが入っているPC3台とも、全てのノードを停止して電源を落としたのですが、
    配置・配線を変えてから再起動させると、メインPCのブラウザでProxmoxが表示されません。

    壊れるにしても3台まとめてハードウェア的あるいはソフトウェア的に壊れるわけもないと思い、早速導入したばかりのPRTGを見てみると、3台ともPingは通っていることが分かりました。これにより、ネットワークが途切れているわけではない(ケーブル破損やIPアドレスのもんだいではない)と判明。

    PCが起動したら勝手にProxmoxも起動して、ノードも自動起動するはずなのに?とハテナマークを抱えながら、サブモニターとPCをHDMIケーブルでつないでみると、クラスター構成の3台(pve、pve2、pve3)のうち、pve3は起動していました。

    今度はpve2をモニターで見てみると、USB接続SSDやHDDが自動でマウント出来ないエラーにより、Proxmoxが起動できずに止まっていました。

    nano /etc/fstab

    でマウントしている行に # を付けてコメントアウトして保存、再起動すると無事、Proxmoxが自動で起動しました。

    オプションで「ブート時に起動」するようにしていたLXCコンテナやVMも、当然ながら自動で起動していますが、一時的にマウントされなくなっているUSB接続のストレージも、改めてマウントして設定し直し。

    ちなみに、VMやLXCコンテナでマウントする場合、USBパススルーでProxmoxホストを飛ばして各ノードでマウントさせる方法と、ホストでマウントしてから各ノードで共有する方法があります。汎用性があってスマートなのは後者なのでしょうけれど、素人のLinux・サーバユーザにとっては、USBパススルーを利用して、1台のストレージを1個のノードに紐付ける方が手っ取り早くて簡単ですね。

    ともかく、サーバの死活監視って個人レベルでも役に立つことがあるのですね。早速そのメリットを実感した次第です。

  • 自宅ネットワーク内でのホームサーバ構成

    ・現状

    今年の2月から今までにかけて、なぜか突然、「ミニPC購入欲」が沸いてきまして、それに素直に従った結果、自宅というか自室にある常時稼働パソコンが5台になってしまいました。他にノートパソコンとしてChromebookもありますが、こちらはたまにしか起動しないので今回の話からは外れます。

    さて、この4台のパソコンについては、メインPC以外の用途は常時稼働サーバとして運用しています。

    型番で言いますと、
    DELL Wyse5070
    IceWhaleTechnology Zimaboard
    Minisforum UN100P
    Goodtico MINIPC-3550H
    となりまして、見事にメーカーもスペックも異なります。これらを生かそうと思いつつ、自分の勉強のためと、様々なサービスを享受するため、そしてGoogle社なんかを始めとするメガIT企業に頼り切らないようにするため、自宅サーバを色々立てることにしました。

    とはいえ、メガIT企業に頼らないと言いつつも、実際にサーバを立てるに当たっては、ChatGPT、Gemini(Google AI Studio)、Claudeといった生成AIの皆さんに、ひたすらガッツリ聞きまくって、悩みつつ試行錯誤しつつ、サーバを立てては消したりなんやかんやした結果、現時点では以下の通りの構成となりました。

    ・Zimaboard

    (スペック)
    CPU Intel Celeron N3450(4コア4スレッド)
    メモリ 2GB
    ストレージ eMMC 32GB

    (用途)
    RJ45のLANポートが二つあるので、自室のPCとスマホ・タブレットのゲートウェイとして運用することにしました。具体的にはUbuntuserver24.04をインストールして、Firewall(UFW)と広告ブロック(Pi-hole)とVPN(WireGuard)のサーバとして利用しています。PCIeカードもさせますが、今のところは使う予定無し。シングルボードマイコンとして使う分には充分な性能があります。メモリが4GBや8GBのものだと、もっと有効活用出来たでしょうけれど、それはそれで高くなりますので割り切ってルータっぽく使う分にはこれでいいですね。

    ・Wyse5070

    (スペック)
    CPU Intel CeleronJ4105(4コア4スレッド)
    メモリ DDR4 16GB
    ストレージ SATA接続SSD480GB、USB接続HDD2TB

    (用途)
    こちらはLANポートが1つしかないですが、USBポートは8つもあります。最初はOpenMediaVaultを入れて、2TBのUSB接続HDDを2台でRaid1としてNAS運用していましたが、今はProxmox Backup Server のVM(CPU2コア、メモリ4GB、スワップ1GB、ストレージ10GB、USB接続HDD2TB)のみとして利用しています。まだ余力はありますが、個人的にはバックアップ用のサーバには他のサービスを入れたくないので、当面はこのままだと思います。

    ・UN100P

    (スペック)
    CPU Intel N100(4コア4スレッド)
    メモリ DDR4 16GB
    ストレージ SATA接続SSDが240GBと、USB接続SSDが2TB

    (用途)
    もともとベアボーンとしてメモリもストレージもない状態で買いましたが、手持ちのNVMe接続SSDをつないでWindows11を入れてみて、あっさり使えましたが、そもそもメインPCのWindowsがあるので使い道がありません。ということでサーバに回します。
    Proxmoxを導入して、その上で、既にノードとして
    FreshRSS(RSSリーダー)のLXCコンテナ(CPU1コア、メモリ1GB、スワップ1GB、ストレージ10GB)、
    Vaultwarden(パスワードマネージャー)のLXCコンテナ(CPU1コア、メモリ1GB、スワップ512MB、ストレージ16GB)、
    Nginx Proxy Manager(リバースプロキシ)のLXCコンテナ(CPU1コア、メモリ1GB、スワップ1GB、ストレージ8GB)、
    OpenMediaVault(ファイルサーバ)のVM(CPU1コア、メモリ2GB、SSD10GB、USB接続HDD2TB)、
    を動かしています。

    ・MINIPC-3550H

    (スペック)
    CPU Ryzen5 3550H(4コア8スレッド)
    メモリ DDR4 16GB
    SSD NVMe接続SSDが512GB、USB接続SSD1TB、USB接続HDD1TB

    (用途)
    以前、使っていたPCが故障したために急遽購入したこちらのマシンが、普段使いだとファンがうるさく、結局別のPCをまた購入してメインPCとして使っているため、このRyzen搭載ミニPCは押し入れにしまっていました。他のミニPCでどんどんサーバを立てていくと、やりたいことが増えてきたため、このRyzen5マシンを復帰させました。ファンのうるささはCPU周波数を低速で固定することで対策しました。この対策についてはまた別の記事に書こうと思います。ともかく、手持ちのサーバ運用ミニPC群の中では、一番リッチなスペック(といってもCPU単体ではN100と大差ないですが)なので、重たい動作のものを集めました。
    Proxmoxを導入して、その上で、既にノードとして
    WordPressのLXCコンテナ(CPU2コア、メモリ4GB、スワップ1GB、ストレージ10GB)、
    NextCloudのLXCコンテナ(CPU2コア、メモリ4GB、スワップ1GB、ストレージ10GB、USB接続HDD1TB)、
    Apt-cacher-ng(パッケージ配布キャッシュプロキシ)のLXCコンテナ(CPU1コア、メモリ2GB、スワップ512MB、ストレージ100GB)、
    UniversalMediaPlayerのVM(CPU2コア、メモリ4GB、ストレージ32GB、USB接続SSD1TB)、
    を動かしています。
    Apt-cacher-ngのストレージは、本当はキャッシュを貯めておくのに外付けのSSDかHDDにしたいところですが、現状余っているものがないため、内部のSSDを多目に確保して運用しています。

    ・その他、これから

    後、いくつもあるサーバの死活監視のために、ZabbixとかNogiOSとか運用してみたかったのですが、生成AIに聞きながら作成しても失敗してしまいました。この辺はひとえに私の知識不足なので、またそのうち試してみます。ですので、現在はWindowsで運用できる、PRTGのフリー版を使ってとりあえずPingの監視だけ行っています。まあ、この程度のサーバ数なら一つ一つ見てても何とかなるといえばなるのですけれど。別に仕事じゃないし。

    あと、導入したいのはメールサーバくらいでしょうか? メールサーバは結構面倒というか、既に何度か試しましたが色々大変で結局上手く行かなかったので、また折を見て試すつもりです。ただ、既にメールサーバを入れられそうな余裕があるPCがないのですよね・・・。

  • ブログを開設しました

    今さらですが、ブログを開設しました。

    これまでは、note.com にて6年超、なんやかんやと好き勝手に色々なことを書いてきましたが、WordPressサーバを自宅ネットワーク内に構築して、個人ブログを公開することにしました。

    何故、自宅サーバを立てたのかというと、そもそもの話ですが、2026年に入ってから、いくつもミニPCを購入して「しまった」からです。

    数ヶ月のうちに、

    Dell Wyse5070

    IceWhale Zimaboard

    goodtico MINIPC-3550H

    MINISFORUM UN100P

    と、4台も増えました。これら以外に、メインPC用のものと、SIMスロット付きのChromebookを購入していますがそれは別として、4台も具体的に用途を決めていないPCを買ってしまうと、使い方を考えるようになります。

    いずれのPCもスペック的には大したことがないですが、限られた用途のためのLinuxサーバにするには充分な性能は持っています。

    それぞれのPCの使い道については、後々書いていきます。

    取り急ぎ今日はこの辺で。