2010/06/25(金)続き

引き続き,サーバの構成を考えてみます.
今回はCPUではなくて,データの転送速度についてちょっと考えてます.

リンク・アグリゲーション

LANポートが4つあるマザーボードがあります.
どうやらこれは,回線の冗長性や帯域確保に使うようです.
例えば,物理的に2つの回線を,1つの太い回線として扱って高速化を行うことが出来るようで,
このような方法をリンクアグリケーションというそうです.
つまりGigabitのLANポート2つをGigabitハブにつないでやって,
ソフトウェア的に設定をしてやるとそのサーバは2Gbpsの帯域を確保でき,通信速度が増大するわけです.
2Gbpsって,およそ250MB/sくらいなので,かなり高速になりますね*1
こうすることで,同時アクセスとかで有利になるし,片方の回線が死んでしまっても大きな問題はないわけですね.

これをこのサーバで実装すれば,転送速度が向上してストレスが減るでしょうね.
録画ファイルをサーバのファイルシステムに書き込みながら,
別の動画ファイルを読み出したりとか,出来るようになるかもしれないですね.

*1 : 2Gbpsの帯域があれば,理論値の1Gbpsに近い速度を確保できないかもしれないです.

HDDの信頼性と転送速度

上のリンクアグリケーションを利用すると,帯域速度が増して,回線上での転送速度が上昇しますが,
今度はHDDの転送速度が律速段階になりそうです.
最近の容量がTBクラスのHDDはかなり高速になったのですが,それでも連続リード・ライトともに100MB/s程度(場合によっては200MB/s近いですが)です.
ランダムアクセスだとパフォーマンスはさらに低下します.
対して,理論上の回線速度は上記の通り250MB/s.HDD周りの転送速度向上が必要そうなのがわかります.
信頼性と転送速度(特に書き込み)が両立できれば素晴らしいことです.
その方法を検討してみましょう.

信頼性を確保するにはRAID6か,RAID5か.

RAIDというのは,基本的に複数のHDDを一つのHDDと見なして,
信頼性を確保する手法のことです(今更私が説明する必要はないですね.).
で,RAIDにもいくつか種類があって,その中で上の二つがいいのではないかと考えています.
かいつまんで説明すると,RAID5は最低で3つのHDDが必要で,6は最低で4つ.利用率は5が2/3,6が1/2です.
故障したときは上の構成で,5が1つまで,6が2まで同時に壊れても平気です.
両方とも,HDD単体よりも,読み込み速度が上昇し,書き込み速度が低下する傾向があります.
特に6はデータを余計に書き込む関係で5よりも遅くなるようです.
そこまで信頼性を求めないですし,6は早々に選択肢から消えそうです.
で,ネットを見ると最低限のHDD数で5や6を構成すると相当転送速度が落ちるらしいです.
信頼性を確保しても,遅くなっては…….5と6にはさようなら.

速度を考えると……RAID10?

RAID10というのはRAID1と0を組み合わせたものです.
浮上したRAID10ですが…….構成の説明がまたまたややこしい.適当にwikiってください.
これは,速度をHDD単体と同等以上にしながら信頼性もある程度確保できるという代物のようです.
いい点はHDD単体よりもランダムアクセスも多少良くなる点と
障害復旧に掛かる時間が短いこと*2ですね.
最低4つのHDDを使用します.想定しているMBはSATAのポートが6つあるので問題ないですね.
6台構成にすると,爆速でしかも信頼性の高いディスクを構成できるようです.利用率は常に1/2のようです.

やっぱり,単体利用でいいや!HDDごとに分業すればいいのでは?

いろいろ考えましたが,サービスごとに使うHDDを分けてやれば,増加した帯域を活用できるのではないかと思いました.
どうしても,必要なデータだけ,cronコマンドとrsyncで定期的にバックアップすれば済みますよね.
2TBが4台あるのなら,2TBx2の組を大切なデータの保管のために二重化しておいて,
残りのディスクを録画ファイルの一時保存場所や,システムディスクにすればいいわけですよ.
だいぶ昔に力説したことと,結局同じ結論になったわけですね.




*2 : 大容量化したHDDが主流な現在では重要なこと

そしてこんな構成になった……

  • CPU : Xeon X3450:
    • クロック:2.66GHz
    • L3キャッシュ:8MB
    • ソケット:LGA1156
    • 価格:2.5~3万円
  • MB : P7F-C/4L
    • 3.2万円
    • メモリ最大32GB
    • PCIex16 x2 PCI x4 のみ
    • LANポートx4 リンクアグリケーションに使用(残り2つは……).
  • メモリ : KVR1333D3D4R9S/4GI (DDR3 PC3-10600 4GB Registered) 1.7万円 1枚なので省エネ!
  • HDD :
    • WD20EARS (2TB SATA300) x2 新規購入.データ保管庫の組 1.9万円
    • 1TB.一時保管庫.新規購入. 0.5万円
    • 320GBx1 所持品を流用(ブートディスク)
  • 電源 : 550W.1万円以内.EVEREST 85PLUS 520などがいいでしょうか.
  • ケース : 新規.自作?木製?とりあえず静音で.
  • OS
    • ホストOS:Debian 6.0 squeeze.今のLennyの一つバージョンの新しいヤツ.
    • KVMによる仮想化でWindows 7をインストール?
すごい構成だ…….CPU3万,MB3万,メモリ1.7万,HDD2.4万.電源1万.結果10万円の大台を超えました!
今時これって…….どうなんでしょ?しかもサーバだし.個人の…….

LANの構成

このマシンをLANに組み込むことを考えます.
上のマシンがサーバー機になるわけです.いやワークステーションですね…….名実ともに.
恐ろしいことに,今のメインサーバ(Pentium DC 1.8GHz)がセカンダリサーバになります.
それに加えて,Windows XPマシンが1台(Core 2 Duo→Core 2 Quad化予定?),Vistaノートが1台.
化石のPentium III サードサーバと,下手するとPentium 4のXPマシンが1台追加.
クライアントとサーバの数が一緒です!!!
すごく偏っている.しかもエンコードはWindowsマシンにやらせるかもしれないですし.

うわー,こういうことを考えるとワクワクしますね!


研究室のLinuxマシンが不調

sshの接続が頻繁に切れます.だいぶ落ち着いてきたんですが,どうしてこうなったのだろう…….原因不明です.
このマシンはPentium 4.ご老体にむち打って,
測定系の制御に使うもくろみのために先程から移動したりセットアップしたりしてました.
だって,今の測定系のマシンが7年前くらいのCeleron Mなんだもの.
入っているWindowsもブルースクリーンを連発しているし,怖いんです.
しかもCの処理系がボーランドだから救えないのです.Visual C++系ならまだいい気もしますが,
なぜボーランド?って感じがしているのです.