1.Introduction
なんとまあ当たるわけないと思ってたプレミアムレビューが当たってしまいました!!
レビューのテーマとしては「キューブベアボーンを使った家庭内サーバ」ということで
OpenIndianaかNextentaStor等のOpenSolaris後継OSを動かして
HDDを大量搭載(第一次計画:hdd*4/第二次計画:hdd*6)した
家庭用zfs-SANもどきを構築するつもりです。
hdd大量搭載ということで2.5インチマウンタのレビューも合わせて行うつもりです。
適合パーツの基準がやたら厳しいSolarisは果たしてベアボーンで動くのか!?
zgock先生の次回作にご期待ください
////////////////////////////////////////////////////////////////////
2.受け入れ準備
さて、Solarisを動かすという公約である以上、
「Illumos(新世代OpenSolarisカーネル)のポイントのひとつのKVM仮想化はやりたいよね!」
「Solaris=zfsと言っていいぐらいだし、zfsらしさを出すならHDDいっぱい積まないとね!」
ということでCPUとHDDの確保から。
もともと、このベアボーンが来る前に家庭内サーバに考えていた構成としては、
C20x系サーバーマザーに、E3-XeonV2を乗せようと構想していたのですが、
このベアボーンはZ77チップセットなので自ずとデスクトップ用のCore-i系になります。
もともと構想にあったのはXeon E3-1225V2あたりか、E3-1245V2あたりを考えていましたので、
ほぼ同等のCore-i系となると、i5-3470かi7-3770あたりになります。
ちなみに機能比較してみるとこんな感じ。Intel Product Compare
Xeon E3-1245V2の価格が大体最安で23,000円ぐらい
同等品であるi7-3770が大体最安で26,000円ぐらい
あれ?どう考えてもXeonのがお得じゃね?
はい、今IvyのCore-i系のお値段ってなんかおかしなことになってて、
Server用のXeonの方が同等の性能ならお安いという現象が起きているんですね。
なので、マザーが対応さえしているならXeonを買うところではあるんですが、
BIOSがへちょい厳格なことで有名なShuttleですから、
大概のz77マザーはXeonが動くとは言っても安心はできません。
レビューじゃなかったら、「あー動かなかったやHEHEHE」で済みますが、
レビューで「動きませんでした、終了」というわけにもいきませんので
しぶしぶcore-i系を導入することにします。
(これでレビュー対象がASRockマザーとかなら、あえてXeonで冒険もしたでしょうがねw)
というわけで大須を徘徊していたら幸いお手頃な中古があったので確保。
無印のi7-3770です。
でもって、HDDですが、今2.5インチでGB単価が一番お手頃なのは750GB級ですが、
3台同時購入だとさすがにお小遣いが厳しいので500GBを三台確保。
これと前から持っている2.5インチ200GBと合わせて4台構成にします。
メモリは手持ちの4GB-PC1333を適当に流用予定。
というわけで、受け入れ準備完了!どんとこいやー!
////////////////////////////////////////////////////////////////////
3.到着
というわけで届きました!
中身は本体と付属品。それから2.5インチマウンタのPHD03です。
付属品は電源ケーブルとSATAケーブル2本、CPUカバー、各種ねじ、ドライバCD、シリコングリス。
シリコングリス付属なのは何気にうれしいですね、初自作だったりすると買い忘れたりするし。
説明書は新聞サイズのクイックガイドが各国語版で付属するだけです。
まあこれあれば組立はできますが、初自作だと困るかもなぁ。
とりあえず本体を取り出して以前使っていたShuttleのSocketAキューブと並べてみました。
SocketAキューブより一回り大きいかな?
というわけで、いよいよ組立開始です。
////////////////////////////////////////////////////////////////////
4.組立
いよいよ組立開始。
アウターケースは手回しねじ3本で簡単にはずれます。
ドライブケージとクーラーを外したところ。ここまではドライバ一本でOK。
CPUソケットの保護シールをはがしてCPUの取り付け。
クーラーの取り付けはリテールと同じく普通のプッシュピン方式。
個人的には、LGA775以降のこの方式、改悪だと思ってるんですが・・・・まあ仕方ないですね。
今回はHDDを4台搭載ということで、ドライブケージに2.5インチマウンタを取り付けます。
PHD03に2台の2.5インチHDDを装着。
それぞれ、HDDとマウンタに微妙に隙間が開くようになっているのは、冷却を考えてのことでしょうか。
2.5インチHDDはマウンタのほぼ中央に来るような設計になっています。
これが後々えらい苦労を招くことになるのですが後述。
いただいたPHD03は一枚なので、もう一つマウンタを取り付けます。
幸い、中段の3.5インチベイはオープンべいになっていますので、
ホットスワップ対応の3.5インチ用リムーバブルマウンタを取り付けます。
5インチベイはとりあえずリザーブで。光学ドライブは余ってますけど、
キューブだけにSATAポートが4つしかないので、
これ以上はSATAを拡張しないといけないので。
今後、miniPCI-EXにSATA拡張を取り付けて、
最終的にSATAx8にする計画ですので、そのためにも5インチはキープ。
ミニサイズPCとしてはSATAx4は珍しいことではないですが、
やはりサーバー用途で考えると4つはあまりにも少ない・・・
そこでmini-PCI-Expressで拡張の余地があるのはポイント高いですね。
で、組み付けをして配線にはいりますが、ここで問題が・・・
PHD03に取り付けた2.5インチは、ほぼ中央に位置しているので、
SATA電源ケーブルがすんなりと入りません。えらく苦労しました。
今回、かなり強引な取り付け方をしましたが、気になる人はSATA電源の延長を用意した方がいいでしょう。
これはPHD03を使って4台のHDD/SSDを取り付けた場合の問題なので、2.5インチSSDを1台のみという構成とか、下段が3.5インチHDDとかの構成だと問題にならないと思います。
そしてドライブケージを取り付けますが、ここで微妙に注意点が。
このベアボーン、USBの内部配線が異常にぶっといです。
特にUSB3.0のコネクタがドライブケージの真下にあるので、無造作に取り付けると、ピンを曲げそうになります。
まあそんなこんなでとりあえず仮組みは終わったので動作確認を・・・
////////////////////////////////////////////////////////////////////
5.Windows7で動作確認&相性問題発生!
仮組が終わったのでとりあえずWindows7をインストールして動作確認を。
今回、光学ドライブを積んでいませんのでWindows7をUSBインストールします。
Windows7のisoイメージをWintoFlashでさくっとUSBインストーラ化
インストール自体はすんなりと。
インストール直後にLAN/USBコントローラ/VGAが認識できませんが、
Shuttleのサイトから落としてきたドライバで問題なく認識。
いただいた状態のBIOSが、2012/04時点のやや古いBIOSだったので、
ついでに最新に更新します。
一通りWindowsUpdateを行ったところで、HDDイメージのバックアップを取ろうとしたところでそれは起こりました。
突然画面が乱れ、そのままフリーズ!
どうみてもメモリの相性問題だなあということで、手持ちのメモリをあれこれ交換して検証。
手持ちのメモリがA-DATA/Elixir/PatoriottのPC3-1333の4G*2だったんですが、
あれこれ組み合わせを試して、Patoriottのメモリがどうも相性が悪いっぽいことを把握。
このメモリ、他のマザーだと相性問題おこしたことほとんどなかったので、
一番最後に疑った分余計に時間がかかりましたorz
とりあえずメモリ交換後、軽めのベンチを流して安定動作を確認。
HDDイメージのバックアップを取っていよいよSolarisのインストールです。
////////////////////////////////////////////////////////////////////
6.KVM仮想化・・・は断念!
Solarisのインストール前にBIOSの機能をざっくり確認していきます。
今回、Solarisを使ってKVM仮想化も試してみたいということで、i7-3770を用意したんですが、
Solaris(Illumosカーネル)でKVM仮想化を使うためにはvt-d機能が必須になります。
(KVM自体はvt-d必須ではないんですが、Illumos固有の要求スペックのようで、
vt-d非搭載のマザーでkvmインストールするとSolarisがフリーズします)
このvt-dですが、よく勘違いをなさってる発言や書き込みを見かけますので簡単にまとめておきます。
vt-dというのはもともとチップセットのノースブリッジの機能だったので、Nehalem以前はチップセットにその機能が要求されたのですが、Nehalem(Core-i系)以降はノースブリッジ機能がCPUに搭載されたので、チップセットはvt-dに無関係になっています。が、BIOSはvt-d対応になっている必要があるので「vt-d対応マザー」である必要があるんですが、チップセットは無関係なんですね。
というわけで、BIOSさえ対応していればvt-dが使えるんですが・・・
・・・うん・・・ShuttleさんのBIOSに過度な期待をしちゃいけなかったよね・・・うん
残念ながらvt-dに対応しておりませんでした!
まあ、サーバー用途で使うことを最初から想定していないでしょうし仕方ないかな・・・
こうなると、i7-3770は完全にオーバースペックなんですが・・・
(仮想化することを前提でmanyCoreCPUを選んだので)
まあ気を取り直してSolarisインストールです!
[追記]
どうも、このBIOS、仮想化周辺に致命的なバグがあるみたいで、
VMWare ESXiも起動しないし、LinuxのKVMでも不安定になる等、
仮想化とはいろいろ相性が悪いみたいです。残念。
////////////////////////////////////////////////////////////////////
7.こいつ・・・動くぞ!
openSolaris LiveUSB Creatorを使ってOpenIndianaのインストーラUSBを作って・・・
SZ77R5に突っ込んで起動。
この時、BIOSの「Max CPUID Value Limit」をDisableにしておかないとインストーラが起動しませんので注意。
しばらく待つと普通に起動。もうちょっと苦労するかと思ったのに予想以上にあっさり起動。
IntelのUSB 3.0コントローラを認識できないようですがまあこれは想定の範囲内かな。
デスクトップのインストーラアイコンをダブルクリックしてインストール開始。
インストール対象に200GB/7200rpmのHDDを。
タイムゾーンを選んで
初期パスワードと初期ユーザを設定。
rootのパスワードは初回suをした時に変更を強要されるので、ここでは仮パスワードで。
最終確認後にインストール開始。
すんなり終了、リブート
・・・と、ここで問題が!
リブートに入ったところで画面が真っ白になってそのまま止まってしまいます。
あれこれ問題の切り分けをした結果、どうやら
OpenIndianaのIntel HDドライバののHD4000対応が不完全なようです。
というわけで、急遽ディスクリートのVGAを用意。
特に用意をしてなかったので、そのへんに転がってたGeforce 8400GSをとりあえず突っ込んで再インストール。無事リブートしました。
というわけで、Ivy BridgeでOpenIndianaを使う場合外部VGAは必須ということで。
[追記]
試しにSandyBridgeベースのCeleron G540に差し替えて起動してみたところ、
上記リブート時の問題は発生しませんでした。
Ivy Bridge固有の問題のようですが、これも他Z77ベースのマザーでは、
問題なく動くのもあるということで、
やはりWindows以外のOSへのBIOS対応が甘い部分があるようです。
////////////////////////////////////////////////////////////////////
8. Cos I can drive my very own Tank(zfs act1)
起動後、500GBのHDD3台をraid-z構成のzpoolに設定します。
zpoolの命名はzfsの標準に従って"tank"で。
(ここに至る前に若干の試行錯誤があったのでzpool createに"-f"を付けていますが本来は不要です。)
これで約1TBのraid-z(改良版raid-5)のアレイが作られました。
これでHDD3台のうち1台が壊れてもデータの保証がされ、かつRAID-0並みのストライピング速度が得られる高信頼のアレイになります。
通常のraid-5には「サイレントクラッシュ」と呼ばれる仕様上の欠陥がありまして、特にやっすいRAIDカード(そのへんで売ってるRAID-5対応をうたってるやっすい外付けケースとかNASとか特に)だと、
「見た目正常に書き込みが行われているように見えて実はデータが壊れてる」
という問題が発生することがありますが、raid-zではその問題は発生しない設計になっています。
とりあえず軽く速度チェック
write 10.24 GB via dd, please wait...time dd if=/dev/zero of=/tank/dd.tst bs=1024000 count=1000010000+0 records in10000+0 records outreal 57.7user 0.0sys 4.310.24 GB in 57.7s = 177.47 MB/s Write
read 10.24 GB via dd, please wait...time dd if=/tank/dd.tst of=/dev/null bs=102400010000+0 records in10000+0 records outreal 1.6user 0.0sys 1.310.24 GB in 1.6s = 6400.00 MB/s Read
writeは大体2台構成のRAID-0相当の速度が出てますね。
readはzeroファイルだと全部キャッシュに入ってしまうのでえらい速度になってますw
簡単に言ってしまうと、キャッシュ容量8GBの巨大HDDになったわけですねw
(zfsではその時の使用可能最大メモリの半分がキャッシュとして使用される)
tank上に公開フォルダ[public]を作ってwindows公開して、ファイルコピーのテスト。
テストファイル:openSUSE 12.2 RC Install DVD.iso [約4.2GB]
write:112MB/s read:99MB/s
参考:windows Server 2008 R2 on ML115G5/PhenomII 940BE
write:89MB/s read:88MB/s
ほぼGigaBit Etherの限界値に近い速度が出ています。
とりあえずなかなかの高速/高信頼アレイが出来上がったわけですが、zfsのいいところはこれだけではありません。そのへんは次回以降で。
////////////////////////////////////////////////////////////////////
9. Double talk, Double talk(zfs act2)
zfsの持つ強力な機能の一つに「dedup(重複排除)」という機能があります。
公開フォルダtank/publicのdedup属性をonにすることで重複排除機能が有効になります
publicフォルダに4GBのisoファイルをコピーすると、4GBのエリアが使用中になり、zpool中にも4GB分の領域が確保されます。
ここで、全く同じファイルを名前だけ変えてコピーします。
すると、zfs領域であるtank/publicの使用量は2倍の8GBになっていますが、
zpoolとしてのtankの使用量は少ししか増えていません。
tank/publicのAVAIL(使用可能量)も減っていません。
このように、zfsでは、保存したファイル中の重複したブロックを検出し、重複分は共有する機能を持っています。
今回、全く同じファイルで実験しましたが、これが「4G中の1バイトだけ内容が違うファイル」だった場合、差分の1ブロック(128Byte~4kByte)だけディスクを使用します
その他にも強力なバックアップ機能である「SnapShot/Clone機能」など、zfsには凄い機能がめじろ押しですが、やりすぎるとキューブのレビューじゃなくzfsのレビューになってしまうので、このへんにしておきますw
このdedup機能、実はかなりのCPUパワーを必要として、非力なCPUで使用すると書き込み速度がかなり落ち込んだりするのですが、今回i7-3770を使用することでdedup有効にしていてもGigabit Etherの速度範囲内ならば書き込み速度の落ち込みがほとんどありませんでした。
////////////////////////////////////////////////////////////////////
[追記]
10.Gentlemen Take Polaroids (zfs act 3)
さて、仮想化プラットホームとしての使用はあきらめましたが、
こうなったらzfsストレージとしてビシビシ使います。
というわけで、iSCSI設定をした上で、DNSMasqとgPXEを入れて
他PCのディクレスブート用に設定します。
DNSMasqとgPXEの組み合わせで、iSCSIブート対応の高級NICじゃなくてもiSCSIブートは可能です。
というわけで、i7-860マシンをディスクレスブートしてWindows7を入れてみました。
ネットワーク分離もしていない、やっすいGigabitHub経由の野蛮な接続ですが、
CDM取ってみるとこんな感じに
ネットワーク越しですが、ちょっと前のSATA-HDD程度の速度は余裕で出ています。
zfsを使ったiSCSIブートをさせると何が嬉しいって
zfsのSnapShot機能を使ってバックアップ/レストア/世代管理が一瞬でできることです。
とりあえず、インストール後、一通りのWindows Updateを通したところで、
zfs snapshot tank/iscsi@windows.stable
とssh経由で打ち込んで、「現在のディスク状態を記憶」しておきます。
(このコマンドの実行は一瞬です)
その上で、あれこれディスクに書き込んだ後で、素に戻したいと思ったら
windowsをシャットダウン後に
zfs rollback tank/iscsi@window.stable
と叩けば一瞬でインストール&windows update直後の状態に巻き戻せます。
その上で、例えば開発関係のプログラムを入れて
zfs snapshot tank/iscsi@windows.develop
zfs rollback tank/iscsi@windows.stable
とやっておいて、一度素の状態に巻き戻してからDTM関係のプログラムを入れて
zfs snapshot tank/iscsi@windows.dtm
と記録しておけば
zfs rollback tank/iscsi@windows.develop で一瞬で開発環境に
zfs rollback tank/iscsi@windows.dtm で一瞬でDTM環境に変わります
しかも、ディスクの消費量はこの時
windows.stableの量+windows.developとwindows.dtmの差分
しか消費しません
////////////////////////////////////////////////////////////////////
11.無理やりまとめ(未完?)
本来、このキューブ型ベアボーンというのは、
「コンパクトながら高拡張性を持ったハイエンドクライアントPC」
を想定した作りになっていると思います。
それを無理やりサーバー用途で使用している感がありますので、
1.2.5インチを4台積むと若干問題が出る
2.サーバー用途で考えるとBIOSにいろいろ残念なところがある
という感覚は拭えませんでした。
それでも、500W電源というのはHDDを大量搭載する上で安心できますし、
mini PCI Expressが2本あるという拡張性も通常のmini ITXではなかなか確保できません。
ものすごく可能性を秘めたベアボーンだと思います。
(それだけにBIOSの熟成不足が残念でなりません)
このサイズでzfsが余裕で使える仮想化サーバとかすごく素敵だと思いませんか?
いろいろ課題は抱えていますが、このサイズで少し前のエンタープライズ並みのSANを
構築できる可能性があるのはこのベアボーンだけだと思います。
その意味で間違いなくオンリーワンの機種だと考えます。
できましたら、Shuttle様には、
1. 2.5インチのホットスワップベイをx4、できればx8ぐらい搭載
2. NICはIntelをオンボードでできれば2発
3. BIOSはvt-d対応でぜひ!
という「ホームサーバー向けキューブベアボーン」を企画していただければと思います。
今回のレビュー締切には間に合いませんでしたが、この後、mini-PCI ExpressにSATAを増設し、最終的には2.5インチHDDx8のサーバーにする予定ですので、締め切り後もじっくりレビューしていきたいと思っています。
もしBIOSの仮想化周辺バグが改善されれば仮想化サーバーとしてのレビューもぜひ!
最後になりましたが、
プレミアムレビューの機会を与えてくださったjigsaw運営様、日本Shuttle様、
それから最後までこの無駄に長いレビューをお読みくださった方に感謝します。
////////////////////////////////////////////////////////////////////
でももうちょっとだけ続くんじゃ(お小遣い的な意味で9月以降予定)
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。