2013年2月19日
Oracle Solaris 11では、IPS(Image Packaging System)という仕組みが導入されており、パッケージへの適用の修正は、パッチの適用ではなくパッケージの入れ替えになります。
IPSについては、こちらも合わせてご参照ください。
それに伴い、Solaris 10までのパッケージの修正は、パッチクラスター(PTF/FJ-RSPC)という形で提供されるパッチの集合体を適用していたのですが、Solaris 11ではパッチクラスタ―の代わりにSRU(Support Repository Update)と呼ばれる修正パッケージの集合体を適用して、パッケージを入れ替える方法に変更になりました。
そこで、今回はSolaris 11の環境にSRUを適用する方法をご紹介したいと思います。
今回は、Solaris 11.1のサーバにSRU12111(SRU1.4)を適用します。
(注)SRUは富士通ではSupportDesk-WebよりISO形式で提供しています。
SupportDeskサービスを契約していただくと、以下のWebサイトから入手できます。
SRUを適用するにはいくつか方法があるのですが、今回は媒体から直接SRUを適用する方法をご紹介します。
この方法は、すでに導入済みのサーバにSRUを適用する場合などに有効です。
SRUはSupportDesk-Webよりダウンロードします。zip形式で圧縮されていますので、ダウンロード後、解凍します。ここでは、/data配下にダウンロードし、解凍しました。
Sol11.1# ls -lh /data/
total 755601
-rw-r--r-- 1 root root 11K 11月 21日 02:40 README
-rw-r--r-- 1 root root 369M 11月 8日 09:00 SRU12111.iso
-rw-r--r-- 1 root root 17K 11月 29日 10:42 SRU12111_README-01.txt
-rw-r--r-- 1 root root 16K 11月 29日 10:42 Solaris11_1_UPDATE_README-01.txt
では、SRUを適用していきたいと思いますので、まずはSRUのISOイメージをマウントします。
ちなみに、Solaris 10まではISOイメージをマウントするときは、lofiadm(1M)コマンドを使用して、ISOイメージをブロックデバイスに関連付けてからマウントする必要があったのですが、Solaris 11では直接mount(1M)コマンドでマウントできるようになりました。
Sol11.1# mount -F hsfs /data/SRU12111.iso /mnt
Sol11.1# ls /mnt
COPYRIGHT NOTICES README repo
マウントしたISOイメージをpublisherとして設定します。publisherとはIPSパッケージの発行元です。今回はISOイメージをマウントしたディレクトリをpublisherとして設定します。
Sol11.1# pkg set-publisher -g file:///mnt/repo solaris
Sol11.1# pkg publisher
PUBLISHER TYPE STATUS P LOCATION
solaris origin online F file:///mnt/repo/
solaris origin online F http://localhost/
publisherについては、こちらもご参照ください。
準備ができましたので、pkg(1)コマンドを使用してSRUを適用します。まずはどのくらいの修正パッケージがあるのか確認しましょう。
pkg updateコマンドに-nオプションを付けて実行します。-nオプションを付けると、修正を適用しないで、修正するパッケージの数を確認することができます。
Sol11.1# pkg update -n
Packages to update: 36
Create boot environment: Yes
Create backup boot environment: No
なお、-vオプションもつけることで、修正されるパッケージ名も確認することができます。
Sol11 .1# pkg update -nv
Packages to update: 36
Estimated space available: 7.77 GB
Estimated space to be consumed: 384.90 MB
Create boot environment: Yes
Activate boot environment: Yes
Create backup boot environment: No
Rebuild boot archive: Yes
Changed packages:
solaris
consolidation/SunVTS/SunVTS-incorporation
0.5.11,5.11-0.175.1.0.0.14.0:20120416T200729Z -> 0.5.11,5.11-0.175.1.1.0.1.12:20121017T215531Z
・・・省略・・・
では、実際にpkg updateコマンドで修正パッケージを適用します。
Sol11.1# pkg update
Packages to update: 36
Create boot environment: Yes
Create backup boot environment: No
DOWNLOAD PKGS FILES XFER (MB) SPEED
Completed 36/36 1246/1246 64.6/64.6 0B/s
PHASE ITEMS
Removing old actions 253/253
Installing new actions 355/355
Updating modified actions 2382/2382
Updating package state database Done
Updating package cache 36/36
Updating image state Done
Creating fast lookup database Done
A clone of solaris exists and has been updated and activated.
On the next boot the Boot Environment solaris-1 will be
mounted on '/'. Reboot when ready to switch to this updated BE.
最後にメッセージが出てきました。
これは平たく言うと「新しいBoot Environment(BE)を作成して修正パッケージを適用したので、システムを再起動してBEを切り替えてください。」ということです。
「solaris」というBEのクローン「solaris-1」が自動で作成されて、「solaris-1」にSRUが適用されました。
BEはIPSと同様にSolaris 11の特長の一つで、Solaris 11では基本となる便利な機能です。BEの詳細や使い方などもこちらをご参照ください。
BEの状態を確認してみます。
Sol11.1# beadm list
BE Active Mountpoint Space Policy Created
-- ------ ---------- ----- ------ -------
solaris N / 140.0K static 2013-01-15 16:26
solaris-1 R - 3.20G static 2013-01-23 19:01
Active欄の「N」は現在稼働しているBE、「R」は次に起動するときに使われるBEです。SRUが適用されたBE「solaris-1」に「R」が表示されていることを確認します。
次に起動するBEを確認できたら、再起動してSRUが適用されたBEを有効にします。
Sol11.1# shutdown -y -g0 -i6
再起動後、BEの状態を確認します。
Sol11.1# beadm list
BE Active Mountpoint Space Policy Created
-- ------ ---------- ----- ------ -------
solaris - - 8.12M static 2013-01-15 16:26
solaris-1 NR / 3.26G static 2013-01-23 19:01
「solaris-1」に「N」と「R」が表示されていますので、今は「solaris-1」のBEからBootしていることが確認できます。
さて、今適用されているSRUのバージョンは、entireというパッケージの情報を確認することで確認できます。pkg infoコマンドで確認してみましょう。
Sol11.1# pkg info entire
Name: entire
Summary: entire incorporation including Support Repository Update (Oracle Solaris 11.1 SRU 1.4).
Description: This package constrains system package versions to the same
build. WARNING: Proper system update and correct package
selection depend on the presence of this incorporation.
Removing this package will result in an unsupported system. For
more information see https://support.oracle.com/CSP/main/article
?cmd=show&type=NOT&doctype=REFERENCE&id=1372094.1.
Category: Meta Packages/Incorporations
State: Installed
Publisher: solaris
Version: 0.5.11 (Oracle Solaris 11.1 SRU 1.4)
Build Release: 5.11
Branch: 0.175.1.1.0.4.0
Packaging Date: 2012年11月06日 00時13分44秒
Size: 5.46 kB
FMRI: pkg://solaris/entire@0.5.11,5.11-0.175.1.1.0.4.0:20121106T001344Z
これでSolaris 11への修正パッケージの適用は完了です。
Solaris 10までは修正適用の際に、シングルユーザモードへの移行やバックアップが必要でしたが、Solaris 11では、IPSとBEの機能を活用することで、修正適用に伴う業務の停止は再起動だけになります。
また、もしSRU適用後にアプリケーションの動作などで不具合があったときには、BEを切り替える(今回の場合、BEを「solaris」に切り替える)ことで、修正適用前の状態に簡単に戻すことができます。
このように、Solaris 11ではSolaris 10までと修正の適用方法が変わりましたが、運用がより簡単になりましたね。
みなさんもぜひ富士通のSupportDeskサービスをご契約いただき、SRUを適用してみませんか。
今回ご紹介した方法でSRUを適用すると、リリースリポジトリ(リポジトリサーバ)のパッケージよりもサーバにインストールされているパッケージの版数の方が新しくなるため、新たにリポジトリサーバからパッケージをインストールすることができなくなります。
もし、SRU適用後にパッケージを追加する可能性がある場合には、今回ご紹介した方法ではなくローカル環境にリリースリポジトリの複製(ローカルリポジトリ)を構築し、ローカルリポジトリのパッケージをSRUで更新してから、pkg updateを実施してください。この方法もこちらでご紹介していますので、ご参照ください。
応援メッセージはtwitterにて、ハッシュタグ #fjsparc までお願いします。