大原雄介の「Sun Ultra 20 Workstation」レポート(4)

smbmount問題とOpen GLの追試




 この連載も今回で最後となる。今回は連載中にいただいたコメントを検証し、まとめて結果を示したいと思う。

●smbmountにまつわる問題

 Samba Version 3以降ではActive Directoryとの親和性を高めた話は前々回に触れた通りで、この流れの中にnetコマンドもある。このほかに追加されたものにsmbmountやsmbshがある。前者はActive Directory環境で提供されている共有フォルダをマウントするためのもの、後者はその共有フォルダをFTPライクなコマンドでアクセスするためのものである。また、mountでこのメカニズムを使えるsmbfsというオプションもある。これらを使うことで、利用できないか? というのが頂いたコメントの大まかなまとめである。

 結論から言うと、このアイディアは駄目だった。Solaris 10上ではsmbmountがインストールできない。単にライブラリが足りないとかいうレベルではなく、Samba Version 3が未対応である。また、smbfsを使うアイディアも残念ながら利用できない。と書いても判りにくいと思われるので、順を追って説明したい。

 今回、Solaris 10は01/06版の新しいものをインストールした。こちらを使うと、例えばnForce4のチップセットドライバなどがインボックスで含まれており、インストールは遥かに容易になっている。

 さて、このインストール直後の状態で「ネットワークプレイス」を開くと、ちゃんとネットワークドメインが見えるようになっているわけだが(Photo01)、そこからDomain(というか、Windows 2000 Serverの管理下なのでActive Directory)メンバーのマシンにアクセスできるようになった(Photo02、03)。しかも、その下のディレクトリまでちゃんとアクセス出来るようになっているから驚きである(Photo04)。で、テキストエディタ(gedit)を使うと、この先にあるファイルを開く事も出来た(Photo05)。「おー、これで使える」とか喜ぶのはまだ早い。できるのはここまで。geditもよく見ると「読み取り専用」で、ここでファイルを新規作成はできない。また、例えば画像をgimpで開こうとするとこんな感じ(Photo06)。UNCというか、URLというか、そうしたリモートファイル名に対応したアプリケーションがほとんど無い以上、やはり1度共有フォルダをファイルシステムにmountしない限り、どうしようもない感じだ。

【Photo01】以前はこれが見えなかったから、これだけでも大きな進化 【Photo02】ここでユーザー名/パスワード/ドメイン名を入れればOK 【Photo03】ファイルサーバ(TYPHOON)の共有フォルダが見えるように
【Photo04】ちなみにディレクトリ名は“\原稿\PCWatch\Sun Ultra20”。流石に日本語のディレクトリ名は見事に変換されてしまう 【Photo05】以前あったdtpadは、このバージョンのSolarisでは見当たらなかった 【Photo06】gimpはUNCに未対応らしい

 そんなわけで手抜きをせずにちゃんとsmbmountを使う方法を探してみた。先にsmbmountはSamba Version 3で入ったと書いたが、コマンド自体はSamba 2.2の時代から存在する。で、早速探してみたわけだが、Solaris 10のSambaパッケージの中にはsmbmountやsmbsh、あるいはsmbmountから呼び出されるsmbmntといったコマンドは一切存在しない。どうも、パッケージにそもそも含まれていないらしい。

