SlideShare a Scribd company logo
1   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
    また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは
    できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント
    (確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。
    オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
    弊社の裁量により決定されます。




    OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
    文中の社名、商品名等は各社の商標または登録商標である場合があります。


2    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
サービス実行を超えた
新たなサービス管理アーキテクチャ
Service Management Facility

Part I

     システム事業統括 ソリューション統括本部
     野崎 宏明




 3   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
スピーカー自己紹介


     学生時代
         – JDK 1.1でPrologの推論機構を実装し検索エンジンの真似ごと
     1998年4月(日本)サン・マイクロシステムズ新卒入社
         – ふと気づけば社会人15年目
     ほぼずっとSE (Sはシステム?セールス?)
         – 主にSolaris、開発環境、Sun Rayシンクライアント
         – 今は主に通信系のお客様担当
         – Oracle では SC (Sales Consultant) と呼ばれます
     1年だけサポートエンジニア
         – Java VMの解析
     Solarisエバンジェリスト(宣教師?!)
         – 最近は特にZFSの宣伝係としての出番増



4    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Program Agenda



     Solaris における予測的自己修復機能
     Service Management Facility
         – Solaris 10 での実装
                   (Solaris 11 での実装はSolaris 10 での実装をベースにしています)

     まとめと参考情報




5    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
予測的自己修復とは


     システムの可用性を大幅に向上させる機能
         – 問題検出
                   状態監視と情報収集体系の強化・標準化
         – 問題点分析
                   診断エンジンによる分析・診断
         – 自動対応
                   障害部切り離し、プロセス再起動等
                   システムの継続運用
     Fault Management Architecture (FMA)
         – 主にハードウェア                                                          Solaris 11 では
     Service Management Facility (SMF)                                       SMFとFMAの
         – 主にソフトウェア
                                                                            連携・網羅性が向上



6    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Service Management Facility
~Solaris 10 での実装内容~
(Solaris 11 での実装はSolaris 10 での実装をベースにしています)




  7   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Solaris 9までのサービス管理(1)


     「サービス」の明確な定義無し
        – 1つまたは複数のdaemonプロセス..?
     システム起動時、停止時
        – initがランレベルに応じて/sbin/rc<r>を起動
                  <r>はランレベル(S, 1, 2, 3, 5, 6)
        – rc<r>は/etc/rc<r>.d以下のスクリプト群を呼ぶ
                  S??<name>はstartを引数として
                  K??<name>はstopを引数として
                          – ??は数字で値の小さい順にrc<r>が実行
                                     » 起動/終了順序はただ1個の列




8   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Solaris 9までのサービス管理(2)


     あるdaemonが落ちたとき
        – daemon再起動だけでよいと判断できたら
                  そのdaemonの起動手順に従って起動
                          – /etc/init.d以下のスクリプトがよく使われる
                                     » /etc/rc<r>.d以下のコピーかsymlinkが多い
        – 他の複数daemon等への依存が判断できたら
                  各daemonを依存関係に従い1個1個起動・停止

                          – S??やK??の順序を参考に..?
        – どのdaemon等まで依存するかわからない場合

                  システムの再起動??

     あるdaemonを落としたいときも                                                    専門知識無しでは
                                                                            かなり難しそう
        – 依存関係で同様の問題



9   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF開発目的
     真のセルフヒーリングの実現

      主にソフトウェアの可用性向上
         – SMF前
                   サービスは落ちたら落ちっぱなし
                   サービス間依存関係が曖昧もしくは不明
                           – 判断や対処の妨げになる
                           – (rcでは1シーケンスの起動順のみ記述)
                   監視モジュールを作り込むか、クラスタリングによる対処が必要
         – SMFにて
                   落ちたサービスは自動で復旧
                           – 管理者の介在不要
                   サービス単位での起動・停止が可能に
                   監視モジュール不要、クラスタリングの必然性は少なくなる




10   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMFとは
       サービスの起動、停止、状態表示などの統一的な管理機能を提供。
       ハードウェア・ソフトウェア障害時に、自動的にサービスを再起動。

      サービスをオブジェクトとして監視・管理
         – /etc/init.d/*, /etc/rc*や/etc/inet/inetd.conf などの後継
         – 従来のrcスクリプトも使用可能
                   ただしSMFの利便性が享受できない
      サービス障害の検知、自動リスタート
         – 管理上、ソフトウェアのバグ、訂正できないハードウェアエラー
      サービス構成情報(依存関係など)のチェック機能
      ブート時の詳細表示オプションによるサービス起動確認
      サービス並列起動による boot 時間の短縮
      root 以外のユーザへの安全な権限委譲
         – サービスベースのリソース管理が可能




11   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMFの構造

管理エージェント・                                     監視エージェント・                          inetd 配下の        サービス群
コマンド                                          コマンド                               サービス群


                          libscf(3LIB)
                          レポジトリAPI                                          Delegated restarter
                    svc.configd(1M)                                              inetd(1M)



                                                            svc.startd(1M)


                                                                     init(1M)            プロセス      リポジトリ
                                                                                         起動        クライアント

                                                           Solaris カーネル

12   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMFサービスを構成するパーツ


      例: Solaris 10 のApache2
          – FMRI (Fault-Management Resource Identifier)
                    svc:/network/http:apache2
          – Manifest
                    /var/svc/manifest/network/http-apache2.xml
          – Daemon
                    /usr/apache2/bin/httpd
          – Exec Method
                    /lib/svc/method/http-apache2
          – Log File
                    /var/svc/log/network-http:apache2.log

            注: Solaris 10 では Apache 1.3 を rc スクリプト、Apache 2.0 を SMF で提供。
               Solaris 11 では Apache 2.2 を SMF で提供。


13    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
サービス構成パーツの置き場
     Solaris 10 の場合


      Profile
          – システム全般のサービス設定
          – /var/svc/profile
      Manifest
          – 個々のサービスの詳細定義
          – /var/svc/manifest
      Exec Method
          – サービス起動・停止用実行ファイル(スクリプト)
          – /lib/svc/method
      Log File
          – /var/svc/log




14    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
サービスカテゴリ
     Solaris 10 の場合


      application:アプリケーション
      milestones: サービス集合
      platform: プラットフォーム固有
      system: システムサービス
          – system/filesystem/*.xml
                    ポイント: 「ファイルシステムがマウントされ使用可能」というサービス
      device: デバイス固有
      network: ネットワーク・インターネット
          – network-physical.xml
                    ポイント: 「NICが使用可能」というサービス
      site: サイト固有




15    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
milestoneとランレベル


      single-user.xml
          – ランレベルS (シングルユーザーモード)
      multi-user.xml
          – ランレベル2 (マルチユーザーモード)
      multi-user-server.xml
          – ランレベル3 (NFSを共有したマルチユーザーモード)




16    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
FMRI


      サービスを表す名称

      ホスト内で一意であれば指定時に省略可能
          – 省略例 (重複が無ければコマンド引数等以下どれでもよい)
                    svc://localhost/network/http:apache2
                    svc:/network/http:apache2
                    network/http:apache2
                    http:apache2
                    apache2




17    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMFコマンド


      svcs
          – サービスの状態を報告
      svcadm
          – サービスインスタンスの操作
      svccfg
          – サービス構成の操作
      svcprop
          – サービス設定プロパティ値の取得




18    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
svcsコマンド


      svcs :サービス状態の表示
      svcs -a :全てのサービス状態の表示
      svcs -l <FMRI>:サービス詳細情報の表示
      svcs -d <FMRI>:依存するサービスの表示
      svcs -D <FMRI>: 依存されるサービスの表示
      svcs -x :不具合のあるサービスの情報表示
      各 -v : 詳細表示




19    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
デモ1


      svcsコマンドによるサービス状態表示
         – 状態表示内容の確認
         – -a の有無による違い
         – サービスの詳細表示
         – 依存しているサービスの表示
         – 依存されているサービスの表示




20   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの一覧表示(1)
       Solaris 10 での例


root@host1# svcs -a
STATE          STIME                                          FMRI
legacy_run      4月_01                                         lrc:/etc/rc2_d/S10lu
legacy_run      4月_01                                         lrc:/etc/rc2_d/S20sysetup
...
disabled        4月_01                                         svc:/system/metainit:default
disabled        4月_01                                         svc:/platform/sun4u/mpxio-upgrade:default
...
online          4月_01                                         svc:/system/svc/restarter:default
online          4月_01                                         svc:/network/pfil:default
...
offline         4月_01                                         svc:/application/print/ipp-listener:default
offline         4月_01                                         svc:/application/print/rfc1179:default




  21    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの一覧表示(2)

      状態表示
         – legacy_run
                   旧来のrcスクリプトによるサービスでSMF管理外
         – online
                   サービスが有効で動作中
         – offline
                   サービスは有効だが停止している
         – degraded
                   サービスが有効で動作中だが一部機能が制限
         – disable
                   サービスが管理者によって無効とされている
         – maintenance
                   サービスは有効だが問題があり動作していない
         – uninitialized
                   サービスの構成が読み込まれる前


22   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの詳細情報表示
        Solaris 10 での例



root@host1# svcs -l apache2
fmri         svc:/network/http:apache2
name         Apache 2 HTTP server
有効          true
状態          online
next_state   none
state_time   2007年08月28日 (火) 20時21分25秒
logfile      /var/svc/log/network-http:apache2.log
リスタータ     svc:/system/svc/restarter:default
contract_id 2865
dependency   require_all/error svc:/network/loopback:default (online)
dependency   optional_all/error svc:/network/physical:default (online)




   23    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF -サービスの依存関係


      依存関係
         – require_all が全てonline/degradedのとき
         – require_any のどれかがonline/degraded のとき
         – optional_all がonline/degradedか、管理待ちのとき (つまりオプション)
         – exclude_all の全てがdisabled/maintenance のとき
      依存するサービスが停止・更新したら
         – restart_on='none' → 停止しない
         – restart_on='error' → 依存するサービスがエラー停止なら停止
         – restart_on='restart' → 'error' +エラー以外の停止時も停止
         – restart_on='refresh' → 'restart' +更新時も停止




24   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの依存関係表示
     Solaris 10 での例


      依存しているサービスの表示

     root@host1# svcs -d apache2
     STATE          STIME    FMRI
     online         18:45:18 svc:/network/loopback:default
     online         18:45:21 svc:/network/physical:default


      依存されているサービスの表示

     root@host1# svcs -D apache2
     STATE          STIME    FMRI




25    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
svcadmコマンド


      svcadm enable <FMRI>
          – サービスの有効化と起動
      svcadm disable <FMRI>
          – サービスの無効化と停止
          – リブート後も保持される
      svcadm clear <FMRI>
          – maintenance状態からの復帰
      svcadm restart <FMRI>
          – サービスの再起動
      svcadm refresh <FMRI>
          – サービス構成の再読込
      各 -t : 一時的な変更


26    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
デモ2


      svcadmコマンドによるサービスの起動と停止
         – サービスの状態確認
         – 別ウィンドウでログを表示
         – サービスの有効化と起動
         – サービスの再起動
         – サービスの無効化と停止
         – 自動再起動




         – 起動しない場合のトラブル対応




27   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの起動・停止(1)
       Solaris 10 での例


        サービス状態の確認
root@host1# svcs -a | grep apache
legacy_run       4月_01 lrc:/etc/rc3_d/S50apache
disabled       20:04:30 svc:/network/http:apache2
root@host1# svcs -v apache2
STATE          NSTATE      STIME     CTID FMRI
disabled       -            20:04:30 -    svc:/network/http:apache2

            – サービスは停止している


        サービスを有効化し起動
root@host1# svcadm enable apache2
root@host1# svcs -v apache2
STATE          NSTATE      STIME     CTID                                      FMRI
online         -            20:10:51 2861                                      svc:/network/http:apache2


  28    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの起動・停止(2)
     Solaris 10 での例


   ログにより起動を確認
root@host1# tail -f /var/svc/log/network-http:apache2.log

[ Apr 25 20:10:50 Enabled. ]
[ Apr 25 20:10:50 Executing start method
                   ("/lib/svc/method/http-apache2 start") ]
[ Apr 25 20:10:51 Method "start" exited with status 0 ]

      プロセス情報確認

root@host1# svcs -p apache2
STATE          STIME    FMRI
online         20:10:51 svc:/network/http:apache2
               20:10:51     7425 httpd
               20:10:52     7426 httpd
               20:10:52     7427 httpd
               20:10:52     7428 httpd
               20:10:52     7429 httpd
               20:10:52     7430 httpd

29    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの起動・停止(3)
        Solaris 10 での例


         サービスの再起動
root@host1# svcadm restart apache2
root@host1# svcs -v apache2
STATE          NSTATE      STIME    CTID   FMRI
online         -           20:15:44   2863 svc:/network/http:apache2

         ログによる再起動の確認
root@host1# tail -f /var/svc/log/network-http:apache2.log

[ Apr 25 20:15:43 Stopping because service restarting. ]
[ Apr 25 20:15:43 Executing stop method
                    ("/lib/svc/method/http-apache2 stop") ]
[ Apr 25 20:15:43 Method "stop" exited with status 0 ]
[ Apr 25 20:15:43 Executing start method
                    ("/lib/svc/method/http-apache2 start") ]
[ Apr 25 20:15:44 Method "start" exited with status 0 ]


   30    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの起動・停止(4)
     Solaris 10 での例


      自動再起動
        root@host1# kill 7425
        root@host1# svcs -p apache2
        STATE          STIME    FMRI
        online         20:21:25 svc:/network/http:apache2
                       20:21:25      7462 httpd
                       20:21:26      7463 httpd
                       20:21:26      7464 httpd
                       20:21:26      7465 httpd
                       20:21:26      7466 httpd
                       20:21:26      7467 httpd

      プロセスIDが新しくなっている




31    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスの起動・停止(5)
        Solaris 10 での例


         自動再起動をログで確認

root@host1# tail -f /var/svc/log/network-http:apache2.log

[ Apr 25 20:21:24 Stopping because all processes in service exited. ]
[ Apr 25 20:21:24 Executing stop method
                     ("/lib/svc/method/http-apache2 stop") ]
                     httpd (no pid file) not running
[ Apr 25 20:21:24 Method "stop" exited with status 0 ]
[ Apr 25 20:21:24 Executing start method
                     ("/lib/svc/method/http-apache2 start") ]
[ Apr 25 20:21:25 Method "start" exited with status 0 ]




   32    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
トラブル対応


      svcs -xv でサービスの状態を確認
          – http://www.sun.com/msg/<MSG-ID> を確認
                    My Oracle Support へのアクセス権が必要
          – サービスのログを確認
                    /var/svc/log や /etc/svc/volatile
      コンソールやsyslog (/var/adm/messages)をチェック
      不具合解消後はsvcadm                                                         clear <FMRI>
      ブート時にシステムがハングする場合
          – boot -m milestone=none
          – プロンプトでログインしてsvcadm milestone all
          – svcsでシステムの状況を調査




33    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
svcprop / svccfgコマンド


      svcprop <FMRI>
          – プロパティ値の表示
      svccfg list
          – サービスリスト表示
      svccfg
          – サービスパラメータ設定
      svccfg export <FMRI>
          – サービスのmanifest を標準出力に出力
      svccfg import <manifest_file>
          – manifest_file をリポジトリに取り込む




34    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
デモ3


      svccfg コマンドによるサービスの設定変更
         – サービスリポジトリの特定
         – リポジトリ情報の表示
         – 設定されているサービスのリスト表示
         – サービスのパラメータ設定




35   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - サービスリポジトリ
       Solaris 10 での例


     リポジトリの実体(SQLite形式)
root@host1# cd /etc/svc
root@host1# ls -l repository.db
-rw-------   1 root   sys    2268160                                           4月 25日   20:10 repository.db

        リポジトリ情報の表示

        root@host1# svcprop apache2
        httpd/ssl boolean false
        httpd/stability astring Evolving
        loopback/entities fmri svc:/network/loopback:default
        loopback/grouping astring require_all
        loopback/restart_on astring error
        loopback/type astring service
        physical/entities fmri svc:/network/physical:default
          :




  36    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - 既存サービスの設定変更
     Solaris 10 での例


      設定されているサービスのリスト表示

               root@host1# svccfg list
               system/console-login
               system/device/local
               ...
               network/http
               ...

      サービスのパラメータ設定


               root@host1# svccfg
               svc:> select network/http:apache2
               svc:/network/http:apache2> setprop parameter=”value”
               svc:/network/http:apache2> exit




37    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - リスタータがinetdのサービス


      inetadm
          – リスト表示
      inetadm -e <FMRI>
          – 有効化して起動
      inetadm -d <FMRI>
          – 無効化して停止
      inetadm -l <FMRI>
          – サービスの詳細表示
      inetconv
          – 既存 inetd サービスの取り込みや
               inted.conf 形式から manifest 形式への変換




38    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMF - rcスクリプトなどから新規サービスの作成
         Solaris 10 での例


         1.        類似サービスのエクスポート
     root@host1# svccfg export network/http > apache.xml
     root@host1# cat apache.xml
     (/var/svc/manifest/network/http-apache.xml同様の内容)

         2.        manifestの編集
         3.        必要ファイルの配備
         4.        サービスのインポート (Solaris 11 ではsvcadm restart manifest-import)
         root@host1# svccfg import apache.xml

詳細は下記ドキュメント参照
    How to Migrate Control of System Services from Scripts to the Service Management Facility
         •      http://www.oracle.com/technetwork/articles/servers-storage-admin/scripts-to-smf-1641705.html
    How to Create an Oracle Solaris Service Management Facility Manifest
         •      http://www.oracle.com/technetwork/server-storage/solaris/solaris-smf-manifest-wp-167902.pdf


    39       Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
デモ4


      inetd 管理下サービスの操作
         – リスト表示
         – 詳細表示
         – 無効化
         – 有効化
         – 既存サービスの取り込み


      Solaris 10 にて新規サービスの作成
         – lrc:/etc/rc3_d/S50apache を SMF 管理下に
         – apache2 をベースに apache サービスを構成




40   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Solaris 9 までのサービス管理との違いのまとめ


      サービスの無効化
         – 従来: mv /etc/rc2.d/S75cron /etc/rc2.d/x.S75.cron
         – SMF: svcadm disable system/cron:default
      サービスの再起動
         – 従来: /etc/init.d/sshd stop; /etc/init.d/sshd start
         – SMF: svcadm restart network/ssh:default
      ランレベルの変更
         – 従来: init S
         – SMF: svcadm milestone -d milestone/single-user:default




41   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
最近のOS内サービスの依存関係はここまで複雑
     もはやスクリプトで手動で管理するのは限界




42   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
SMFまとめ


      サービス開発者、システム開発者
         – 依存関係やサービス定義を明確に行う必要あり
                   サービスの可用性向上につながる
      サービス監視モジュール不要
      クラスタリングの必然性は少なくなる
         – 可用性要件に基づいて検討
      システム管理者
         – 落ちたサービスは基本的に自動で復旧
                   管理者介在不要
         – 自動復旧しないサービス
                   統一的な手順で調査と対処が可能




43   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
参考情報
 Oracle Solaris 11 マニュアル (日本語) 「Oracle Solaris の管理: 一般的なタスク」
  – http://docs.oracle.com/cd/E26924_01/html/E25810/index.html
    6. サービスの管理(概要)、7. サービスの管理(手順)
 (英語版)
  – http://docs.oracle.com/cd/E23824_01/html/821-1451/index.html
    6. Managing Services (Overview), 7. Managing Services (Tasks)
 Solaris 10 マニュアル (日本語) 「Solaris のシステム管理 (基本編)」
  – http://docs.oracle.com/cd/E24845_01/html/819-0378/index.html
    18. サービスの管理(概要)、19. サービスの管理(手順)
 Oracle University 「Solaris 8/9 管理者の為のSolaris 10 システム管理速習」
  – http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getCourseDesc?dc=D66660JP10

 OTN (Oracle Technology Network) Solaris SMF ページ
  – http://www.oracle.com/technetwork/server-storage/solaris11/technologies/smf-1690889.html

 SMF依存関係グラフ例
  – http://opensolaris.org/os/community/smf/scfdot/


   44   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
45   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
46   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

More Related Content

PDF
Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)
PDF
120516openqrm deepdive
PDF
Dbts2013 特濃jpoug log_file_sync
PDF
第7回oss貢献者賞 森-20120316
PPTX
対称クラスタの設定と動作確認
PDF
Wardenで学ぶコンテナの基礎
PDF
Smf deepdive-tran
PDF
Oracle solaris 10 u9 iSCSI Boot
Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)
120516openqrm deepdive
Dbts2013 特濃jpoug log_file_sync
第7回oss貢献者賞 森-20120316
対称クラスタの設定と動作確認
Wardenで学ぶコンテナの基礎
Smf deepdive-tran
Oracle solaris 10 u9 iSCSI Boot

Similar to Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management Facility Part I (20)

PDF
Oracle Solaris 11デベロッパーが押さえておきたい機能
PPTX
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
PDF
Solaris 10 から Solaris 11 への移行準備とポイント
PDF
Solaris 10 から Solaris 11 への移行準備とポイント
PDF
Oracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイント
PDF
#04-01 Solaris 10 からSolaris 11 への移行準備とポイント ~ナイトセミナー風~
PDF
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
PDF
#01-01 Oracle Solaris 11 The First Cloud OS -Night Seminar version-
PDF
Solaris 11 ディープダイブセミナー Distribution Constructor編
PDF
Oralce Solaris 11.2 Open Beta 紹介資料
PDF
App controllerとSPFで実現するハイブリッドクラウド
PPTX
Trema の紹介とネットワーク仮想化への応用
PDF
Oracle GoldenGate Monitor 12cR2 セットアップガイド
PDF
第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
PDF
第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
PDF
Cloud stack徹底入門7章 20130514
PDF
Solaris ディープダイブセミナー #4: A-2-2 Service Management Facility Part II
PDF
【第一回 ゼロからはじめる Oracle Solaris 11】01_Solaris 11 のココが凄い! ~進化した Solaris 11 の魅力~
PDF
cloudpack負荷職人結果レポート(サンプル)
PDF
140917運用管理勉強会job scheduler
Oracle Solaris 11デベロッパーが押さえておきたい機能
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
Solaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイント
Oracle Solaris 10 から Oracle Solaris 11.1 への移行準備とポイント
#04-01 Solaris 10 からSolaris 11 への移行準備とポイント ~ナイトセミナー風~
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
#01-01 Oracle Solaris 11 The First Cloud OS -Night Seminar version-
Solaris 11 ディープダイブセミナー Distribution Constructor編
Oralce Solaris 11.2 Open Beta 紹介資料
App controllerとSPFで実現するハイブリッドクラウド
Trema の紹介とネットワーク仮想化への応用
Oracle GoldenGate Monitor 12cR2 セットアップガイド
第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
Cloud stack徹底入門7章 20130514
Solaris ディープダイブセミナー #4: A-2-2 Service Management Facility Part II
【第一回 ゼロからはじめる Oracle Solaris 11】01_Solaris 11 のココが凄い! ~進化した Solaris 11 の魅力~
cloudpack負荷職人結果レポート(サンプル)
140917運用管理勉強会job scheduler
Ad

More from SolarisJP (20)

PDF
【特別編】【第七回 ゼロから始める Solaris 11.X】03 セキュリティ関連アップデート ~改ざんからシステムを守る!~
PDF
【特別編】【第七回 ゼロから始める Solaris 11.X】02 OpenStack on Solaris アップデート 〜 更に高まる Solaris...
PDF
【特別編】【第七回 ゼロから始める Solaris 11.X】01 仮想化関連アップデート ~Solaris ゾーンでもついにアレが可能に?~
PPTX
【第五回 ゼロからはじめる Oracle Solaris 11】02 既存環境を Solaris ゾーンに移行する際に押さえておきたいポイントと勘所
PPTX
【第五回 ゼロからはじめる Oracle Solaris 11】 01 システム間での迅速な移行を実現する ZOSS (Zones on Shared ...
PPTX
【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築
PPTX
【第四回 ゼロからはじめる Oracle Solaris 11】01 Solaris 11 を利用したシステム統合から旧バージョンの移行まで ~様々なシー...
PPTX
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
PPTX
【第二回 ゼロからはじめる Oracle Solaris 11】01 できることは人工知能なみ!? ~すべてを自動化できる AI とは?~
PDF
【第一回 ゼロからはじめる Oracle Solaris 11】03_知るべきは pkg(1) コマンドのみ! ~Image Packaging Syst...
PDF
【第一回 ゼロからはじめる Oracle Solaris 11】02_始めなければ何も始まらない!まずはインストールから始めよう
PDF
Solaris ディープダイブセミナー #4: A-3 障害管理アーキテクチャー Solaris Fault Manager
PDF
Solaris ディープダイブセミナー #4: A-1 Solaris 11 モーメンタム
PDF
Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0
PDF
Oracle Solaris 11 への移行のススメ
PDF
Oracle Solaris 11 - ソフトウェア・ライフサイクルを管理する新たなパッケージングシステム Image Packaging System ...
PDF
Oralce Solaris 11
PDF
Solaris 11 に見る、次世代ファイルシステムZFS
PDF
Solaris 11におけるシステム、ネットワーク、ストレージの仮想化機能
PDF
Solaris 11 ディープダイブセミナー Automatic Installer編
【特別編】【第七回 ゼロから始める Solaris 11.X】03 セキュリティ関連アップデート ~改ざんからシステムを守る!~
【特別編】【第七回 ゼロから始める Solaris 11.X】02 OpenStack on Solaris アップデート 〜 更に高まる Solaris...
【特別編】【第七回 ゼロから始める Solaris 11.X】01 仮想化関連アップデート ~Solaris ゾーンでもついにアレが可能に?~
【第五回 ゼロからはじめる Oracle Solaris 11】02 既存環境を Solaris ゾーンに移行する際に押さえておきたいポイントと勘所
【第五回 ゼロからはじめる Oracle Solaris 11】 01 システム間での迅速な移行を実現する ZOSS (Zones on Shared ...
【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築
【第四回 ゼロからはじめる Oracle Solaris 11】01 Solaris 11 を利用したシステム統合から旧バージョンの移行まで ~様々なシー...
【第二回 ゼロからはじめる Oracle Solaris 11】02 Solaris 11 を支える最強のファイルシステム ZFS ~ ZFS ファイルシ...
【第二回 ゼロからはじめる Oracle Solaris 11】01 できることは人工知能なみ!? ~すべてを自動化できる AI とは?~
【第一回 ゼロからはじめる Oracle Solaris 11】03_知るべきは pkg(1) コマンドのみ! ~Image Packaging Syst...
【第一回 ゼロからはじめる Oracle Solaris 11】02_始めなければ何も始まらない!まずはインストールから始めよう
Solaris ディープダイブセミナー #4: A-3 障害管理アーキテクチャー Solaris Fault Manager
Solaris ディープダイブセミナー #4: A-1 Solaris 11 モーメンタム
Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0
Oracle Solaris 11 への移行のススメ
Oracle Solaris 11 - ソフトウェア・ライフサイクルを管理する新たなパッケージングシステム Image Packaging System ...
Oralce Solaris 11
Solaris 11 に見る、次世代ファイルシステムZFS
Solaris 11におけるシステム、ネットワーク、ストレージの仮想化機能
Solaris 11 ディープダイブセミナー Automatic Installer編
Ad

Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management Facility Part I

  • 1. 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 2. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント (確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 3. サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management Facility Part I システム事業統括 ソリューション統括本部 野崎 宏明 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 4. スピーカー自己紹介  学生時代 – JDK 1.1でPrologの推論機構を実装し検索エンジンの真似ごと  1998年4月(日本)サン・マイクロシステムズ新卒入社 – ふと気づけば社会人15年目  ほぼずっとSE (Sはシステム?セールス?) – 主にSolaris、開発環境、Sun Rayシンクライアント – 今は主に通信系のお客様担当 – Oracle では SC (Sales Consultant) と呼ばれます  1年だけサポートエンジニア – Java VMの解析  Solarisエバンジェリスト(宣教師?!) – 最近は特にZFSの宣伝係としての出番増 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 5. Program Agenda  Solaris における予測的自己修復機能  Service Management Facility – Solaris 10 での実装  (Solaris 11 での実装はSolaris 10 での実装をベースにしています)  まとめと参考情報 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 6. 予測的自己修復とは  システムの可用性を大幅に向上させる機能 – 問題検出  状態監視と情報収集体系の強化・標準化 – 問題点分析  診断エンジンによる分析・診断 – 自動対応  障害部切り離し、プロセス再起動等  システムの継続運用  Fault Management Architecture (FMA) – 主にハードウェア Solaris 11 では  Service Management Facility (SMF) SMFとFMAの – 主にソフトウェア 連携・網羅性が向上 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 7. Service Management Facility ~Solaris 10 での実装内容~ (Solaris 11 での実装はSolaris 10 での実装をベースにしています) 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 8. Solaris 9までのサービス管理(1)  「サービス」の明確な定義無し – 1つまたは複数のdaemonプロセス..?  システム起動時、停止時 – initがランレベルに応じて/sbin/rc<r>を起動  <r>はランレベル(S, 1, 2, 3, 5, 6) – rc<r>は/etc/rc<r>.d以下のスクリプト群を呼ぶ  S??<name>はstartを引数として  K??<name>はstopを引数として – ??は数字で値の小さい順にrc<r>が実行 » 起動/終了順序はただ1個の列 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 9. Solaris 9までのサービス管理(2)  あるdaemonが落ちたとき – daemon再起動だけでよいと判断できたら  そのdaemonの起動手順に従って起動 – /etc/init.d以下のスクリプトがよく使われる » /etc/rc<r>.d以下のコピーかsymlinkが多い – 他の複数daemon等への依存が判断できたら  各daemonを依存関係に従い1個1個起動・停止 – S??やK??の順序を参考に..? – どのdaemon等まで依存するかわからない場合  システムの再起動??  あるdaemonを落としたいときも 専門知識無しでは かなり難しそう – 依存関係で同様の問題 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 10. SMF開発目的 真のセルフヒーリングの実現  主にソフトウェアの可用性向上 – SMF前  サービスは落ちたら落ちっぱなし  サービス間依存関係が曖昧もしくは不明 – 判断や対処の妨げになる – (rcでは1シーケンスの起動順のみ記述)  監視モジュールを作り込むか、クラスタリングによる対処が必要 – SMFにて  落ちたサービスは自動で復旧 – 管理者の介在不要  サービス単位での起動・停止が可能に  監視モジュール不要、クラスタリングの必然性は少なくなる 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 11. SMFとは サービスの起動、停止、状態表示などの統一的な管理機能を提供。 ハードウェア・ソフトウェア障害時に、自動的にサービスを再起動。  サービスをオブジェクトとして監視・管理 – /etc/init.d/*, /etc/rc*や/etc/inet/inetd.conf などの後継 – 従来のrcスクリプトも使用可能  ただしSMFの利便性が享受できない  サービス障害の検知、自動リスタート – 管理上、ソフトウェアのバグ、訂正できないハードウェアエラー  サービス構成情報(依存関係など)のチェック機能  ブート時の詳細表示オプションによるサービス起動確認  サービス並列起動による boot 時間の短縮  root 以外のユーザへの安全な権限委譲 – サービスベースのリソース管理が可能 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 12. SMFの構造 管理エージェント・ 監視エージェント・ inetd 配下の サービス群 コマンド コマンド サービス群 libscf(3LIB) レポジトリAPI Delegated restarter svc.configd(1M) inetd(1M) svc.startd(1M) init(1M) プロセス リポジトリ 起動 クライアント Solaris カーネル 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 13. SMFサービスを構成するパーツ  例: Solaris 10 のApache2 – FMRI (Fault-Management Resource Identifier)  svc:/network/http:apache2 – Manifest  /var/svc/manifest/network/http-apache2.xml – Daemon  /usr/apache2/bin/httpd – Exec Method  /lib/svc/method/http-apache2 – Log File  /var/svc/log/network-http:apache2.log 注: Solaris 10 では Apache 1.3 を rc スクリプト、Apache 2.0 を SMF で提供。 Solaris 11 では Apache 2.2 を SMF で提供。 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 14. サービス構成パーツの置き場 Solaris 10 の場合  Profile – システム全般のサービス設定 – /var/svc/profile  Manifest – 個々のサービスの詳細定義 – /var/svc/manifest  Exec Method – サービス起動・停止用実行ファイル(スクリプト) – /lib/svc/method  Log File – /var/svc/log 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 15. サービスカテゴリ Solaris 10 の場合  application:アプリケーション  milestones: サービス集合  platform: プラットフォーム固有  system: システムサービス – system/filesystem/*.xml  ポイント: 「ファイルシステムがマウントされ使用可能」というサービス  device: デバイス固有  network: ネットワーク・インターネット – network-physical.xml  ポイント: 「NICが使用可能」というサービス  site: サイト固有 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 16. milestoneとランレベル  single-user.xml – ランレベルS (シングルユーザーモード)  multi-user.xml – ランレベル2 (マルチユーザーモード)  multi-user-server.xml – ランレベル3 (NFSを共有したマルチユーザーモード) 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 17. FMRI  サービスを表す名称  ホスト内で一意であれば指定時に省略可能 – 省略例 (重複が無ければコマンド引数等以下どれでもよい)  svc://localhost/network/http:apache2  svc:/network/http:apache2  network/http:apache2  http:apache2  apache2 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 18. SMFコマンド  svcs – サービスの状態を報告  svcadm – サービスインスタンスの操作  svccfg – サービス構成の操作  svcprop – サービス設定プロパティ値の取得 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 19. svcsコマンド  svcs :サービス状態の表示  svcs -a :全てのサービス状態の表示  svcs -l <FMRI>:サービス詳細情報の表示  svcs -d <FMRI>:依存するサービスの表示  svcs -D <FMRI>: 依存されるサービスの表示  svcs -x :不具合のあるサービスの情報表示  各 -v : 詳細表示 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 20. デモ1  svcsコマンドによるサービス状態表示 – 状態表示内容の確認 – -a の有無による違い – サービスの詳細表示 – 依存しているサービスの表示 – 依存されているサービスの表示 20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 21. SMF - サービスの一覧表示(1) Solaris 10 での例 root@host1# svcs -a STATE STIME FMRI legacy_run 4月_01 lrc:/etc/rc2_d/S10lu legacy_run 4月_01 lrc:/etc/rc2_d/S20sysetup ... disabled 4月_01 svc:/system/metainit:default disabled 4月_01 svc:/platform/sun4u/mpxio-upgrade:default ... online 4月_01 svc:/system/svc/restarter:default online 4月_01 svc:/network/pfil:default ... offline 4月_01 svc:/application/print/ipp-listener:default offline 4月_01 svc:/application/print/rfc1179:default 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 22. SMF - サービスの一覧表示(2)  状態表示 – legacy_run  旧来のrcスクリプトによるサービスでSMF管理外 – online  サービスが有効で動作中 – offline  サービスは有効だが停止している – degraded  サービスが有効で動作中だが一部機能が制限 – disable  サービスが管理者によって無効とされている – maintenance  サービスは有効だが問題があり動作していない – uninitialized  サービスの構成が読み込まれる前 22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 23. SMF - サービスの詳細情報表示 Solaris 10 での例 root@host1# svcs -l apache2 fmri svc:/network/http:apache2 name Apache 2 HTTP server 有効 true 状態 online next_state none state_time 2007年08月28日 (火) 20時21分25秒 logfile /var/svc/log/network-http:apache2.log リスタータ svc:/system/svc/restarter:default contract_id 2865 dependency require_all/error svc:/network/loopback:default (online) dependency optional_all/error svc:/network/physical:default (online) 23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 24. SMF -サービスの依存関係  依存関係 – require_all が全てonline/degradedのとき – require_any のどれかがonline/degraded のとき – optional_all がonline/degradedか、管理待ちのとき (つまりオプション) – exclude_all の全てがdisabled/maintenance のとき  依存するサービスが停止・更新したら – restart_on='none' → 停止しない – restart_on='error' → 依存するサービスがエラー停止なら停止 – restart_on='restart' → 'error' +エラー以外の停止時も停止 – restart_on='refresh' → 'restart' +更新時も停止 24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 25. SMF - サービスの依存関係表示 Solaris 10 での例  依存しているサービスの表示 root@host1# svcs -d apache2 STATE STIME FMRI online 18:45:18 svc:/network/loopback:default online 18:45:21 svc:/network/physical:default  依存されているサービスの表示 root@host1# svcs -D apache2 STATE STIME FMRI 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 26. svcadmコマンド  svcadm enable <FMRI> – サービスの有効化と起動  svcadm disable <FMRI> – サービスの無効化と停止 – リブート後も保持される  svcadm clear <FMRI> – maintenance状態からの復帰  svcadm restart <FMRI> – サービスの再起動  svcadm refresh <FMRI> – サービス構成の再読込  各 -t : 一時的な変更 26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 27. デモ2  svcadmコマンドによるサービスの起動と停止 – サービスの状態確認 – 別ウィンドウでログを表示 – サービスの有効化と起動 – サービスの再起動 – サービスの無効化と停止 – 自動再起動 – 起動しない場合のトラブル対応 27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 28. SMF - サービスの起動・停止(1) Solaris 10 での例  サービス状態の確認 root@host1# svcs -a | grep apache legacy_run 4月_01 lrc:/etc/rc3_d/S50apache disabled 20:04:30 svc:/network/http:apache2 root@host1# svcs -v apache2 STATE NSTATE STIME CTID FMRI disabled - 20:04:30 - svc:/network/http:apache2 – サービスは停止している  サービスを有効化し起動 root@host1# svcadm enable apache2 root@host1# svcs -v apache2 STATE NSTATE STIME CTID FMRI online - 20:10:51 2861 svc:/network/http:apache2 28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 29. SMF - サービスの起動・停止(2) Solaris 10 での例  ログにより起動を確認 root@host1# tail -f /var/svc/log/network-http:apache2.log [ Apr 25 20:10:50 Enabled. ] [ Apr 25 20:10:50 Executing start method ("/lib/svc/method/http-apache2 start") ] [ Apr 25 20:10:51 Method "start" exited with status 0 ]  プロセス情報確認 root@host1# svcs -p apache2 STATE STIME FMRI online 20:10:51 svc:/network/http:apache2 20:10:51 7425 httpd 20:10:52 7426 httpd 20:10:52 7427 httpd 20:10:52 7428 httpd 20:10:52 7429 httpd 20:10:52 7430 httpd 29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 30. SMF - サービスの起動・停止(3) Solaris 10 での例  サービスの再起動 root@host1# svcadm restart apache2 root@host1# svcs -v apache2 STATE NSTATE STIME CTID FMRI online - 20:15:44 2863 svc:/network/http:apache2  ログによる再起動の確認 root@host1# tail -f /var/svc/log/network-http:apache2.log [ Apr 25 20:15:43 Stopping because service restarting. ] [ Apr 25 20:15:43 Executing stop method ("/lib/svc/method/http-apache2 stop") ] [ Apr 25 20:15:43 Method "stop" exited with status 0 ] [ Apr 25 20:15:43 Executing start method ("/lib/svc/method/http-apache2 start") ] [ Apr 25 20:15:44 Method "start" exited with status 0 ] 30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 31. SMF - サービスの起動・停止(4) Solaris 10 での例  自動再起動 root@host1# kill 7425 root@host1# svcs -p apache2 STATE STIME FMRI online 20:21:25 svc:/network/http:apache2 20:21:25 7462 httpd 20:21:26 7463 httpd 20:21:26 7464 httpd 20:21:26 7465 httpd 20:21:26 7466 httpd 20:21:26 7467 httpd  プロセスIDが新しくなっている 31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 32. SMF - サービスの起動・停止(5) Solaris 10 での例  自動再起動をログで確認 root@host1# tail -f /var/svc/log/network-http:apache2.log [ Apr 25 20:21:24 Stopping because all processes in service exited. ] [ Apr 25 20:21:24 Executing stop method ("/lib/svc/method/http-apache2 stop") ] httpd (no pid file) not running [ Apr 25 20:21:24 Method "stop" exited with status 0 ] [ Apr 25 20:21:24 Executing start method ("/lib/svc/method/http-apache2 start") ] [ Apr 25 20:21:25 Method "start" exited with status 0 ] 32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 33. トラブル対応  svcs -xv でサービスの状態を確認 – http://www.sun.com/msg/<MSG-ID> を確認  My Oracle Support へのアクセス権が必要 – サービスのログを確認  /var/svc/log や /etc/svc/volatile  コンソールやsyslog (/var/adm/messages)をチェック  不具合解消後はsvcadm clear <FMRI>  ブート時にシステムがハングする場合 – boot -m milestone=none – プロンプトでログインしてsvcadm milestone all – svcsでシステムの状況を調査 33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 34. svcprop / svccfgコマンド  svcprop <FMRI> – プロパティ値の表示  svccfg list – サービスリスト表示  svccfg – サービスパラメータ設定  svccfg export <FMRI> – サービスのmanifest を標準出力に出力  svccfg import <manifest_file> – manifest_file をリポジトリに取り込む 34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 35. デモ3  svccfg コマンドによるサービスの設定変更 – サービスリポジトリの特定 – リポジトリ情報の表示 – 設定されているサービスのリスト表示 – サービスのパラメータ設定 35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 36. SMF - サービスリポジトリ Solaris 10 での例  リポジトリの実体(SQLite形式) root@host1# cd /etc/svc root@host1# ls -l repository.db -rw------- 1 root sys 2268160 4月 25日 20:10 repository.db  リポジトリ情報の表示 root@host1# svcprop apache2 httpd/ssl boolean false httpd/stability astring Evolving loopback/entities fmri svc:/network/loopback:default loopback/grouping astring require_all loopback/restart_on astring error loopback/type astring service physical/entities fmri svc:/network/physical:default : 36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 37. SMF - 既存サービスの設定変更 Solaris 10 での例  設定されているサービスのリスト表示 root@host1# svccfg list system/console-login system/device/local ... network/http ...  サービスのパラメータ設定 root@host1# svccfg svc:> select network/http:apache2 svc:/network/http:apache2> setprop parameter=”value” svc:/network/http:apache2> exit 37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 38. SMF - リスタータがinetdのサービス  inetadm – リスト表示  inetadm -e <FMRI> – 有効化して起動  inetadm -d <FMRI> – 無効化して停止  inetadm -l <FMRI> – サービスの詳細表示  inetconv – 既存 inetd サービスの取り込みや inted.conf 形式から manifest 形式への変換 38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 39. SMF - rcスクリプトなどから新規サービスの作成 Solaris 10 での例 1. 類似サービスのエクスポート root@host1# svccfg export network/http > apache.xml root@host1# cat apache.xml (/var/svc/manifest/network/http-apache.xml同様の内容) 2. manifestの編集 3. 必要ファイルの配備 4. サービスのインポート (Solaris 11 ではsvcadm restart manifest-import) root@host1# svccfg import apache.xml 詳細は下記ドキュメント参照  How to Migrate Control of System Services from Scripts to the Service Management Facility • http://www.oracle.com/technetwork/articles/servers-storage-admin/scripts-to-smf-1641705.html  How to Create an Oracle Solaris Service Management Facility Manifest • http://www.oracle.com/technetwork/server-storage/solaris/solaris-smf-manifest-wp-167902.pdf 39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 40. デモ4  inetd 管理下サービスの操作 – リスト表示 – 詳細表示 – 無効化 – 有効化 – 既存サービスの取り込み  Solaris 10 にて新規サービスの作成 – lrc:/etc/rc3_d/S50apache を SMF 管理下に – apache2 をベースに apache サービスを構成 40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 41. Solaris 9 までのサービス管理との違いのまとめ  サービスの無効化 – 従来: mv /etc/rc2.d/S75cron /etc/rc2.d/x.S75.cron – SMF: svcadm disable system/cron:default  サービスの再起動 – 従来: /etc/init.d/sshd stop; /etc/init.d/sshd start – SMF: svcadm restart network/ssh:default  ランレベルの変更 – 従来: init S – SMF: svcadm milestone -d milestone/single-user:default 41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 42. 最近のOS内サービスの依存関係はここまで複雑 もはやスクリプトで手動で管理するのは限界 42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 43. SMFまとめ  サービス開発者、システム開発者 – 依存関係やサービス定義を明確に行う必要あり  サービスの可用性向上につながる  サービス監視モジュール不要  クラスタリングの必然性は少なくなる – 可用性要件に基づいて検討  システム管理者 – 落ちたサービスは基本的に自動で復旧  管理者介在不要 – 自動復旧しないサービス  統一的な手順で調査と対処が可能 43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 44. 参考情報  Oracle Solaris 11 マニュアル (日本語) 「Oracle Solaris の管理: 一般的なタスク」 – http://docs.oracle.com/cd/E26924_01/html/E25810/index.html 6. サービスの管理(概要)、7. サービスの管理(手順)  (英語版) – http://docs.oracle.com/cd/E23824_01/html/821-1451/index.html 6. Managing Services (Overview), 7. Managing Services (Tasks)  Solaris 10 マニュアル (日本語) 「Solaris のシステム管理 (基本編)」 – http://docs.oracle.com/cd/E24845_01/html/819-0378/index.html 18. サービスの管理(概要)、19. サービスの管理(手順)  Oracle University 「Solaris 8/9 管理者の為のSolaris 10 システム管理速習」 – http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getCourseDesc?dc=D66660JP10  OTN (Oracle Technology Network) Solaris SMF ページ – http://www.oracle.com/technetwork/server-storage/solaris11/technologies/smf-1690889.html  SMF依存関係グラフ例 – http://opensolaris.org/os/community/smf/scfdot/ 44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 45. 45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 46. 46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.