やっぱり Sun がスキ! : Weblog やっぱり Sun がスキ!

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20070730 2007年 7月 30日 月曜日

Sunグッズ紹介(14)

Sun のロゴ入りグッズ紹介の第十四弾です。


・Sun ロゴ入り VICTORINOX 万能ナイフ
 非常にコンパクトなサイズに様々な機能がスッキリとまとめられた Sun ロゴ入り
 VICTORINOX の万能ナイフ。意外な機能としてボールペンやハサミも付いていたりします!

 



・ "I Love Solaris" T シャツ
 社内でも大人気の"I love Solaris" T シャツ。愛してやまないソラリスを身にまとうことで
 エンジニアスピリッツを格段に盛り上げることができる究極の一品です♪
 

    



・Sun ロゴ入りポロシャツ
 IT 企業のエンジニアにとって、もはや伝統的なユニフォームとも言える社ロゴ入りポロシャツ。
 Sun ロゴのみのシンプルなデザインですので、オフタイムの普段着としても使い勝手が良いかと。
 これからの夏場の季節にピッタリです!

    



・Sun ロゴ入りシューズケース
 Sun ロゴ入りのシューズケース、会社帰りにジム通いをされている方に喜ばれそうな一品。
 写真では分かりづらいのですが前面がメッシュになっているので通気性は抜群。
 長期旅行の際にセカンドシューズ入れとしても使えそうです。

    



・Sun ロゴ入りあぶらとり紙ケース
 新しい Sun カラーで彩られアルミ素材で作られた Sun ロゴ入りあぶらとり紙ケース。
 蓋の裏面にコンパクトミラーが付いているのがポイント。名刺も収納できるサイズですので
 付属のあぶらとり紙を使い切ってしまった後も名刺のサブケースとして重宝しそうです。

 



・Sun ロゴ入りリングノート
 カードケースと同じく新ブランド色で彩られた Sun ロゴ入りリングノート。
 爽やかで透明な表紙が夏の季節にピッタリですね!
 

    



・Duke キャラクター入りスポーツタオル
 Java のマスコットである Duke が元気に描かれたスポーツタオル。
 使うのが勿体ないと思ってしまうほどかわいい Duke が一面に描かれています。

    



・Duke キャラクター入りソックス(女性用)
 「なに?なに?これ?」と思わず聞いてしまう Duke がポイントとして描かれたソックス。
 過去に様々なグッズをご紹介してきましたが、こんなグッズがあったとはさすがにビックリ!
 Sun グッズの懐の深さを感じます!
 

    



・Duke 巾着袋
 このグッズを立案した人は凄い!巾着のひもを締めれば、まさに Duke そのもののシルエットに!
 アイデア賞ものの一品です。
 

    


http://blogs.sun.com/yappri/date/20070726 2007年 7月 26日 木曜日

FLOPS理論値計算方法

ユーザ様から要求される仕様として、以下のようなものをよく目にします。

「装置全体の理論的な演算性能が 200 GFLOPS 以上であること」
GFLOPS = Giga (10^9) FLoating point number Operations Per Second
ということで、これは 1 秒当たり何回の浮動小数点演算ができるかという性能値の事です。
FLOPS 実測値は LinPack というベンチマークツール等での測定が必要ですが、
FLOPS 理論値は、実際に測定しなくても、下記のような簡単な計算により算出が出来ます。
FLOPS 理論値
= ( クロック ) x ( コア数 ) x (コアあたりクロックあたりの浮動小数点演算回数)

例えば、E20K (28 x US-IV+ 1.95GHz) の場合、
US-IV+ では、浮動小数点演算をコアあたりクロックあたり 2 回実行しますので、
( 1.95 x 1000 x 1000 x 1000 ) x ( 2 x 28 ) x 2 = 218.4 GFLOPS

