火曜日 7 17, 2012

Oracle x86 サーバー の名称が変わりました!!



以前、本ブログのエントリー「満を持して登場!! Intel Xeon E5-2600搭載 Sun x86 M3 サーバー」でもご紹介しました Oracle x86 M3 サーバー群(2012年4月10日アナウンス)ならびに 4ソケット/8ソケット Oracle x86 M2 サーバーの名称が、 Oracle Engineered System に適合する形で 2012年7月10日に名称変更されました。

各システムの名称は以下の様になります。

Oracle’s x86 Server TypeFormer Product NameNew Product Name
2 socket 1U EnterpriseSun Fire X4170 M3Sun Server X3-2
2 socket 2U EnterpriseSun Fire X4270 M3Sun Server X3-2L
2 socket 2U Carrier-GradeSun Netra X4270 M3Netra Server X3-2
2 socket Blade EnterpriseSun Blade X6270 M3Sun Blade X3-2B
2 socket Blade Carrier-GradeSun Netra X6270 M3Netra Blade X3-2B
4 socket 3U EnterpriseSun Fire X4470 M2Sun Server X2-4
8 socket 5U EnterpriseSun Fire X4800 M2Sun Server X2-8



USページはこちら



今後とも Oracle x86 サーバー をよろしくお願い致します。



月曜日 7 02, 2012

Oracle VM Server for SPARC (旧称 LDoms) 2.2 リリース!

SPARC T シリーズサーバーで利用できるファームウェアベースのハイパーバイザー型仮想化ソフトウェアである Oracle VM Server for SPARC の最新バージョン 2.2 がリリースされました! OVM for SPARC 2.2 は前バージョン同様に、UltraSPARC T2, T2+, SPARC T3, SPARC T4 プロセッサが搭載される SPARC T シリーズサーバーにて利用可能です!

OVM for SPARC 2.2 は 2012 年 5 月 24 日にリリースが発表されたのですが、このときには Oracle Solaris 10 版のみが実際に利用可能でした。 Oracle Solaris 11 版は、SRU8.5 に含まれてリリースされることになったため、その利用は 6 月 22 日の SRU8.5 のリリースを待たなければいけませんでした。 ついに Solaris 10, Solaris 11 とも OVM for SPARC 2.2 が利用可能となりましたので、その新機能を (OTN のウェブサイト(英語)マニュアル (Release Note)にも紹介がありますが) 本 Blog にて簡単に紹介したいと思います。
  • SR-IOV サポート
    • 1つの物理 I/O インタフェースを仮想的に複数のゲストドメインへ割当てることが可能です。OVM for SPARC 2.2 の場合、まずはネットワークインタフェースで利用可能になります。同じことは、OVM for SPARC のもつ、vsw と vnet で構成する仮想ネットワークでも可能ですが、SR-IOV を使うことで、CPU やハイパーバイザソフトウェアのオーバーヘッドなしで I/O を実行できるところが魅力となります。
    • 現時点では制御ドメインとして Solaris 11 が必要、サポートされる NIC としては SPARC T3/T4 サーバーラインナップのオンボードネットワークポートおよび 10Gb Ethernet カード ((X)1109A-Z, (X)1110A-Z, (X)4871A-Z)) となります。
  • 異なる CPU を搭載するシステム間でのライブマイグレーションのサポート
    • Oracle VM Server for SPARC 2.1 でライブマイグレーションがサポートされましたが、このときは同じ種類かつ同じ周波数の CPU を搭載するシステムでのみサポートという制限事項がありました。今回 OVM for SPARC 2.2 では、この制限を取り除く機構が実装されました。ドメインに対して cpu-arch プロパティが用意され、generic に設定したときにゲストドメインが CPU タイプに依存しないマイグレーションを実行できるようになります。
    •  Solaris 11 がゲストドメインとして構成されている場合にこの機能がサポートされます。
  • 仮想ネットワークの Rx Dring モードのサポート
    • ドメインのプロパティとして extended-mapin-space を on にすると、さらなる LDC 共有メモリスペースを使用することで、仮想ネットワークのパフォーマンスとスケーラビリティを向上させます。
    •  こちらは Solaris 10 8/11 (Update 10) および Solaris 11 で利用可能です。
以下は、前バージョンの OVM for SPARC 2.1 でもパッチや SRU を適用することで可能なものでしたが、OVM for SPARC 2.2 のリリースのタイミングで改めて紹介されています。
  • 名前付き CPU コアおよびメモリーブロックの割当
    • この機能により管理者が明示的にこのコアをゲストドメインに割当てる、ということや、この物理メモリアドレスからどれだけのサイズをゲストドメインに割当てる、ということが可能になりました。これは上級者向けの機能ということになります。
    •  この機能は Solaris 11 SRU4 の OVM for SPARC 2.1 から追加された機能です。
    •  この機能は制御ドメインが Solaris 11 の場合にのみ利用可能です。
  •  CPU threading モード
    • UltraSPARC T2 以降の CPU は、コアあたり 8 CPU thread が動作しますが、ドメインに対する CPU threading モードを max-ipc に設定することで コアあたり 1 thread でのみ動作するようにすることができます。これは基本的に SPARC T4 CPU 向けに使用する機能として実装されました。
    • この機能は Solaris 10 の OVM for SPARC 2.1 に対して Patch ID 147507-01 以降のパッチを適用することでサポートされた機能です。Solaris 11 の場合には SRU4 以降の OVM for SPARC 2.1 からサポートということになっています。
最後に、OVM for SPARC は 昨年(2011年) 12 月に Oracle ソフトウェアのライセンスにおいて Hard Partitioning ライセンスとしてみなされ、その場合の構成方法がホワイトペーパーとしてリリースされましたが、OVM for SPARC 2.2 では、CPU のコア全体の割当を ldm set-core/add-core でできるようになっているため、それをベースにマニュアル (管理ガイド) 内に記載され、これも改めてこのリリースの最新情報としてリストされています。

火曜日 4 10, 2012

Oracle Solaris ナイトセミナー #2 開催!

復活!! Oracle Solaris ナイトセミナー #1 に参加頂きありがとうございました。
途中、「お前誰だよっ!」的なサプライズがあったり困惑した方も多かったかと思いますが、大きな声で年齢をばらされたりなど不本意ながらも本人は大変喜んでおりました。
この場を借りて、お礼を申し上げます。

さて、そんな喜びを今頃になって噛み締めている担当者ですが、#1 でお約束したとおり、Mr. Solaris の下に集う Solaris を愛してやまない中の人たちが、手作りでお届けするセミナー 2 回目となる「Oracle Solaris ナイトセミナー #2」開催のお知らせを、やっとお届けできることとなりました!

今回は、参加登録に利用するのはイベント開催支援ツール:ATND(アテンド)が提供するイベント ATND です。
こちらでは、チケットを利用した申し込みとなり、会員登録せずに申し込みも可能となりました。
本セミナー自体は、無料セミナーですのでお気軽にご参加頂ければと思います。

第ニ弾となる「Oracle Solaris ナイトセミナー # 2」は、2012/04/20 (金) 18:30 開催です。

今回の内容も、昨年行われた「Oracle Solaris 11テクニカル・ディープ・ダイブ第 1 弾」の内容を、ナイトセミナー風にアレンジした、「Oracle Solaris 11テクニカル・ディープ・ダイブ第 1 弾 ナイトセミナー風」となり、ZFS にフォーカスした内容となっています。

