No.1  趣味のPC(笑)  
   
 構成(2009年4月現在)
  CPU  AMD Opteron 848 (SH7-CG 2,200MHz) x 4    
  メインボード  Supermicro H8QCE (nVidia nforce 2200Pro + AMD 8132)  
  RAM  PC3200(DDR400) DDR-SDRAM ECC-Registered 512 x 8  
  VGA  nVidia Geforce 9600GT 1GB-VRAM PCI-Express x8接続  
  Storage Controller  玄人志向 Silicon Image SiI 3124 SoftRaid 5 Controller (64bit 133MHz PCI-X)  
  Storage Device  Intel X25-M 80GB SSD x 3 (Stripe set / Stripe size = 32KB)  
  Capture Device #1  IO DATA GV-D4VR (32bit 33MHz PCI)  
  Capture Device #2  Canopus MTVX-WHF (32bit 32MHz PCI)  
  Sound Device  Creative Sound Blaster X-Fi (PCI-Express x8)  
  Operating System  Microsoft Windows Server 2003 SP2 for x86  
  ディスプレイオプション  Matrox Triple Head 2 Go / Digital Edition  
  外装  ZALMAN(VISUAL TECHNOLOGYのOEM) TNN600A  
   構成(2006年9月-2009年3月)  
  CPU  AMD Opteron 848 (SH7-CG 2,200MHz) x 4    
  メインボード  Tyan S4880 Thunder K8QS (AMD 8131 + AMD 8111)  
  RAM  PC3200(DDR400) DDR-SDRAM ECC-Registered 512 x 8  
  VGA  nVidia Geforce 8500GT 256MB-VRAM (32bit 33MHz PCI)  
  Storage Controller  LSI Logic MegaRAID 320-4X with 128MB DDR Battery Backup Cache (64bit 133MHz PCI-X)  
  Storage Device  Seagate ST318453LW Ultra 320 SCSI 18.4GB x 4  (Stripe set / Stripe size = 128KB)  
  Capture Device #1  ---  
  Capture Device #2  Canopus MTVX-WHF (32bit 32MHz PCI)  
  Sound Device  Creative Sound Blaster X-Fi (32bit 32Mhz PCI)  
  Operating System  Microsoft Windows Server 2003 SP2 for x86  
  ディスプレイオプション  Matrox Triple Head 2 Go / Digital Edition  
  外装  ZALMAN(VISUAL TECHNOLOGYのOEM) TNN600A  
   構成(2004年8月-2006年8月)  
  CPU  AMD Opteron 848 (SH7-CG 2,200MHz) x 4    
  メインボード  Tyan S4880 Thunder K8QS (AMD 8131 + AMD 8111)  
  RAM  PC3200(DDR400) DDR-SDRAM ECC-Registered 512 x 8  
  VGA  Matrox Parhelia-512 256MB-VRAM (64biy 66MHz PCI)  
  Storage Controller  LSI Logic MegaRAID 320-4X with 128MB DDR Battery Backup Cache (64bit 133MHz PCI-X)  
  Storage Device  Seagate ST318453LW Ultra 320 SCSI 18.4GB x 4  (Stripe set / Stripe size = 128KB)  
  Capture Device #1  ELSA製TVチューナ・キャプチャボード (EX-Vision 700TV)  
  Capture Device #2  Canopus MTV-3000W (32bit 32MHz PCI)  
  Sound Device  Creative E-MU 1212M (32bit 32Mhz PCI)  
  Operating System  Microsoft Windows Server 2003 SP2 for x86  
  ディスプレイオプション  ---  
  外装  GHS2000  
   ベンチマークテストによる性能指標(簡易)  
  Crystal Mark 2004 R3
(2009年4月現在)
 
  Crystal Mark 2004 R3
*Tyanメインボード使用時
ただしストレージはX25-M x 2のStripe set
 
   その他四方山話等  
  システムの全体図。