M9000 (24 x SPARC64 2.28GHz) の場合、
SPARC64 では、浮動小数点演算をコアあたりクロックあたり 4 回実行しますので、
( 2.28 x 1000 x 1000 x 1000 ) x ( 2 x 24 ) x 4 = 437.76 GFLOPS

ちなみに、M9000-64 (フル構成) は、64 CPU 搭載出来ますので、
( 2.28 x 1000 x 1000 x 1000 ) x ( 2 x 64 ) x 4 = 1167.36 GFLOPS
                                               = 1.16736 TFLOPS

ということで、単体で 理論値 1 TFLOPS を超える性能があります。

ところで、FLOPS 実測値は、理論値からは落ちる値となります。
たとえば、上述の M9000-64 では、実測値 1.032 TFLOPS をマークしています。
参照: http://www.sun.com/servers/highend/m9000/

http://blogs.sun.com/yappri/date/20070725 2007年 7月 25日 水曜日

Solaris が認識しているネットワーク I/F 名を全部知る方法

Solaris のネットワークインタフェースを設定する ifconfig コマンドの引数で -a や plumb オプションは有名ですが、-a と plumb オプション を続けて使用するコマンド "ifconfig -a plumb" って使った事ありますか?
今回は、 ifconfig コマンドの便利なオプション "-a plumb" を紹介します。

Sun のネットワークドライバは、e1000g、ipge、bge、nxge、nge、etc... といろいろ 存在している為、現在使用しているサーバが認識しているネットワーク I/F 名全部を知りたい 時は /etc/path_to_instの中身を調べたりと結構面倒です。
そんな時は、下記コマンドを一度たたいてみましょう。

# ifconfig -a plumb
実際に実機(Sun Fire X4100 M2)を使ってこのコマンドを試してみました。
下記の X4100 M2 には、現在 nge0 が設定されておりますが、X4100 M2 は、標準で4つ ネットワーク I/F がありますので、残りの名前を調べてみます。

・現在の設定状況確認
# ifconfig -a

lo0: flags=2001000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
nge0: flags=1000843 mtu 1500 index 2
        inet 192.168.0.1 netmask ffffff00 broadcast 10.14.8.255
        ether 0:14:4f:7d:20:9c 

・ここで ifconfig -a plumb を入力
# ifconfig -a plumb
ifconfig: SIOCSLIFNAME for ip: nge0: already exists
・ネットワークI/F 名の確認
# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
nge0: flags=1000843 mtu 1500 index 2
        inet 192.168.0.1 netmask ffffff00 broadcast 10.14.8.255
        ether 0:14:4f:7d:20:9c 
nge1: flags=1000842 mtu 1500 index 4
        inet 0.0.0.0 netmask 0 
        ether 0:14:4f:7d:20:9d 
e1000g0: flags=1000802 mtu 1500 index 5
        inet 0.0.0.0 netmask 0 
        ether 0:14:4f:7d:20:9e 
e1000g1: flags=1000802 mtu 1500 index 6
        inet 0.0.0.0 netmask 0 
        ether 0:14:4f:7d:20:9f 

このように、IP Addressを設定していない残りのネットワーク I/F が現れました。
ちなみに、X4100 M2 は、 nge と e1000g の2種類のドライバを使用しています。

(まとめ)
"ifconfig -a plumb" コマンドは、実際にネットワーク I/F がサーバで認識されているか どうかの確認や、 nxge までは理解しているが、カードを何回も抜き差して、nxge3 だか nxge6 だ か番号が分からなくなってしまった時にとても便利です。

http://blogs.sun.com/yappri/date/20070724 2007年 7月 24日 火曜日

System Management Agent ( SNMP Agent )

Solaris 10 から標準でバンドルされている SNMP Agent が追加・変更されているのはご存知でしょうか?

