2014年12月7日日曜日

ファイルサーバのスペックは高くなければならない。

「ファイルサーバ スペック」で検索すると
http://q.hatena.ne.jp/1294767892

http://oshiete.goo.ne.jp/qa/6565636.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1313700233
等、そんなに高いスペック要らないよ!というページが沢山出てくる。

これは

嘘。

真っ赤な嘘。

ぶっちゃけこれに騙されてATOM D525でファイルサーバを組んだら偉い目に遭わされた。
転送が遅い。
兎に角ファイルの入出力が亀のように遅い。
CPU使用率が半端なく上がる。
挙げ句の果てには熱暴走。12cmファン2基付けたのに・・・。
しようが無いから個人で引き取って個人サーバに作り替えても、やっぱり遅い。耐えられない。
意外とファイルサーバはスペックが必要なのである。
スピードを気にしないなら話は別だが、100GB、200GBなんてザラに弄るとなると、色々耐えられない。
ファイルサーバというのであれば、少なくともUSB2.0位のスピードを出して欲しいものである。

あと、サーバはサーバ用の物を使わなきゃ駄目!とか言うのも、

嘘。

本当に、嘘。

ECC?何それ美味しいの?高耐性ハードディスク?民生と同じくらい壊れるのが?
ということで、経験則とソースを織り交ぜて、実際フルスペックでファイルサーバを組むならば、というページをつくることにした。

想定環境は
・centos6.6もしくはcentos7
・30人くらいが業務として大量の動画や画像を入出力する
この2点。

CPU
・コア数が多ければ多いほど処理できる数が多くなる
http://www.hpc.co.jp/4u24d_features.html
より
ファイルサーバーのCPUコア数がNFSのプロセス数より少ないと、1つのCPUコアを複数のNFSプロセスが共有することになります。CPUコアが複数 のNFSプロセスを処理する十分な速度があれば問題はありませんが、クライアントマシンからのアクセスが非常に多くなった場合は、どうしてもその処理がボ トルネックとなり、その結果I/O性能が頭打ちになる現象が発生します。
ということで、プロセスを捌くためにマルチコアは有用。
また、
XFSは複数のスレッドやプロセスの同時アクセスに対応し、並列してI/Oを行うことが出来るため、コアの数に比例してI/O性能が向上する傾向があります。つまり同時アクセスが多ければ多いほど(CPUコア数とCPU速度の限界に達するまで)全体のI/O速度は上昇

wifipediaでは

アロケーショングループ

XFSファイルシステムは内部的に複数のアロケーショングループ英語版に分割することが可能である。アロケーショングループとは、等しいサイズの連続的なディスク領域である。1つのファイルやディレクトリは複数のアロケーショングループに跨って存在することが可能である。 それぞれのアロケーショングループが固有のinode空間と固有の空き領域を持つことで、拡張性と並列処理性が生み出される。(複数の異なるスレッドプロセスが同一のファイルシステムに同時にアクセス可能である) この特性により、メタデータの更新も並列に行うことができ、マルチプロセッサシステムやマルチコアシステムにおいて、I/O性能を向上させることができる。 ファイルシステムが複数の物理デバイスに渡るときに、この強みは発揮され、すべての物理ストレージの性能が最大限発揮される。

ということで、RHEL7(centos7)以降で標準FSとなったXFS環境には限りなく有効。


メモリ
・積めるだけ積む

http://d.hatena.ne.jp/ogawad/20130124/1358984437
メモリをたくさん載せる
→ SMB 2.1 では空きメモリがキャッシュになる
samba4ならSMB2/3対応なので、積めるだけ積んだ方が得策。
また、linuxカーネル自体が空きメモリをキャッシュとして使うので、積めるなら積めるだけ。

チップセット
・現時点だとintel 7 seriesまでが妥当。
・一応Haswell世代まで大丈夫

昔からのセオリーで枯れた技術で組むというのがあるが、最近はなかなか技術革新も早いので、2014年の終わり状況で、という前提で、
枯れた技術=intel 7 seriesチップセット(ivy-bridge世代)が間違いなく動くであろうチップセットと言い切りたい。
また、自分がソースで申し訳ないが、intel 8 seriesチップセット(i7 4770)でcentos6.5をファイルサーバとして稼働させている実績がある。
ちなみに
https://hardware.redhat.com/
で調べるのもいいが、認定品しか出ない。

ハードディスク
・SeagateとWestern Digital Greenだけはやめておく

