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

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20060331 2006年 3月 31日 金曜日

Nevada B34

Solaris Nevada B34を試してみました。


今回は個人のノートパソコンで Solaris を活用しようという趣旨の元、ポ イントを記録していきたいと思います。

システム 自作 turion64 ノート
OS Solaris Nevada Build 34 Community Build

※ Solaris Express : Sun が Build した OpenSolaris
                     サポートも購入できるしドキュメントもある。
   Community Build : OpenSolaris Community にて Build されたOpenSolaris
                     Express よりも新しい Build が使用可能。

ポイント

  • 64 bit kernel
    別に新機能ではないのですが、Turion64 でも AMD64 Kernel で起動 可能です。
    # isainfo -kv
    64-bit amd64 kernel modules
    

  • X 画面
    このノートは、グラフィックに ATI Radeon Xpress 200M というチッ プセットのグラフィック機能を使用しています。 1280x800 というワイド画面の 為、以前の Solaris や、Linux では、1024x768 の解像度を横に引き延ばした表 示になっていました。今回の Nevada 34 では、インストール時は Xsun が使用 されているので、横に引き延ばした表示でしたが、インストール後は、Xorg が 使用されており、正常に 1280x800 の解像度で表示されました。Xorg の version は、6.9 となっています。
    turion64% pkginfo | grep -i xorg
    system      SUNWxorg-cfg                     X.Org Foundation Xserver
    configuration tool
    system      SUNWxorg-client-docs             X.Org Foundation X client
    programs documentation
    system      SUNWxorg-client-programs         X.Org Foundation X Client
    Programs
    system      SUNWxorg-clientlibs              X.Org Foundation X Client
    Libraries
    system      SUNWxorg-compatlinks             X11 Compatibility Links
    system      SUNWxorg-devel-docs              X.Org Foundation client API
    documentation
    system      SUNWxorg-doc                     X.Org Foundation Xserver
    documentation
    system      SUNWxorg-graphics-ddx            X.Org Foundation Xserver
    Graphics Device Modules
    system      SUNWxorg-headers                 X.Org Foundation X11 client
    headers
    system      SUNWxorg-mesa                    Xorg Server Mesa Modules
    and Libraries
    system      SUNWxorg-server                  X.Org Foundation Xserver
    system      SUNWxorg-xkb                     X.Org Foundation Xserver
    keyboard layouts
    
    turion64% pkginfo -l SUNWxorg-server
       PKGINST:  SUNWxorg-server
          NAME:  X.Org Foundation Xserver
      CATEGORY:  system
          ARCH:  i386
       VERSION:  6.9.0.5.11.3400,REV=0.2006.02.08
       BASEDIR:  /usr
        VENDOR:  Sun Microsystems, Inc.
          DESC:  X Window System server based on X.Org Foundation open
    source release
        PSTAMP:  x11x20060208150709
      INSTDATE:  3月 14 2006 11:30
       HOTLINE:  Please contact your local service provider
        STATUS:  完全にインストールされました。
         FILES:      138 のインストールされたパス名
                       7 の共有パス名
                      15 のディレクトリ
                      64 の実行可能ファイル
                       1 の setuid/setgid 実行可能ファイル
                   21554 ブロック (概算値) が使われました
    

  • Network
    このノートでは Network は、標準の rtls ドライバにて認識されま した。
    turion64% /usr/sbin/ifconfig -a
    lo0: flags=2001000849 mtu
    8232 index 1
            inet 127.0.0.1 netmask ff000000
    rtls0: flags=1000802 mtu 1500 index 2
            inet aaa.bbb.ccc.ddd netmask ffffff00 broadcast aaa.bbb.ccc.255
    

  • オーディオデバイス
    残念ながら認識されていません。

  • ACPI
    電源ボタンを押すと、Suspend, Shutdown を選ぶ Power Off Selectionウィンドウが起動されました。ちなみに Suspend をクリックすると、 "Suspend is not supported"と表示され Suspend はされません。

  • 日本語
    最近の OpenSolaris は、日本語対応も出来ています。そして、ATOK も新しくなっていました。(バージョン: for Solaris 17.0.6.0)推測変換が加 わっています。

  • マルチメディア
    RealPlayer 10 が標準でインストールされていました。

  • prtdiag
    ついに prtdiag が動くようになっています。
    turion64% /usr/sbin/prtdiag -v
    System Configuration: NOTEBOOK SAM2000
    BIOS Configuration: American Megatrends Inc. A1013AG6 V3.70 09/26/2005
    
    ==== Processor Sockets ====================================
    
    Version                          Location Tag
    -------------------------------- --------------------------
    AMD Turion(tm) 64 Mobile Technology MT-30 CPU 1
    
    ==== Memory Device Sockets ================================
    
    Type    Status Set Device Locator      Bank Locator
    ------- ------ --- ------------------- --------------------
    DDR     in use 0   DIMM0               BANK0
    unknown empty  0   DIMM1               BANK1
    
    ==== On-Board Devices =====================================
    
    ==== Upgradeable Slots ====================================
    
    ID  Status    Type             Description
    --- --------- ---------------- ----------------------------
    0   available PCMCIA           RC593
    

  • ネットワーク設定便利ツール
    標準で入ってるわけでは無いですが、OpenSolaris の Community で、inetmenu というツールが存在します。GUI, CLI menu にてネットワークの 設定が行えるツールなのですが、ノートの様にネットワーク環境が頻繁に変わる 場合には有用です。
    # inetmenu -h
    
    Usage: /usr/bin/inetmenu [-i ] [-p ] [-W ]
     -i  => Select the interface.
     -p    => Select the profile.
     -W       => Select the wireless SSID (auto to autoconf).
     -c             => Supress the summary message at the end.
     -t             => Command line interface
    
    # inetmenu -i rtls0 -t
    Select a profile :
    1) Static-Address
    2) DHCP
    3) DHCP-NoNIS
    #? 2
    Interface: rtls0
    IP Address: aaa.bbb.ccc.ddd
    Hostname: turion64
    DNS Domain: test.com
    
    # ifconfig -a
    lo0: flags=2001000849 mtu
    8232 index 1
            inet 127.0.0.1 netmask ff000000
    rtls0: flags=1004843 mtu 1500
    index 3
            inet aaa.bbb.ccc.ddd netmask ffffff00 broadcast aaa.bbb.ccc.255
            ether XX:XX:XX:XX:XX:XX
    
    # inetmenu -i rtls0 -t
    Select a profile :
    1) Deconfigure
    2) Static-Address
    3) DHCP
    4) DHCP-NoNIS
    #? 1
    Interface: rtls0
    Deconfigured.
    
    # ifconfig -a
    lo0: flags=2001000849 mtu
    8232 index 1
            inet 127.0.0.1 netmask ff000000
    

  • ドキュメント
    Community Build の為、Document は無い様子。Release Notes も What's new もありません。Solaris Express 3/06 の Release Notes が一番近 いです。

  • Zone New Feature
    Solaris Zone を使用していると欲しくなりそうな新機能が、Build 33(Express 3/06) から入っています。
    Zone Path を変更するための move と、Zone のコピーを作成するた めの clone です。
    • move
      停止している Zone の Zone path を移動させます。
      # zoneadm list -vc
        ID NAME             STATUS         PATH
         0 global           running        /
         2 test             running        /zones/test
      
      # zoneadm -z test halt
      
      # zoneadm list -vc
        ID NAME             STATUS         PATH
         0 global           running        /
         - test             installed      /zones/test
      
      # zoneadm -z test move /mv-zones/test
      
      # zoneadm list -vc
        ID NAME             STATUS         PATH
         0 global           running        /
         - test             installed      /mv-zones/test
      
      # ls /mv-zones
      test
      
      # ls /zones
      
      # time zoneadm -z test move /zones/test
      zoneadm -z test move /zones/test  0.01s user 0.01s system 66% cpu 0.030
      total
      
      # ls /zones
      test
      
      # ls /mv-zones
      
      #
             

      ディスク容量が足りなくなってきた場合など、Zone を移動させたい 場合に便利ですね。

    • clone
      install 前の空の Zone 定義を作成した上で、既存 Zone から内容を コピーします。
      # zoneadm list -vc
        ID NAME             STATUS         PATH
         0 global           running        /
         - test             installed      /zones/test
      
      # zonecfg -z test
      zonecfg:test> info
      zonename: test
      zonepath: /zones/test
      autoboot: false
      pool:
      inherit-pkg-dir:
              dir: /lib
      inherit-pkg-dir:
              dir: /platform
      inherit-pkg-dir:
              dir: /sbin
      inherit-pkg-dir:
              dir: /usr
      net:
              address: 192.168.100.110
              physical: iwi0
      zonecfg:test> exit
      
      # zonecfg -z clone-test
      clone-test: そのような構成済みゾーンはありません
      'create' を使用して、新しいゾーンの構成を開始してください。
      zonecfg:clone-test> create
      zonecfg:clone-test> info
      zonename: clone-test
      zonepath:
      autoboot: false
      pool:
      inherit-pkg-dir:
              dir: /lib
      inherit-pkg-dir:
              dir: /platform
      inherit-pkg-dir:
              dir: /sbin
      inherit-pkg-dir:
              dir: /usr
      zonecfg:clone-test> set zonepath=/clone-zones/clone-test
      zonecfg:clone-test> info
      zonename: clone-test
      zonepath: /clone-zones/clone-test
      autoboot: false
      pool:
      inherit-pkg-dir:
              dir: /lib
      inherit-pkg-dir:
              dir: /platform
      inherit-pkg-dir:
              dir: /sbin
      inherit-pkg-dir:
              dir: /usr
      zonecfg:clone-test> commit
      zonecfg:clone-test> exit
      
      # zoneadm list -vc
        ID NAME             STATUS         PATH
         0 global           running        /
         - test             installed      /zones/test
         - clone-test       configured     /clone-zones/clone-test
      
      # time zoneadm -z clone-test clone test
      Cloning zonepath /zones/test...
      zoneadm -z clone-test clone test  0.60s user 6.24s system 6% cpu 1:53.23
      total
      
      # zoneadm list -vc
        ID NAME             STATUS         PATH
         0 global           running        /
         - test             installed      /zones/test
         - clone-test       installed      /clone-zones/clone-test
      
      # zonecfg -z test2
      test2: そのような構成済みゾーンはありません
      'create' を使用して、新しいゾーンの構成を開始してください。
      zonecfg:test2> create
      zonecfg:test2> info
      zonename: test2
      zonepath:
      autoboot: false
      pool:
      inherit-pkg-dir:
              dir: /lib
      inherit-pkg-dir:
              dir: /platform
      inherit-pkg-dir:
              dir: /sbin
      inherit-pkg-dir:
              dir: /usr
      zonecfg:test2> set zonepath=/zones/test2
      zonecfg:test2> info
      zonename: test2
      zonepath: /zones/test2
      autoboot: false
      pool:
      inherit-pkg-dir:
              dir: /lib
      inherit-pkg-dir:
              dir: /platform
      inherit-pkg-dir:
              dir: /sbin
      inherit-pkg-dir:
              dir: /usr
      zonecfg:test2> commit
      zonecfg:test2> exit
      
      # time zoneadm -z test2 install
      Preparing to install zone .
      Creating list of files to copy from the global zone.
      Copying <3160> files to the zone.
      Initializing zone product registry.
      Determining zone package initialization order.
      Preparing to initialize <1075> packages on the zone.
      Initializing package <1074> of <1075>: percent complete: 99%
      Initialized <1075> packages on zone.
      Zone  is initialized.
      Installation of these packages generated errors: 
      Installation of these packages generated warnings: 
      The file  contains a
      log of the zone installation.
      zoneadm -z test2 install  88.42s user 110.02s system 27% cpu 12:06.67 total
      
      # zoneadm list -vc
      
        ID NAME             STATUS         PATH
         0 global           running        /
         - test             installed      /zones/test
         - clone-test       installed      /clone-zones/clone-test
         - test2            installed      /zones/test2
      
      #
      
      普通に Zone を作成すると約 12 分ですが、clone の作成だと 2 分 弱で済んでいます。
      同様の Zone を複数作成する際に威力を発揮しそうです。