Solaris では Solaris 2.6 の頃から Solstice Enterprise Agents がバンドルされておりましたが、 Solaris 10 になって System Management Agent (以下 SMA) という 新しい SNMP Agent が追加されています。
( 代表的な Sun の SNMP Agent は下記をご覧下さい。 )
  • System Management Agent (SMA)
    • Solaris 10 から新たに追加された SNMP Agent です。

  • Solstice Enterprise Agents
    • Solaris 2.6 以降にバンドルされている SNMP Agent。
      ( Solaris 10 にもバンドルされています )
      今後は System Management Agent に統合予定です。

  • Sun SNMP Management Agent ※ Sun Download Center から取得できます
    http://www.sun.com/servers/entry/sun_management.html
    • Sun Hardware Product System 用の SNMP Agent
      Sun Fire V215/245/445 Server 等の H/W 情報を監視できます。

    ※ 上記の他に、Sun MC ( Sun Management Center ) などにも SNMP Agent が含まれています。

この SMA では、MIB ファイルや SNMP 関連のコマンドが大幅に追加されています。
そこで今回は SMA を利用して、SNMP の情報取得例をご紹介したいと思います。

まず SMA の大きな変更点として、いくつかピックアップしてみました。


[ SMA の変更点 ]
  • SMA の Version

    SMA の Version 情報を確認してみると、 NET-SNMP を元に作成されている事が確認できます。

    % /usr/sfw/sbin/snmpd -v
    
    NET-SNMP version:  5.0.9
    Web:               http://www.net-snmp.org/
    Email:             net-snmp-coders@lists.sourceforge.net
    
    %
    

  • SMA の MIB ファイル

    SMA になって、Solstice Enterprise Agent の時よりも多くの MIB ファイル が追加されました。 その為、SNMP で監視できる項目も大幅に増えています。

    SMA の MIB 定義ファイルは /etc/sma/snmp/mibs 配下にあります。

    % pwd
    /etc/sma/snmp/mibs
    %
    % ls
    AGENTX-MIB.txt                        RFC-1215.txt
    DISMAN-EVENT-MIB.txt                  RFC1155-SMI.txt
    DISMAN-SCHEDULE-MIB.txt               RFC1213-MIB.txt
    	:
    	: 省略
    	:
    NET-SNMP-SYSTEM-MIB.txt               UCD-IPFWACC-MIB.txt
    NET-SNMP-TC.txt                       UCD-SNMP-MIB.txt
    NETWORK-SERVICES-MIB.txt              UDP-MIB.txt
    NOTIFICATION-LOG-MIB.txt              smatrap.mib
    %
    
    ちなみに、Solstice Enterprise Agents の MIB File は下記の2つだけでした。
    ( Solaris 10 でも Solstice Enterprise Agents はインストールされているので、下記のファイルも確認する事ができます。)
    % pwd
    /var/snmp/mib
    %
    % ls
    snmpdx.mib   sun.mib
    %
    

  • SNMP 関連のコマンド

    SNMP の情報取得に役立つ snmpwalk, snmpget といったコマンドも追加されています。
    その為、他にパッケージ等を追加しなくても、SNMP の動作確認などが行えます。

    • /usr/sfw/bin/snmpwalk コマンド
      指定した OID 配下の情報を取得 ( ツリー単位 )

      例 ) OID : .1.3.6.1.2.1 配下を全表示
      % /usr/sfw/bin/snmpwalk -v 1 -c public HOSTNAME .1.3.6.1.2.1
    • /usr/sfw/bin/snmpget コマンド
      指定した OID の情報を取得 ( エントリ単位 )

      例 ) OID : .1.3.6.1.4.1.2021.10.1.5.1 の情報 ( CPU 使用率 ) を表示
      % /usr/sfw/bin/snmpget -v 1 -c public HOSTNAME .1.3.6.1.4.1.2021.10.1.5.1
    • /usr/sfw/bin/snmptranslate コマンド
      MIB シンボル名や OID Tree を表示

      例 ) MIB シンボル名と OID をツリー構造で表示
      % snmptranslate -Tp
      +--iso(1)
         |
         +--org(3)
            |
            +--dod(6)
      


  • SNMP Trap 関連のコマンド

    SNMP Trap 関連のコマンドも標準で入っています。

    • /usr/sfw/bin/snmptrap コマンド
      特定ホストに Test Trap を上げる事ができる。

      例 ) SNMP Ver1
      % /usr/sfw/bin/snmptrap -v 2c -c public HOSTNAME .1.3.6.1.4.1.8072.999999999  6 1 '' .1.3.6.1.4.1.8072.999999999.1 s "Test Trap"
    • /usr/sfw/sbin/snmptrapd デーモン
      SNMP Trap を受信する事ができる