TNN600AはTyanの16 x 13インチ用マザーのために特注されたケースなので,
基本的にSSI-MEBであるSupermicroのH8QCEも物理的には難なく収まる。
ただし,ネジ穴位置は若干異なり,S4880用のネジ穴10か所のうち,
7か所しか一致しなかった。
一致したのは,俗にE-ATXと呼ばれるメインボード(SSI-EEB)と共通の
下側4箇所(一部はATXとも共通)と上部の3個所である。
向かって右側の縦は一つもネジ穴位置が一致せず,
そのままではかなり不安定であったので,縦位置で真ん中あたりのネジ穴部に
適当な絶縁性のスペーサーをかませて,メモリモジュール等設置の際に
メインボードに垂直方向の力がかかっても,ボードがたわみ難いようにした。

16 x 13インチサイズのメインボードには,一応SSI-MEBという規格が存在するが,
ネジ穴位置については共通ではなく,メーカー独自の配置が用いられているようである。
万全を期すなら,H8QCE用にタップを打ってネジ止めすべきところではあるが,
使用した限りでは,共通する7か所+1か所のスペーサーで
別段問題はないようである(異常にたわむ,剃りが出るなどしない)。

尚,2009年4月の時点で,「SSI-MEB&ケース」等の語句で検索をかけると,
「E-ATX用ケースになら大抵収まる」といった趣旨の記述が散見されるが,
これは錯誤である。E-ATX(SSI-EEB)のメインボードベースより更に上に10cm程度大きい
ベースを必要とするので,注意されたい。
 
  CPU周辺図。
物理CPU4個というのはなかなかに壮観である。
が,Quad Cores全盛時代,無意味極まりないと言われれば,返す言葉がない。
今では,Core i7やPhenomII x4 BEの単機に軽くひねられる。
ちなみに,Quad Cores Opteronでこれをやれば全部で16スレッド走ることになる。
実はこれを書いている今日(2009年4月25日),AMDからHexa-Cores(6コア)Opteronが
発表されたが,これだと24スレッドが走るわけだ。いやはや,一度目にしてみたいものである。

さて,物理CPU4個という構成,
見る分には楽しくてよいのだが,発熱の問題は頭が痛い。
SH-7 CGはTDPの公称値が89Wであるが,89W x 4で356Wということになる。
T-caseが70℃であるのに,室温30℃の状態だと,サーマルダイオードのBIOS測定で容易にT-caseに達してしまう。
ただ,Supermicroの温度計測はかなり高め(Tyanと比較すると10℃以上高い)に出るので,
BIOSで計測された70℃が即破壊温度を意味するわけではないだろう。
その証拠に,SupermicroのシステムユーティリティであるSuper Doctor IIIでは危険温度の最高値は90℃に
設定されている。また,Tyanのシステム上の測定では,吸気効率の落ちる後部CPUでも59℃@室温30℃程度であった。
当該システムでは,吸気FAN,CPUFAN,排気FANはほぼ一列に並んでおり,
また,ケージの側板を閉じると周辺部はダクト状になってまっすぐに風が抜けるので,
エアフローとしては最適のはずであるが,それでも温度は結構な勢いで上昇する。
現在のところ,68℃@室温30℃であり,エアコンで室温を24度程度にしてやれば62度程度で安定する。
ちなみに管理人は,ヘテロジニアスマルチコア時代が本格的に到来する2010年まであと2年間,
この時代逆行はなはだしいシステムで頑張るつもりのようだ。
 
  I/Oボード周辺部。
念願のPCI-Express接続のグラフィクスアクセラレータが刺さっている(笑)。
上から,サウンド,グラボ,SATA-Arrayコントローラ,D端子映像キャプチャボード,アナログキャプチャボード。
Tyan S4880の唯一にして最大の欠点はPCIまたはPCI-Xしか拡張スロットがなかったこと,
すなわち,グラフィクスがショボくならざるを得ないことであったが,ついに解消した。
とはいえ,2本あるPCI-Expressスロットを2本とも使ってしまうとx8に制限されるし,
しかも2本使っているので,グラボの性能は100%活かし切れてはいない(そんなこともないか…)。
サウンドをPCIのものにすればよいのだが,なぜかCreativeのサンドカードは
PCI-X,というか3VのPCIに接続すると,オーバーレイ使用時にスクラッチノイズ(プチ,プチ)が入ってしまうのだ。
これは,従前,グラボとサウンドが同じPCIバスをシェアしていたことが原因かもしれないのだが,
今回は万一のことを考え,PCIバスを回避したわけである。
 
  チップセットファン周辺部の拡大図。