まとめ

今回は趣味的に使う際に役立ちそうな情報と今後の Solaris に実装される 予定で有用な情報を合わせてご紹介いたしました。
今後も多くの人たちが Solaris に触れるきっかけになれるような情報を発 信していきたいと思います。

Memory Stick



Solaris 環境で USB フラッシュメモリの活用



近頃は格安で USB フラッシュメモリが手に入るようになり、PC を持っている方は この媒体を使ってファイルの受け渡しに結構重宝されていると思います。USB フラ ッシュメモリは Windows や Linux だけでなく、当然 Solaris でも使えますのでち ょっとしてみました。

[検証環境]

サーバ
Sun Blade 2000(UltraSPARC-III 1GHz x 2)
OS
Solaris 10 1/06
USBフラッシュメモリ
USB2.0 対応 128MB (GreenHouse社製 PicoDrive+)

[検証項目]

  1. マウント手順
  2. アンマウント手順
  3. ファイル名の制限
  4. ファイルの転送速度

[評価]

1. マウント手順確認

マウントの方法は簡単! ただサーバの USBスロットに USBフラッシュメモリを挿すだけです。 勝手に vold が /rmdisk 以下にマウントしてくれます。(自動でマウントしない時は volcheck コマンドを試してみて下さい。)

<USB フラッシュメモリを挿入した後の df の結果>
# df -k 
ファイルシステム      kbytes 使用済み 使用可能 容量      マウント先
/dev/dsk/c1t1d0s0    66455506 4907192 60883759     8%    / 
/devices                   0       0       0     0%    /devices
...
/vol/dev/dsk/c3t0d0/noname:c
                      127732      40  127692     1%    /rmdisk/noname    <= 注目