上記の様に SMA では、かなり多くの MIB や SNMP コマンドが追加されています。



それでは SMA を利用して、Solaris 10 のシステム同士 ( HOST-1, HOST-2 の計 2 台 ) で SNMP の情報を取得してみたいと思います。
  • SMA を利用してメモリ関連の情報取得例

    HOST-1 から snmpwalk コマンドを利用して HOST-2 の物理メモリサイズを取得してみます。

    1. まず HOST-2 上でメモリの��報を持っていそうな MIB シンボル名を調べます。
      snmptranslate -Tp コマンドは OID と MIB シンボル名をツリー構造で表示してくれるコマンドです。

      snmptranslate コマンドを利用すると、かなり長い出力になるので、 grep などで絞り込んだ方が良いと思います。

      HOST-2% snmptranslate -Tp
      +--iso(1)
         |
         +--org(3)
            |
            +--dod(6)
               |
               +--internet(1)
                  |
                  +--private(4)
                  |  |
                  |  +--enterprises(1)
                  |     |
                  |     +--ucdavis(2021)
                  |     |  |
                  |     |  +--memory(4)
                  |     |  |  |
                  |     |  |  +-- -R-- Integer32 memIndex(1)
                  |     |  |  +-- -R-- String    memErrorName(2)
                  |     |  |  |        Textual Convention: DisplayString
                  |     |  |  |        Size: 0..255
                  |     |  |  +-- -R-- Integer32 memTotalSwap(3)
                  |     |  |  +-- -R-- Integer32 memAvailSwap(4)
                  |     |  |  +-- -R-- Integer32 memTotalReal(5)
                  |     |  |  +-- -R-- Integer32 memAvailReal(6)
                  |     |  |  +-- -R-- Integer32 memTotalSwapTXT(7)
      	:
      	: 省略
      	:
      HOST-2%
      これで memory に関連しそうな MIB シンボル名と OID が確認できました。

    2. 次に先程の mem から始まる MIB シンボル名を利用して、HOST-1 から HOST-2 に snmpwalk コマンドを実行します。
      HOST-1% /usr/sfw/bin/snmpwalk -v 1 -c public HOST-2 mem | grep Real
      UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 262144  <== K bytes
      UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 10448   <== K bytes
      HOST-1%
      Total Memory Size ( Real ) が確認できました。

    3. 試しに HOST-2 で prtdiag -v コマンドを実行してみると、 Memory Size が同じ 256M byte ( 262144K byte ) である事が確認できます。
      HOST-2% prtdiag -v | grep Memory
      Memory size: 256 Megabytes
      HOST-2%
    尚、各 MIB シンボル名の簡単な説明が MIB 定義ファイル ( /etc/sma/snmp/mibs ) の中に、 DESCRIPTION やコメントなどで記載されているので、そちらも参考になると思います。



  • SMA を利用して SNMP Trap を受け取る

    今度は snmptrap コマンドを利用して、HOST-1 から HOST-2 に SNMP Trap を上げて見たいと思います。

    1. まず SNMP Trap を受け取る HOST-2 で snmptrapd デーモンを上げておきます。
      ( ログファイルは /tmp/snmptrapd.log です )
      HOST-2# /usr/sfw/sbin/snmptrapd -o /tmp/snmptrapd.log
      HOST-2#
      HOST-2# cat /tmp/snmptrapd.log
      2007-07-24 09:53:12 NET-SNMP version 5.0.9 Started.
      HOST-2#
      
    2. 次に HOST-1 から HOST-2 に snmptrap コマンドで Test Trap を送信します。
      HOST-1% /usr/sfw/bin/snmptrap -v 2c -c public HOST-2 '' .1.3.6.1.4.1.8072.999999999 .1.3.6.1.4.1.8072.999999999.1 s "Test Trap"
      HOST-1%
    3. SNMP Trap を受け取る HOST-2 のログファイルを確認すると、 SNMP Trap が記録されています。
      HOST-2# cat /tmp/snmptrapd.log
      2007-07-24 09:53:12 NET-SNMP version 5.0.9 Started.
      2007-07-24 09:54:12 ************* [***.***.***.***]:
              DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (335864288) 38 days, 20:57:22.88       SNMPv2-MIB::snmpTrapOID.0 = OID: NET-SNMP-MIB::netSnmp.999999999        NET-SNMP-MIB::netSnmp.999999999.1 = STRING: "Test Trap"
      HOST-2#
    以上の様に簡単に SNMP Trap を送信・受信することができました。