当該システムは全部で13基のファンを搭載している割には動作音は静かな方である。
騒音測定器を持っていないので,数値で示すことはできないが,
デスクサイドにおいてなんとか使えなくはない騒音と言えば,雰囲気は伝わるだろうか?
しかしながら,ここに写っている2基のファンはその中での問題児である。
いわゆる小径・高速ファンであり,音圧こそ低いものの「ヒョ~」という高音の
耳に付くタイプのノイズを発する。
ケージを閉じると音漏れはずいぶんマシにはなるのだが,
排気ファンに向かう気流にのって,筺体の背面下部から地味に響いてくる。
しかも周波数が高いのだろう,結構遠くまで聞こえる。
nforce2200+AMD8132構成のメインボードでアクティブファンを搭載しているものを
Supermicro以外で見たことがないので「そもそも必要なのか?」と思ってしまうが,仕方ない。
 
  TNN600Aの外観図。
ベアボーンで購入する場合を別にすると,入手が比較的難しい,SSI-MEBメインボードを
搭載可能なケースである。

TNNシリーズの真骨頂は,分厚いアルミと側面の巨大なフィンを利用した,
ファンレス動作であり,事実VISUAL TECHNOLOGYが提供するシステムにはS4880と4way Oputeronを
格納しつつ電源も含めてファンレスという凄まじいシステムが存在するが,
このTNN600Aは,専用ファンレス電源を含めそうした特徴的静音構造はすべて廃されている。
その意味では,SSI-MEBを搭載できるというだけのただの巨大なアルミケースであるが,
この容積にSSI-MEBを搭載できるケースは今のところこれしかない。
私は,スポットに近い形で入荷されたものを偶然入手できたのだが,
2009年現在これをまだ入手できるのかどうかは,正直わからない。
ZALMANのサイトではTNN600Aは公開されていないし,
VISUAL TECHNOLOGYも最近のモデルにはこのケースを使用していない。
あと,ケース本体の価格の割にはスイッチ類が地味にしょぼい。

GHS2000というケースも市販されており,こちらは普通に入手できるが,いわゆるペデスタルケースに
分類されるものであり,デカイ・重い(約20kg)・うるさいの3拍子揃っているため,
サーバルームに閉じ込めるのでもない限り,積極的にお勧めできるものではない。

Users Side(現DOS/V Premium Shop)が,SmartFlex V2 for Quadの再販か,もしくは
SmartFlex Metalの商品化を実現してくれるとよいのだが,市場がニッチすぎて難しいか…。
 
  当該システムのストレージ。
X25-M x 3のStripe Setアレイである。
購入時,締めて¥240,000のストレージであったが,現在は大体半額くらいか…。
ここ半年でSSDは恐ろしく値が下がり,また性能が向上した。
今,例えば120,000かけるのであれば,X25-M x 3よりは,
Photo FastのG-Monster V3等(要はDRAMキャッシュ付Indilinks製コントローラのMLC SSD)の
120GBモデル x 3の方が満足度はずっと高いだろう。
これらのモデルは,書き込み速度が単独だと90MB/sec程度(30GBモデルと同程度)
しか出ていないような場合も多々見かけるが,そうだとしても,3台のStripe Setなら,
Readで約660~720MB/sec,Writeで240~270MB/sec程度を期待できるからである。
Writeが公称値の通り単体で160程度出るならば,420~480MB/secということにもなるわけだ。
 
  ちなみに,当該システムのCrystal Disk Mrak によるベンチマーク結果(ストライプサイズは32KB)。