セッション 1 は、Solaris エバンジェリストである野崎が、「ZFS はストレージをどう仮想化できるのか? Solaris 11 は、なぜ ZFS を必要としたのか? 」を解説する「ZFSによるストレージ仮想化」です!

セッション 2 は、「もう一つストレージの仮想化機能 “COMSTAR”概要」です。こちらは、この記事を書いている人が担当しますので、軽く流してください。

そして、衣装がパワーアップしてしまった「ナイトセミナーでおなじみ! – Solaris 3 分クッキング」!
調理にも節約は大事です。というわけで、ZFS と節約といったら圧縮か?と思わせて重複排除を持ってきた「ZFS, dedup で節約してみる」です!

また、ここまで読んでしまいましたね。参加するしかないですよね?というわけで、参加申し込みは下記の ATND でお願い致します!


みなさまのご参加をお待ちしております。

あ。。。サブタイトルついてない。。。Solaris 11 深掘り #1 の 2 です!

Oracle Develop セッション資料公開

先週行われました、Oracle OpenWorld Tokyo 2012には、ご来場いただけましたでしょうか。

実はOpenWorldと同時開催の形で、4月6日(金)に「Oracle Develop」と題しました、技術者向けのセッションを実施いたしました。
Oracleのイベントではありますが、SolarisからもSolaris 11に関するセッションをいくつか実施しております。
Solaris 11での変更点やIPSパッケージの作成、それから移行関連の情報を盛り込みました。

その際に使用したセッション資料を早速公開しております。
久しぶりにSolaris関連でまとまった資料が出来上がりましたので、下記のリンクよりご覧ください。

Oracle Develop セッション資料

月曜日 4 02, 2012

SPARC SuperCluster T4-4 日本上陸!

SPARC SuperCluster T4-4 がついに Oracle Solution Center Tokyo に到着しました!今回はその搬入風景を Pillar Axiom 600 の項と同様、紹介したいと思います。


トラックから今まさに SPARC SuperCluster T4-4 が運び出されるようとしています。


Oracle Solution Center Tokyo へ運び入れ、そしてビニールをとりはずし...


位置を調整し、ついに設置完了です。

今後 SPARC SuperCluster T4-4 を利用した POC (Proof of Concept) がここ日本で可能となりますので、是非ご利用いただければと思います!と、その前に SPARC SuperCluster T4-4 導入により何がうれしいの?という疑問をもたれた本 blog をお読みの方...是非 4月4日から開催される Oracle OpenWorld Tokyo 2012 にご来場ください。
  • 4/5(木) ゼネラルセッション G2-01 「ビッグデータ&クラウド時代を勝ち抜くITプラットフォーム戦略」(11:50 - 13:20)@ベルサール六本木
  • 4/5(木) S2-42 「最新UNIX統合プラットフォーム - SPARC SuperCluster」 (16:30 - 17:15)@グランドハイアット東京
  • 4/5(木) S2-53 「Oracle E-Business Suiteのパフォーマンスと可用性を最大化し、 導入/運用コストを劇的に削減する最新のシステム基盤”SPARC SuperCluster”」(17:40 - 18:25)@グランドハイアット東京
また、グランドハイアット東京には展示ブースがありますので、そちらにも是非お立ち寄りください! これは絶対見逃せません!!

Oracle OpenWorld Tokyo 2012 お申込み URL
http://www.oracle.com/openworld/jp-ja/index.html
招待コードは 7264 を記載してお申し込みください。

日曜日 4 01, 2012

SPARC T4 モーメンタム: SPARC T4 サーバーでいいんです!!



 昨年 2011 年 9 月に SPARC T4 プロセッサとそれを搭載した SPARC T4 サーバーラインナップが発表され、更に 2011年 10月に出荷が開始され早くも半年が過ぎようとしています。

 正確な数をお伝えすることはできませんが、SPARC T4 サーバーシリーズもおかげさまでワールドワイドで順調に出荷台数を伸ばしており、これをお読みになられている方の中にも既に SPARC T4 プロセッサならびに SPARC T4 サーバーの素晴らしさを実際に体感されている方もいらしゃると思います。

 そのような状況の中、更に追い風な事として、4/4, 4/5, 4/6 と 3日間、ここ東京で Oracle OpenWorld Tokyo 2012 が開催されます。



 Oracle OpenWorld Tokyo 2012 では Oracle のサーバー&ストレージおよび Oracle Solaris の開発部門トップのジョン・ファウラーを筆頭に SPARC&Solaris のキーパーソンが多数来日し、SPARC&Solaris の現状ならびに将来についての最新情報を聞ける絶好のチャンスですので、システムズ製品にご興味のある方は是非、会場に足を運んでいただきたいと思います。

Oracle OpenWorld Tokyo 2012 お申込み URL
http://www.oracle.com/openworld/jp-ja/index.html
招待コードは 7264 を記載してお申し込みください。


 そこで、Oracle OpenWorld Tokyo 2012 を直前に控えてという状況ですので、ここでもう一度、SPARC T4 プロセッサ のおさらいしておきたいと思います。

 SPARC T4 プロセッサは従来の SPARC T3 プロセッサのコア(S2コア)をスクラッチから設計し直した全く新しいプロセッサコア(S3コア)を持つオラクル社の最新プロセッサです。

 しかしながら、" T " という冠が付いている関係なのか(?)、どうしても SPARC T1/T2/T3 プロセッサの得意としていた大量データー同時並列処理能力(スループット性能)特性に比重を置いた従来のイメージばかりが先行して、


<お客様>


「SPARC T4 プロセッサのシングルスレッド性能って本当に早いんですか?」

「SPARC T4 プロセッサってDB等のミドルウェアや高速バックアップの用途で使えるんですか?」



というお客様からのご質問が多く、


<私>


「各種ベンチマーク測定結果から、シングルスレッド性能が要求される用途でも問題ございません」

「従来の SPARC T3 プロセッサが得意とするスループット性能もスレッドあたり2倍に高速になっています」



という説明を、何度もお客様先やセミナー等でご説明させていただいたのをつい先日のことのように思い出されます。

 最近、こういった問い合わせも SPARC T4 サーバーの出荷台数が増えるに従って、受ける機会が減ってきていることから、SPARC T4 プロセッサならびに SPARC T4 サーバーの素晴らしさが実際にお客様やパートナー様に認知されてきていると確信しています。

 繰り返しになりますが、


 T4 プロセッサのシングルスレッド性能は弊社 SPARC サーバープロダクトラインにおいて現時点でトップレベルの領域です。更に、マルチスレッド性能は従来同様に折紙つきの素晴らしいパフォーマンス&スケーラビリティです。

 既に、各種パフォーマンス測定結果が公開され、多数のワールドレコードを達成しており、見ていただければ分かる通り、WebベースアプリケーションからDBアプリケーションまで幅広くお使いいただける素晴らしいサーバーとなっています。

