FreeBSD 11.0-RELEASEと5年間サポート
FreeBSDリリースエンジニアリングチームは2016年10月10日(協定世界時)、[FreeBSD-Announce] FreeBSD 11.0-RELEASE Now AvailableにおいてFreeBSDの次期メジャーアップグレードバージョンとなるFreeBSD 11.0-RELEASEの公開を伝えました。多くの新機能はすでにFreeBSD 10.3系にもフィードバックされているので、最新の10.3系を使っている場合にはそれほど大きな違いは感じないかもしれません。
ストレージとして利用している場合、自動的に故障したディスクを入れ替える機能を実現するためのzfsd(8)の導入は注目に値するところです。この機能は11系に取り込まれ10系にはバックポートされていませんので、この新機能を利用したい場合には11系を導入するか、手動でzfsd(8)をバックポーとして利用する必要があります。
FreeBSD 11.0-RELEASEはサポートモデルが新しくなったバージョンとしても注目です。これまでFreeBSDセキュリティチームはFreeBSDのそれぞれのリリースに対して1年または2年のセキュリティサポートを提供してきました。FreeBSD 11からはブランチがセキュリティサポートの対象となり、ブランチベースで少なくとも5年間はセキュリティサポートを提供するというモデルにかわります。
サポート対象となるバージョンはブランチで最新のリリースバージョンとなります。現在は11.0がサポート対象です。11.1-RELEASEが公開された後は11.1系がサポート対象となります。11.1-RELEASEが公開されたあとは11.0-RELEASEには3ヶ月間の移行期間が設けられます。この間に11.1-RELEASEへのアップグレードを実施し、以降は11.1-RELEASE向けに提供されるセキュリティアップデートを適用するといった運用になります。従来よりもローリングリリースよりのモデルに変更となります。
このサポートモデルはLinuxの主要ディストリビューションが採用しているモデルとも似ています。FreeBSDベースのTrueOSはFreeBSD CURRENTをベースにかなり細かいローリングリリースモデルを採用しましたので、FreeBSDのモデルはそれに比べると従来よりです。多かれ少なかれ、多くのオペレーティングシステムがこういったサポートモデルへ移行しつつあります。
FreeBSD 10.3-RELEASEからアップグレード
今回のアップグレード作業はちょっとイレギュラーです。FreeBSD 11.0-RELEASEのビルドが完了しもろもろの準備が終わったあとで、リリースの直前にOpenSSLのセキュリティ脆弱性が発表されてリリースが一旦停止されたからです。FreeBSDエンジニアリングチームはセキュリティ脆弱性を修正したバージョンを「FreeBSD 11.0-RELEASE-p1」として作成しました。今回リリースアナウンスが行われたバージョンはこのパッチレベル1のバージョンです。
このためアップデート手順がいつもとちょっと異なります。FreeBSD 10.3-RELEASEを使っている場合、次のように一旦/usr/bin/bspatchの中身を空にしてからfreebsd-update(8)でアップグレード作業を行う必要があります。upgradeとinstallの作業にはマシンや環境によっては長い時間がかかります。また、作業の途中で/etc/以下のファイルを手動で編集するフェーズがあると思いますので、表示に従って作業を行ってください。
システムを10.3-RELEASEから11.0-RELEASE-p1へアップグレードした後は、インストールしてあるサードパーティ製のソフトウェアをすべて再構築する必要があります。pkg(8)経由でインストールしてあるなら、次のようにしてすべてのパッケージを11.0-RELEASE向けのバイナリにアップグレードを行います。ここでもう一度システムを再起動するか、または必要になるサービスを再起動します。
パッケージが提供されていないとか、同じバイナリを使い続ける必要があるといった場合には、次のように10.3の互換ライブラリをインストールしてみてください。動作するようになると思います。
環境を確認して次のように11.0-RELEASE-p1になっていることが確認できればアップグレードは完了です。
FreeBSD 11.0-RELEASEはクラウドプラットフォームや仮想環境向けのイメージも提供されています。サポートするARMプラットフォームが増えたのも今回の特徴といえるでしょう。
ssh(1)経由でログインしているホストをfreebsd-update(8)でアップグレードする場合、途中長い間レスポンスがなくなるため、ssh(1)の接続が切れることがあります。ssh(1)の設定ファイル(~/.ssh/config)に次のような設定を追加しておくと、こうした接続切れを回避できるようになります。
または次のように接続を共有する設定をしておき、2つのターミナルからホストにログインして、一方でfreebsd-update(8)を、もう一方でtop(1)を動かしておくという手もあります。こうしておくと接続は切れにくくなりますし、本当にアップデート作業が進んでいるのかを目視で確認しやすくなります。
FreeBSD 11.0-RELEASEからアップグレード
FreeBSD 11.0-RELEASEのリリースアナウンスが流れる前にアップデートを実施したという場合(参考:第71回 FreeBSD 11.0-RELEASEへのアップデート(リリース前))、FreeBSD 11.0-RELEASEからFreeBSD 11.0-RELEASE-p1へアップグレードを行う必要があります。この方法もちょっといつもと違います。
まず、次のようにいったん/usr/bin/bspatchの中身を空にしてからfreebsd-update(8)でアップデート作業を行います。このアップデート作業はすぐに完了します。
アップデートの対象にカーネルやブートローダ、/rescue/を含むいくつかのコマンド、OpenSSLを利用するソフトウェアなどが含まれています。カーネルとブートローダがアップデートされていますので、一旦再起動します。
ちょっとしたタイミングの差ですが、パッケージも大量に入れ替わったので、システムをアップグレードした後はパッケージも次のようにアップグレードしておきましょう。
これで11.0-RELEASEから11.0-RELEASE-p1へのアップグレードが完了です。11.0-RELEASEにはセキュリティ脆弱性が含まれたソフトウェアが入っていますので、可能な限り迅速に11.0-RELEASE-p1へアップグレードすることが望まれます。
11.1-RELEASEへのアップグレードはまた今回とは違うものに
今回はfreebsd-update(8)を使ってメジャーアップグレードを実施しましたが、来年にリリースされることになるであろうFreeBSD 11.1-RELEASEではpkg(8)によるアップグレードを実施、または最後のfreebsd-update(8)によるアップグレードを実施することになると見られます。このようなアップグレード方法になるかはわかりませんが、マイナーアップグレードといえ注意が必要になるものと見られます。