Writeが(コストの割には)絶望的に伸びていない。
このSSDは単体では80MB/sec程度出るので,210~240MB/sec程度をいやがおうにも
期待してしまうわけだが,当方の環境ではこのあたりで頭打ちとなってしまった。
ただ,使用しているRAIDコントローラの標準ストライプサイズは64KBであるから,
ストライプサイズを64KBにすれば,もう少し事情は変わるかもしれない。
Readについては申し分ない。(欲を言えば700を超えてほしいが…。)
尚,4kのランダムライトは,最高で89MB/sec程度まで伸びる(Range = 約60 ~ 89)ことがあり,
体感速度的には十分に速い。私も含めベンチマーカーはどうしてもSequentialの速度を最重要視する
きらいがあるが,本当に重要なのはランダムアクセス性能であるから,これが高いのは喜ぶべきことだ。
ちなみに,キャッシュメモリなしのStripe Setでランダムライトが向上したのを見たのは
個人的にはこれが初めてである。
 
  ストレージの話 その1 さて,私のつたないどうでもいいような四方山話をここまで読んでくださった心の広い方々の中には,
私が,Stripe SetをRAID0とは書いていないことに気付かれたかもしれない。
これには理由がある。

Stripe Setとは,RAID0のいわば説明的表現であり,基本的に同義であるといって差し支えないが,
私は個人的にRAID0をRAIDとは呼びたくないのである。

というのは,RAIDは「Redundant Arrays of Independent (or Inexpensive) Disks」の略語であり,
これを試訳すると,「独立した(または安価な)複数ディスクによる冗長化機能をもった束」ということになるわけで,
つまるところ,「性質上壊れることを想定しなければならないディスク型記憶装置をなんとか壊れにくくしましょう」
というのがRAIDの趣旨である。
だから,RAIDと呼ばれるためには,少なくとも何らかの冗長化機能をもっていなければならないだろうと思うのである。

また,これは相当に余談であるが,SSDは一応は半導体製品であるため,分散読書機能をいう場合には,
「Interleaved」の方がStripeやRAIDの用語よりなじむ気がするということもある。

確かに,こうした細かい用語法にとらわれる必要などなく,要はやりたいこと,ないし,やっていることの意味が
通じれば十分なのかもしれないが,
昨今のストレージをめぐる話題を見るに,「RAID=高速化技術」であるかのような錯誤が散見されることには
いささか危惧の感を禁じ得ない。
RAIDに高速化の側面があることは確かであるが,RAIDは断じて「高速化のための技術」ではない。

ある掲示板の記述で「RAID50のアレイがいつ壊れるか心配だ」といった趣旨の書き込みを目にしたことがあるが,
正直に言ってRAID50を使うレベルのユーザはこういうことを言ってはなるまい。
この発言はRAID50の意味を全く理解していないことから出たものであると言わざるを得ない。

そもそもRAID5は3台のディスクによるアレイを最低単位とし,本来記録すべきデータの他に
排他的論理和により生成されたパリティデータを分散書き込みすることによって,
基本的に3台の内の1台が使用不能になった場合でもなおそのままシステムを継続運用可能にしながら,
なお,ディスク1台を使用した場合よりもアクセス性能を向上させることを目指したアレイ構成である。

RAID50は,これを拡張し,最低構成で6台当たり2台の故障にまで確実に耐えられるように
しつつ,より多くのデバイスに対して分散処理を行うことで高速化を図った構成である。

だから,RAID50のアレイを運用するのであれば,
「最低の6台構成でアレイを構築した場合,
仮に2台が同時故障しても,3台目が故障するまではアレイ内のデータにはなお可用性がある」
という認識をもって運用しなければ,その意味が全く失われてしまう。

この「2台目の故障から3台目の故障までの間」に故障したディスクを交換すれば,
システムを止めることも再構築することもなしに,データを継続運用し,かつ故障により失われたディスクアクセス
パフォーマンスを回復できるということこそRAID50の真骨頂である。
そのために,高価なRAIDコントローラは,自身も,それにつながるディスクも,キャッシュメモリも活線挿抜が
可能になっているのだ。キャッシュメモリにバッテリがぶら下がっているのは,
故障したコントローラから切り離しても10時間程度は内部のデータを保持できるようにするためである。

このように優れた冗長化機能をもつRAID50アレイを運用しながら,「接続したSSDのどれかが壊れたのかしら?
いつ全体が壊れるのかしら?不安だわ…。」というのはあまりにも残念極まりない。
その心配をしないで済むようにRAID50は存在するのであり,50を可能にするRAIDコントローラには,
優秀なアレイ監視ツールが付属しているのである。