(各種ベンチマーク測定結果)


 前置きはこのくらいにして SPARC T4 プロセッサの特徴について具体的にまとめてみたいと思います。

 < T4 プロセッサの概要 >
  •  次世代 SPARC コア(S3コア)の登場
    • x5倍のシングルスレッドパフォーマンス向上
    • x2倍のスレッドスループットパフォーマンス向上
  •  Crypto (暗号化機能)のパフォーマンス向上
  •  データーベースアプリケーションに対するハードウェア/ソフトウェアの最適化策の組み込み
  •  グルーレスな 1, 2,& 4 ソケットプロセッサ構成


 < T4 プロセッサ マイクログラフ >
  •  8x SPARC S3 コア (64スレッド/チップ)
  •  4MB 共有 L3 キャッシュ (8バンク/16ウェイ)
  •  8x9 クロスバー
  •  4x DDR3 メモリーコントローラー @6.4Gbps
  •  6x コヒーレンシーリンク @9.6Gbps
  •  2x8 PCIe 2.0 (5GTS)
  •  2x10Gb XAUI イーサーネット


 < S3コアブロックダイアグラム >
  •  ALU : Arithmetic Logic Unit
  •  BRU : Branch Logic Unit
  •  FGU : Flouting-point Graphics Unit
  •  IRF : Integer Register File
  •  FRF : Flouting-point Register File
  •  WRF : Working Register File
  •  MMU : Memory Management Unit
  •  LSU : Load Store Unit
  •  Crypto(SPU) : Streaming Processing Unit
  •  TRU : Trap Logic Unit


< S3コアオーバービュー >
  •  高クロック
  •  8スレッド/コア
  •  二重発行命令
  •  Out-of-Order 実行
  •  16ステージインテジャーパイプライン
  •  ダイナミックスレッディング
  •  ハードウェアプリフェッチ
  •  新分岐予測機構
  •  ストアパイプライン
  •  64エントリ ITLB と 128エントリ DTLB
  •  64KB 4ウェイ L1 インストラクションキャッシュ
  •  128KB 8ウェイ コア単位 L2 キャッシュ


 < SPARC T4 コアパイプライン vs SPARC T3 コアパイプライン >
  •  SPARC T4 プロセッサパイプライン上の Out-Of-Order ステージ
    •  Pick ステージの前まで In-Order 実行
    •  Pick ステージから Commit ステージまでが Out-Of-Order 実行
    •  Commit ステージから In-Order 実行


 < SPARC T4 ダイナミックスレッド >
  •  シングルスレッドモードvsマルチスレッドモードといったようなモードビットは存在しない
  •  各サイクルごとにActiveなスレッドに動的にリソースを割り当てる
  •  ヘテロジーニアスワークロードのスループットの向上
  •  全体的なアプリケーションスケールの改善


 < SPARC T4vsT1/T2/T3 パフォーマンス >
  •  SPARC T4 サーバー
    •  SPARC T3 サーバーが得意としていたWebアプリケーションも得意
    •  DBやバックアップといったシングルスレッドアプリケーションも得意



 上記の内容からも分かる通り、SPARC T4 プロセッサ&Solaris の組み合わせはあらゆる処理(アプリケーション)に順応できるサーバー製品になっていますので、是非一度、お試しいただき、その素晴らしさを体感していただければと思います!!。




< Oracle OpenWorld Tokyo 2012 展示会場について >

 最後に、Oracle OpenWorld Tokyo 2012 ではグランドハイアット東京にて、SPARC T4 サーバーならびにストレージプロダクトの実機を 4/4, 4/5, 4/6 の 3日間展示しています。説明員も配置されますので実機を見ながら詳細をご確認いただくことが可能ですので、各セッションの間の空き時間等を利用して是非お越しいただければと思います。



展示会場に関するインフォメーション URL
http://www.oracle.com/openworld/jp-ja/exhibit/index.html


木曜日 3 29, 2012

SPARC T4 サーバー省電力機能

節電や電力消費をおさえるといったことが関心事となる昨今、劇的な性能向上を果たし、現在非常に注目が集めている SPARC T4 サーバーでも省電力機能が利用可能です。設定は非常に簡単。T4 サーバーのもつ SP(Service Processor) である ILOM から
-> set /SP/powermgmt policy=elastic 
とするだけ。実は通常サーバー出荷時には電力モードがパフォーマンスモードと呼ばれるモードで届くのですが、上記コマンドによりそれを節電モードとするエラスティックモードへと変更します。ILOM の /SYS/VPS/history/0 からサーバーの消費電力を確認できるのですが、下記は実際に SPARC T4-1 で OS のみが動作しているときにパフォーマンスモードからエラスティックモードにした場合の時間経過と消費電力値の推移です。表示は 日付 時刻 = 消費電力値(W)のようにリストされています。
        Mar 26 12:04:54 = 294
        Mar 26 12:03:53 = 292
        Mar 26 12:02:53 = 292
        Mar 26 12:01:53 = 293
        Mar 26 12:00:53 = 292
        Mar 26 11:59:53 = 293
        Mar 26 11:58:54 = 293
        Mar 26 11:57:54 = 294
        Mar 26 11:56:54 = 293 
        Mar 26 11:55:54 = 348 <** エラスティックモードにしたこのあたりから消費電力が落ちはじめる
        Mar 26 11:54:54 = 379
        Mar 26 11:53:54 = 380
        Mar 26 11:52:54 = 381
        Mar 26 11:51:54 = 380
        Mar 26 11:50:54 = 379
        Mar 26 11:49:54 = 381 
エラスティックモードにしただけであっさり約 90W の節電となりました!

ふと psrinfo コマンドでプロセッサを確認すると...
# psrinfo
0       on-line   since 03/23/2012 17:39:28
1       on-line   since 03/26/2012 20:53:56 
通常 SPARC T4-1 サーバーの場合、8 コアで、コアあたり 8 CPU スレッドをもつ SPARC T4 CPU が 1 ソケット搭載されているので、psrinfo コマンドからは 64 CPU として OS から確認できるはずなのですが、ここではなんと 2 CPU にしか見えていません!

そうなんです、エラスティックモードにすると、節電のために使用されていない無用なコアやスレッドは自動的に無効化してくれるのです。その他にもユーザーからは確認できないのですが、使われていないメモリもディープアイドルモードと呼ぶ節電モードに勝手になり、その他、CPU クロックサイクルのスキップといったことまで自動的に行います。その結果として、上記のように消費電力を削減します。つまり、サーバーを使わないときは徹底的に電力を使わないようにする機能です。もちろん、上記のように 2 CPU しか動いていない状態でサーバーに負荷がかかってきたときには、自動的に CPU 数は増えてそのワークロードに対応していきます。例えば、サーバーの利用頻度が著しく下がる時間帯があるような利用形態の場合には、その際に自動的に節電されるので、とても便利ですし、サーバー台数が多い場合には電力コスト削減に寄与できそうです。

この省電力機能は、実は SPARC T4 サーバーがデフォルトでもつ Oracle VM Server for SPARC (OVM for SPARC) と呼ばれるハイパーバイザー型のサーバ仮想化機能を通して実装されています。したがって、この機能の詳細は Oracle VM Server for SPARC のマニュアル、管理ガイド 第10章 リソースの管理 - 電源管理の使用 に記載されています。また、最近、英文にはなりますが、OTN に How to Use the Power Management Controls on SPARC Servers という記事が掲載されておりこちらがより詳細に語られています。

さて、省電力機能だけでなく、SPARC T4 サーバーの価値を、まもなく開催される Oracle OpenWorld Tokyo 2012 でさらに理解を深めてはいかがでしょうか? オラクルのハードウェア開発部門のトップであるジョン・ファウラーが以下のセッションで登壇します!
  • 4/4(水) 基調講演 K1-01「ENGINEERED FOR INNOVATION 技術の融合が、世界を変える。」(9:00-11:15)
  • 4/5(木) ゼネラルセッション G2-01 「ビッグデータ&クラウド時代を勝ち抜くITプラットフォーム戦略」(11:50 - 13:20)