Seagateの一連製品、およびWestern DigitalのGreen(省電力版)は避けること。
圧倒的な破損率を誇る。
http://gigazine.net/news/20140924-hdd-reliability-sep2014/
これはうちの環境でもそうで、Seagateの値頃感がある商品は特にひっかかる。
理想で買うなら今はなきHGST、もしくはWDのblackあたりか。
東芝も気になるが(HGSTの3.5インチ中国工場を取得して製造の噂)、カカクコムを見る限りだとそうでもなさそう。

NIC
・黙ってintel、もしくはRealtekにヒートシンクをつける
・PCI-X(pci express)接続で使う
365日回り続け、膨大なデータを送受信するため、ファイルサーバでなぜかハードディスクの次に破損が多い場所。
お金があるなら間違いなくintelをお薦めする。
もしお金がないのであればRealtekとなるだろうが、
http://roserogue.blogspot.jp/2014/06/lannicrealtekcentos65rpm.html
にあるような誤認識に気をつけることと、チップに小型ヒートシンクを付け、ファンを回す必要がある。
とにかく発熱し、それが重さとなって伝わってくる。
ヒートシンクをつけた場合とそうでない場合に、かなりの速度的乖離があるので是非つけておきたい。

また、NICはPCI-EXPRESSで使用すること。
PCIはパラレル接続で、何レーンあろうがGBE1枚で帯域は頭打ちになる。
http://www.avaldata.co.jp/products/y2_technology/pci-express/pci-express01.html
シリアル接続のPCI expressならその心配はない。
また、昔はpci expressに差したNICが認識しないことがあった(centos5.3とかだった気がする)が、今はそんなことがない。


--------------------------------
以下は蛇足。 民生で組むならこんな感じ。

マザーボード    13000円
Z87-PRO(V EDITION)
http://kakaku.com/item/K0000581734/
マザーはサーバ用途ならsupermicroやTYANがお勧めだが、ASUSでも結構いける。
ポイントはPCI-Express 1Xが4本なこと。4本全部GBENICでボンディングすれば相当速い、筈。


CPU    35000円
Core i7 4770 BOX
http://kakaku.com/item/K0000516805/
i5でも良い気がするが、4コア8スレッドは魅力的。

メモリ    16000円
CMV16GX3M2A1333C9 [DDR3 PC3-10600 8GB 2枚組]
http://kakaku.com/item/K0000347975/
16GB積んでおけ。

電源
G1000-MB    16000円
http://kakaku.com/item/K0000589946/
ENERMAX、CORSAIRなど良いメーカーがだいたい同価格帯で並ぶ800W以上の電源。
そこであえてLEPAを選ぶ。
一応アメリカのブランド。

ハードディスク    88000円
WD30EURX [3TB SATA600]
http://kakaku.com/item/K0000684294/
MD04ACA200BOX [2TB SATA600 7200]
http://kakaku.com/item/K0000690439/

本当はHGSTの0S03663 [3TB SATA600 7200]を手に入れたかったが、予算の都合である。
これを8台購入する。

ケース    18000円
CM Storm Trooper SGC-5000-KKN1-JP
http://kakaku.com/item/K0000316118/
スタンドアロンのサーバであれば、迷わずこれを選ぼう。
8台のハードディスク収納、冷却を考えるとこれ以外にお薦めがない。
何より一番のポイントは取っ手がついていること。


RAIDカード    90000円
MegaRAID SAS 9361-8i KIT LSI00416 [SAS/SATA/RAID]
http://kakaku.com/item/K0000601268/
チャレンジとしか言いようがない。
centosなら927Xあたりがよく文書が出てくるので、本来ならこちらをお薦め。
バッテリバックアップ電池が25000円くらい。
勿論RAIDは10で組む。
今時RAID5やRAID6で組む意味が分からない。

NIC    14000円
Gigabit CT [LAN]
http://kakaku.com/item/K0000157168/
Intel製品である。
限界まで引き出すのであれば
Gigabit ET2 Quad Port Server E1G44ET2 [LAN]
という4ポート付きのものもある(ただし4レーン用)。

締めて30万円といったところか。業務用としては安く済む部類である。
これにオムロンの正弦波UPSをくっつければ、見事にファイルサーバ。
高い!と思うならば、ここからスペックを落とせば良い。20万以下にはなるだろう。
でも最低限、いつのでも良いからcorei3、8GBのメモリ、LSIのRAIDカードの3点は押さえたい。

追記
書くのを忘れていたが、チップセットによってI/O限界が違うので、ざっくり書くと「高いマザーに越したことはない」というのも覚えておいて頂きたい。

0 件のコメント:

コメントを投稿