このような錯誤が起こるのは,RAID50を,例えばRAID0やRAID10と比較して「より優れた高速化技術である」と
誤解していることに起因するのだろう。
先に,RAIDは断じて「高速化のための技術ではない」と書いたのはこのためである。

RAID0は,確かにディスクの高速化を実現する手段としては優秀である。
しかし,同時にLevel 1以上のRAIDは冗長化技術として重要なのだ。

だから,「RAID=高速化技術である」との誤った認識の下で,
RAIDに対する正しい認識が低下し,効率的にRAIDアレイを運用できるユーザの数が減少し,
かつ,曖昧模糊とした知識が氾濫して正確な情報を選別しにくくなることは
システムの構築・運用等に関する業界全体の損失であると思う。

その観点からすれば,「RAID=高速化技術」とする錯誤には,単なる用語上の問題以上に
重大な問題を孕んでいるといえるのではないかと思えて仕方がないのだ。
 
  ストレージの話 その2 さて,RAIDの話の続きであるが,
これは御存知の方も多いと思うところであるが,
単にディスクの読書速度を上げるのであれば,RAID50やRAID60をサポートする高価な
RAIDコントローラの使用は実は逆効果になることも少なくない。

ここでいう「高価なRAIDボード」とは,
サポートするRAIDレベルが高く,IO専用のRISCプロセッサを搭載しているものが該当する。

RAID1以上のレベルでは,データの書き込みの際に,必ず何らかの演算を行わなければならない。
厳密にはRAID0でも,データを既定のストライプサイズに分割するという演算をする。

RAID1であれば,書き込みデータのコピーを別のディスクに同時書き込みする必要があるし,
RAID2ではハミングコードの生成,RAID3,4,5ではパリティの生成,RAID6では二重パリティの生成を
しなければならない。
RAIDx0系に至っては,データを既定のストライプサイズに分割しつつ,各レベルに応じた処理をしなければ
ならないわけである。

かつて,IOP(RAID専用のRISCプロセッサ)としてはPowerPC G3の300MHzや,
旧3Ware社の独自IOPが有名どころであったが,最近ではIntelのxScaleの400~800MHz程度が
よく使用されているようである。

これら,最近使用される400MHz~800MHz程度で動作するRISCプロセッサともなれば,
RAID用の入出力演算であれば必要十分な速度でこなすことが可能であるが,
とはいえ,3GHz超の速度で動作しつつ,マルチコア化によって複数スレッドを同時にガンガンこなせる
昨今のCPUには到底かなうはずがない。

非常に単純な演算しか行わないRAID0であっても,必ずこの「CPUよりははるかに遅い」RISCチップを
通る必要があるわけで,ここがボトルネックになる。
接続された各デバイスの1台当たりの性能の整数倍の速度がRAID0によって得られない,あるいは
いくら台数を増やしてもPCI-Expressバスの転送限界まで速度を伸ばすことが難しい理由はここにある。

ただし,こうした高級RAIDコントローラではキャッシュメモリを搭載し,
これを有効に活用することで,ボトルネックを解消している。

最近では2GB程度のキャッシュメモリを搭載できるので,
キャッシュポリシーをWrite-backやRead-aheadに設定すると
(バッテリーバックアップ付ならこれらの設定が標準であることが多い)
1.4GB/sec超というPCI-Express 2.0 x2相当を超え,x4の転送限界理論値の70%に迫る性能をたたき出すことがあるが,
あくまでもこれはキャッシュメモリ上のデータの転送速度である。

キャッシュを効かなくする(データサイズをキャッシュメモリの容量より大きくする,Write-throughに設定する)と
実際のアレイの速度が計測できる。

さて,ではキャッシュを効かなくした状態で,ディスクアレイだけで速度を向上させるためにはどうすればよいのか?
その答えは簡単で,遅いIO RISCプロセッサの代わりに,高速なCPUにRAIDに必要な演算をさせればよいのである。
いわゆるBIOS RAIDを用いればよいわけだ。