2. アンマウント手順確認

アンマウントの手順は、安全のためアンマウント処理を行った後、USBフラッシュメモリを抜いて 下さい。

<USB フラッシュメモリのアンマウント手順>
# eject rmdisk

ちなみに、vold を使わずに手動でマウント/アンマウントも可能です。

<手動によるマウント>
# /etc/init.d/volmgt stop
# mount -F pcfs /dev/dsk/c3t0d0s0:c /mnt        <=== pcfs を指定
# df -k
ファイルシステム      kbytes 使用済み 使用可能 容量      マウント先
/dev/dsk/c1t1d0s0    66455506 4907240 60883711     8%    /
...
/dev/dsk/c3t0d0s0:c   127732      40  127692     1%    /mnt
# umount /mnt  

<補足情報>

USB フラッシュメモリを挿す前と後で "cfgadm" の結果と "ls /dev/dsk" の結果です。

<USB フラッシュメモリ挿入前>
# cfgadm
Ap_Id                          Type         Receptacle   Occupant     Condition
c0                             scsi-bus     connected    configured   unknown
...
usb0/3                         unknown      empty        unconfigured ok
usb0/4                         unknown      empty        unconfigured ok

# ls /dev/dsk
c0t6d0s0  c0t6d0s3  c0t6d0s6  c1t1d0s1  c1t1d0s4  c1t1d0s7  c1t2d0s2  c1t2d0s5
c0t6d0s1  c0t6d0s4  c0t6d0s7  c1t1d0s2  c1t1d0s5  c1t2d0s0  c1t2d0s3  c1t2d0s6
c0t6d0s2  c0t6d0s5  c1t1d0s0  c1t1d0s3  c1t1d0s6  c1t2d0s1  c1t2d0s4  c1t2d0s7  