今回は SMA を利用して MIB の項目の値を取得したり、SNMP Trap を実際に受け取ったりしてみました。

snmptrapd を利用すれば簡単に SNMP trap を受け取ることができますので、 SNMP Agent になれるシステムや機器 ( router など ) の検証を行うときなどにも 力を発揮すると思います。

又、snmptranslate コマンドや MIB 定義ファイル ( /etc/sma/snmp/mibs 配下 ) のコメント欄を参照すれば、 対象のホストで、どのような情報が取得できるのかご確認頂けます。

システムのパフォーマンス等の情報を cron で定期的に取得するのにも便利ですので、 Solaris 10 のシステムがありましたら、是非一度、お試し下さい。


*** 参考資料 ***

http://blogs.sun.com/yappri/date/20070705 2007年 7月 05日 木曜日

Sun Ray 端末のホットキー操作

今回は、マニュアルには記載されているが、あまりユーザに知られていな い Sun Ray 端末のホットキー操作に関する TIPS を紹介します。

Sun Ray 端末のホットキー操作は、使用している端末の Mac Address や IP Address を知りたい時、ディスプレイの解像度を 変えたい時、端末を強制的にリセットしたい時などに知っておくと とても便利です。

(ホットキー操作一覧)
キー 操作
説 明
Mute + Softer + Louder
DTU の MAC アドレスを表示。
Shift + Props
「設定」 GUI を表示。(設定画面が出てくるまで数秒かかります)
Ctrl + Alt + Backspace x 2回
セッションを強制終了。
Ctrl + Alt + Del x 2回
Xサーバを制御しているプロセスを強制終了。
Shift + pause
非スマートカードモバイルセッションを切断。
Ctrl + Power
電源を再投入。(Sun Ray セッションは維持されます)
(補足) Mute + Softer + Louder キーとは、キーボード右上にあるスピーカのマーク が書いてあるボリューム操作キーです。

上記の操作は、純正キーボードでないと出来ない操作が多いのですが、 ホットキーのアサインを変える事で純正でないキーボードでも操作が可能になります。 詳細は、 Sun Ray Server Software 3.1 管理者マニュアル Page 218 の 「ホットキーの設定の変更」 を参考にして下記ファイルを編集して下さい。

/etc/opt/SUNWut/utslaunch_defaults.properties
$HOME/.utslaunch.properties
/etc/opt/SUNWut/utslaunch_mandatory.properties


(サンプル1)
「Mute + Softer + Louder」キー操作画面
・MAC Address、IP Address、Link Speed、接続先サーバが確認可能です。



(サンプル2)
「Shift + Props」キー操作画面
・ディスプレイの解像度、オーデオ入出力、ビデオに関する設定変更が可能です。