【Photo07】パッケージの探し方。まぁUNIX/Linux系を普段お使いの方には説明はいらないと思うが

 そんなわけで、まずはデフォルトのSambaパッケージの削除である。まずはsambaのパッケージを探し出し(Photo07)、pkgrmコマンドでこの3つを削除する。ついで、最新のsambaのインストールである。Sambaパッケージは本家でもNSUG(http://dld.nsug.or.jp/xoops/modules/mydownloads/)などでも提供されないので、素直に最新ディストリビューション(今回利用したのはVersion 3.0.21C)を持ってきた。

 さて、問題はbuildである。tarを展開した先のsourceディレクトリでconfigureを掛け、makeを掛けると基本的には完了であるが、これを行なってもやっぱりsmbmountが作成されない。configureのログを見てみると

configure:39179: checking whether to use smbmount
configure:39211: result: no

なんてものが残っており、何かしら条件を満たしていない事は明白である。試しに--with-smbmountオプションをつけてconfigureを掛けると、

checking whether to use automount... no
checking whether to use smbmount... configure: error: not on a linux system!

なんて明示的なエラーでconfigureに失敗する。そもそもsmbmountを使う場合、前提としてMIT kerberos1.3.1が必要(Active Directoryに参加する場合)といった話があるが、ここで見る限りそういう以前の問題である。で、configureのソースを見てみると、該当部分は

# check for smbmount support
echo "$as_me:$LINENO: checking whether to use smbmount" >&5

echo $ECHO_N "checking whether to use smbmount... $ECHO_C" >&6

# Check whether --with-smbmount or --without-smbmount was given.
if test "${with_smbmount+set}" = set; then
withval="$with_smbmount"
case "$withval" in
yes)
case "$host_os" in
*linux*)
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6

cat >>confdefs.h <<\_ACEOF
#define WITH_SMBMOUNT 1
_ACEOF

EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
;;
*)
{ { echo "$as_me:$LINENO: error: not on a linux system!" >&5
echo "$as_me: error: not on a linux system!" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
;;
*)
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
;;
esac
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6

fi;

といった感じになっている。ちょっとシェルスクリプトの多用なので見にくいかもしれないが、もうOSがLinuxでなければ無条件で弾いており、BrandZ(かつては“Project Janus”として知られていた、Solaris上のLinuxバイナリ動作環境)でも動くかどうか、ちょっと怪しい。ちなみに何が悪いのか? と思ってソースを見てみると、smbmnt.cの冒頭に

#ifndef MS_MGC_VAL
/* This may look strange but MS_MGC_VAL is what we are looking for and
is what we need from <linux/fs.h> under libc systems and is
provided in standard includes on glibc systems. So... We
switch on what we need... */
#include <linux/fs.h>
#endif

なんて話まであって、要するにこのサービスはLinuxカーネルの提供するsmbfsをそのまま使っているから、これが無いSolarisでは使えない、という事である。というわけで、このアイディアは完全放棄せざるをえない。

●Sharity 3.1

 sambaをそのまま使うのは失敗したが、世の中にはこうしたニーズはちゃんとあったらしい。問題は要するにSolarisにsmbfsが実装されていない事であり、これを追加すれば使える、という考え方だ。で、これを実際に行なったのがobjective developmentSharity 3.1である。これは商用製品で、Home Licenseなら$29.00から、Business Licenseなら$199.00から(詳しくはShareity販売サイトを参照)という、比較的お手軽価格ではある。またSharityはKernel Modeで動くモジュールだが、User Modeで動くSharity-Lightならフリーで入手できる(その代わりと言っては何だが、Sharity-Lightはオープンソース化されている代わりに、今後の開発は行なわれない)。これらはSolaris 10 for x86を当然サポートしているため、これを使うことでsmbfsを使ってのmountが可能になる。ちなみにサポート対象はSolarisのみならずHP-UX, SGI IRIX, IBM AIX, Linux, FreeBSD, OpenBSD, Tru64 Unix and Mac OS Xと極めて広範にわたる。

 そんなわけで、実際にSharity 3.1の評価版を入手してインストールしてみた。ちなみに筆者の環境は上にも書いたとおりActive Directoryなので、Sharity 3に加えてSharity 3 Kerberos Module(これもダウンロードサイトで公開されている)も一緒にインストールしている。評価版は1回のインストール、1箇所のマウント、1ユーザーに制限されている以外は正規版と何ら機能に違いはない。

 インストール後に管理画面を立ち上げ(Photo08)、“Mount”タブからマウントポイントを指定すると(Photo09)、ログイン認証が登場する(Photo10)。ここで正しくログイン名/パスワード/ドメイン名を入れたところ、あっさりマウントできてしまった(Photo11)。テキストファイルは問題なく開けるし(Photo12)、画像の表示やMP3の再生なども当然問題がなかった。が、問題がなかったのはここまで。共有フォルダのトップディレクトリを開くとこんな感じ(Photo13)。sambaの場合、libiconvにパッチをあてた上で適用する事で日本語を使えるようになるが、こうした作業が一切行なわれていないようで(当然か)、日本語ファイル名が一切使えない。まぁ日本語フォルダ/ファイル名を使うのが悪いと言われればその通りなのだが、既にある膨大な量の日本語フォルダ/ファイル名を全部直すのは、これまた至難の業である。そんなわけで結論としては「やっぱり無理」であった。

【Photo08】ここでライセンスキーを入れると正規版に移行する 【Photo09】ホスト名のままで通用するかちょっと疑問だったが、何事もなく通った 【Photo10】ユーザー名がrootなのは、rootでこれを実行していたから
【Photo11】/mntの下に直接共有ディレクトリの先が見えるのがわかる 【Photo12】これは文章の通り、FoxBE(狐's バイナリエディタ)のReadme。結構古いソフトだが愛用している 【Photo13】要するに日本語の変換が全滅

●gimpに関する若干の補足

【Photo14】ここで「変換」を押すと変形が確定するのだが、確定しても変形枠(画像の上にあるグリッド)の形状が維持されてしまう。そのため、1度他の処理に切り替えてからもう1度変換に戻さないと、グリッドが初期化されない。この辺りは1度変形した後でCtrl+Aを押すと選択範囲が初期化(表示されている画像全体)に戻るPhotoshopの方が筆者には使いやすい。もっともgimpにもこれにあたるものがあり、筆者が気がついていないだけの公算は高そうだが

 第2回目でgimpで変形が上手く行かない話をちょっと取り上げたが、これに関して「遠近法を使えば出来るのでは? 」というご指摘を頂いた。で、試したところ(Photo14)、あっさり出来た。よく見たらツールパレットにもそうしたコマンドがちゃんと用意されており、考えようによってはPhotoshopより使いやすい「かもしれない」。具体的に言えば、領域選択の仕方とか変形の際のグリッドの変わり方などは、gimpの方が直感的である。

 一方、変形中にプレビューが見える事と、1度変形して確定した後初期状態に戻すのは、Photoshopの方が便利である。今はまだPhotoshopの方が慣れているのでいまいちgimpではぎごちない動きになるが、慣れればとりあえず代替は可能という気がしている。

●Windows環境における若干の補足

【Photo15】この辺りは、ForceWareのバージョンによっても異なってくる。写真はForceWare 71.84のもの

 最後に第3回目についてである。ベンチマークの中で、OpenGL Benchmark 1.6のスコアが低すぎるのはVSync Onのためではないか? という質問が寄せられた。おや? と思って確認してみると、デフォルトでVsyncは“Application-controlled”に設定されていた(Photo15)。で、試しにここを強制的にOFFに切り替えてみたところ、数値が大幅に変化した。ということで、前回のテスト結果はいずれもVsync Onの状態であったことをお詫びする。ただ、救い(?)なのは単にQuadro FX 1400だけではなく、GeForce 7800 GTXやGeForce 6600 GTもやはりVsync Onで動いていた事で、従って比較の条件が異なっているというわけではない。とはいえ比較にはやや不適な事は事実である。また前回はQuadra用最新ドライバ(ForceWare 81.67)での比較を行なっていなかった。そこで、このあたりを補足しておきたい。

 まず表1~表7までは前回同様、SYSMark 2004/3DMark 05/3DMark 06/SPECViewPerf/CINEBENCH 2003 v1/GLClock XGAの各結果である。左3つ(GeForce 6600 GT/GeForce 7800 GTX/Quadro FX 1400 FW 71.84)は前回のデータそのままで、一番右(Quadro FX 1400 FW 81.67)が今回追加したものだ。いずれのテストも、VSyncはApplication-Controllのまま利用している。

表1
CPU Opteron 152 (2.6GHz/1MB L2)
M/B 専用(TYAN S2865)
nForce Chipset Driver 6.66(標準添付品)
Memory PC3200 1GB Registered ECC×2
Video GeForce 6600 GT GeForce 7800 GTX Quadro FX 1400
(ELSA Gradiac 743GT) (nVIDA Reference) (標準添付品)
ForceWare 81.98 ForceWare 81.98 ForceWare 71.84
ForceWare 81.67
HDD Seagate Barracuda 7200.8 250GB SATA(標準添付品)
NTFSフォーマット
OS Windows XP Professional 英語版+SP2

表2
SYSMark 2004 GeForce 6600 GT GeForce 7800 GTX Quadro FX 1400
FW 71.84 FW 81.67
SYSmark 2004 Rating
213
213
216
213
Internet Content Creation
238
238
239
237
Office Productivity
190
191
195
191

表3
3DMark05 GeForce 6600 GT GeForce 7800 GTX Quadro FX 1400
FW 71.84 FW 81.67
640×480
4732
9026
4278
4361
800×600
4203
8578
3795
3893
1024×768
3632
7806
3114
3204
1280×1024
2899
6756
2387
2482
1600×1200
2285
5877
1881
1932

表4
3DMark06 GeForce 6600 GT GeForce 7800 GTX Quadro FX 1400
FW 71.84 FW 81.67
640×480
2646
5488
2403
2656
800×600
2370
5111
2103
2323
1024×768
1999
4594
1695
1892

表5
SPECViewPerf GeForce 6600 GT GeForce 7800 GTX Quadro FX 1400
FW 71.84 FW 81.67
3dsmax-03
18.38
20.80
38.40
38.99
catia-01
13.88
14.22
34.01
34.24
ensight-01
11.91
14.04
22.16
25.64
light-07
11.88
11.97
28.90
30.62
maya-01
21.66
23.11
69.86
61.13
proe-03
18.31
18.00
53.24
39.56
sw-01
15.08
15.93
25.07
26.50
ugs-04
6.49
10.27
31.57
26.50

表6
CINEBENCH 2003 v1 GeForce 6600 GT GeForce 7800 GTX Quadro FX 1400
FW 71.84 FW 81.67
Rendering (Single CPU)
366
367
368
368
Shading (CINEMA 4D)
435
436
435
435
Shading (OpenGL Software Lighting)?
1941
1974
1865
1865
Shading (OpenGL Hardware Lighting)?
3207
3567
4305
4001
OpenGL Speedup
7.37
8.18
9.9
9.2

表7
GLClock XGA GeForce 6600 GT GeForce 7800 GTX Quadro FX 1400
FW 71.84 FW 81.67
1.Per-Vertex Lighting Mark.
8907.48%
15241.51%
8993.54%
9849.18%
2.Per-Vertex Lighted Texturing Mark.
8029.72%
14335.38%
7558.63%
8255.22%
3.Texture Filtering Mark.
6344.29%
12299.65%
5914.84%
5873.64%
4.Environment Mapping Mark.
6173.94%
14253.01%
5325.86%
5395.50%
5.Super Sampled Blending Mark.
3368.81%
8431.36%
3256.19%
3269.81%
6.Maximum Triangles Mark.
7126.72%
13173.54%
7952.07%
8210.62%
7.OpenGL Practical Rendering Mark.
9435.85%
15664.19%
8877.46%
9339.18%

表8
OpenGL Benchmark (3D)
VSync ON
GeForce 6600 GT Quadro FX 1400
FW 71.84 FW 81.67
swap_buffer
141.40
141.40
141.31
lines
143.06
143.06
142.03
lines fog
141.30
142.27
142.27
lines smooth
140.41
141.30
141.36
points
283.15
283.15
283.15
points fog
282.66
282.66
282.69
wire
282.77
282.79
282.77
wire fog
282.76
282.73
282.76
polygon color smooth
282.72
282.72
282.72
polygon color
282.72
282.75
282.72
polygon color fog
282.72
282.70
282.72
vertex color
283.39
283.39
283.39
vertex color fog
282.88
282.88
282.86
stencil buffer
283.36
283.36
283.36
accumlation buffer
267.81
273.30
284.60
blur
419.94
419.94
419.94
flat shading
283.49
283.49
283.88
smooth shading
283.93
283.93
284.32
spot light
282.73
282.75
283.11
T-Map GL_CLAMP fast
282.89
282.89
284.14
T-Map GL_CLAMP real
283.26
282.62
282.62
T-Map GL_REPEAT fast
282.69
282.73
282.73
T-Map GL_REPEAT real
283.15
283.11
283.11
total
269.26
269.57
270.15

表9
OpenGL Benchmark (3D)
VSync OFF
GeForce 6600 GT Quadro FX 1400
FW 71.84 FW 81.67
swap_buffer
6444.02
26600.92
70747.13
lines
2681.54
5320.52
7286.80
lines fog
2667.79
5378.61
5293.23
lines smooth
1186.71
3547.51
3547.51
points
2366.25
5071.58
5323.13
points fog
2365.44
5069.83
5321.29
wire
2364.62
10629.45
12507.58
wire fog
2393.25
11238.57
12553.27
polygon color smooth
3801.67
7092.66
7594.66
polygon color
6858.78
11838.11
14215.85
polygon color fog
7107.34
12504.65
14214.69
vertex color
7099.81
14229.96
16403.01
vertex color fog
7346.89
14222.82
16394.78
stencil buffer
7349.89
14228.63
15203.19
accumlation buffer
3388.04
3388.04
6885.37
blur
3386.61
4037.88
4037.88
flat shading
6089.64
6882.30
10642.28
smooth shading
7348.51
11233.08
16434.60
spot light
6653.20
8870.93
13306.39
T-Map GL_CLAMP fast
6090.75
9122.21
10683.23
T-Map GL_CLAMP real
6377.46
10617.79
12795.79
T-Map GL_REPEAT fast
6399.43
10677.12
11608.27
T-Map GL_REPEAT real
6096.29
10636.08
11625.49
total
4882.72
8901.74
10630.83

 結果から言うと、3DMarkなどでは多少の性能改善が見られるが、SPEC Viewperfなどではむしろ性能が落ちるシーンも珍しくなく、やはりドライバのチューニングの差が性能に大きな影響を与えているのは間違いないと思う。とはいえ、VSyncの影響も少なくないようで、例えば表7の結果はこれの影響をだいぶ受けているように思う。このあたりは前回解釈を間違えたと思うので、お許しいただきたい。

 さて、問題のOpenGL Benchmarkである。今回追試にあたってGeForce 7800 GTXが間に合わない(返却してしまった)ので、GeForce 6600 GTとQuadro FX 1400でのみ再テストを行なった。まず表8はVSync ONの場合で、ほとんど同一性能になっているのが判る。一方表9はVSync OFFの場合で、全ての性能が大きく変わっている。この結果を見ると、明らかにGeForce 6600 GT < Quadro FX 1400が明確に実感できる。またForceWare同士の性能差も顕著で、要するに前回の考察は間違っている事が確認できた、というところだ。誤解を与えてしまった事をお詫びして訂正させていただく。

●色々な感想

 前回のレポートから1カ月以上空いてしまい、やや間延びした感じになってしまったのは筆者の不徳の致すところである。それはそれとして、多少期間をあけながらも2カ月以上Solarisと付き合った感じでは、「うーん、中身が色々見えなくなっている」というあたりか。4.3BSDの色を色濃く残していたSun OSと、System Vをベースに進化を遂げ、ほとんど別物に化けた現在のSolarisは、やはり違うものだなぁというのが率直な感想である。

 とはいえ、かつてのOpenWindowsを知るものにとっては、Java Desktopで動く今のSolarisは「初心者に優しい」という気はする。が、初心者には優しいもののその先が無愛想なのは依然として変わらず。例えばPATHが必要最小限しか通っていないので、NSUGからパッケージを落としてインストールしたら自分でPATHを通さないといけないとか、デフォルトシェルが未だにshのままだとか。いや普段からLinuxを使っている筆者には当然といえば当然の話ではある。ただ普段自宅のLinuxマシンはWindowsの上で動くX Serverにxtermを飛ばし、そこでCUIのみで使っている事もあって「まぁそんなもんだ」と理解できる。が、SolarisはWindowsライクなデスクトップとか、Sun Update Managerによる自動パッチインストールなど、(Mac OS X並というにはまだ差があるが)Windows並の操作性を提供できている半面で、基本的なところが昔のUNIXの流れを引きずったままなあたりに、むしろギャップを感じるのが正直な部分だ。

 今回サーバー用途に関しては特に試さなかった。最初は何かサーバーに、というアイディアも出たのだが、折角のワークステーション構成をサーバーにするのは勿体無いから、というのがその最大の理由である。これを試せばまた他のUNIX/Linuxにはないメリットが見えてくるのかもしれないという気はしたが、残念ながら今回はそうした機会はなかった。その範囲で見る限りでは、既にSolarisの資産があるユーザーはともかく、新規のユーザーがワークステーションとして使うためのアドバンテージはあまり感じられなかった。むしろLinuxとの互換性が問題になる、というケースの方が目についてしまうのは仕方ないのかもしれない(それがわかっているから、SunもSolarisのOpen Source化とかBrandZの投入などを決意したのだろう)。

 とはいえ、久々にLinux以外のUNIX系OSを弄くり倒すのは(結構大変ではあったが)楽しかったのも事実だ。ハードウェア面での安定性は高く、ほぼ2カ月連続運転(ビデオカードの交換などの際には電源を落としたが)しても特に異常は感じられなかった。唯一の例外は2回目の冒頭に書いた、リセットが効かず、電源を落とすとブートしなくなる問題である。ちなみに2回目に“STOPキーを認識しない”と書いたら“STOP+A”では? という突っ込みも来たが、これは“STOP”が正解。“STOP+A”のみならず、“STOP+D”とか“STOP+N”など、STOPキーと併用する全てのショートカットが全滅である。なのでこれは“STOP”キーそのものが無効にされていると考えるのが正解だろう。Ultra20の返却後に、自分でもSolaris環境を作ってみたが(Athlon 64 4000+/ASUSTeK A8N32-SLI Deluxe/GeForce 6600 GT)、オンボードデバイス(LAN/Sound)が全部インボックスドライバで利用できるようになっているなど、前よりもインストールできるデバイスが増えているのも嬉しい。ある程度UNIX/Linuxに慣れているユーザーなら、Solarisにチャレンジするのも面白い体験ではないか、と思う。

【Photo16】ビデオカード交換時、ちょっと目を離した隙に「中身を点検するニャ」。せんでいい 【Photo17】「これ、ワタシのものニャ」。何が気に入ったやら

□サン・マイクロシステムズのホームページ
http://jp.sun.com/
□Sun Ultra 20 Workstationの製品情報
http://jp.sun.com/products/desktop/ws/ultra20/
□関連記事
【2月14日】大原雄介の「Sun Ultra 20 Workstation」レポート(3)
http://pc.watch.impress.co.jp/docs/2006/0214/ws03.htm
【2月7日】大原雄介の「Sun Ultra 20 Workstation」レポート(2)
http://pc.watch.impress.co.jp/docs/2006/0207/ws02.htm
【2005年12月26日】大原雄介の「Sun Ultra 20 Workstation」レポート(1)
http://pc.watch.impress.co.jp/docs/2005/1226/ws01.htm

(2006年3月29日)

[Reported by 大原雄介]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2006 Impress Corporation, an Impress Group company. All rights reserved.