<USB フラッシュメモリを挿入後>
# cfgadm
Ap_Id                          Type         Receptacle   Occupant     Condition
c0                             scsi-bus     connected    configured   unknown
...
usb0/3                         usb-hub      connected    configured   ok
usb0/3.1                       usb-storage  connected    configured   ok  <=注目

# ls /dev/dsk
c0t6d0s0  c0t6d0s4  c1t1d0s0  c1t1d0s4  c1t2d0s0  c1t2d0s4  c3t0d0s0  c3t0d0s4
c0t6d0s1  c0t6d0s5  c1t1d0s1  c1t1d0s5  c1t2d0s1  c1t2d0s5  c3t0d0s1  c3t0d0s5
c0t6d0s2  c0t6d0s6  c1t1d0s2  c1t1d0s6  c1t2d0s2  c1t2d0s6  c3t0d0s2  c3t0d0s6
c0t6d0s3  c0t6d0s7  c1t1d0s3  c1t1d0s7  c1t2d0s3  c1t2d0s7  c3t0d0s3  c3t0d0s7
   (自動でc3t0d0を作成)  

3. ファイル名の制限確認

pcfs でマウントされたUSBフラッシュメモリのファイル名に関して Windows との 互換性を含めて確認してみました。

  • ファイル名の長さに関しては、VFAT(Variable lengthFAT)に対応しておりますので、最大の長さは  255文字まで大丈夫です。

  • 日本語のファイル名に関しては、pcfs でマウントされたディレクトリに日本語のファイル名を作成 するとエラーではじかれて作成できませんでした。 また、Windows で日本語のファイル名を作成し、pcfs でマウントしてみると、文字化けどころか ファイル名を全く表示しませんでした。
  • (Windows で作成したファイルを移す時は気おつけて下さい。)

4.ファイルの転送

最後に、ファイルコピーの転送速度(Read/Write)を測定してみました。

Blade 2000標準装備の USB は、USB2.0 対応でない為、Write 0.5MB/s, Read 0.6MB/sと遅かったです。 ちなみに、Solaris 10 が入っている USB2.0 対応の PC にて評価した所、 Write 1.7MB/s, Read 4.5MB/s という結果でした....

# cd /tmp
# mkfile 60m test60m      
# ls -l
合計 122880
-rw------T   1 root     root     62914560  3月  9日  12:47 test60m

# time cp test60m /rmdisk/noname

real     2:04.0          <=== 60MB の Write に 124 秒
user        0.0
sys         0.7

# time cp /rmdisk/noname/test60m /tmp/test60m.out

real     1:47.8      <=== 60MB の Read に 107 秒
user        0.0
sys         0.6

あとがき

USB フラッシュメモリを使う事で簡単なパッチのインストールや、ログファイルの収集、 テストプログラムのインストールなどが便利になります。しかしその反面、情報漏洩とう点 ではお手軽さと引き替えにリスクがありますのでご注意下さい。 今回は、SPARC版Solaris 10 での手順を書きましたが、x86 Solarisでも同じ操作が可能です。