これは絶対見逃せません!!

Oracle OpenWorld Tokyo 2012 お申込み URL
http://www.oracle.com/openworld/jp-ja/index.html
招待コードは 7264 を記載してお申し込みください。

月曜日 3 26, 2012

「SPARC T4」プロセッサ搭載のエントリ・サーバー : Netra SPARC T4-1



 「SPARC T4」プロセッサを搭載したエントリ・サーバーとして Netra SPARC T4-1 ならびに Netra SPARC T4-2 が2012年1月10日にアナウンスされ、3月15日より提供が開始されました。(発表資料)

 そして日本のラボにも Netra SPARC T4-1 の 4core モデル( T4 シリーズでは初の 4core モデル)(*)が届いたので、早速実機でプロセッサ周りをみてみました。(*)( Netra SPARC T4-1 システムには 4core モデルと 8core モデルがあります)

 以下が prtdiag コマンドと pginfo コマンドの出力結果になります。

 8スレッド/1core ですので prtdiag コマンド結果から4core=32スレッドになってますね。また、pginfo コマンド結果を見ればより具体的な各core のスレッドの割り当て状況が見て取れます。

 # ./prtdiag -v
System Configuration:  Oracle Corporation  sun4v Netra SPARC T4-1
メモリーサイズ: 130560 M バイト

================================ 仮想 CPU ================================


CPU ID Frequency Implementation         Status
------ --------- ---------------------- -------
0      2848 MHz  SPARC-T4               on-line
1      2848 MHz  SPARC-T4               on-line
2      2848 MHz  SPARC-T4               on-line
3      2848 MHz  SPARC-T4               on-line
4      2848 MHz  SPARC-T4               on-line
5      2848 MHz  SPARC-T4               on-line
6      2848 MHz  SPARC-T4               on-line
7      2848 MHz  SPARC-T4               on-line
8      2848 MHz  SPARC-T4               on-line
9      2848 MHz  SPARC-T4               on-line
10     2848 MHz  SPARC-T4               on-line
11     2848 MHz  SPARC-T4               on-line
12     2848 MHz  SPARC-T4               on-line
13     2848 MHz  SPARC-T4               on-line
14     2848 MHz  SPARC-T4               on-line
15     2848 MHz  SPARC-T4               on-line
16     2848 MHz  SPARC-T4               on-line
17     2848 MHz  SPARC-T4               on-line
18     2848 MHz  SPARC-T4               on-line
19     2848 MHz  SPARC-T4               on-line
20     2848 MHz  SPARC-T4               on-line
21     2848 MHz  SPARC-T4               on-line
22     2848 MHz  SPARC-T4               on-line
23     2848 MHz  SPARC-T4               on-line
24     2848 MHz  SPARC-T4               on-line
25     2848 MHz  SPARC-T4               on-line
26     2848 MHz  SPARC-T4               on-line
27     2848 MHz  SPARC-T4               on-line
28     2848 MHz  SPARC-T4               on-line
29     2848 MHz  SPARC-T4               on-line
30     2848 MHz  SPARC-T4               on-line
31     2848 MHz  SPARC-T4               on-line

======================= Physical Memory Configuration ========================
 以下省略
 