BIOS RAIDとは,早い話が,ICH等の機能により構築されたアレイのことである。
当該システムで使用しているSiI 3124 SoftRaid 5 ControllerもBIOS RAIDコントローラである。

ICH等はSATAのインターフェースを提供しているだけで,RAIDを構成した場合も,
自身で何か演算しているわけではない。
非常に大雑把にいえば,
これらはアレイ情報を保持し,ドライバの形でそれをOSに渡し,あとのことはCPUに任せているのだ。

ところがこの場合には,先ほどボトルネックになるといった演算を,高速なCPUがこなしてくれるわけであり,
インターフェース~チップセット間接続~メモリ~CPU間に極端なボトルネックがなければ,
理屈上,理論値の限界まで性能を引き出せることになる。
従って,体感速度を度外視してでもRAIDアレイの速度をベンチマーク上でギリギリまで引き出したいのなら,
最適解はBIOS RAIDということになる。

このことのひとつの裏付けとして,高価なRAIDコントローラを用いた場合,性能を台数に比例させるためには,
設定を詰めなければならないことが多いのに対して,
ICH等で構築されたアレイはある程度の台数(要はICH内部のSATAインターフェースの転送限界に達するまで)は
比較的容易に奇麗に正比例することが挙げられる。

*当該システムはBIOS RAIDであるにも関わらず整数倍になっていないが,
ReadはPCI-Xバスの実行速度の飽和(64bit x 133MHz /8 x 0.7)に引っ掛かっている可能性が高い。
また,Writeは,X25-Mの旧ファームウェアにおける平均Write値が40MB/sec程度にとどまることを
勘案すれば,この平均Write値の3倍はきっちり出ているので,不自然に遅いわけではない。
事実,Write値が130MB/secを下回ることはまずない。

*ICHはSATAのインターフェースとチップセット内部の接続がPCI-Express 2.0 x1相当の制限を受けているようで,
200MB/sec程度の転送速度をもつSSDを接続すると2台でほぼ飽和し,
3台目からほとんどパフォーマンスが伸びなくなる。

ただし,体感速度やPCの他の動作への影響までをも含めた本当に快適な環境は
RAIDコントローラか,BIOS RAIDかと問われれば,間違いなくRAIDコントローラを使用し,
かつ,キャッシュメモリを最大限有効に使用する環境である。

なぜか?

最近は全くと言っていいほど語られなくなったが,
以前はRAIDコントローラの性能指標の一つには必ずCPU Usage(=CPU使用率)が挙げられていた。

*HD Tuneでも測定できるし,I/O Mtereではかなり詳細に測定できる。

CPUがまだ今ほど高速でなく,マルチスレッド性能にも優れていなかった時代には,
「如何にCPUに負荷をかけないで高速なディスクアクセスを実現するか」は重要な問題であった。
なぜなら,CPUを使うということは,ディスクアクセスが発生する度に,PCの全パフォーマンスが
低下するということを意味するからである。
これでは本末転倒である。

我々が高速なディスクアクセスを得たいと考える理由は,ベンチマークでカツカツの性能をたたき出すためではなく,
PC内部の種々のデータアクセスの中で構造上最も低速なサブストレージの速度を改善することで,
操作に対する,より高速な反応を得るためであることは間違いあるまい。

だからこそ,CPUに負荷をかけずに高速なRAID処理をするために,
高価なRAIDコントローラにはこれまた高価な専用IOプロセッサが搭載されているのだ。
このIOプロセッサと,キャッシュメモリの働きによって,CPUはサブストレージのコントロールの多くの部分から
解放され,ネットワークパケットの処理なり,アプリケーションプログラムの動作なりにより多くの
処理時間を充てられるようになるわけで,
このことが,最終的には,我々に「より快適な環境」を提供してくれるのである。

高性能かつ高機能なRAIDコントローラが高価なのは,単に額面上の速度を高速にするためではない。
冗長化機能をも含めた,より優れたユーザビリティ提供のためのものである。

だからこそ,それを使用するユーザにも,
その提供された性能と機能を十分に活かす知識と技術があって欲しいものだと考えるのだが,
果たしてそれは間違いだろうか…?
 



   

 トップへ戻る