運用している FreeBSD サーバーのOSアップデートを行う前の下調べで FreeBSD.org サイトを訪問してびっくり。
なんと、Intel 32bit CPU x86アーキテクチャのPCが、FreeBSD13からバイナリー更新サポートから外れていまうということ。64bit拡張モードを持たない Pentium, Pentium Pro はメインストリームから外れてしまいます。
x86 PC上でバイナリー更新が使える Tier 1 なのは、12.x が最終バージョンとなる模様。
https://www.freebsd.org/platforms/
私にとって、これはかなり痛い出来事。管理しているサーバーのうち、3台が x86アーキテクチャー。64bit FreeBSD上での32bitプログラム動作互換性は 32bit FreeBSDと比較して劣るということだったので、あえて32bit OSを動かしていました。そもそも、リソースに余裕があるサーバーなので。
1台は、32bit CPU & 32bit OS、2台が 64bit CPU & 32bit OS。
32bit CPUのサーバーは、/usr/src にソースコードを置いてソースコードベースで管理するか、ハードウェアを新しくするしか手がありません。
64bit CPUのサーバーは、64bit OSに上げればいいわけですが、32bit FreeBSD OSから 64bit OSへのアップグレードは初期化になりますので、バックアップとかディスク交換とか結構面倒な作業になります。少なくともリモート管理しているサーバーは作り直し。
ちなみに、FreeBSDはプラットフォームを Tier に分けて開発を行っていて、Tier 1が OSの更新やセキュリティーパッチのバイナリーレベルサポートがあり、コマンド一発でアップデートできるプラットフォーム。
FreeBSD 12.x まで、x86 と x64は、Tier 1でしす。12.3は今でもサポートサイクル中なので、12.3を使える範囲では32bit FreeBSDも問題なし。
FreeBSD 13で、 x64 CPUは Tier 1サポートですが、x86が Tier 1 対象外になった代わりに、Raspberry Piなどのシングルボードコンピュータに使われている ARMアーキテクチャの64bit CPUが Tier 1 に入ります。
ARM CPUの Tier 1サポートは私が待ち望んでいたこと。
Raspberry Piはわずか12Wという低消費電力でサーバー運用できる可能性があるシングルコンピューター。問題はOSをマイクロSDスロットにセットするSDカード上に構築しないと、最高パフォーマンスが得られないこと。これ自体は問題ありませんが、セキュリティやプログラムの更新を繰り返すと、SDメモリカードの寿命が短くなること。特にソースコードからファイルをビルドすると、数か月でSDカードの寿命が尽きてOSが吹っ飛ぶことになります。なので、バイナリーでメンテナンスできるTier 1プラットフォームは、Raspberry Pi をサーバーとして運用するために必須条件でした。
その代替としてx86 PCがはじき出されたんですけどね。
ちなみに、Tier 1 になる Raspberry Pi は Raspbery Pi 2 v1.2 以降、Rapberry Pi 3、Raspberry Pi 4。
Raspberry Pi 2 v1.1 は 32bit CPUなので aarch64 CPUバイナリーは使えません。Tier 2のままです。
FreeBSD 13から x86 PCは Tier 2サポートになります。
Tier 2を使い続けようとすると、ホスト上にソースコードをインストール、アップデートし、ビルドし続ける必要があります。FreeBSDの場合、ファイヤーウォールを設置して、サービスを提供しているアプリケーションだけリアルタイムにメンテナンスしておけば、そうそう侵入を許すことはありませんが、どの程度の手間なのか運用してみないと実感できません。もちろんビルドはHDD上で。
まだ時間はあるものの、この先のサーバー運用をどうしてゆくかを考えないといけない時期が来ました。