# pginfo -p -T
0 (System [system,chip]) CPUs: 0-31
`-- 3 (Data_Pipe_to_memory [system,chip]) CPUs: 0-31
    |-- 2 (Floating_Point_Unit [core]) CPUs: 0-7
    |   `-- 1 (Integer_Pipeline [core]) CPUs: 0-7
    |-- 5 (Floating_Point_Unit [core]) CPUs: 8-15
    |   `-- 4 (Integer_Pipeline [core]) CPUs: 8-15
    |-- 7 (Floating_Point_Unit [core]) CPUs: 16-23
    |   `-- 6 (Integer_Pipeline [core]) CPUs: 16-23
    `-- 9 (Floating_Point_Unit [core]) CPUs: 24-31
        `-- 8 (Integer_Pipeline [core]) CPUs: 24-31


 T4 プロセッサに関しては既に様々なメディアで既に取り上げていただいており、繰り返しになりますが、従来の T3 プロセッサ(S2 core)と比較してT4 プロセッサ(S3 core)は単一スレッドの処理能力が5倍に向上しており、従来の T3 プロセッサ(S2 core)が得意としていた優れた大量データー同時並列処理能力(スループット性能)を維持し、かつ、シングルスレッド性能を向上させたことにより、あらゆる場面でエンタープライズ・アプリケーションに求められる能力を発揮でき、高速バッチ処理も可能になっています。

 よって、T4 プロセッサってどんな感じ?っとご興味がある方はまずはこのT4 プロセッサのエントリ・サーバーである Netra SPARC T4-1 4core モデルをお手にしてみてはいかがでしょうか?。実際に触っていただければ即、T3 プロセッサとの特性の違いを実感していただけると思います。

 以下に簡単ですが、Netra SPARC T4-1 のスペックを記載しておきます。







  • Netra SPARC T4-1 仕様
    • Computing
      • 1 x SPARC T4 4コア 32スレッド or 8 コア 64 スレッド 2.85GHz CPU (1コアあたり8スレッド)
      • 16 x DDR3 DIMM (最大 256GB 搭載可能、16GB DIMM 実装時)
    • I/O and Storage
      • 3 x Low Profile PCI-Express Gen2 スロット (2 x 10Gb Ethernet XAUI スロットと兼用)
      • 2 x Full-height Half-length PCI-Express Gen2 スロット
      • 4 x 10/100/1000 Ethernet オンボードポート
      • 4 x 2.5” SAS2 HDD
      • 4 x USB ポート (前面 2, 背面 2)
    • RAS and Management and Power Supply
      • ディスク (RAIDサポート), ファン、PSU がホットスワップ可能
      • ILOMサービスプロセッサによる管理
      • 2N (1+1) , AC もしくは DC 電源
    • Support OS
      • Oracle Solaris 10 10/9, 9/10, 8/11, Oracle Solaris 11 11/11
      • Oracle VM Server for SPARC 2.1 (LDoms) サポート
    • その他
      • NEBS Level3対応
      • 筺体奥行き約21”
      • 19”(EIA-310D),23”,24”,600mmラック対応
      • ドライ接点(無電圧接点)アラームポート装備


     最後に、SPARC T4 サーバーならびにSPARC T4 プロセッサに関して最新情報を入手するチャンスが来月(4月早々)に日本であります。それは Oracle OpenWorld Tokyo 2012 が3日間(4/4(水)、4/5(木)、4/6(金))東京で開催され、その中でもオラクルのサーバ&ストレージのベンチマークを実施し、SPARC T4 サーバーパフォーマンスについて一番良く知る人物、そう、あのブラッド・カーライルが来日し講演を行います。SPARC T4 サーバーにご興味ある方は見逃せませんね!。

    Oracle OpenWorld Tokyo 2012
    http://www.oracle.com/openworld/jp-ja/index.html
    ブラッド・カーライルのセッションは 4/6(金) Develop D3-13 (14:00 - 14:45) 六本木アカデミーヒルズ49 にて。
    招待コードは 7264 を記載してお申し込みください。

  • Solaris 11 に対応! Oracle Solaris Cluster 4.0

    2011 年 11 月 9 日に発表された Oracle Solaris 11 に続き、2011 年 12 月 6 日にOracle Solaris 11 に対応した Oracle Solaris Cluster 4.0 がリリースされました。

    Oracle Solaris Cluster は Solaris 用の高可用性クラスタソフトウェアのことで、Sun 時代は Sun Cluster と呼ばれていた製品です。 オラクルとなり、Oracle Solaris Cluster とリブランディングされました。ライセンスも Oracle データベースのように、プロセッサライセンスとなり、Oracle Solaris Cluster のバージョンに依存せずに、使用するプロセッサ数分のライセンスを購入することにより、Oracle Solaris Cluster のコアコンポーネント、すべてのエージェント、ディザスタ・リカバリ向けの Geographic Edition のすべてが使えるようになりました。現在 Solaris 10 に対応する最新の Oracle Solaris Cluster は 3.3 5/11 (Update 1) となり、Solaris 11 に対応するバージョンが 4.0 ということになります。Oracle Solaris Cluster 4.0 の特長は以下のようになります。
    • Solaris 11 IPS / AI をサポート
    • Solaris 仮想化環境 (Solaris Zones, Oracle VM Server for SPARC) をサポート
    • Oracle Solaris Cluster Geographic Edition によりディザスタ・リカバリ機能をサポート
    Oracle Solaris Cluster の詳細は今後、本ブログでも取り上げていきたいとおもいますが、Oracle Solaris Cluster の特長は、やはり Solaris のカーネルモジュールとして提供され、Solaris の特長的な機能を Solaris Cluster 環境においても融合され利用できるところにあります。

    Solaris 11 では、Solaris のさらなる進化が IPS や 仮想化に見られます。そんな Solaris 11 の特長を、Oracle OpenWorld Tokyo 2012 開催期間中の 4/6(金) に六本木アカデミーヒルズ49 で行われる Oracle Develop にて詳細を聞いてみませんか?
    • 4/6(金) D3-03 「Oracle Solaris 11デベロッパーが押さえておきたい機能」(13:00 - 13:45)
    • 4/6(金) D3-13 「世界新記録を次々と達成する本人が語る Oracle DatabaseをSPARC/Solarisで高性能かつ高いセキュリティで構築するノウハウ」 (14:00 - 14:45)
    • 4/6(金) S2-53 「Oracle Solaris 11 でパッケージ管理をシンプルに-IPS パッケージ作成」(16:00 - 17:30)
    これは絶対見逃せません!! (Oracle Develop の Solaris 関連セッションですでに満席のものについては上記リストから除いています)

    Oracle OpenWorld Tokyo 2012 お申込み URL
    http://www.oracle.com/openworld/jp-ja/index.html
    招待コードは 7264 を記載してお申し込みください。

    水曜日 3 21, 2012

    Oracle/Sun の技術を結集 - SPARC SuperCluster T4-4

    SPARC SuperCluster T4-4 をご存知でしょうか?

    SPARC SuperCluster は 2010年12月にラリー・エリソンによりそのコンセプトが発表され、 2011 年 9 月に SPARC T4 サーバーシリーズとともに SPARC SuperCluster T4-4 としてリリースが発表されました。SPARC SuperCluster は、汎用エンジニアド・システムとしてラインナップされ、劇的な性能向上をとげた SPARC T4 CPU を 4 台搭載する SPARC T4-4 をコンピュートノードとして、同じエンジニアド・システムの、データベースの最高性能を求めた Exadata のキーコンポーネントである Oracle Exadata Storage Server が利用でき、ミドルウェアや Java の最高性能を求めた Exalogic のキーコンポーネントである Exalogic Software を構成して利用することができます。それに加えて Solaris 10 または 11 をサポートする一般的なアプリケーションも、この SPARC SuperCluster に 搭載して使用することを可能としています。

    以下の搭載製品群をご覧いただくとわかるように、SPARC SuperCluster は Oracle/Sun の技術を結集させた製品であることがご理解いただけるのではないでしょうか。
    • SPARC SuperCluster のハードウェア構成概要
      • 2(Half Rack 時) or 4(Full Rack 時) x SPARC T4-4 サーバー
      • 3 (Half Rack 時) or 6 (Full Rack 時) x Exadata Storage Server X2-2
      • 1 x ZFS Storage Appliance 7320 クラスタ構成
      • 3 x Sun DataCenter InfiniBand Switch 36
      • 1 x Ethernet Management Switch
      • 42U Rack (2 x PDU)
    • SPARC SuperCluster にて利用可能なソフトウェア
      • OS: Oracle Solaris 11 および 10
      • 仮想化: Oracle VM Server for SPARC および Oracle Solaris Zones
      • 管理: Oracle Enterprise Manager Ops Center および Grid Control
      • クラスタリング: Oracle Solaris Cluster および Oracle Clusterware
      • データベース: Oracle データベース 11g R2 (11.2.0.3) およびその他データベース
      • ミドルウェア: Exalogic Software とともに Oracle WebLogic Server, Coherence
      • アプリケーション: Oracle Solaris 11 および 10 にてサポートされる Oracle もしくは ISV、カスタマアプリケーション
    SPARC SuperCluster はエンジニアド・システムのため、仮想環境を各ワークロードに対し どのように設計するかといった非常に複雑で製品知識を必要とされる点について、事前に オラクルのエンジニアによって十分に考えぬかれ、オラクルによってサポートされテストされた 最適な構成をお客様に提供することになります。その結果として、高性能なシステムを 迅速に導入することが可能となっています。

    SPARC SuperCluster には関しては、本ブログにて、その詳細を今後話題にしていきたいと 思いますが、もっと早く SuperCluster について把握されたい方は、Oracle OpenWorld Tokyo 2012 の講演にご参加いただくことをお勧めします!

    4 月 5 日にベルサール六本木またはグランドハイアット東京を会場とする Oracle OpenWorld Tokyo 2012 の以下のセッションでは SPARC SuperCluster の技術面だけではなく、ビジネス面 やその利点など幅広く話があります。
    • 4/5(木) ゼネラルセッション G2-01 「ビッグデータ&クラウド時代を勝ち抜くITプラットフォーム戦略」(11:50 - 13:20)
    • 4/5(木) S2-42 「最新UNIX統合プラットフォーム - SPARC SuperCluster」 (16:30 - 17:15)
    • 4/5(木) S2-53 「Oracle E-Business Suiteのパフォーマンスと可用性を最大化し、 導入/運用コストを劇的に削減する最新のシステム基盤”SPARC SuperCluster”」(17:40 - 18:25)
    これは絶対見逃せません!!

    Oracle OpenWorld Tokyo 2012 お申込み URL
    http://www.oracle.com/openworld/jp-ja/index.html
    招待コードは 7264 を記載してお申し込みください。

    水曜日 3 14, 2012

    リック・ヘザリントン サイン入り SPARC T4 CPU チップ



    昨年(2011年)12月の話になりますが、「SPARC T4 ディープ・ダイブ~ここだけで聞ける詳細情報~」 というセミナーが開催されました。このセミナーでは SPARC T4 CPU の開発責任者のリック・ヘザリントンが来日し登壇しました。写真は、リック本人からこのセミナーの際にいただきましたサイン入り SPARC T4 CPU になります!
    • SPARC T4 CPU の仕様
      • 8 個の SPARC V9 S3 コア 64 スレッド (1コアあたり8スレッド)
      • クロック周波数: 2.85GHz および 3.0GHz
      • コアあたり暗号ストリーム処理ユニット搭載
      • コアあたり 16KB のデータ・キャッシュと 16KB の命令キャッシュ
      • コアあたり 128KB L2 キャッシュ
      • コア共有の 4MB L3 キャッシュ
      • CPU に 2 x メモリコントローラーユニット内蔵 (1 CPU あたり最大 16 DDR3 DIMM メモリをサポート)
      • CPU に 2 x 10Gb Ethernet ネットワークインタフェースユニット内蔵
      • CPU に 2 x PCI Express Generation 2 インタフェース内蔵
      • プロセステクノロジー: 40nm
      • ダイサイズ: 403mm2
    日本で、プロセッサを開発している本人から直接その話を聞けるというのは本当にまたとない貴重な機会でした。このような本社開発部門の人間から次はいつ話が聞けるのだろうかと思っていましたが、そのような機会はわりと早めにやってきました! そうです、来月開催される Oracle OpenWorld Tokyo 2012 では、Oracle のサーバー&ストレージ、および Oracle Solaris の開発部門トップのジョン・ファウラーが来日して講演を行います! これは絶対見逃せません!!

    ジョン・ファウラーが登場するセッションは...
    • 4/4(水) 基調講演 K1-01 「ENGINEERED FOR INNOVATION 技術の融合が、世界を変える。」 (9:00 - 11:15)
    • 4/5(木) ゼネラルセッション G2-01 「ビッグデータ&クラウド時代を勝ち抜くITプラットフォーム戦略」(11:50 - 13:20)
    Oracle OpenWorld Tokyo 2012 お申込み URL
    http://www.oracle.com/openworld/jp-ja/index.html
    招待コードは 7264 を記載してお申し込みください。

    月曜日 3 12, 2012

    SPARC T4 CPU の劇的な性能向上

    昨年 2011 年 9 月に SPARC T4 CPU とそれを搭載した SPARC T4 サーバーラインナップが発表されました。

    過去 SPARC T シリーズといえば、マルチコアかつマルチスレッドで比較的軽いワークロード を大量に処理することを得意としていました。したがって、用途としては、Web 層や アプリケーション層での利用が想定されていました。しかしながら、今度の SPARC T4 は これまでの SPARC T シリーズの傾向とは異なるようです。引き続きマルチコアかつマルチスレッドでありながら、現代の高性能 CPU コアには あたりまえとされるアウトオブオーダー実行、二重命令発行、ハードウェア・プリフェッチ 等といった機能に加えて、さらにダイナミック・スレッディングと呼ばれる SPARC T4 ならではの機能を搭載しています。この結果 SPARC T3 CPU と比較して、シングルスレッド 性能が 5 倍に、浮動小数点演算の性能が 7 倍に向上し、Web 層、アプリケーション層だけ でなく、データベース層での OLTP やバッチ処理といったワークロードにも幅広く対応可能 としてます。 SPARC T4 CPU およびそのサーバーラインナップについては、今後本ブログでも 序々に紹介していくことになると思います。

    この SPARC T4 の性能向上を感じてもらうには、やはり実機を使用して実感してもらうこと が一番ですが、なかなかそういった機会にめぐまれない場合には、やはりベンチマーク 結果もその性能向上をご理解いただくための一助になるのではないでしょうか。オラクルは SPARC T4 に対する各種ベンチマーク結果をホームページで公開をしています。さらにその詳細は BestPerf ブログ においても(どちらも英語ですが)公開していますので、是非チェックしてみてください。

    さて、このオラクルのサーバ&ストレージのベンチマークを実施、そして BestPerf ブログ による詳細の公開は、オラクルのストラテジック・アプリケーション・エンジニアリングと 呼ばれる部門においてなされていますが、なんと Oracle OpenWorld Tokyo 2012 には、この グループをリードするシニア・ディレクタのブラッド・カーライルが来日し、 「世界新記録を次々と達成する本人が語る Oracle DatabaseをSPARC/Solarisで 高性能かつ高いセキュリティで構築するノウハウ」というタイトルで講演を 行うとのこと! SPARC/Solaris の性能に関してご興味のある方には、これは絶対見逃せません!!

    Oracle OpenWorld Tokyo 2012
    http://www.oracle.com/openworld/jp-ja/index.html
    ブラッド・カーライルのセッションは 4/6(金) Develop D3-13 (14:00 - 14:45) 六本木アカデミーヒルズ49 にて。
    招待コードは 7264 を記載してお申し込みください。

    火曜日 2 21, 2012

    復活!! Oracle Solaris ナイトセミナー # 1

    Oracle Solaris 11テクニカル・ディープ・ダイブ第2弾セミナーへ参加頂きありがとうございました。
    セミナーの中で、Mr.Solaris である大曽根から、Oracle Solaris ナイトセミナーの開催がアナウンスされました!
    お待たせしました!

    Oracle Solaris ナイトセミナーの前身である Solaris ナイトセミナーでは、ゆるく楽しく有益に(本当ですよ)をモットーとしていましたが、Oracle Solaris ナイトセミナーでもその精神を忘れずに継続させて行きたいと考えています!

    また、今回からは色々と試行錯誤しながら、参加者との距離を縮めて行こうということで集客方法をイベント開催支援ツール:ATND(アテンド)にて行います。
    この方法も実験的ではありますが、まずは、やってみる!ことにしました。
    経験不足の為、至らない部分があるかもしれませんが、よろしくお願いいたします。
    Mr. Solaris の下に集う Solaris を愛してやまない中の人たちが、手作りでお届けするセミナーです。

    さて、第一弾となる「Oracle Solaris ナイトセミナー # 1」は、2012/03/8 (木) 18:30 開催です。
    第一弾の内容は、昨年行われた「Oracle Solaris 11テクニカル・ディープ・ダイブ第 1 弾」の内容を、ナイトセミナー風にアレンジした、「Oracle Solaris 11テクニカル・ディープ・ダイブ第 1 弾 ナイトセミナー風」となります。
    よく、わかりませんね。ごめんなさい。

    セッション 1 は、Solaris エバンジェリストであり Mr. Solaris でもある大曽根が、Solaris の歴史を振り返りながら最新の Solaris 11 を紹介する「Solaris の昨日と今日、そして明日」を。

    セッション 2 と言いたいのですが、スピーカー本人はその気がなく。。。セミナーのちょっとした息抜きに。と大好評だった「ナイトセミナーでおなじみ! – Solaris 3 分クッキング」!

    セッション 3 では、外部からスピーカーをお招きしてみました。Solaris 11 だからこそ可能な「省エネ時代のウェブサービスとクラウドの関係」について実例からお話して頂きます!

    ここまで、読んでしまった方は、参加するしかないよね?というわけで、参加申し込みは下記の ATND でお願い致します!

    Oracle Solaris ナイトセミナー # 1

    http://atnd.org/events/25633
    みなさまのご参加をお待ちしております。
    あ。。。サブタイトルついてました。。。Solaris 11 深掘り #1の1 です!

    木曜日 2 09, 2012

    コアの解析に詳しくない人がコアファイルを見付けたらどうしたら良いか

    はじめに

    今回は、コアファイルの調査を誰かに依頼する場合に、伝えておくべきことをご紹介します。

    サーバ管理やプログラムのテストの最中に、コアファイルに遭遇することがあります。コアファイルがあるということは、何らかの問題が起きている可能性を示唆しています。そこでコア解析の知識があれば、直ぐに調査に移る事ができますが、そうでなければ、誰か技術に詳しく、情報を渡しても問題の無い人を探して相談するのが現実的です。もし、信頼して相談できる人を見付けられたとしたら、どんな情報を伝えれば良いでしょうか。何を伝えたらいいか思い付かなかったら、以下を試してみて下さい。

    (なお、今回の記事ではプログラムが生成したコアを想定しています。)

    やるべきこと

    まず、コアファイルがあるディレクトリに cd で移動します。

    $ cd /where-core-exists/
    

    ディレクトリを移動したら、情報を収集して行きます。以下のコマンドを全て実行して下さい。

    なお、ここではコアファイルの名前を core としていますが、実際には core.789 の様な数字付きの名前かもしれません。その場合は、core と書かれている部分を実際の名前に置き換えて実行して下さい。

    $ script core.log
    $ date
    $ uname -a
    $ ls -l ./core
    $ file ./core
    $ pstack ./core
    $ pflags -r ./core
    $ pargs -ae ./core
    $ pmap ./core
    $ pldd ./core
    $ exit
    $ zip core.log.zip core.log
    

    コマンドの実行が終了したら、core.log.zip というファイルが出来ている筈です。これを渡せば、取り敢えずの調査に必要なデータは揃ったことになります。

    あとは、コアダンプした時のエラーメッセージ、コアファイルが発生する頻度、システムの構成情報、アプリケーションの情報、直前に設定等を変更したのであれば、その内容、アプリケーションのログなどを分かる範囲で伝えられれば尚良いと思います。

    実行例

    root@awa03:~# cd test/
    root@awa03:~/test# script core.log
    Script started, file is core.log
    root@awa03:~/test# date
    Thu Feb  9 02:39:23 JST 2012
    root@awa03:~/test# uname -a
    SunOS awa03 5.11 11.0 i86pc i386 i86pc
    root@awa03:~/test# ls -l ./core
    -rw-------   1 root     root     2097463 Feb  9 02:39 ./core
    root@awa03:~/test# file ./core
    ./core:         ELF 32-bit LSB core file 80386 Version 1, from 'prog_fpe'
    root@awa03:~/test# pstack ./core
    core './core' of 9993:  ./prog_fpe
     08050c90 my_func  (8047d8c, 8050af3, 1, 8047d98, 8047da0, feffb93c) + 17
     08050ca0 main     (1, 8047d98, 8047da0, feffb93c, 8047d8c, 8050a92) + 8
     08050af3 _start   (1, 8047e68, 0, 8047e73, 8047e80, 8047e8b) + 83
    root@awa03:~/test# pflags -r ./core
    core './core' of 9993:  ./prog_fpe
            data model = _ILP32  flags = MSACCT|MSFORK
     /1:    flags = 0
            sigmask = 0xffffbefc,0xffffffff,0x000000ff
            cursig = SIGFPE
       %gs = 0x000001C3   %fs = 0x00000000   %es = 0x0000004B   %ds = 0x0000004B
      %edi = 0x08047E00  %esi = 0x08047D54  %ebp = 0x08047D60  %esp = 0x00000000
      %ebx = 0xFEFFB93C  %edx = 0x00000000  %ecx = 0x00000000  %eax = 0x00000064
      %trapno = 0x00000000  %err = 0x00000000  %eip = 0x08050C90   %cs = 0x00000043
      %efl = 0x00010256  %uesp = 0x08047D4C   %ss = 0x0000004B
    
    root@awa03:~/test# pargs -ae ./core
    pargs: Couldn't determine locale of target process.
    pargs: Some strings may not be displayed properly.
    core './core' of 9993:  ./prog_fpe
    argv[0]: ./prog_fpe
    
    envp[0]: LC_MONETARY=
    envp[1]: TERM=vt100
    envp[2]: SHELL=/usr/bin/bash
    envp[3]: SSH_CLIENT=10.188.194.252 49626 22
    envp[4]: LC_NUMERIC=
    envp[5]: SSH_TTY=/dev/pts/1
    envp[6]: LC_ALL=
    envp[7]: USER=root
    envp[8]: MAIL=/var/mail/root
    envp[9]: PATH=/usr/local/bin:/usr/sbin:/usr/bin
    envp[10]: LC_MESSAGES=
    envp[11]: LC_COLLATE=
    envp[12]: PWD=/root/test
    envp[13]: LANG=C
    envp[14]: TZ=localtime
    envp[15]: SHLVL=1
    envp[16]: HOME=/root
    envp[17]: LOGNAME=root
    envp[18]: SSH_CONNECTION=10.188.194.252 49626 10.188.162.233 22
    envp[19]: LC_CTYPE=
    envp[20]: LC_TIME=
    envp[21]: _=./prog_fpe
    envp[22]: OLDPWD=/root
    root@awa03:~/test# pmap ./core
    core './core' of 9993:  ./prog_fpe
    08046000       8K rwx--    [ stack ]
    08050000       4K r-x--  /root/test/prog_fpe
    08060000       4K rwx--    [ heap ]
    FEDE0000      24K rwx--    [ anon ]
    FEDF0000       4K rw---    [ anon ]
    FEE00000    1352K r-x--  /usr/lib/libc/libc_hwcap1.so.1
    FEF62000      44K rwx--  /usr/lib/libc/libc_hwcap1.so.1
    FEF6D000       4K rwx--  /usr/lib/libc/libc_hwcap1.so.1
    FEF70000       4K rw---    [ anon ]
    FEF80000       4K rw---    [ anon ]
    FEF90000       4K rw---    [ anon ]
    FEFA0000       4K rw---    [ anon ]
    FEFAD000       4K r----    [ anon ]
    FEFB7000     208K r-x--  /lib/ld.so.1
    FEFFB000       8K rwx--  /lib/ld.so.1
    FEFFD000       4K rwx--  /lib/ld.so.1
     total      1684K
    root@awa03:~/test# pldd ./core
    core './core' of 9993:  ./prog_fpe
    /usr/lib/libc/libc_hwcap1.so.1
    root@awa03:~/test# exit
    exit
    Script done, file is core.log
    root@awa03:~/test# zip core.log.zip core.log
      adding: core.log (deflated 62%)
    

    これで core.log.zip というファイルが作成されます。

    この例の場合、core.log.zip を送られてきた人は、これは prog_fpe という名前のプログラムが生成したコアで、最後に my_func() という関数が呼び出されており、SIGFPE が発生しているので、prog_fpe の my_func() の中の算術演算が怪しそうだということが分かります。

    さいごに

    以上、コアファイルを見付けたら、まずどんな情報を集めれば良いかをご紹介しました。

    上記の情報を渡しても原因が分からないこともあります。その場合は必要に応じて情報を追加して下さい。

    コアファイルは事故の残骸ではなく、解決の糸口とする為に残された記録装置の様な物です。重要な情報が詰まっている事がありますので、是非有効に活用して下さい。

    月曜日 9 26, 2011

    ユーザに特権を与える方法

    はじめに

    今回は Solaris 10 の最小特権の仕組みを使用して、ユーザに特権を与える方法をご紹介します。

    最小特権は、今まで root ユーザに集中していた権限を、必要に応じて一般ユーザに分け与える機能です。非 root ユーザが実行するプログラムでメモリをロックしたい場合や、開発者用アカウントで DTrace を実行させたい場合等、権限を委譲する際に必要となります。

    特権を付与する手順

    それでは早速、ユーザに特権を付与する手順を確認して行きましょう。

    特権を付与する対象のユーザ

    今回特権を付与するユーザはこのように作成した一般ユーザです。

     # mkdir /export/home/    
     # useradd -d /export/home/daleka -m -s /bin/zsh daleka
     # passwd daleka
    

    現在の特権の確認

    まずはユーザが現在保持している特権を確認します。使用するコマンドは ppriv <Login Shell PID> です。

     # su - daleka
     % ppriv $$
     1164:   -zsh
     flags = <none>
             E: basic
             I: basic
             P: basic
             L: all
    

    E の欄に表示されているのが現在有効になっている特権です。ここでは basic 特権が設定されています。basic 特権は、幾つかある一般ユーザの基本的な権限をひとまとめにした特権です。

    続いて、basic 特権の中にどんな特権が含まれているかを調べてみます。basic 特権の内容は ppriv -l basic コマンドで確認することができます。

     % ppriv -l basic
     file_link_any
     proc_exec
     proc_fork
     proc_info
     proc_session
     net_access
    

    basic 特権の中には全部で 6 つの特権が含まれていることが分かりました。

    それぞれの特権の詳細は ppriv -lv <特権> コマンドで調べることができます。

     ppriv -lv proc_fork
     proc_fork
             Allows a process to call fork1()/forkall()/vfork()
    

    proc_fork はプロセスをフォークさせる特権である事が分かります。

    ユーザに付与可能な特権の一覧は ppriv -l all で表示することができます。

     % ppriv -l all
     contract_event
     contract_observer
     cpc_cpu
     dtrace_kernel
     dtrace_proc
     dtrace_user
     file_chown
     file_chown_self
     file_dac_execute
     file_dac_read
     ...(略)
     proc_audit
     proc_chroot
     proc_clock_highres
     proc_exec
     proc_fork
     proc_info
     proc_lock_memory
     proc_owner
     proc_priocntl
     proc_session
     proc_setid
     proc_taskid
     proc_zone
     ... (以下略)
    

    この様に、沢山の特権が定義されていることが分かります。proc_priocntl は Solaris Container 内で Oracle ASM を動かす際に必要になる特権です。

    特権の付与

    続いて、実際に特権を付与する方法をご紹介します。

    使用するコマンドは usermod です。ここでは、メモリをロックする際に必要になる proc_lock_memory 特権を付与してみます。

     # usermod -K defaultpriv=basic,proc_lock_memory daleka
    

    このように、元々付与されていた basic 特権の後に、カンマ区切り、空白無しで、新たな特権名を指定して defaultpriv パラメータを設定すると、特権を追加することができます。

    特権を追加すると /etc/user_attr に変更が反映されます。

     # grep daleka /etc/user_attr                           
     daleka::::type=normal;defaultpriv=basic,proc_lock_memory
    

    特権が付与された事は ppriv コマンドでも確認できます。

     # su - daleka
     % ppriv $$
     1301:   -zsh
     flags = <none>
             E: basic,proc_lock_memory
             I: basic,proc_lock_memory
             P: basic,proc_lock_memory
             L: all
    

    以上で特権付与の手順は完了です。

    実験

    テストプログラムを使用して、特権が正しく有効になっているかを確認してみます。

    使用するテストプログラムは mlock というコマンドラインプログラムで、この文書の下の方にソースコードを掲載してあります。特権が有効になっているかの確認には ppriv -De コマンドを使用します。

    mlock プログラムは mlock() 関数を使用してメモリをロックするプログラムです。メモリをロックするには proc_lock_memory 特権が必要になりますが、まずは試しに proc_lock_memory 特権が付いていない状態で実行してみます。

     % ppriv -De ./mlock
     mlock[1726]: missing privilege "proc_lock_memory" (euid = 100, syscall = 131)
     needed at memcntl+0x14b
    

    proc_lock_memory 特権が不足しているというメッセージが表示されました。必要な特権が欠けているため、メモリのロックは失敗してしまいました。なお、メッセージの最後に出力されている memcntl は mlock() 関数の内部で呼び出されるシステムコールです。

    つづいて、proc_lock_memory 特権を付与してから実行してみます。

     # usermod -K defaultpriv=basic,proc_lock_memory daleka
     # su - daleka
     % ppriv -De ./mlock
    

    今度は必要な特権を全て持っているため、メッセージは何も表示されません。メモリのロックは成功しました。

    実験 その 2

    もう一つの確認方法として truss コマンドを使用する方法もご紹介します。

    まずは proc_lock_memory 特権が付いていない状態で実行してみます。

     % truss -tmemcntl ./mlock
     ...
     memcntl(0x08062000, 10, MC_LOCK, 0, 0, 0)       Err#1 EPERM [proc_lock_memory]
    

    proc_lock_memory 特権が無いので、memcntl システムコールが EPERM エラーになりました。truss コマンドの出力を見ると、proc_lock_memory 特権が付いていないことによるエラーだと分かります。

    つづいて、proc_lock_memory 特権を持っている状態で実行してみます。

     # usermod -K defaultpriv=basic,proc_lock_memory daleka
     # su - daleka
     % truss -tmemcntl ./mlock
     ...
     memcntl(0x08062000, 10, MC_LOCK, 0, 0, 0)       = 0
    

    memcntl システムコールが 0 を返してきたので、今度はきちんとロックできました。

    以上、特権の設定がきちんと効果を発揮していることを確認できました。

    テストプログラム

    こちらが実験で使用した mlock プログラムのソースコードです。

     # cat mlock.c
     /* compile: gcc mlock.c -o mlock */
     
     #include <stdio.h>
     #include <stdlib.h>
     #include <sys/mman.h>
     
     #define MEMSIZE 10
     #define ALI 8192
     
     int main() {
     
       int size = MEMSIZE;
       int align = ALI;
       caddr_t addr;
     
       addr = memalign(align, size);
       bzero(addr, size);
       mlock(addr, size);
     
       getchar();
       munlock(addr, size);
     
     }
     # gcc mlock.c -o mlock
    

    付与した特権を取り除く

    付与した特権を元に戻すには、元から付与されていた特権のみを指定して usermod コマンドを実行します。

     # usermod -K defaultpriv=basic daleka                 
     # su - daleka
    

    元の通り、basic 特権のみ付与されている事が分かります。

     % ppriv $$
     1479:   -zsh
     flags = <none>
             E: basic
             I: basic
             P: basic
             L: all
    

    ただし /etc/user_attr のエントリーは消えません。

     % grep daleka /etc/user_attr 
     daleka::::type=normal;defaultpriv=basic
    

    どんな特権があるか調べたい場合は

    ppriv -lv all で全ての特権とその説明を表示させることができます。

     % ppriv -lv all
     contract_event
             Allows a process to request critical events without limitation.
             Allows a process to request reliable delivery of all events on
             any event queue.
     contract_observer
             Allows a process to observe contract events generated by
             contracts created and owned by users other than the process's
             effective user ID.
             Allows a process to open contract event endpoints belonging to
             contracts created and owned by users other than the process's
             effective user ID.
     cpc_cpu
             Allow a process to access per-CPU hardware performance counters.
     dtrace_kernel
             Allows DTrace kernel-level tracing.
     dtrace_proc
             Allows DTrace process-level tracing.
             Allows process-level tracing probes to be placed and enabled in
             processes to which the user has permissions.
     ... (以下略)
    

    おわりに

    以上、Solaris の最小特権機能をご紹介しました。この機能を利用して必要な権限だけを委譲する事で、システム全体のセキュリティを保つことができます。更に詳しく調べたい方は マニュアル をご覧下さい。

    参考資料

    About

    Search

    Categories
    Archives
    « 4月 2014
      
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
       
           
    今日